@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,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Link",
|
|
3
|
+
"slug": "link",
|
|
4
|
+
"group": "layout",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A text link: accent on hover, no rule unless you ask for one.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "external",
|
|
12
|
+
"type": "boolean",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": "false",
|
|
15
|
+
"description": "Open in a new tab, mark the anchor `rel=\"noreferrer noopener\"` and append a\n`↗`. The glyph is not decoration: a link that replaces the user's context\nwithout warning is a WCAG 3.2.5 failure, and the arrow is the warning.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "boolean"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "render",
|
|
22
|
+
"type": "RenderProp<Record<string, unknown>>",
|
|
23
|
+
"required": false,
|
|
24
|
+
"defaultValue": null,
|
|
25
|
+
"description": "Replace the rendered element (Base UI render prop). Accepts an element —\n`render={<NextLink href=\"/x\" />}` — or a function returning one. This is\nhow the design system composes with a router without depending on one.",
|
|
26
|
+
"control": {
|
|
27
|
+
"kind": "opaque"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "variant",
|
|
32
|
+
"type": "\"plain\" | \"underline\"",
|
|
33
|
+
"required": false,
|
|
34
|
+
"defaultValue": "plain",
|
|
35
|
+
"description": "",
|
|
36
|
+
"control": {
|
|
37
|
+
"kind": "enum",
|
|
38
|
+
"members": [
|
|
39
|
+
"plain",
|
|
40
|
+
"underline"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"typeReferences": [
|
|
46
|
+
"React.ComponentPropsWithoutRef<\"a\">",
|
|
47
|
+
"VariantProps<typeof linkVariants>"
|
|
48
|
+
],
|
|
49
|
+
"subcomponents": [],
|
|
50
|
+
"parts": [],
|
|
51
|
+
"variants": {
|
|
52
|
+
"variant": [
|
|
53
|
+
"plain",
|
|
54
|
+
"underline"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"defaultVariants": {
|
|
58
|
+
"variant": "plain"
|
|
59
|
+
},
|
|
60
|
+
"tokensUsed": [
|
|
61
|
+
"--cue-accent",
|
|
62
|
+
"--cue-border",
|
|
63
|
+
"--cue-fg",
|
|
64
|
+
"--cue-font-mono",
|
|
65
|
+
"--cue-radius-control",
|
|
66
|
+
"--cue-space-1",
|
|
67
|
+
"--cue-text-micro"
|
|
68
|
+
],
|
|
69
|
+
"summary": "A text link: accent on hover, no rule unless you ask for one.",
|
|
70
|
+
"examples": [
|
|
71
|
+
{
|
|
72
|
+
"title": "Usage",
|
|
73
|
+
"code": "<Link href=\"/patch\">Patch</Link>\n<Link href=\"https://base-ui.com\" external variant=\"underline\">Base UI</Link>\n<Link render={<NextLink href=\"/cues\" />}>Cues</Link>",
|
|
74
|
+
"language": "tsx"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"status": "todo-docs",
|
|
78
|
+
"url": "/docs/components/link",
|
|
79
|
+
"mdUrl": "/docs/components/link.md",
|
|
80
|
+
"jsonUrl": "/r/components/link.json",
|
|
81
|
+
"specimens": [
|
|
82
|
+
{
|
|
83
|
+
"title": "Link",
|
|
84
|
+
"group": "layout",
|
|
85
|
+
"components": [
|
|
86
|
+
"Link"
|
|
87
|
+
],
|
|
88
|
+
"code": "<Specimens>\n <Specimen label=\"plain\">\n <Link href=\"#patch\">Open the patch</Link>\n </Specimen>\n <Specimen label=\"underline\">\n <Link href=\"#patch\" variant=\"underline\">\n Open the patch\n </Link>\n </Specimen>\n <Specimen label=\"external\">\n <Link href=\"https://cueplusplus.com\" external>\n cueplusplus.com\n </Link>\n </Specimen>\n</Specimens>",
|
|
89
|
+
"note": "Two variants. Links do not underline by default; the underline variant offsets by 4px so descenders survive.",
|
|
90
|
+
"interaction": "hover moves the ink to the accent."
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"todo": true
|
|
94
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "LiveRegionAnnouncer",
|
|
3
|
+
"slug": "live-region-announcer",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "One polite region, and a queue that makes it audible.\n\nThe element in this family with no visual design at all, and the one that\ndecides whether the rest of it can be used without a screen. An agent\ntranscript is a stream of state changes, and the naive wiring — an\n`aria-live` region bound to the current status — announces almost none of\nthem: polite announcements replace each other, so a region updated four times\na second speaks once and swallows the rest.\n\nSo this is a queue with four rules, all of them the reference's:\n\n- **Spacing.** One announcement every `spacing` milliseconds, so each is\n spoken instead of overwritten.\n- **Depth, oldest dropped.** A backlog behind a busy run is history; the\n newest five are what a reader needs.\n- **Paused while the page is hidden**, so a background tab does not read a\n run out over whatever the reader is actually doing, and paused on demand\n through `paused` while a modal has their attention. Both are in force from\n the first render rather than the first effect, so an announcer mounted into\n a hidden tab with a backlog does not spend a line of it learning where it\n is.\n- **The trailing space.** A screen reader ignores a live region set to the\n text it already holds; the same message twice is announced twice by\n appending a space to the second, which changes the string without changing\n a word of it.\n\nThe region itself is mounted empty and stays mounted. A live region added to\nthe document at the same moment as its text is a region most assistive\ntechnologies never announce, which is the most common way this fails in\npractice.\n\nWhat to say is the caller's: {@link ANNOUNCEMENTS } carries the nine\ntransitions the study found announced, as templates a console can extend or\ntranslate.\n\n**It is the surface's one speaker.** `TailStatus` is a `role=\"status\"` too,\nand a console that mounts both — which is the ordinary shape of an agent\nconsole — would have every state read out twice. So mounting this hands the\nspeaking to it: a `TailStatus` anywhere on the page notices (through\n{@link useAnnouncerPresent}) and renders as an ordinary row, keeping its words\non the screen and taking them out of the accessibility tree. Feed this the\ntransitions that row would have narrated, or set `announce` on the row to\ndecide the other way.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "messages",
|
|
12
|
+
"type": "readonly string[]",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "The log of things worth saying, oldest first. Everything that arrives at\nthe end of it after the announcer last looked is queued and read out in\norder.\n\nAn **append-only** list: the announcer remembers how much of it it has\nseen, so a list that is trimmed at the head loses the announcements that\nwere trimmed with it. Keep the run's log growing, or remount the announcer\nwith a new `key` when you start a new one.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "array",
|
|
18
|
+
"fixture": "agent.transcript"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "spacing",
|
|
23
|
+
"type": "number",
|
|
24
|
+
"required": false,
|
|
25
|
+
"defaultValue": "400",
|
|
26
|
+
"description": "Milliseconds between announcements. Defaults to `400`, the reference's own\nspacing, which is roughly how long a short phrase takes to speak.\n\nThis is the whole point of the component: a polite announcement that\narrives while another is being spoken replaces it, so an unspaced queue is\na queue most of which is never heard.",
|
|
27
|
+
"control": {
|
|
28
|
+
"kind": "number"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "depth",
|
|
33
|
+
"type": "number",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": "5",
|
|
36
|
+
"description": "How many announcements may wait at once. Defaults to `5`, and the **oldest**\nare dropped past it — five deep behind a busy run, the newest is the true\none and the backlog is history.",
|
|
37
|
+
"control": {
|
|
38
|
+
"kind": "number"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "paused",
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"required": false,
|
|
45
|
+
"defaultValue": "false",
|
|
46
|
+
"description": "Hold everything without dropping it: a modal is open, or the surface is\nbehind something a reader is working in. The queue drains from where it\nstopped when this goes back to `false`.\n\nA prop rather than an internal ref-count of open overlays, deliberately:\nthis library has its own portal and overlay contract, and an announcer with\na second opinion about what is on screen would be wrong exactly when it\nmattered.",
|
|
47
|
+
"control": {
|
|
48
|
+
"kind": "boolean"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "announceOnMount",
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"required": false,
|
|
55
|
+
"defaultValue": "false",
|
|
56
|
+
"description": "Announce the messages that are already in the list at mount. Defaults to\n`false` — the reference's \"skip the first observation\" guard, and the\nreason restoring a session does not read the whole transcript aloud.\n\nThe pause rules still hold over it: a backlog handed to an announcer that\nmounts into a hidden tab, or with `paused` already set, waits there rather\nthan spending its first line. Restoring a session into a background tab is\nthe case, and it is the one the rules exist for.",
|
|
57
|
+
"control": {
|
|
58
|
+
"kind": "boolean"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"typeReferences": [
|
|
63
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
|
|
64
|
+
],
|
|
65
|
+
"subcomponents": [],
|
|
66
|
+
"parts": [],
|
|
67
|
+
"variants": {},
|
|
68
|
+
"defaultVariants": {},
|
|
69
|
+
"tokensUsed": [],
|
|
70
|
+
"summary": "One polite region, and a queue that makes it audible.",
|
|
71
|
+
"examples": [
|
|
72
|
+
{
|
|
73
|
+
"title": "Usage",
|
|
74
|
+
"code": "import { ANNOUNCEMENTS, LiveRegionAnnouncer } from \"@cueplusplus/ui/elements\";\n\n// One per surface, mounted for the life of the transcript.\n<LiveRegionAnnouncer messages={log} paused={dialogOpen} />\n// Composed with the transcript's live row: the row draws, this one speaks.\n<>\n <TailStatus action={TAIL_ACTIONS.searchingCode} detail=\"composer.tsx\" />\n <LiveRegionAnnouncer messages={log} />\n</>\n// The log is a caller's append-only list of what happened.\nsetLog((was) => [...was, ANNOUNCEMENTS.working]);",
|
|
75
|
+
"language": "tsx"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"status": "todo-docs",
|
|
79
|
+
"url": "/docs/components/live-region-announcer",
|
|
80
|
+
"mdUrl": "/docs/components/live-region-announcer.md",
|
|
81
|
+
"jsonUrl": "/r/components/live-region-announcer.json",
|
|
82
|
+
"specimens": [
|
|
83
|
+
{
|
|
84
|
+
"title": "LiveRegionAnnouncer",
|
|
85
|
+
"group": "elements",
|
|
86
|
+
"components": [
|
|
87
|
+
"LiveRegionAnnouncer"
|
|
88
|
+
],
|
|
89
|
+
"code": "<Specimens>\n <Specimen label=\"what a run says out loud\" wide>\n <div className=\"flex w-full max-w-md flex-col gap-(--cue-space-3)\">\n <LiveRegionAnnouncer messages={announced} />\n <Button\n size=\"sm\"\n className=\"self-start\"\n onClick={() =>\n setAnnounced((was) => [\n ...was,\n TRANSITIONS[was.length % TRANSITIONS.length] as string,\n ])\n }\n >\n Next transition\n </Button>\n <ol className=\"flex flex-col gap-(--cue-space-1) text-fg-muted text-(length:--cue-text-ui)\">\n {announced.length === 0 ? (\n <li className=\"text-fg-subtle\">Nothing announced yet.</li>\n ) : (\n announced.map((line, index) => (\n <li key={`${line}-${String(index)}`} className=\"truncate\">\n {line}\n </li>\n ))\n )}\n </ol>\n </div>\n </Specimen>\n <Specimen label=\"composed with the transcript's live row\" wide>\n {/*\n * The composition every agent console reaches for, and the one\n * that used to say everything twice: both of these are live\n * regions. Mounted together the row hands the speaking over — it\n * keeps its words on the screen and drops its `role=\"status\"`,\n * which is what `data-announces=\"false\"` on it says.\n */}\n <div className=\"flex w-full max-w-md flex-col gap-(--cue-space-3)\">\n <TailStatus\n action={announced.length === 0 ? TAIL_ACTIONS.thinking : TAIL_ACTIONS.running}\n detail=\"ola-patch --universe 3\"\n active={announced.length !== TRANSITIONS.length}\n />\n <LiveRegionAnnouncer messages={announced} />\n <p className=\"text-fg-subtle text-(length:--cue-text-ui)\">\n The row above is drawn, not announced: one region speaks for\n this surface and it is the queue.\n </p>\n </div>\n </Specimen>\n</Specimens>",
|
|
90
|
+
"note": "The element with no visual design at all, and the one that decides whether the rest of this family can be used without a screen. An agent transcript is a stream of state changes, and a live region wired straight to it announces almost none of them: polite announcements replace each other, so a region updated four times a second speaks once and swallows the rest. So it is a queue — 400ms of spacing, five deep with the oldest dropped, held while the page is hidden or a modal has the reader, and an identical sentence re-announced by appending a space, which changes the string without changing a word of it.",
|
|
91
|
+
"interaction": "press the button and nothing visible happens, which is the point — the list below is a mirror of what the region said, drawn only so the bench has something to look at. Press it twice quickly and the second announcement waits its 400ms rather than replacing the first; press it faster than five times and the oldest waiting one is dropped, because five deep behind a busy run the newest is the true one. The second specimen is the composition with TailStatus: that row is a role=status too, so mounting this takes the speaking off it — inspect the row and it carries data-announces=false and no role, which is how a console gets one voice instead of two."
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"todo": true
|
|
95
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "LogViewer",
|
|
3
|
+
"slug": "log-viewer",
|
|
4
|
+
"group": "instruments",
|
|
5
|
+
"importPath": "@cueplusplus/ui/instruments/log-viewer",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"@tanstack/react-virtual",
|
|
8
|
+
"anser"
|
|
9
|
+
],
|
|
10
|
+
"clientOnly": true,
|
|
11
|
+
"description": "A virtualised log tail: ANSI colour, level filters, and stick-to-bottom.\n\nThe four things a log pane has to get right, and the reasons each one is not\noptional:\n\n- **Virtualised.** Five thousand DOM rows is a frozen tab. Rows are fixed at\n the short control rung so the virtualiser never has to measure, which is\n also what keeps the scrollbar honest while lines stream in.\n- **ANSI as data, never as HTML.** `anser` will happily hand back a markup\n string, and the moment that reaches `dangerouslySetInnerHTML` any process\n that prints a `<script>` owns the console watching it. Colour arrives here\n as spans of *text* with resolved token colours (see `_ansi.ts`).\n- **Following is a mode, not a scroll.** While pinned to the bottom the view\n follows; scroll up and it stops and starts counting, so reading something\n is never fought by the stream. The count comes back as a pill, not as a\n jump.\n- **A cap.** An unbounded buffer is a memory leak with a progress bar. The\n head is dropped past `maxLines`.\n\nShips from `@cueplusplus/ui/instruments/log-viewer`: it needs\n`@tanstack/react-virtual` and `anser`, both optional peers, and neither\nbelongs in the bundle of an app that renders no logs.",
|
|
12
|
+
"props": [
|
|
13
|
+
{
|
|
14
|
+
"name": "lines",
|
|
15
|
+
"type": "readonly LogLine[]",
|
|
16
|
+
"required": true,
|
|
17
|
+
"defaultValue": null,
|
|
18
|
+
"description": "The buffer, oldest first.",
|
|
19
|
+
"control": {
|
|
20
|
+
"kind": "array",
|
|
21
|
+
"fixture": "instruments.art-net-log"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "follow",
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": "true",
|
|
29
|
+
"description": "Stick to the bottom as lines arrive. Defaults to `true`.",
|
|
30
|
+
"control": {
|
|
31
|
+
"kind": "boolean"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "filters",
|
|
36
|
+
"type": "false | readonly LogLevel[]",
|
|
37
|
+
"required": false,
|
|
38
|
+
"defaultValue": null,
|
|
39
|
+
"description": "Which levels get a filter chip. Defaults to the levels present in `lines`;\n`false` hides the strip entirely. Levels with no chip are always shown.",
|
|
40
|
+
"control": {
|
|
41
|
+
"kind": "opaque"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "height",
|
|
46
|
+
"type": "number",
|
|
47
|
+
"required": true,
|
|
48
|
+
"defaultValue": null,
|
|
49
|
+
"description": "Viewer height in px at the 16px root.",
|
|
50
|
+
"control": {
|
|
51
|
+
"kind": "number"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "rowHeight",
|
|
56
|
+
"type": "number",
|
|
57
|
+
"required": false,
|
|
58
|
+
"defaultValue": null,
|
|
59
|
+
"description": "Row height in px. Defaults to the short control rung at the ambient density.",
|
|
60
|
+
"control": {
|
|
61
|
+
"kind": "number"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "maxLines",
|
|
66
|
+
"type": "number",
|
|
67
|
+
"required": false,
|
|
68
|
+
"defaultValue": "5000",
|
|
69
|
+
"description": "Cap on retained lines; the oldest are dropped. Defaults to `5000`.",
|
|
70
|
+
"control": {
|
|
71
|
+
"kind": "number"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "formatTimestamp",
|
|
76
|
+
"type": "((ts: number) => string)",
|
|
77
|
+
"required": false,
|
|
78
|
+
"defaultValue": "defaultTimestamp",
|
|
79
|
+
"description": "Render a line's timestamp. Defaults to a local `HH:MM:SS`.",
|
|
80
|
+
"control": {
|
|
81
|
+
"kind": "callback",
|
|
82
|
+
"fixture": "callback.log"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "emptyLabel",
|
|
87
|
+
"type": "string",
|
|
88
|
+
"required": false,
|
|
89
|
+
"defaultValue": "No output",
|
|
90
|
+
"description": "What to say when there is nothing to show. Defaults to `\"No output\"`.",
|
|
91
|
+
"control": {
|
|
92
|
+
"kind": "string"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "newLinesLabel",
|
|
97
|
+
"type": "((count: number) => string)",
|
|
98
|
+
"required": false,
|
|
99
|
+
"defaultValue": "(count) => `${count} new line${count === 1 ? \"\" : \"s\"}`",
|
|
100
|
+
"description": "Label for the catch-up pill. Defaults to `\"3 new lines\"`.",
|
|
101
|
+
"control": {
|
|
102
|
+
"kind": "callback",
|
|
103
|
+
"fixture": "callback.log"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "aria-label",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"required": false,
|
|
110
|
+
"defaultValue": null,
|
|
111
|
+
"description": "Accessible name for the log region. Required in practice — name the stream.",
|
|
112
|
+
"control": {
|
|
113
|
+
"kind": "string"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"typeReferences": [
|
|
118
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\" | \"onScroll\">"
|
|
119
|
+
],
|
|
120
|
+
"subcomponents": [],
|
|
121
|
+
"parts": [],
|
|
122
|
+
"variants": {},
|
|
123
|
+
"defaultVariants": {},
|
|
124
|
+
"tokensUsed": [
|
|
125
|
+
"--cue-accent",
|
|
126
|
+
"--cue-border",
|
|
127
|
+
"--cue-border-overlay",
|
|
128
|
+
"--cue-danger",
|
|
129
|
+
"--cue-fg",
|
|
130
|
+
"--cue-fg-muted",
|
|
131
|
+
"--cue-fg-subtle",
|
|
132
|
+
"--cue-font-mono",
|
|
133
|
+
"--cue-info",
|
|
134
|
+
"--cue-ok",
|
|
135
|
+
"--cue-pad-row-x",
|
|
136
|
+
"--cue-radius-control",
|
|
137
|
+
"--cue-radius-surface",
|
|
138
|
+
"--cue-space-2",
|
|
139
|
+
"--cue-space-3",
|
|
140
|
+
"--cue-space-4",
|
|
141
|
+
"--cue-sunken",
|
|
142
|
+
"--cue-surface-1",
|
|
143
|
+
"--cue-surface-2",
|
|
144
|
+
"--cue-text-label",
|
|
145
|
+
"--cue-warn"
|
|
146
|
+
],
|
|
147
|
+
"summary": "A virtualised log tail: ANSI colour, level filters, and stick-to-bottom.",
|
|
148
|
+
"examples": [
|
|
149
|
+
{
|
|
150
|
+
"title": "Usage",
|
|
151
|
+
"code": "<LogViewer aria-label=\"Build output\" height={320} lines={lines} />\n<LogViewer aria-label=\"Worker\" height={200} follow={false} filters={[\"warn\", \"error\"]} lines={lines} />",
|
|
152
|
+
"language": "tsx"
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
"status": "todo-docs",
|
|
156
|
+
"url": "/docs/components/log-viewer",
|
|
157
|
+
"mdUrl": "/docs/components/log-viewer.md",
|
|
158
|
+
"jsonUrl": "/r/components/log-viewer.json",
|
|
159
|
+
"specimens": [
|
|
160
|
+
{
|
|
161
|
+
"title": "LogViewer",
|
|
162
|
+
"group": "instruments",
|
|
163
|
+
"components": [
|
|
164
|
+
"LogViewer"
|
|
165
|
+
],
|
|
166
|
+
"code": "<div className=\"flex w-full flex-col gap-(--cue-space-5)\">\n <LogViewer lines={LOG_LINES} height={220} follow />\n <LogViewer lines={[]} height={120} emptyLabel={COPY.empty.title} />\n</div>",
|
|
167
|
+
"note": "Virtualised rows at the small control height, ANSI decoded to text nodes (never innerHTML), level filter chips, and a stick-to-bottom scroller that offers a `N new lines` pill once you scroll away.",
|
|
168
|
+
"interaction": "the filter chips are toggles; the new-lines pill is a button that returns you to the tail."
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"todo": true
|
|
172
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "MapAnswer",
|
|
3
|
+
"slug": "map-answer",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A location answer: pins, a route between them, and the list they came from.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "pins",
|
|
12
|
+
"type": "readonly MapPin[]",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Places in the answer, positioned as percentages so the element needs no tiles.",
|
|
16
|
+
"control": {
|
|
17
|
+
"kind": "array",
|
|
18
|
+
"fixture": "knowledge.pins"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "activeId",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"required": true,
|
|
25
|
+
"defaultValue": null,
|
|
26
|
+
"description": "Which pin is selected, in both the plot and the list.",
|
|
27
|
+
"control": {
|
|
28
|
+
"kind": "string"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "route",
|
|
33
|
+
"type": "boolean",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Draws a dashed path through the pins in order.",
|
|
37
|
+
"control": {
|
|
38
|
+
"kind": "boolean"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "onSelect",
|
|
43
|
+
"type": "((id: string) => void)",
|
|
44
|
+
"required": false,
|
|
45
|
+
"defaultValue": null,
|
|
46
|
+
"description": "Called when a pin or its list row is chosen. Both surfaces report the same id.",
|
|
47
|
+
"control": {
|
|
48
|
+
"kind": "callback",
|
|
49
|
+
"fixture": "callback.log"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"typeReferences": [
|
|
54
|
+
"Omit<\n ComponentProps<\"div\">,\n \"children\" | \"pins\" | \"activeId\" | \"route\" | \"onSelect\"\n> & {\n /** Places in the answer, positioned as percentages so the element needs no tiles. */\n pins: readonly MapPin[];\n /** Which pin is selected, in both the plot and the list. */\n activeId: string;\n /** Draws a dashed path through the pins in order. */\n route?: boolean;\n /** Called when a pin or its list row is chosen. Both surfaces report the same id. */\n onSelect?: (id: string) => void;\n}"
|
|
55
|
+
],
|
|
56
|
+
"subcomponents": [],
|
|
57
|
+
"parts": [],
|
|
58
|
+
"variants": {},
|
|
59
|
+
"defaultVariants": {},
|
|
60
|
+
"tokensUsed": [
|
|
61
|
+
"--cue-accent",
|
|
62
|
+
"--cue-bg",
|
|
63
|
+
"--cue-border",
|
|
64
|
+
"--cue-fg-muted",
|
|
65
|
+
"--cue-fg-subtle",
|
|
66
|
+
"--cue-radius-overlay",
|
|
67
|
+
"--cue-stream",
|
|
68
|
+
"--cue-surface-1",
|
|
69
|
+
"--cue-surface-3",
|
|
70
|
+
"--cue-text-body"
|
|
71
|
+
],
|
|
72
|
+
"summary": "A location answer: pins, a route between them, and the list they came from.",
|
|
73
|
+
"examples": [
|
|
74
|
+
{
|
|
75
|
+
"title": "Usage",
|
|
76
|
+
"code": "import { MapAnswer } from \"@cueplusplus/ui/elements\";\n\n<MapAnswer pins={pins} activeId=\"b\" route onSelect={setActive} />",
|
|
77
|
+
"language": "tsx"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"status": "todo-docs",
|
|
81
|
+
"url": "/docs/components/map-answer",
|
|
82
|
+
"mdUrl": "/docs/components/map-answer.md",
|
|
83
|
+
"jsonUrl": "/r/components/map-answer.json",
|
|
84
|
+
"specimens": [
|
|
85
|
+
{
|
|
86
|
+
"title": "MapAnswer",
|
|
87
|
+
"group": "elements-knowledge",
|
|
88
|
+
"components": [
|
|
89
|
+
"MapAnswer"
|
|
90
|
+
],
|
|
91
|
+
"code": "<Specimens>\n <Specimen label=\"three houses, routed\" wide>\n <MapAnswer pins={PINS} activeId={pin} route onSelect={setPin} />\n </Specimen>\n <Specimen label=\"no route\" wide>\n <MapAnswer pins={PINS.slice(0, 2)} activeId=\"studio\" />\n </Specimen>\n</Specimens>",
|
|
92
|
+
"note": "A location answer as a plan and a list at once: pins on a ruled ground, the same pins as rows underneath, and one selection driving both. The grid is drawn, not tiled — there is no map provider here, and `x`/`y` are percentages the caller decides.",
|
|
93
|
+
"interaction": "pin and row are both buttons for the same id, and both carry `aria-current`; the pin's own label is what a screen reader gets, since the plan itself is aria-hidden."
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"todo": true
|
|
97
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "MarkdownText",
|
|
3
|
+
"slug": "markdown-text",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements/markdown",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"react-markdown",
|
|
8
|
+
"rehype-sanitize"
|
|
9
|
+
],
|
|
10
|
+
"clientOnly": true,
|
|
11
|
+
"description": "Model output, rendered.\n\nThe one component in this library that turns a string into markup, and the\nonly one that has to be argued for rather than described. Everywhere else —\n`Message`, `AskBox`, every element in this group — text is text: a string\narrives from a model and is placed in the DOM as characters, because a\ncomponent that quietly parsed it would put every consumer of this library one\nprompt away from an injection. This one parses, so it states in full what it\nwill and will not do with what it is given.\n\n**Threat model.** The input is hostile. Assume the string was written by a\nmodel that was told to write it by a web page it fetched, a file it read, or\na tool result it did not verify — the practical shape of prompt injection is\nnot \"the model turned evil\", it is \"the model faithfully relayed an\nattacker's bytes\". Three things follow.\n\n- **No raw HTML, ever, and not by filtering it.** Markup in the source has no\n path to the DOM, and the first reason is an absence rather than a setting.\n `react-markdown` hands `remark-rehype` its own `allowDangerousHtml: true`\n and spreads it *over* whatever `remarkRehypeOptions` says, so the option\n cannot be turned off from here and `<img onerror=…>` does become a `raw`\n node. A `raw` node is a span of source text rather than an element, and the\n one thing that turns it into markup is `rehype-raw`. Nothing in this package\n depends on that plugin, and a test asserts it never will — so the string has\n no parser to reach. `rehype-sanitize` then drops the `raw` type outright,\n and react-markdown's own `skipHtml` removes whatever is left. Three gates,\n none of which is a deny-list of dangerous tags. A `<script>`, an\n `<iframe>`, an `<svg>` and an `onclick=` are all the same non-event: there\n is nothing in the tree for them to be.\n- **Attributes are enumerated, not filtered.** An element that is not in the\n schema renders nothing; an element that is renders only the attributes\n named beside it — `href`/`title` on a link, `src`/`alt`/`title` on an\n image, `language-…` on a `code`. No element in the subset accepts `id`,\n `style`, `srcset`, `formaction` or any `on*` handler, so none of them has\n an attribute to arrive on.\n- **URLs are allow-listed twice.** `http`, `https` and `mailto` on both\n `href` and `src`; a relative URL stays relative; everything else — a\n `javascript:` link, a `data:text/html` image, `vbscript:`, `blob:`,\n `file:`, `//host` — loses the attribute and leaves an inert element\n behind. Every link also carries `rel=\"noopener noreferrer nofollow\"`,\n which is not a prop: reverse tabnabbing, referrer leakage of a private\n console URL, and SEO laundering through a transcript are all things a\n caller should not be able to turn off by accident.\n\n**The subset.** Paragraphs, ATX and setext headings, bullet and ordered\nlists, block quotes, thematic breaks, fenced and indented code, inline code,\nemphasis, strong, strikethrough, links, images, and hard breaks. No GFM\nplugin is enabled, so no tables, task lists, footnotes or autolink literals —\nan explicit `<https://…>` autolink still works. Fenced blocks are plain text\nunless {@link MarkdownTextProps.renderCodeBlock} is given.\n\n**Streaming.** Pass `streaming` while the turn is arriving and the token the\nmodel is halfway through typing is hidden rather than rendered as\npunctuation: no asterisks flickering through every bold run, no half-written\nURL, no fence that opens a code block one frame and closes it the next. The\nwords appear as they arrive; only their formatting waits for the closing\ntoken.\n\n`react-markdown` and `rehype-sanitize` are optional peers of this subpath\nalone, which is why this component is not re-exported from\n`@cueplusplus/ui/elements`: a console that renders a transcript without\nmarkdown should install neither.",
|
|
12
|
+
"props": [
|
|
13
|
+
{
|
|
14
|
+
"name": "children",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": true,
|
|
17
|
+
"defaultValue": null,
|
|
18
|
+
"description": "The markdown source. Untrusted model output is precisely what this prop is\nfor — see the component's own documentation for what is and is not\nrendered.",
|
|
19
|
+
"control": {
|
|
20
|
+
"kind": "string"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "streaming",
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"required": false,
|
|
27
|
+
"defaultValue": "false",
|
|
28
|
+
"description": "The turn is still arriving, so hide the token being typed.\n\nOff by default, because sealing is a small edit to the source and a\nsettled document should be rendered as written. Turn it on for the tail of\na stream and off again when the turn completes; the rendered output is\nidentical once nothing is half-written.",
|
|
29
|
+
"control": {
|
|
30
|
+
"kind": "boolean"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "target",
|
|
35
|
+
"type": "\"_self\" | \"_blank\"",
|
|
36
|
+
"required": false,
|
|
37
|
+
"defaultValue": "_blank",
|
|
38
|
+
"description": "Where a link opens. `_blank` by default: a transcript that navigates away\nloses the run. `rel` is not configurable — every link gets\n`noopener noreferrer nofollow` whatever this says.",
|
|
39
|
+
"control": {
|
|
40
|
+
"kind": "enum",
|
|
41
|
+
"members": [
|
|
42
|
+
"_self",
|
|
43
|
+
"_blank"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "headingLevel",
|
|
49
|
+
"type": "4 | 2 | 3",
|
|
50
|
+
"required": false,
|
|
51
|
+
"defaultValue": "2",
|
|
52
|
+
"description": "The heading level `#` renders at; `##` and below follow it, clamped at\n`h6`. Defaults to `2`, because model output is a passage inside a page\nthat already owns its `h1`.",
|
|
53
|
+
"control": {
|
|
54
|
+
"kind": "enum",
|
|
55
|
+
"members": [
|
|
56
|
+
4,
|
|
57
|
+
2,
|
|
58
|
+
3
|
|
59
|
+
],
|
|
60
|
+
"min": 2,
|
|
61
|
+
"max": 4
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "renderCodeBlock",
|
|
66
|
+
"type": "((block: MarkdownCodeBlock) => ReactNode)",
|
|
67
|
+
"required": false,
|
|
68
|
+
"defaultValue": null,
|
|
69
|
+
"description": "Render fenced code blocks with something other than plain text — a\nhighlighter, a copy button, a diff view.\n\nUnset, a block is a `<pre><code>` containing the model's characters and\nnothing else. That is the default on purpose: a highlighter is a second\nparser over the same untrusted string, usually one that emits HTML, and\nopting into it should be a line of code somebody wrote rather than a\nbehaviour they inherited.",
|
|
70
|
+
"control": {
|
|
71
|
+
"kind": "callback",
|
|
72
|
+
"fixture": "callback.log"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"typeReferences": [
|
|
77
|
+
"Omit<React.ComponentPropsWithoutRef<\"div\">, \"children\">"
|
|
78
|
+
],
|
|
79
|
+
"subcomponents": [],
|
|
80
|
+
"parts": [],
|
|
81
|
+
"variants": {},
|
|
82
|
+
"defaultVariants": {},
|
|
83
|
+
"tokensUsed": [
|
|
84
|
+
"--cue-accent",
|
|
85
|
+
"--cue-border",
|
|
86
|
+
"--cue-fg",
|
|
87
|
+
"--cue-fg-muted",
|
|
88
|
+
"--cue-fg-subtle",
|
|
89
|
+
"--cue-leading-ui",
|
|
90
|
+
"--cue-radius-control",
|
|
91
|
+
"--cue-space-1",
|
|
92
|
+
"--cue-space-2",
|
|
93
|
+
"--cue-space-3",
|
|
94
|
+
"--cue-space-5",
|
|
95
|
+
"--cue-text-body",
|
|
96
|
+
"--cue-text-emphasis",
|
|
97
|
+
"--cue-text-label",
|
|
98
|
+
"--cue-text-title",
|
|
99
|
+
"--cue-text-ui"
|
|
100
|
+
],
|
|
101
|
+
"summary": "Model output, rendered.",
|
|
102
|
+
"examples": [
|
|
103
|
+
{
|
|
104
|
+
"title": "Usage",
|
|
105
|
+
"code": "<Message agent=\"researcher\">\n <MarkdownText>{turn.text}</MarkdownText>\n</Message>\n<MarkdownText streaming={turn.status === \"running\"}>{turn.text}</MarkdownText>\n<MarkdownText renderCodeBlock={({ language, code }) => <Highlight lang={language} code={code} />}>\n {answer}\n</MarkdownText>",
|
|
106
|
+
"language": "tsx"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"status": "todo-docs",
|
|
110
|
+
"url": "/docs/components/markdown-text",
|
|
111
|
+
"mdUrl": "/docs/components/markdown-text.md",
|
|
112
|
+
"jsonUrl": "/r/components/markdown-text.json",
|
|
113
|
+
"specimens": [
|
|
114
|
+
{
|
|
115
|
+
"title": "MarkdownText",
|
|
116
|
+
"group": "elements-thread",
|
|
117
|
+
"components": [
|
|
118
|
+
"MarkdownText"
|
|
119
|
+
],
|
|
120
|
+
"code": "<Specimens>\n <Specimen label=\"settled\" wide>\n <MarkdownText>{MARKDOWN_ANSWER}</MarkdownText>\n </Specimen>\n <Specimen label=\"mid-stream\" wide>\n <MarkdownText streaming>{MARKDOWN_MID_STREAM}</MarkdownText>\n </Specimen>\n <Specimen label=\"mid-fence\" wide>\n <MarkdownText streaming>{MARKDOWN_MID_FENCE}</MarkdownText>\n </Specimen>\n</Specimens>",
|
|
121
|
+
"note": "The one component in the library that turns a string into markup, and the only one that has to be argued for. No raw HTML reaches the DOM — not filtered out, but never parsed: the img tag on the last line of the settled specimen is a real injection shape and renders as nothing. Links are http/https/mailto only and always carry rel='noopener noreferrer nofollow'; code blocks are plain text until a highlighter is passed. It ships from @cueplusplus/ui/elements/markdown so its parser and sanitizer stay off the elements barrel.",
|
|
122
|
+
"interaction": "none — it is a document, and it stays selectable, copyable text. Headings start at h2 by default so a turn never claims a page's title, and links are keyboard-reachable with the house focus ring."
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"todo": true
|
|
126
|
+
}
|