@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,171 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "PasswordInput",
|
|
3
|
+
"slug": "password-input",
|
|
4
|
+
"group": "forms",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A masked text field with a reveal control.\n\nThe reveal is a **toggle button carrying `aria-pressed`**, not a checkbox and\nnot a bare icon: a screen-reader user needs to know both what it does and\nwhich way it currently is, and `aria-pressed` is the one attribute that says\nboth. The label swaps with the state for the same reason.\n\nRevealing switches `type` between `password` and `text` rather than painting\nover the characters, so the browser's own autofill and password managers keep\nworking.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "className",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Extra classes for the group that wraps the input and the reveal button.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "string"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "aria-label",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": false,
|
|
24
|
+
"defaultValue": null,
|
|
25
|
+
"description": "Accessible name for the input, when no `FieldLabel` names it. Declared here\nrather than left to the inherited attribute so the props table carries the\nrow: a bare input outside a `Field` has no other way to be named.",
|
|
26
|
+
"control": {
|
|
27
|
+
"kind": "string"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "size",
|
|
32
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
33
|
+
"required": false,
|
|
34
|
+
"defaultValue": null,
|
|
35
|
+
"description": "Rung of the control ladder. Defaults to `\"md\"`.",
|
|
36
|
+
"control": {
|
|
37
|
+
"kind": "enum",
|
|
38
|
+
"members": [
|
|
39
|
+
"sm",
|
|
40
|
+
"md",
|
|
41
|
+
"lg"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "hideLabel",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": "Hide password",
|
|
50
|
+
"description": "Accessible name while revealed. Defaults to `\"Hide password\"`.",
|
|
51
|
+
"control": {
|
|
52
|
+
"kind": "string"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "placeholder",
|
|
57
|
+
"type": "string",
|
|
58
|
+
"required": false,
|
|
59
|
+
"defaultValue": null,
|
|
60
|
+
"description": "An example of what goes in the field, shown while it is empty. Not a name:\nit disappears on the first keystroke, so pair it with `aria-label` or a\n`FieldLabel`. Declared for the props-table row, as `aria-label` is above.",
|
|
61
|
+
"control": {
|
|
62
|
+
"kind": "string"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "revealed",
|
|
67
|
+
"type": "boolean",
|
|
68
|
+
"required": false,
|
|
69
|
+
"defaultValue": null,
|
|
70
|
+
"description": "Reveal the value. Use with `onRevealedChange` for a controlled toggle.",
|
|
71
|
+
"control": {
|
|
72
|
+
"kind": "boolean"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "defaultRevealed",
|
|
77
|
+
"type": "boolean",
|
|
78
|
+
"required": false,
|
|
79
|
+
"defaultValue": "false",
|
|
80
|
+
"description": "Initially revealed, for an uncontrolled toggle. Defaults to `false`.",
|
|
81
|
+
"control": {
|
|
82
|
+
"kind": "boolean"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "onRevealedChange",
|
|
87
|
+
"type": "((revealed: boolean) => void)",
|
|
88
|
+
"required": false,
|
|
89
|
+
"defaultValue": null,
|
|
90
|
+
"description": "Called with the new reveal state.",
|
|
91
|
+
"control": {
|
|
92
|
+
"kind": "callback",
|
|
93
|
+
"fixture": "callback.log"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "showReveal",
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"required": false,
|
|
100
|
+
"defaultValue": "true",
|
|
101
|
+
"description": "Offer the reveal affordance at all. Defaults to `true`. Switch it off for a\nvalue the product must never re-display — a stored secret the user is\nreplacing rather than reading.",
|
|
102
|
+
"control": {
|
|
103
|
+
"kind": "boolean"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "revealLabel",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"required": false,
|
|
110
|
+
"defaultValue": "Show password",
|
|
111
|
+
"description": "Accessible name while masked. Defaults to `\"Show password\"`.",
|
|
112
|
+
"control": {
|
|
113
|
+
"kind": "string"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"typeReferences": [
|
|
118
|
+
"Omit<InputProps, \"type\" | \"size\">"
|
|
119
|
+
],
|
|
120
|
+
"subcomponents": [],
|
|
121
|
+
"parts": [],
|
|
122
|
+
"variants": {},
|
|
123
|
+
"defaultVariants": {},
|
|
124
|
+
"tokensUsed": [
|
|
125
|
+
"--cue-accent",
|
|
126
|
+
"--cue-border",
|
|
127
|
+
"--cue-border-strong",
|
|
128
|
+
"--cue-control-lg",
|
|
129
|
+
"--cue-control-md",
|
|
130
|
+
"--cue-control-sm",
|
|
131
|
+
"--cue-danger",
|
|
132
|
+
"--cue-fg",
|
|
133
|
+
"--cue-fg-subtle",
|
|
134
|
+
"--cue-focus",
|
|
135
|
+
"--cue-font-mono",
|
|
136
|
+
"--cue-icon-md",
|
|
137
|
+
"--cue-radius-control",
|
|
138
|
+
"--cue-space-3",
|
|
139
|
+
"--cue-space-4",
|
|
140
|
+
"--cue-space-5",
|
|
141
|
+
"--cue-sunken",
|
|
142
|
+
"--cue-text-body",
|
|
143
|
+
"--cue-text-label",
|
|
144
|
+
"--cue-text-ui"
|
|
145
|
+
],
|
|
146
|
+
"summary": "A masked text field with a reveal control.",
|
|
147
|
+
"examples": [
|
|
148
|
+
{
|
|
149
|
+
"title": "Usage",
|
|
150
|
+
"code": "<PasswordInput aria-label=\"Service key\" value={key} onValueChange={setKey} />\n<Field><FieldLabel>Token</FieldLabel><PasswordInput showReveal={false} /></Field>",
|
|
151
|
+
"language": "tsx"
|
|
152
|
+
}
|
|
153
|
+
],
|
|
154
|
+
"status": "todo-docs",
|
|
155
|
+
"url": "/docs/components/password-input",
|
|
156
|
+
"mdUrl": "/docs/components/password-input.md",
|
|
157
|
+
"jsonUrl": "/r/components/password-input.json",
|
|
158
|
+
"specimens": [
|
|
159
|
+
{
|
|
160
|
+
"title": "PasswordInput",
|
|
161
|
+
"group": "forms",
|
|
162
|
+
"components": [
|
|
163
|
+
"PasswordInput"
|
|
164
|
+
],
|
|
165
|
+
"code": "<Specimens>\n <Specimen label=\"hidden\">\n <PasswordInput aria-label=\"Console password\" defaultValue=\"hunter2\" />\n </Specimen>\n <Specimen label=\"revealed\">\n <PasswordInput aria-label=\"Console password, revealed\" defaultValue=\"hunter2\" defaultRevealed />\n </Specimen>\n <Specimen label=\"no toggle\">\n <PasswordInput aria-label=\"Password, no reveal\" defaultValue=\"hunter2\" showReveal={false} />\n </Specimen>\n <Specimen label=\"disabled\">\n <PasswordInput aria-label=\"Password, disabled\" defaultValue=\"hunter2\" disabled />\n </Specimen>\n</Specimens>",
|
|
166
|
+
"note": "Input plus a reveal toggle carrying `aria-pressed`, so the state is spoken rather than implied by an icon swap.",
|
|
167
|
+
"interaction": "the toggle is in the tab order after the field."
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"todo": true
|
|
171
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "PermissionGrant",
|
|
3
|
+
"slug": "permission-grant",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "Granting a capability rather than approving one action, with the reach spelled out.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "capability",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "What is being granted, named as a capability rather than an action.",
|
|
18
|
+
"control": {
|
|
19
|
+
"kind": "string"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "requester",
|
|
24
|
+
"type": "string",
|
|
25
|
+
"required": true,
|
|
26
|
+
"defaultValue": null,
|
|
27
|
+
"description": "Who is asking.",
|
|
28
|
+
"control": {
|
|
29
|
+
"kind": "string"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "reach",
|
|
34
|
+
"type": "readonly string[]",
|
|
35
|
+
"required": true,
|
|
36
|
+
"defaultValue": null,
|
|
37
|
+
"description": "Exactly what the grant covers, and what it does not. Write the limits in too.",
|
|
38
|
+
"control": {
|
|
39
|
+
"kind": "array",
|
|
40
|
+
"fixture": "agent.transcript"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "scope",
|
|
45
|
+
"type": "\"pending\" | \"always\" | \"denied\" | \"session\"",
|
|
46
|
+
"required": true,
|
|
47
|
+
"defaultValue": null,
|
|
48
|
+
"description": "pending shows the choices; anything else shows the settled outcome.",
|
|
49
|
+
"control": {
|
|
50
|
+
"kind": "enum",
|
|
51
|
+
"members": [
|
|
52
|
+
"pending",
|
|
53
|
+
"always",
|
|
54
|
+
"denied",
|
|
55
|
+
"session"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "onGrant",
|
|
61
|
+
"type": "((scope: GrantScope) => void)",
|
|
62
|
+
"required": false,
|
|
63
|
+
"defaultValue": null,
|
|
64
|
+
"description": "Called with the scope the user chose.",
|
|
65
|
+
"control": {
|
|
66
|
+
"kind": "callback",
|
|
67
|
+
"fixture": "callback.log"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"typeReferences": [
|
|
72
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"capability\" | \"requester\" | \"reach\" | \"scope\" | \"onGrant\"\n> & {\n /** What is being granted, named as a capability rather than an action. */\n capability: string;\n /** Who is asking. */\n requester: string;\n /** Exactly what the grant covers, and what it does not. Write the limits in too. */\n reach: readonly string[];\n /** pending shows the choices; anything else shows the settled outcome. */\n scope: GrantScope | \"pending\";\n /** Called with the scope the user chose. */\n onGrant?: (scope: GrantScope) => void;\n}"
|
|
73
|
+
],
|
|
74
|
+
"subcomponents": [],
|
|
75
|
+
"parts": [],
|
|
76
|
+
"variants": {},
|
|
77
|
+
"defaultVariants": {},
|
|
78
|
+
"tokensUsed": [
|
|
79
|
+
"--cue-fg",
|
|
80
|
+
"--cue-fg-muted",
|
|
81
|
+
"--cue-fg-subtle",
|
|
82
|
+
"--cue-radius-overlay",
|
|
83
|
+
"--cue-radius-surface",
|
|
84
|
+
"--cue-surface-1",
|
|
85
|
+
"--cue-surface-2",
|
|
86
|
+
"--cue-surface-3",
|
|
87
|
+
"--cue-text-body",
|
|
88
|
+
"--cue-text-ui"
|
|
89
|
+
],
|
|
90
|
+
"summary": "Granting a capability rather than approving one action, with the reach spelled out.",
|
|
91
|
+
"examples": [
|
|
92
|
+
{
|
|
93
|
+
"title": "Usage",
|
|
94
|
+
"code": "import { PermissionGrant } from \"@cueplusplus/ui/elements\";\n\n<PermissionGrant\n capability=\"Filesystem access\"\n requester=\"filesystem-mcp\"\n reach={reach}\n scope=\"pending\"\n onGrant={setScope}\n/>",
|
|
95
|
+
"language": "tsx"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"status": "todo-docs",
|
|
99
|
+
"url": "/docs/components/permission-grant",
|
|
100
|
+
"mdUrl": "/docs/components/permission-grant.md",
|
|
101
|
+
"jsonUrl": "/r/components/permission-grant.json",
|
|
102
|
+
"specimens": [
|
|
103
|
+
{
|
|
104
|
+
"title": "PermissionGrant",
|
|
105
|
+
"group": "elements",
|
|
106
|
+
"components": [
|
|
107
|
+
"PermissionGrant"
|
|
108
|
+
],
|
|
109
|
+
"code": "<Specimens>\n {SCOPES.map((scope) => (\n <Specimen key={scope} label={scope} wide>\n <PermissionGrant\n capability=\"Write show files\"\n requester=\"Patcher\"\n reach={REACH}\n scope={grants[scope] ?? scope}\n onGrant={grant(scope)}\n />\n </Specimen>\n ))}\n</Specimens>",
|
|
110
|
+
"note": "The other half of the loop: granting a capability rather than approving one action. The reach is a list the caller writes, and the limits belong in it, because a grant a reader cannot bound is a grant they cannot give.",
|
|
111
|
+
"interaction": "the three answers are Deny, this session and Always. Answer any card and it settles into the scope you chose."
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"todo": true
|
|
115
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "PermissionScopes",
|
|
3
|
+
"slug": "permission-scopes",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "Approval that says how far it reaches and where that is written down.\n\nEvery product in the study offers a scope at the moment of approval, and\nevery one of them labels it the same static way — `Always allow` — which is\nthe least informative string in an agent UI: it is the only control on the\nscreen whose consequences outlive the conversation, and it says nothing about\nwhat it grants or where the grant goes. So this one writes its own label.\n`Yes, allow Bash(git commit:*) for this project (just you)` names the rule\nand the reach; the line under it names the file, in a sentence, permanently\nvisible.\n\nNothing is shortened. Claude Code elides a long rule and strips the `:*` off\na prefix rule, and both cuts land on the part that says how much is being\ngranted, so the label here wraps instead. When there are more rules than the\nsentence can name, every one of them is listed under the answer — `and 3\nmore` is a count, and a count is not an account.\n\nThe three answers are numbered, and the numbers are real **while focus is\ninside the card**: `1`, `2` and `3` fire whichever answers are rendered,\nbuilt from the same list that draws them, so a card with no always-allow has\n`2` on its deny, and `Escape` denies. The handler is the card's own\n`onKeyDown` and nothing is ever bound to the document, so the keys answer for\na reader who has tabbed to an answer or been handed the card, and for nobody\nelse.\n\nThat is narrower than the reference, and the narrowing is the point. Claude\nCode disables its buttons for 500ms after mount and *then* takes focus, so\nits digits answer from anywhere; this card never claims focus at all, because\na card that arrives mid-sentence and starts answering keystrokes is the bug\nthat delay exists to prevent — and a row in a library cannot know whether the\nreader is halfway through typing `1` into a composer above it. A product that\nwants the digits to answer from anywhere has the information to decide that\nsafely and this element does not: it routes its own key handler to the same\nthree callbacks, or hands the card focus itself with a `ref` and a `tabIndex`\nof its own.\n\nThere is no settled state. An answered permission is not a card any more; the\nrow that survives is the tool call's own, with its status changed. Every\nproduct that modelled approval as an overlay ended up with the bug where the\nnext message hides the answer.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "question",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "The question, in the words of the thing being asked for: `Run this\ncommand?`, `Edit this file?`. One step up in size, as the reference sets\nit: it is the only sentence on the card that has to be read.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "string"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "subject",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": false,
|
|
24
|
+
"defaultValue": null,
|
|
25
|
+
"description": "The file, host or command the question is about, set in mono beside it.\nOmit for a question that names its own subject.",
|
|
26
|
+
"control": {
|
|
27
|
+
"kind": "string"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "input",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"defaultValue": null,
|
|
35
|
+
"description": "The exact input the call would run with, drawn in a recessed mono box —\nthe command, the patch, the URL. Shown verbatim and never parsed.",
|
|
36
|
+
"control": {
|
|
37
|
+
"kind": "string"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "rules",
|
|
42
|
+
"type": "readonly string[]",
|
|
43
|
+
"required": false,
|
|
44
|
+
"defaultValue": "[]",
|
|
45
|
+
"description": "The rules a standing grant would write, exactly as they will be written.\nThe always-allow answer's label is built from these; when there are more\nthan the label can name, all of them are listed under it.",
|
|
46
|
+
"control": {
|
|
47
|
+
"kind": "array",
|
|
48
|
+
"fixture": "agent.transcript"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "ruleKind",
|
|
53
|
+
"type": "\"directory\" | \"rule\"",
|
|
54
|
+
"required": false,
|
|
55
|
+
"defaultValue": "rule",
|
|
56
|
+
"description": "Whether `rules` are rules or directories, which changes the phrasing.",
|
|
57
|
+
"control": {
|
|
58
|
+
"kind": "enum",
|
|
59
|
+
"members": [
|
|
60
|
+
"directory",
|
|
61
|
+
"rule"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "scopes",
|
|
67
|
+
"type": "readonly PermissionScope[]",
|
|
68
|
+
"required": false,
|
|
69
|
+
"defaultValue": "[]",
|
|
70
|
+
"description": "Where a standing grant can be written, in the order they are offered.\n**No scopes means no always-allow answer**: a permanent grant that cannot\nsay where it is saved is not one this element will offer.",
|
|
71
|
+
"control": {
|
|
72
|
+
"kind": "array"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "scope",
|
|
77
|
+
"type": "string",
|
|
78
|
+
"required": false,
|
|
79
|
+
"defaultValue": null,
|
|
80
|
+
"description": "Which scope is chosen, by `id`. Defaults to the first. Claude Code\npersists this choice across prompts and so should a console — which is why\nit is a prop here rather than state: this element never remembers anything.",
|
|
81
|
+
"control": {
|
|
82
|
+
"kind": "string"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "onScopeChange",
|
|
87
|
+
"type": "((id: string) => void)",
|
|
88
|
+
"required": false,
|
|
89
|
+
"defaultValue": null,
|
|
90
|
+
"description": "Called with the next scope's `id` when the destination is cycled.",
|
|
91
|
+
"control": {
|
|
92
|
+
"kind": "callback",
|
|
93
|
+
"fixture": "callback.log"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "onAllowOnce",
|
|
98
|
+
"type": "(() => void)",
|
|
99
|
+
"required": false,
|
|
100
|
+
"defaultValue": null,
|
|
101
|
+
"description": "Yes, once. The answer exists only when this is given.",
|
|
102
|
+
"control": {
|
|
103
|
+
"kind": "callback",
|
|
104
|
+
"fixture": "callback.log"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "onAlwaysAllow",
|
|
109
|
+
"type": "((scope: string) => void)",
|
|
110
|
+
"required": false,
|
|
111
|
+
"defaultValue": null,
|
|
112
|
+
"description": "Yes, and write the rules to the chosen scope — reported by `id`. The\nanswer exists only when this **and** at least one scope are given.",
|
|
113
|
+
"control": {
|
|
114
|
+
"kind": "callback",
|
|
115
|
+
"fixture": "callback.log"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "onDeny",
|
|
120
|
+
"type": "(() => void)",
|
|
121
|
+
"required": false,
|
|
122
|
+
"defaultValue": null,
|
|
123
|
+
"description": "No. Also what `Escape` does, while focus is inside the card. The answer\nexists only when this is given.",
|
|
124
|
+
"control": {
|
|
125
|
+
"kind": "callback",
|
|
126
|
+
"fixture": "callback.log"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "labels",
|
|
131
|
+
"type": "Partial<PermissionLabels>",
|
|
132
|
+
"required": false,
|
|
133
|
+
"defaultValue": null,
|
|
134
|
+
"description": "The card's own six strings, merged over `PERMISSION_LABELS`.",
|
|
135
|
+
"control": {
|
|
136
|
+
"kind": "opaque"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"typeReferences": [
|
|
141
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\" | \"onSelect\">"
|
|
142
|
+
],
|
|
143
|
+
"subcomponents": [],
|
|
144
|
+
"parts": [],
|
|
145
|
+
"variants": {},
|
|
146
|
+
"defaultVariants": {},
|
|
147
|
+
"tokensUsed": [
|
|
148
|
+
"--cue-accent",
|
|
149
|
+
"--cue-fg",
|
|
150
|
+
"--cue-fg-muted",
|
|
151
|
+
"--cue-fg-subtle",
|
|
152
|
+
"--cue-radius-control",
|
|
153
|
+
"--cue-radius-overlay",
|
|
154
|
+
"--cue-surface-2",
|
|
155
|
+
"--cue-surface-3",
|
|
156
|
+
"--cue-text-body",
|
|
157
|
+
"--cue-text-ui"
|
|
158
|
+
],
|
|
159
|
+
"summary": "Approval that says how far it reaches and where that is written down.",
|
|
160
|
+
"examples": [
|
|
161
|
+
{
|
|
162
|
+
"title": "Usage",
|
|
163
|
+
"code": "import { PermissionScopes, PERMISSION_SCOPE_LABELS } from \"@cueplusplus/ui/elements\";\n\n<PermissionScopes\n question=\"Run this command?\"\n subject=\"cue-cli\"\n input='cue patch --universe 3 --fixtures 6'\n rules={[\"Bash(cue patch:*)\"]}\n scopes={[\n { id: \"session\", label: PERMISSION_SCOPE_LABELS.session, writes: \"Not saved. Gone when this run ends.\" },\n { id: \"project\", label: PERMISSION_SCOPE_LABELS.project, writes: \"Saves to .cue/settings.local.json (gitignored)\" },\n ]}\n scope={scope}\n onScopeChange={setScope}\n onAllowOnce={() => allow()}\n onAlwaysAllow={(id) => remember(id)}\n onDeny={() => deny()}\n/>\n// No scopes: the card asks, and the only answers are once and no.\n<PermissionScopes question=\"Delete this file?\" subject=\"cues/old.cue\" onAllowOnce={allow} onDeny={deny} />",
|
|
164
|
+
"language": "tsx"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"status": "todo-docs",
|
|
168
|
+
"url": "/docs/components/permission-scopes",
|
|
169
|
+
"mdUrl": "/docs/components/permission-scopes.md",
|
|
170
|
+
"jsonUrl": "/r/components/permission-scopes.json",
|
|
171
|
+
"specimens": [
|
|
172
|
+
{
|
|
173
|
+
"title": "PermissionScopes",
|
|
174
|
+
"group": "elements",
|
|
175
|
+
"components": [
|
|
176
|
+
"PermissionScopes"
|
|
177
|
+
],
|
|
178
|
+
"code": "<Specimens>\n <Specimen label={answered === null ? \"asking\" : `answered: ${answered}`} wide>\n <div className=\"flex w-full max-w-md flex-col gap-(--cue-space-2)\">\n <PermissionScopes\n question=\"Run this command?\"\n subject=\"cue-cli\"\n input=\"cue patch --universe 3 --fixtures 6 --start 1\"\n rules={[\"Bash(cue patch:*)\"]}\n scopes={SAVES_TO}\n scope={saveTo}\n onScopeChange={setSaveTo}\n onAllowOnce={() => setAnswered(\"once\")}\n onAlwaysAllow={(id) => setAnswered(`always · ${id}`)}\n onDeny={() => setAnswered(\"denied\")}\n />\n <p className=\"text-(length:--cue-text-label) text-fg-subtle\">\n last answer: {answered ?? \"none yet\"}\n </p>\n </div>\n </Specimen>\n <Specimen label=\"one destination, so no choice to make\" wide>\n <div className=\"w-full max-w-md\">\n <PermissionScopes\n question=\"Write this file?\"\n subject=\"shows/rig.cue\"\n rules={[\"Write(shows/**)\"]}\n scopes={[SAVES_TO[0] as PermissionScope]}\n onAllowOnce={() => {}}\n onAlwaysAllow={() => {}}\n onDeny={() => {}}\n />\n </div>\n </Specimen>\n <Specimen label=\"four rules, and all four named\" wide>\n <div className=\"w-full max-w-md\">\n <PermissionScopes\n question=\"Read these paths?\"\n rules={[\"Read(plots/**)\", \"Read(shows/**)\", \"Read(cues/**)\", \"Read(docs/**)\"]}\n scopes={SAVES_TO}\n scope=\"everywhere\"\n onAlwaysAllow={() => {}}\n onDeny={() => {}}\n />\n </div>\n </Specimen>\n <Specimen label=\"one directory, and nowhere to break the line\" wide>\n <div className=\"w-full max-w-md\">\n <PermissionScopes\n question=\"Allow access to this directory?\"\n rules={[\n \"/Users/kit/rig/shows/2026_midsummer_transfer_technical_rehearsal_moving_heads\",\n ]}\n ruleKind=\"directory\"\n scopes={SAVES_TO}\n scope=\"project\"\n onAlwaysAllow={() => {}}\n onDeny={() => {}}\n />\n </div>\n </Specimen>\n <Specimen label=\"the destination is the long word this time\" wide>\n <div className=\"flex w-full max-w-md flex-col gap-(--cue-space-2)\">\n <PermissionScopes\n question=\"Write this file?\"\n subject=\"shows/2026_midsummer_transfer_technical_rehearsal_moving_heads.cue\"\n rules={[\"Write(shows/**)\"]}\n scopes={SAVES_TO_A_LONG_WAY}\n scope={savedFar}\n onScopeChange={setSavedFar}\n onAlwaysAllow={() => {}}\n onDeny={() => {}}\n />\n <PermissionScopes\n question=\"Write this file?\"\n subject=\"shows/2026_midsummer_transfer_technical_rehearsal_moving_heads.cue\"\n rules={[\"Write(shows/**)\"]}\n scopes={[SAVES_TO_A_LONG_WAY[1] as PermissionScope]}\n onAlwaysAllow={() => {}}\n onDeny={() => {}}\n />\n </div>\n </Specimen>\n</Specimens>",
|
|
179
|
+
"note": "The one control in an agent UI whose label has to be computed, because what it grants is different every time it appears. `Yes, allow Bash(cue patch:*) for this project (just you)` is written from the rules it would add and the reach it would add them to, and the sentence under it names the file — permanently, not on hover. Nothing is shortened: the reference elides a long rule and strips the `:*` off a prefix rule, and both cuts land on the part that says how far the grant reaches, so this one wraps instead. When there are more rules than the sentence can name, every one of them is listed underneath, because `and 3 more` is a count and a count is not an account. The last card is what that costs: one directory of seventy-seven characters that a line breaker reads as a single word — it would take a hyphen if the name had one, and an underscored path has none — so the sentence breaks mid-path rather than running out of the card. It is also the card where the sentence is the whole account, since a grant naming one directory draws no rule list under it. The card after it moves the long word to the other two caller strings that can carry one — the subject beside the question, and the destination naming the file the grant is written into — and draws the destination both ways: the top card cycles it, so it is a button sized to its own text, and the bottom card has one destination and draws a span. Cycle the top one onto the project and the sentence breaks mid-path instead of leaving the card, which is the whole point of drawing where a permission is saved rather than hiding it behind a hover.",
|
|
180
|
+
"interaction": "tab into the card and the numbers work — 1, 2, 3 fire whichever answers are rendered, built from the same list that drew them, and Escape denies. They are the card's own keys, not the document's: nothing here answers a digit typed into a composer somewhere above it, and a console that wants them to answer from anywhere routes them there itself. Press the dotted line to move the grant to another destination and watch the answer above it change with it: there is one resolved scope behind the label, the sentence and the callback, so they cannot disagree about what is being granted."
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"todo": true
|
|
184
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "PianoKeyboard",
|
|
3
|
+
"slug": "piano-keyboard",
|
|
4
|
+
"group": "midi",
|
|
5
|
+
"importPath": "@cueplusplus/ui/midi",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A piano keyboard as a range control: drag the markers, or arrow the edges.\n\nPorted from ableton-sync's note-range picker, geometry intact — 16px whites,\n10px blacks over the seams — and rebuilt around three things the original did\nnot have:\n\n1. **The edges are sliders.** The port moved its markers with `mousedown` and\n a window listener, which means no keyboard, no screen reader and no touch.\n Here each marker is a `role=\"slider\"` announcing its note by name, so\n \"set the low end to C2\" is reachable without a pointer.\n2. **The board holds still while you drag.** The window is centred on the\n selection, so moving an edge moves the window, which moves the note under\n the cursor — the port's markers slid away from the pointer mid-drag. The\n window is frozen for the length of a gesture instead.\n3. **It is drawn in console materials, not in white and black.** A photo of a\n piano inverts in a light theme; a `surface-3` white key and a\n `--cue-data-ground` black key read the same in both. The information — what\n is in range, what is sounding — is carried by the accent, which is the only\n thing here that a theme is allowed to move.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "range",
|
|
12
|
+
"type": "NoteRange",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "The selected range. Use with `onRangeChange` for a controlled widget.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "opaque"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "defaultRange",
|
|
22
|
+
"type": "NoteRange",
|
|
23
|
+
"required": false,
|
|
24
|
+
"defaultValue": "{ start: 48, end: 72 }",
|
|
25
|
+
"description": "Initial range for an uncontrolled widget. Defaults to C2–C4.",
|
|
26
|
+
"control": {
|
|
27
|
+
"kind": "opaque"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "onRangeChange",
|
|
32
|
+
"type": "((range: NoteRange) => void)",
|
|
33
|
+
"required": false,
|
|
34
|
+
"defaultValue": null,
|
|
35
|
+
"description": "Called with the range each edit produces.",
|
|
36
|
+
"control": {
|
|
37
|
+
"kind": "callback",
|
|
38
|
+
"fixture": "callback.log"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "octaves",
|
|
43
|
+
"type": "number",
|
|
44
|
+
"required": false,
|
|
45
|
+
"defaultValue": "3",
|
|
46
|
+
"description": "How many octaves to draw. Defaults to `3`.",
|
|
47
|
+
"control": {
|
|
48
|
+
"kind": "number"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "highlight",
|
|
53
|
+
"type": "readonly number[]",
|
|
54
|
+
"required": false,
|
|
55
|
+
"defaultValue": null,
|
|
56
|
+
"description": "Notes sounding right now, painted solid.",
|
|
57
|
+
"control": {
|
|
58
|
+
"kind": "array",
|
|
59
|
+
"fixture": "chart.series"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "keyHeight",
|
|
64
|
+
"type": "number",
|
|
65
|
+
"required": false,
|
|
66
|
+
"defaultValue": "48",
|
|
67
|
+
"description": "White-key height in px at the 16px root, emitted as `rem`. Defaults to `48`.",
|
|
68
|
+
"control": {
|
|
69
|
+
"kind": "number"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "label",
|
|
74
|
+
"type": "string",
|
|
75
|
+
"required": false,
|
|
76
|
+
"defaultValue": "Note range",
|
|
77
|
+
"description": "What the range is *of*. Names the group and both markers. Defaults to `\"Note range\"`.",
|
|
78
|
+
"control": {
|
|
79
|
+
"kind": "string"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "readout",
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"required": false,
|
|
86
|
+
"defaultValue": "true",
|
|
87
|
+
"description": "Print the range and its size under the board. Defaults to `true`.",
|
|
88
|
+
"control": {
|
|
89
|
+
"kind": "boolean"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "disabled",
|
|
94
|
+
"type": "boolean",
|
|
95
|
+
"required": false,
|
|
96
|
+
"defaultValue": "false",
|
|
97
|
+
"description": "Refuse every edit. The board still draws.",
|
|
98
|
+
"control": {
|
|
99
|
+
"kind": "boolean"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"typeReferences": [
|
|
104
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\" | \"onChange\">"
|
|
105
|
+
],
|
|
106
|
+
"subcomponents": [],
|
|
107
|
+
"parts": [],
|
|
108
|
+
"variants": {},
|
|
109
|
+
"defaultVariants": {},
|
|
110
|
+
"tokensUsed": [
|
|
111
|
+
"--cue-accent",
|
|
112
|
+
"--cue-accent-soft",
|
|
113
|
+
"--cue-border",
|
|
114
|
+
"--cue-border-strong",
|
|
115
|
+
"--cue-data-ground",
|
|
116
|
+
"--cue-fg-subtle",
|
|
117
|
+
"--cue-font-mono",
|
|
118
|
+
"--cue-radius-control",
|
|
119
|
+
"--cue-space-1",
|
|
120
|
+
"--cue-sunken",
|
|
121
|
+
"--cue-surface-3",
|
|
122
|
+
"--cue-text-micro"
|
|
123
|
+
],
|
|
124
|
+
"summary": "A piano keyboard as a range control: drag the markers, or arrow the edges.",
|
|
125
|
+
"examples": [
|
|
126
|
+
{
|
|
127
|
+
"title": "Usage",
|
|
128
|
+
"code": "<PianoKeyboard range={range} onRangeChange={setRange} highlight={sounding} />",
|
|
129
|
+
"language": "tsx"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"status": "todo-docs",
|
|
133
|
+
"url": "/docs/components/piano-keyboard",
|
|
134
|
+
"mdUrl": "/docs/components/piano-keyboard.md",
|
|
135
|
+
"jsonUrl": "/r/components/piano-keyboard.json",
|
|
136
|
+
"specimens": [
|
|
137
|
+
{
|
|
138
|
+
"title": "PianoKeyboard",
|
|
139
|
+
"group": "midi",
|
|
140
|
+
"components": [
|
|
141
|
+
"PianoKeyboard"
|
|
142
|
+
],
|
|
143
|
+
"code": "<div className=\"flex w-full flex-col gap-(--cue-space-4)\">\n <PianoKeyboard\n range={range}\n onRangeChange={setRange}\n octaves={4}\n label=\"Trigger range\"\n />\n <span className=\"font-mono text-(length:--cue-text-micro) text-fg-subtle\">\n {noteName(range.start)} to {noteName(range.end)}\n </span>\n <PianoKeyboard\n octaves={2}\n highlight={[60, 64, 67]}\n keyHeight={56}\n readout={false}\n label=\"Chord highlight\"\n />\n <PianoKeyboard octaves={2} disabled label=\"Keyboard, disabled\" />\n</div>",
|
|
144
|
+
"note": "Exact key geometry from the shared layout module, in-range tinting, and draggable start and end markers.",
|
|
145
|
+
"interaction": "each marker is a `role=slider` that announces the note it sits on, so the drag is a fast path rather than the only path."
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
"todo": true
|
|
149
|
+
}
|