@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,204 @@
|
|
|
1
|
+
import { LedgerHeadingLevel } from "./_ledger.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/instruments/ledger.d.ts
|
|
4
|
+
interface LedgerRootProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
5
|
+
/**
|
|
6
|
+
* Make the ledger a size container, so a caller's `@container` rules shed
|
|
7
|
+
* columns against the *pane* rather than the viewport. Defaults to `true`.
|
|
8
|
+
*
|
|
9
|
+
* This is the difference between a list that sheds a column when the window
|
|
10
|
+
* narrows and one that also sheds it when a detail drawer opens beside it and
|
|
11
|
+
* takes half the pane — which is the same visual problem and, without a
|
|
12
|
+
* container, an entirely separate piece of code. Switch it off only when an
|
|
13
|
+
* ancestor is already the container the rules name; nesting containers moves
|
|
14
|
+
* which one a bare `@container` query resolves against.
|
|
15
|
+
*/
|
|
16
|
+
containment?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface LedgerTierProps extends React.ComponentPropsWithoutRef<"section"> {
|
|
19
|
+
/**
|
|
20
|
+
* The tier's name. Omitted, the tier draws no heading and reserves no space
|
|
21
|
+
* for one — which is how a single unnamed run of rows uses the same component
|
|
22
|
+
* as a grouped one.
|
|
23
|
+
*/
|
|
24
|
+
heading?: React.ReactNode;
|
|
25
|
+
/** How many rows the tier holds, printed beside its name. */
|
|
26
|
+
count?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Dock the heading to the top of the scroll container while the tier's rows
|
|
29
|
+
* scroll past. Defaults to `true`.
|
|
30
|
+
*/
|
|
31
|
+
sticky?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Which heading element the tier's name is. Defaults to `2`.
|
|
34
|
+
*
|
|
35
|
+
* The outline is the navigation: a screen-reader user moves through a long
|
|
36
|
+
* ledger by heading, so the levels have to describe the real nesting of the
|
|
37
|
+
* page the ledger sits in, not the ledger's own idea of itself.
|
|
38
|
+
*/
|
|
39
|
+
headingLevel?: LedgerHeadingLevel;
|
|
40
|
+
/** A qualifier printed after the name — a date, a source, a state. */
|
|
41
|
+
note?: React.ReactNode;
|
|
42
|
+
/**
|
|
43
|
+
* Put a disclosure in the tier's heading that folds its rows away. Defaults
|
|
44
|
+
* to `false`, and a tier with no `heading` has nothing to fold from, so it
|
|
45
|
+
* ignores this and renders as it always has.
|
|
46
|
+
*
|
|
47
|
+
* **This is the accordion pattern, not the tree pattern.** What folds is the
|
|
48
|
+
* heading — a *place* — and the `<h2>` stays exactly where it was with a real
|
|
49
|
+
* `<button aria-expanded aria-controls>` inside it. The rows below are hidden
|
|
50
|
+
* while it is shut, which takes them out of the accessibility tree and out of
|
|
51
|
+
* the layout but keeps whatever state they hold. If what you are folding is a
|
|
52
|
+
* *row*, and the thing under it is that row's children rather than that
|
|
53
|
+
* place's contents, you want `DataTree` and its `treeitem` semantics instead.
|
|
54
|
+
*/
|
|
55
|
+
collapsible?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the tier is open, when the caller owns the state.
|
|
58
|
+
*
|
|
59
|
+
* **Persistence is the caller's.** Which places a reader has folded is a fact
|
|
60
|
+
* about the reader, not about the list, and it belongs wherever that consumer
|
|
61
|
+
* keeps the rest of them — `localStorage`, a URL, a profile. This library
|
|
62
|
+
* stores nothing. Pass this with {@link LedgerTierProps.onExpandedChange};
|
|
63
|
+
* omit both and the tier keeps its own state from
|
|
64
|
+
* {@link LedgerTierProps.defaultExpanded}. Ignored unless `collapsible`.
|
|
65
|
+
*/
|
|
66
|
+
expanded?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Whether an uncontrolled tier starts open. Defaults to `true`.
|
|
69
|
+
*
|
|
70
|
+
* Open, because a ledger whose content is folded away on first paint has
|
|
71
|
+
* hidden the thing the reader came for; the reader folds what they are done
|
|
72
|
+
* with. Ignored unless `collapsible`, and ignored entirely once
|
|
73
|
+
* {@link LedgerTierProps.expanded} is passed.
|
|
74
|
+
*/
|
|
75
|
+
defaultExpanded?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Called with the tier's next state each time the reader presses the
|
|
78
|
+
* disclosure — `true` when it is being opened, `false` when it is being shut.
|
|
79
|
+
*
|
|
80
|
+
* Fires in both the controlled and the uncontrolled form, so a consumer can
|
|
81
|
+
* record what was folded without also having to own the state.
|
|
82
|
+
*/
|
|
83
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
84
|
+
}
|
|
85
|
+
interface LedgerGroupProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
86
|
+
/**
|
|
87
|
+
* The group's slug, printed in the left gutter.
|
|
88
|
+
*
|
|
89
|
+
* Omitted, the group is a plain block: no gutter, no heading, no indent. A
|
|
90
|
+
* grouped list that has one unnamed run in it should not pay a 7rem empty
|
|
91
|
+
* column for it, and an empty gutter reads as a missing label rather than as
|
|
92
|
+
* an absent one.
|
|
93
|
+
*/
|
|
94
|
+
label?: React.ReactNode;
|
|
95
|
+
/** Which heading element the slug is. Defaults to `3`. */
|
|
96
|
+
headingLevel?: 3 | 4;
|
|
97
|
+
/**
|
|
98
|
+
* Dock the slug under the tier heading while the group's rows scroll past.
|
|
99
|
+
* Defaults to `true`.
|
|
100
|
+
*
|
|
101
|
+
* The offset is a custom property, `--cue-ledger-slug-top` (default `2.5rem`):
|
|
102
|
+
* how far down the slug docks depends on how tall the tier heading above it
|
|
103
|
+
* renders, which is a function of the density and the type the *caller*
|
|
104
|
+
* configured. Set it on the ledger — `className="[--cue-ledger-slug-top:2rem]"` —
|
|
105
|
+
* rather than measuring at runtime.
|
|
106
|
+
*/
|
|
107
|
+
sticky?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Put a disclosure in the group's slug that folds its rows away. Defaults to
|
|
110
|
+
* `false`, and an unlabelled group has no slug to fold from, so it ignores
|
|
111
|
+
* this. The same accordion pattern the tier takes — see
|
|
112
|
+
* {@link LedgerTierProps.collapsible} for why it is not the tree pattern.
|
|
113
|
+
*/
|
|
114
|
+
collapsible?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Whether the group is open, when the caller owns the state. Persistence is
|
|
117
|
+
* the caller's; see {@link LedgerTierProps.expanded}.
|
|
118
|
+
*/
|
|
119
|
+
expanded?: boolean;
|
|
120
|
+
/** Whether an uncontrolled group starts open. Defaults to `true`. */
|
|
121
|
+
defaultExpanded?: boolean;
|
|
122
|
+
/** Called with the group's next state each time the reader presses the slug. */
|
|
123
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
124
|
+
}
|
|
125
|
+
interface LedgerEmptyProps extends React.ComponentPropsWithoutRef<"p"> {}
|
|
126
|
+
/**
|
|
127
|
+
* A grouped run of dense rows under sticky headings: the ledger idiom.
|
|
128
|
+
*
|
|
129
|
+
* The flattest of the three surfaces this package ships over one row model:
|
|
130
|
+
* headings, slugs, rows. What it owns above all is the document outline. Tiers
|
|
131
|
+
* and groups are real `<h2>` / `<h3>` elements at caller-chosen levels, because
|
|
132
|
+
* in a list of two hundred rows the heading list *is* how a screen-reader user
|
|
133
|
+
* navigates.
|
|
134
|
+
*
|
|
135
|
+
* ## Folding: the accordion pattern, opt-in, and why it lives here
|
|
136
|
+
*
|
|
137
|
+
* This component used to refuse disclosure outright, on the grounds that *a
|
|
138
|
+
* ledger which folds is a tree with worse semantics*. That ruling was right
|
|
139
|
+
* about rows and wrong about places, and the distinction is the whole of
|
|
140
|
+
* {@link LedgerTierProps.collapsible}:
|
|
141
|
+
*
|
|
142
|
+
* - **`DataTree` folds a row.** Its `role="treeitem"` rows carry their own
|
|
143
|
+
* `aria-expanded`, its chevron is `role="presentation"` because in tree
|
|
144
|
+
* semantics the row owns its expansion, and a tier and a subgroup drawn
|
|
145
|
+
* through it stop being places and become rows. A consumer who measured this
|
|
146
|
+
* exact shape through `DataTree` counted **zero** `h2`/`h3` elements and zero
|
|
147
|
+
* `button[aria-expanded]`, which is `DataTree` working correctly and still
|
|
148
|
+
* not being what a grouped document needs.
|
|
149
|
+
* - **`Ledger` folds a place.** A tier is already an `<h2>`, which is already
|
|
150
|
+
* the right element for it, so the disclosure goes *inside* the heading as a
|
|
151
|
+
* real `<button aria-expanded aria-controls>` — the accordion pattern, and
|
|
152
|
+
* the same one `Table.GroupRow`'s note has always pointed at for a table that
|
|
153
|
+
* genuinely needs to fold. The outline is untouched: the heading list of a
|
|
154
|
+
* folding ledger and a plain one are identical, which is what lets a page
|
|
155
|
+
* offer both idioms over one dataset without the outline moving under a
|
|
156
|
+
* reader who switches.
|
|
157
|
+
*
|
|
158
|
+
* So it is one component with two forms rather than a `DisclosureLedger` beside
|
|
159
|
+
* it: everything a folding ledger needs — the gutter track, the sticky offsets,
|
|
160
|
+
* the label recipe, the type contract — is this component, and a sibling would
|
|
161
|
+
* have been a copy of all of it wrapped around one `<button>`.
|
|
162
|
+
*
|
|
163
|
+
* Expansion is controllable and stores nothing. *Which* places a reader has
|
|
164
|
+
* folded is a fact about the reader; consumers keep that set themselves and
|
|
165
|
+
* pass it back in. A folded run of rows is hidden rather than unmounted, so a
|
|
166
|
+
* group that keeps its own fold inside a tier still keeps it after the tier has
|
|
167
|
+
* been shut and opened over it.
|
|
168
|
+
*
|
|
169
|
+
* Static markup — no `"use client"` — **until a heading is asked to fold**, at
|
|
170
|
+
* which point that heading and its rows become a small client island and the
|
|
171
|
+
* rest of the ledger keeps rendering on the server.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* <Ledger.Root className="[--cue-data-row-cols:1fr_8rem_auto]">
|
|
175
|
+
* <Ledger.Tier heading="Ours" count={12}>
|
|
176
|
+
* <Ledger.Group label="released">
|
|
177
|
+
* <DataRow.Root interactive onActivate={open}>…</DataRow.Root>
|
|
178
|
+
* </Ledger.Group>
|
|
179
|
+
* <Ledger.Group label="lab">
|
|
180
|
+
* <Ledger.Empty>Nothing yet.</Ledger.Empty>
|
|
181
|
+
* </Ledger.Group>
|
|
182
|
+
* </Ledger.Tier>
|
|
183
|
+
* </Ledger.Root>
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* // Folded places are the reader's, so the reader's storage holds them.
|
|
187
|
+
* <Ledger.Tier
|
|
188
|
+
* heading="Ours"
|
|
189
|
+
* count={13}
|
|
190
|
+
* collapsible
|
|
191
|
+
* expanded={!folded.includes("ours")}
|
|
192
|
+
* onExpandedChange={(open) => remember("ours", open)}
|
|
193
|
+
* >
|
|
194
|
+
* <Ledger.Group label="released">…</Ledger.Group>
|
|
195
|
+
* </Ledger.Tier>
|
|
196
|
+
*/
|
|
197
|
+
declare const Ledger: {
|
|
198
|
+
Root: React.ForwardRefExoticComponent<LedgerRootProps & React.RefAttributes<HTMLDivElement>>;
|
|
199
|
+
Tier: React.ForwardRefExoticComponent<LedgerTierProps & React.RefAttributes<HTMLElement>>;
|
|
200
|
+
Group: React.ForwardRefExoticComponent<LedgerGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
201
|
+
Empty: React.ForwardRefExoticComponent<LedgerEmptyProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
202
|
+
};
|
|
203
|
+
//#endregion
|
|
204
|
+
export { Ledger, LedgerEmptyProps, LedgerGroupProps, LedgerRootProps, LedgerTierProps };
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { headingTag } from "./_ledger.js";
|
|
3
|
+
import { LedgerDisclosure } from "./_ledger-disclosure.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/instruments/ledger.tsx
|
|
7
|
+
/**
|
|
8
|
+
* The one type treatment every heading in the ledger wears: the mono uppercase
|
|
9
|
+
* label of `SectionHeader`, `Eyebrow` and `Table.Head`.
|
|
10
|
+
*
|
|
11
|
+
* Declared once here rather than per heading level so a tier and a group slug
|
|
12
|
+
* can never drift into two label styles; `font-normal` is the part that has to
|
|
13
|
+
* be said out loud, because `<h2>` and `<h3>` come bold by default and a bold
|
|
14
|
+
* micro-label in a dense list reads as a second kind of emphasis.
|
|
15
|
+
*/
|
|
16
|
+
const LEDGER_LABEL = "font-mono text-(length:--cue-text-label) font-normal tracking-[0.15em] text-fg-subtle uppercase";
|
|
17
|
+
/**
|
|
18
|
+
* The disclosure button a collapsible heading holds.
|
|
19
|
+
*
|
|
20
|
+
* Worn *with* {@link LEDGER_LABEL}, which the heading around it is already
|
|
21
|
+
* wearing. The repetition is deliberate: a `<button>` carries the UA's own font
|
|
22
|
+
* rather than its parent's, and while Tailwind's preflight resets that to
|
|
23
|
+
* `font: inherit`, a component whose micro-label silently becomes 13px Arial if
|
|
24
|
+
* a consumer drops preflight is a component with a very confusing bug report.
|
|
25
|
+
* One constant applied twice cannot drift; two recipes can.
|
|
26
|
+
*
|
|
27
|
+
* `w-full` so the whole width of the heading is the hit area rather than the
|
|
28
|
+
* word itself, and the focus ring is inset (`-outline-offset-2`) for the same
|
|
29
|
+
* reason `_data-row.ts` gives: these headings dock at the top of clipped panes,
|
|
30
|
+
* where an outset ring on the first one is cut off by the pane's own rim.
|
|
31
|
+
*/
|
|
32
|
+
const LEDGER_TOGGLE = "flex w-full min-w-0 cursor-pointer items-baseline gap-(--cue-space-2) text-left outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-accent";
|
|
33
|
+
/**
|
|
34
|
+
* A grouped run of dense rows under sticky headings: the ledger idiom.
|
|
35
|
+
*
|
|
36
|
+
* The flattest of the three surfaces this package ships over one row model:
|
|
37
|
+
* headings, slugs, rows. What it owns above all is the document outline. Tiers
|
|
38
|
+
* and groups are real `<h2>` / `<h3>` elements at caller-chosen levels, because
|
|
39
|
+
* in a list of two hundred rows the heading list *is* how a screen-reader user
|
|
40
|
+
* navigates.
|
|
41
|
+
*
|
|
42
|
+
* ## Folding: the accordion pattern, opt-in, and why it lives here
|
|
43
|
+
*
|
|
44
|
+
* This component used to refuse disclosure outright, on the grounds that *a
|
|
45
|
+
* ledger which folds is a tree with worse semantics*. That ruling was right
|
|
46
|
+
* about rows and wrong about places, and the distinction is the whole of
|
|
47
|
+
* {@link LedgerTierProps.collapsible}:
|
|
48
|
+
*
|
|
49
|
+
* - **`DataTree` folds a row.** Its `role="treeitem"` rows carry their own
|
|
50
|
+
* `aria-expanded`, its chevron is `role="presentation"` because in tree
|
|
51
|
+
* semantics the row owns its expansion, and a tier and a subgroup drawn
|
|
52
|
+
* through it stop being places and become rows. A consumer who measured this
|
|
53
|
+
* exact shape through `DataTree` counted **zero** `h2`/`h3` elements and zero
|
|
54
|
+
* `button[aria-expanded]`, which is `DataTree` working correctly and still
|
|
55
|
+
* not being what a grouped document needs.
|
|
56
|
+
* - **`Ledger` folds a place.** A tier is already an `<h2>`, which is already
|
|
57
|
+
* the right element for it, so the disclosure goes *inside* the heading as a
|
|
58
|
+
* real `<button aria-expanded aria-controls>` — the accordion pattern, and
|
|
59
|
+
* the same one `Table.GroupRow`'s note has always pointed at for a table that
|
|
60
|
+
* genuinely needs to fold. The outline is untouched: the heading list of a
|
|
61
|
+
* folding ledger and a plain one are identical, which is what lets a page
|
|
62
|
+
* offer both idioms over one dataset without the outline moving under a
|
|
63
|
+
* reader who switches.
|
|
64
|
+
*
|
|
65
|
+
* So it is one component with two forms rather than a `DisclosureLedger` beside
|
|
66
|
+
* it: everything a folding ledger needs — the gutter track, the sticky offsets,
|
|
67
|
+
* the label recipe, the type contract — is this component, and a sibling would
|
|
68
|
+
* have been a copy of all of it wrapped around one `<button>`.
|
|
69
|
+
*
|
|
70
|
+
* Expansion is controllable and stores nothing. *Which* places a reader has
|
|
71
|
+
* folded is a fact about the reader; consumers keep that set themselves and
|
|
72
|
+
* pass it back in. A folded run of rows is hidden rather than unmounted, so a
|
|
73
|
+
* group that keeps its own fold inside a tier still keeps it after the tier has
|
|
74
|
+
* been shut and opened over it.
|
|
75
|
+
*
|
|
76
|
+
* Static markup — no `"use client"` — **until a heading is asked to fold**, at
|
|
77
|
+
* which point that heading and its rows become a small client island and the
|
|
78
|
+
* rest of the ledger keeps rendering on the server.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* <Ledger.Root className="[--cue-data-row-cols:1fr_8rem_auto]">
|
|
82
|
+
* <Ledger.Tier heading="Ours" count={12}>
|
|
83
|
+
* <Ledger.Group label="released">
|
|
84
|
+
* <DataRow.Root interactive onActivate={open}>…</DataRow.Root>
|
|
85
|
+
* </Ledger.Group>
|
|
86
|
+
* <Ledger.Group label="lab">
|
|
87
|
+
* <Ledger.Empty>Nothing yet.</Ledger.Empty>
|
|
88
|
+
* </Ledger.Group>
|
|
89
|
+
* </Ledger.Tier>
|
|
90
|
+
* </Ledger.Root>
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Folded places are the reader's, so the reader's storage holds them.
|
|
94
|
+
* <Ledger.Tier
|
|
95
|
+
* heading="Ours"
|
|
96
|
+
* count={13}
|
|
97
|
+
* collapsible
|
|
98
|
+
* expanded={!folded.includes("ours")}
|
|
99
|
+
* onExpandedChange={(open) => remember("ours", open)}
|
|
100
|
+
* >
|
|
101
|
+
* <Ledger.Group label="released">…</Ledger.Group>
|
|
102
|
+
* </Ledger.Tier>
|
|
103
|
+
*/
|
|
104
|
+
const Ledger = {
|
|
105
|
+
Root: React.forwardRef(function LedgerRoot({ className, containment = true, ...elementProps }, ref) {
|
|
106
|
+
return /* @__PURE__ */ jsx("div", {
|
|
107
|
+
ref,
|
|
108
|
+
"data-slot": "ledger",
|
|
109
|
+
className: cn("flex flex-col font-mono text-(length:--cue-text-ui) text-fg", containment ? "[container-type:inline-size]" : null, className),
|
|
110
|
+
...elementProps
|
|
111
|
+
});
|
|
112
|
+
}),
|
|
113
|
+
Tier: React.forwardRef(function LedgerTier({ className, heading, count, sticky = true, headingLevel = 2, note, collapsible = false, expanded, defaultExpanded = true, onExpandedChange, children, ...elementProps }, ref) {
|
|
114
|
+
const Heading = headingTag(headingLevel);
|
|
115
|
+
const words = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
116
|
+
/* @__PURE__ */ jsx("span", {
|
|
117
|
+
"data-slot": "ledger-tier-label",
|
|
118
|
+
children: heading
|
|
119
|
+
}),
|
|
120
|
+
count === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
121
|
+
"data-slot": "ledger-tier-count",
|
|
122
|
+
className: "tabular-nums",
|
|
123
|
+
children: count
|
|
124
|
+
}),
|
|
125
|
+
note === void 0 ? null : /* @__PURE__ */ jsx("span", {
|
|
126
|
+
"data-slot": "ledger-tier-note",
|
|
127
|
+
className: "tracking-normal normal-case",
|
|
128
|
+
children: note
|
|
129
|
+
})
|
|
130
|
+
] });
|
|
131
|
+
const ground = sticky ? "sticky top-0 z-2 bg-bg" : null;
|
|
132
|
+
return /* @__PURE__ */ jsx("section", {
|
|
133
|
+
ref,
|
|
134
|
+
"data-slot": "ledger-tier",
|
|
135
|
+
className: cn("flex flex-col", className),
|
|
136
|
+
...elementProps,
|
|
137
|
+
children: heading === void 0 ? children : collapsible ? /* @__PURE__ */ jsx(LedgerDisclosure, {
|
|
138
|
+
headingLevel,
|
|
139
|
+
headingSlot: "ledger-tier-heading",
|
|
140
|
+
headingClassName: cn(LEDGER_LABEL, "py-(--cue-pad-row-y)", ground),
|
|
141
|
+
toggleSlot: "ledger-tier-toggle",
|
|
142
|
+
toggleClassName: cn(LEDGER_LABEL, LEDGER_TOGGLE),
|
|
143
|
+
panelSlot: "ledger-tier-rows",
|
|
144
|
+
panelClassName: "flex flex-col",
|
|
145
|
+
label: words,
|
|
146
|
+
expanded,
|
|
147
|
+
defaultExpanded,
|
|
148
|
+
onExpandedChange,
|
|
149
|
+
children
|
|
150
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heading, {
|
|
151
|
+
"data-slot": "ledger-tier-heading",
|
|
152
|
+
className: cn(LEDGER_LABEL, "flex items-baseline gap-(--cue-space-2) py-(--cue-pad-row-y)", ground),
|
|
153
|
+
children: words
|
|
154
|
+
}), children] })
|
|
155
|
+
});
|
|
156
|
+
}),
|
|
157
|
+
Group: React.forwardRef(function LedgerGroup({ className, label, headingLevel = 3, sticky = true, collapsible = false, expanded, defaultExpanded = true, onExpandedChange, children, ...elementProps }, ref) {
|
|
158
|
+
const Heading = headingTag(headingLevel);
|
|
159
|
+
const labelled = label !== void 0;
|
|
160
|
+
const ground = sticky ? "sticky self-start [top:var(--cue-ledger-slug-top,2.5rem)] bg-bg" : null;
|
|
161
|
+
return /* @__PURE__ */ jsx("div", {
|
|
162
|
+
ref,
|
|
163
|
+
"data-slot": "ledger-group",
|
|
164
|
+
"data-labelled": labelled ? "" : void 0,
|
|
165
|
+
className: cn(labelled ? "grid [grid-template-columns:var(--cue-ledger-gutter,7rem)_minmax(0,1fr)]" : "flex flex-col", className),
|
|
166
|
+
...elementProps,
|
|
167
|
+
children: !labelled ? children : collapsible ? /* @__PURE__ */ jsx(LedgerDisclosure, {
|
|
168
|
+
headingLevel,
|
|
169
|
+
headingSlot: "ledger-group-label",
|
|
170
|
+
headingClassName: cn(LEDGER_LABEL, "min-w-0 py-(--cue-pad-row-y) pr-(--cue-space-3)", ground),
|
|
171
|
+
toggleSlot: "ledger-group-toggle",
|
|
172
|
+
toggleClassName: cn(LEDGER_LABEL, LEDGER_TOGGLE),
|
|
173
|
+
panelSlot: "ledger-group-rows",
|
|
174
|
+
panelClassName: "flex min-w-0 flex-col",
|
|
175
|
+
label: /* @__PURE__ */ jsx("span", {
|
|
176
|
+
className: "min-w-0 truncate",
|
|
177
|
+
children: label
|
|
178
|
+
}),
|
|
179
|
+
expanded,
|
|
180
|
+
defaultExpanded,
|
|
181
|
+
onExpandedChange,
|
|
182
|
+
children
|
|
183
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Heading, {
|
|
184
|
+
"data-slot": "ledger-group-label",
|
|
185
|
+
className: cn(LEDGER_LABEL, "min-w-0 truncate py-(--cue-pad-row-y) pr-(--cue-space-3)", ground),
|
|
186
|
+
children: label
|
|
187
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
188
|
+
"data-slot": "ledger-group-rows",
|
|
189
|
+
className: "flex min-w-0 flex-col",
|
|
190
|
+
children
|
|
191
|
+
})] })
|
|
192
|
+
});
|
|
193
|
+
}),
|
|
194
|
+
Empty: React.forwardRef(function LedgerEmpty({ className, ...elementProps }, ref) {
|
|
195
|
+
return /* @__PURE__ */ jsx("p", {
|
|
196
|
+
ref,
|
|
197
|
+
"data-slot": "ledger-empty",
|
|
198
|
+
className: cn("px-(--cue-pad-row-x) py-(--cue-pad-row-y) font-mono text-(length:--cue-text-ui) text-fg-subtle", className),
|
|
199
|
+
...elementProps
|
|
200
|
+
});
|
|
201
|
+
})
|
|
202
|
+
};
|
|
203
|
+
//#endregion
|
|
204
|
+
export { Ledger };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/instruments/log-viewer.d.ts
|
|
3
|
+
/** The four levels a process actually emits. */
|
|
4
|
+
type LogLevel = "debug" | "info" | "warn" | "error";
|
|
5
|
+
/** One line of output. */
|
|
6
|
+
interface LogLine {
|
|
7
|
+
/** Stable identity. Used as the virtualiser's key, so it must not repeat. */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Epoch ms. Rendered through `formatTimestamp` when present. */
|
|
10
|
+
ts?: number;
|
|
11
|
+
/** Severity. Drives the row's ink and the filter strip. */
|
|
12
|
+
level?: LogLevel;
|
|
13
|
+
/** The line, verbatim — escape sequences and all. */
|
|
14
|
+
text: string;
|
|
15
|
+
/** Parse `text` as ANSI. Off by default: most streams are plain. */
|
|
16
|
+
ansi?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface LogViewerProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children" | "onScroll"> {
|
|
19
|
+
/** The buffer, oldest first. */
|
|
20
|
+
lines: readonly LogLine[];
|
|
21
|
+
/** Stick to the bottom as lines arrive. Defaults to `true`. */
|
|
22
|
+
follow?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Which levels get a filter chip. Defaults to the levels present in `lines`;
|
|
25
|
+
* `false` hides the strip entirely. Levels with no chip are always shown.
|
|
26
|
+
*/
|
|
27
|
+
filters?: readonly LogLevel[] | false;
|
|
28
|
+
/** Viewer height in px at the 16px root. */
|
|
29
|
+
height: number;
|
|
30
|
+
/** Row height in px. Defaults to the short control rung at the ambient density. */
|
|
31
|
+
rowHeight?: number;
|
|
32
|
+
/** Cap on retained lines; the oldest are dropped. Defaults to `5000`. */
|
|
33
|
+
maxLines?: number;
|
|
34
|
+
/** Render a line's timestamp. Defaults to a local `HH:MM:SS`. */
|
|
35
|
+
formatTimestamp?: (ts: number) => string;
|
|
36
|
+
/** What to say when there is nothing to show. Defaults to `"No output"`. */
|
|
37
|
+
emptyLabel?: string;
|
|
38
|
+
/** Label for the catch-up pill. Defaults to `"3 new lines"`. */
|
|
39
|
+
newLinesLabel?: (count: number) => string;
|
|
40
|
+
/** Accessible name for the log region. Required in practice — name the stream. */
|
|
41
|
+
"aria-label"?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A virtualised log tail: ANSI colour, level filters, and stick-to-bottom.
|
|
45
|
+
*
|
|
46
|
+
* The four things a log pane has to get right, and the reasons each one is not
|
|
47
|
+
* optional:
|
|
48
|
+
*
|
|
49
|
+
* - **Virtualised.** Five thousand DOM rows is a frozen tab. Rows are fixed at
|
|
50
|
+
* the short control rung so the virtualiser never has to measure, which is
|
|
51
|
+
* also what keeps the scrollbar honest while lines stream in.
|
|
52
|
+
* - **ANSI as data, never as HTML.** `anser` will happily hand back a markup
|
|
53
|
+
* string, and the moment that reaches `dangerouslySetInnerHTML` any process
|
|
54
|
+
* that prints a `<script>` owns the console watching it. Colour arrives here
|
|
55
|
+
* as spans of *text* with resolved token colours (see `_ansi.ts`).
|
|
56
|
+
* - **Following is a mode, not a scroll.** While pinned to the bottom the view
|
|
57
|
+
* follows; scroll up and it stops and starts counting, so reading something
|
|
58
|
+
* is never fought by the stream. The count comes back as a pill, not as a
|
|
59
|
+
* jump.
|
|
60
|
+
* - **A cap.** An unbounded buffer is a memory leak with a progress bar. The
|
|
61
|
+
* head is dropped past `maxLines`.
|
|
62
|
+
*
|
|
63
|
+
* Ships from `@cueplusplus/ui/instruments/log-viewer`: it needs
|
|
64
|
+
* `@tanstack/react-virtual` and `anser`, both optional peers, and neither
|
|
65
|
+
* belongs in the bundle of an app that renders no logs.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* <LogViewer aria-label="Build output" height={320} lines={lines} />
|
|
69
|
+
* @example
|
|
70
|
+
* <LogViewer aria-label="Worker" height={200} follow={false} filters={["warn", "error"]} lines={lines} />
|
|
71
|
+
*/
|
|
72
|
+
declare const LogViewer: React.ForwardRefExoticComponent<LogViewerProps & React.RefAttributes<HTMLDivElement>>;
|
|
73
|
+
//#endregion
|
|
74
|
+
export { LogLevel, LogLine, LogViewer, LogViewerProps };
|