@cueplusplus/ui 0.2.0 → 0.5.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 +2250 -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 +1 -1
- package/dist/brand/cue-mark.d.ts +1 -1
- package/dist/brand/cue-mark.js +1 -1
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/message-list.d.ts +6 -0
- package/dist/chat/message-list.js +35 -0
- package/dist/chrome/_edge-scroller.js +12 -1
- package/dist/chrome/_tabs-scroll.d.ts +1 -1
- package/dist/chrome/_tabs-scroll.js +1 -1
- package/dist/chrome/app-shell.d.ts +52 -2
- package/dist/chrome/app-shell.js +80 -8
- package/dist/chrome/index.d.ts +2 -2
- package/dist/configurator/_export.js +3 -2
- package/dist/configurator/_overrides.d.ts +1 -1
- package/dist/configurator/_overrides.js +18 -6
- package/dist/configurator/token-editor.js +4 -1
- package/dist/date/_segments.js +37 -2
- 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 +121 -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 +107 -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/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 +9 -7
- package/dist/index.js +3 -2
- package/dist/instruments/index.d.ts +2 -2
- package/dist/instruments/index.js +2 -2
- package/dist/instruments/table.d.ts +14 -1
- package/dist/instruments/table.js +20 -1
- package/dist/instruments/two-step-button.js +25 -6
- package/dist/layout/sidebar.d.ts +19 -1
- package/dist/layout/sidebar.js +19 -1
- package/dist/primitives/button.js +11 -1
- package/dist/primitives/chip.d.ts +34 -8
- package/dist/primitives/chip.js +97 -11
- package/dist/styles.css +11 -1
- package/dist/system/agent-skin.d.ts +27 -0
- package/dist/system/agent-skin.js +20 -0
- package/dist/system/index.d.ts +3 -3
- package/dist/system/portal.d.ts +5 -3
- package/dist/system/portal.js +36 -8
- package/dist/system/prepaint.d.ts +20 -2
- package/dist/system/prepaint.js +39 -33
- package/dist/system/theme-provider.d.ts +13 -2
- package/dist/system/theme-provider.js +107 -26
- package/dist/system/use-density.d.ts +9 -0
- package/dist/system/use-density.js +9 -0
- package/dist/system/use-isomorphic-layout-effect.js +19 -1
- package/dist/theming/_presets.d.ts +1 -1
- package/dist/theming/_presets.js +124 -8
- package/dist/theming/contrast.d.ts +16 -4
- package/dist/theming/contrast.js +33 -6
- package/dist/theming/create-theme.d.ts +8 -4
- package/dist/theming/create-theme.js +56 -20
- package/dist/theming/serialize.d.ts +11 -2
- package/dist/theming/serialize.js +87 -9
- package/manifest/components/accordion.json +154 -0
- package/manifest/components/activity-graph.json +88 -0
- package/manifest/components/agent-card.json +120 -0
- package/manifest/components/agent-handoff.json +87 -0
- package/manifest/components/agent-mode-badge.json +84 -0
- package/manifest/components/agent-pile.json +116 -0
- package/manifest/components/agent-plan.json +67 -0
- package/manifest/components/agent-status.json +73 -0
- package/manifest/components/agent-surface.json +78 -0
- package/manifest/components/alert-dialog.json +190 -0
- package/manifest/components/animated-number.json +67 -0
- package/manifest/components/app-bar.json +244 -0
- package/manifest/components/app-shell.json +383 -0
- package/manifest/components/app-window-frame.json +102 -0
- package/manifest/components/approval-card.json +106 -0
- package/manifest/components/artifact-card.json +81 -0
- package/manifest/components/ask-box.json +209 -0
- package/manifest/components/audience-icon.json +52 -0
- package/manifest/components/autocomplete.json +197 -0
- package/manifest/components/avatar-group.json +72 -0
- package/manifest/components/avatar.json +95 -0
- package/manifest/components/background-inbox.json +71 -0
- package/manifest/components/branch-picker.json +124 -0
- package/manifest/components/breadcrumb.json +74 -0
- package/manifest/components/button-group.json +74 -0
- package/manifest/components/button.json +126 -0
- package/manifest/components/calendar.json +65 -0
- package/manifest/components/canvas-split-body.json +62 -0
- package/manifest/components/canvas-split-document.json +54 -0
- package/manifest/components/canvas-split-header.json +83 -0
- package/manifest/components/canvas-split-line.json +62 -0
- package/manifest/components/canvas-split-message.json +62 -0
- package/manifest/components/canvas-split-thread.json +54 -0
- package/manifest/components/canvas-split.json +60 -0
- package/manifest/components/card.json +140 -0
- package/manifest/components/carousel.json +200 -0
- package/manifest/components/catalogue-icon.json +52 -0
- package/manifest/components/channel-beta-icon.json +52 -0
- package/manifest/components/channel-matrix.json +173 -0
- package/manifest/components/channel-released-icon.json +52 -0
- package/manifest/components/chart-container.json +111 -0
- package/manifest/components/chart-ramp.json +72 -0
- package/manifest/components/chart-swatch.json +65 -0
- package/manifest/components/chart-tooltip-content.json +114 -0
- package/manifest/components/chart.json +93 -0
- package/manifest/components/chat-empty-state.json +55 -0
- package/manifest/components/chat-panel-assistant-message.json +51 -0
- package/manifest/components/chat-panel-composer.json +66 -0
- package/manifest/components/chat-panel-messages.json +51 -0
- package/manifest/components/chat-panel-typing.json +51 -0
- package/manifest/components/chat-panel-user-message.json +51 -0
- package/manifest/components/chat-panel.json +57 -0
- package/manifest/components/checkbox-group.json +68 -0
- package/manifest/components/checkbox.json +93 -0
- package/manifest/components/checkpoint-history.json +80 -0
- package/manifest/components/chip.json +144 -0
- package/manifest/components/clamp.json +102 -0
- package/manifest/components/cli-tool-icon.json +52 -0
- package/manifest/components/code-diff.json +87 -0
- package/manifest/components/code-runner.json +97 -0
- package/manifest/components/collapsible.json +120 -0
- package/manifest/components/color-area.json +59 -0
- package/manifest/components/color-field.json +79 -0
- package/manifest/components/color-picker.json +175 -0
- package/manifest/components/color-slider.json +75 -0
- package/manifest/components/color-swatch.json +68 -0
- package/manifest/components/colors-section.json +66 -0
- package/manifest/components/combobox.json +198 -0
- package/manifest/components/command-palette.json +177 -0
- package/manifest/components/compaction-row.json +100 -0
- package/manifest/components/comparison-card.json +83 -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 +75 -0
- package/manifest/components/composer-attachments.json +60 -0
- package/manifest/components/composer-bar.json +73 -0
- package/manifest/components/composer-command-item.json +79 -0
- package/manifest/components/composer-context.json +67 -0
- package/manifest/components/composer-input.json +73 -0
- package/manifest/components/composer-menu-item.json +72 -0
- package/manifest/components/composer-menu.json +79 -0
- package/manifest/components/composer-model-item.json +75 -0
- package/manifest/components/composer-model-trigger.json +75 -0
- package/manifest/components/composer-person-item.json +79 -0
- package/manifest/components/composer-send.json +80 -0
- package/manifest/components/composer-toolbar.json +65 -0
- package/manifest/components/composer-voice-button.json +68 -0
- package/manifest/components/composer-voice.json +75 -0
- package/manifest/components/composer.json +176 -0
- package/manifest/components/computer-use.json +84 -0
- package/manifest/components/confidence-marker.json +74 -0
- package/manifest/components/connection-state.json +84 -0
- package/manifest/components/container.json +60 -0
- package/manifest/components/context-breakdown.json +65 -0
- package/manifest/components/context-menu.json +121 -0
- package/manifest/components/context-usage.json +85 -0
- package/manifest/components/conversation-search.json +92 -0
- package/manifest/components/copy-button.json +93 -0
- package/manifest/components/cost-meter.json +74 -0
- package/manifest/components/cue-logotype.json +96 -0
- package/manifest/components/cue-mark.json +97 -0
- package/manifest/components/cue-portal-frame.json +55 -0
- package/manifest/components/data-table-pagination.json +83 -0
- package/manifest/components/data-table-toolbar.json +104 -0
- package/manifest/components/date-field.json +80 -0
- package/manifest/components/date-picker.json +191 -0
- package/manifest/components/date-range-picker.json +191 -0
- package/manifest/components/day-separator.json +58 -0
- package/manifest/components/delegation-card.json +144 -0
- package/manifest/components/density.json +58 -0
- package/manifest/components/description-list.json +84 -0
- package/manifest/components/diagram.json +100 -0
- package/manifest/components/dialog.json +198 -0
- package/manifest/components/disclosure.json +109 -0
- package/manifest/components/dmx-bar.json +94 -0
- package/manifest/components/dmx-strip.json +101 -0
- package/manifest/components/document-reference.json +90 -0
- package/manifest/components/draft-restore.json +82 -0
- package/manifest/components/drawer.json +179 -0
- package/manifest/components/dropdown-menu.json +229 -0
- package/manifest/components/edit-message.json +105 -0
- package/manifest/components/elements-command-palette.json +100 -0
- package/manifest/components/elements-composer.json +71 -0
- package/manifest/components/elements-data-table.json +68 -0
- package/manifest/components/elements-timeline.json +69 -0
- package/manifest/components/elicitation-form.json +103 -0
- package/manifest/components/empty-state-composer.json +64 -0
- package/manifest/components/empty-state-greeting.json +49 -0
- package/manifest/components/empty-state-suggestion.json +57 -0
- package/manifest/components/empty-state-suggestions.json +49 -0
- package/manifest/components/empty-state.json +90 -0
- package/manifest/components/end-of-turn-summary.json +77 -0
- package/manifest/components/env-var-input.json +150 -0
- package/manifest/components/error-state.json +80 -0
- package/manifest/components/export-dialog.json +84 -0
- package/manifest/components/eyebrow.json +56 -0
- package/manifest/components/feedback-dialog.json +107 -0
- package/manifest/components/field-description.json +63 -0
- package/manifest/components/field-error.json +77 -0
- package/manifest/components/field-label.json +63 -0
- package/manifest/components/field.json +79 -0
- package/manifest/components/file-tree.json +83 -0
- package/manifest/components/file-upload.json +159 -0
- package/manifest/components/flow-background.json +50 -0
- package/manifest/components/flow-controls.json +50 -0
- package/manifest/components/flow-graph.json +75 -0
- package/manifest/components/folder-icon.json +52 -0
- package/manifest/components/footer.json +112 -0
- package/manifest/components/frac.json +59 -0
- package/manifest/components/generation-loader.json +64 -0
- package/manifest/components/generative-ui.json +93 -0
- package/manifest/components/grid.json +81 -0
- package/manifest/components/group-bar.json +102 -0
- package/manifest/components/guardrail-notice.json +91 -0
- package/manifest/components/hover-card.json +151 -0
- package/manifest/components/icon-button.json +88 -0
- package/manifest/components/image-generation.json +67 -0
- package/manifest/components/info-tip.json +98 -0
- package/manifest/components/inline-citation.json +77 -0
- package/manifest/components/input-group.json +91 -0
- package/manifest/components/input.json +89 -0
- package/manifest/components/item.json +129 -0
- package/manifest/components/job-progress.json +96 -0
- package/manifest/components/kbd.json +52 -0
- package/manifest/components/launcher-bubble.json +105 -0
- package/manifest/components/link.json +81 -0
- package/manifest/components/live-region-announcer.json +79 -0
- package/manifest/components/log-viewer.json +139 -0
- package/manifest/components/map-answer.json +83 -0
- package/manifest/components/markdown-text.json +94 -0
- package/manifest/components/math-block.json +74 -0
- package/manifest/components/mcp-server-icon.json +52 -0
- package/manifest/components/mcp-server-panel.json +87 -0
- package/manifest/components/memory-chips.json +65 -0
- package/manifest/components/menubar.json +157 -0
- package/manifest/components/message-actions.json +99 -0
- package/manifest/components/message-attachments.json +63 -0
- package/manifest/components/message-branches.json +71 -0
- package/manifest/components/message-list.json +100 -0
- package/manifest/components/message-pair.json +86 -0
- package/manifest/components/message-queue.json +74 -0
- package/manifest/components/message-timing.json +62 -0
- package/manifest/components/message.json +116 -0
- package/manifest/components/meter.json +114 -0
- package/manifest/components/mobile-composer.json +126 -0
- package/manifest/components/model-picker.json +76 -0
- package/manifest/components/multi-select.json +190 -0
- package/manifest/components/musical-time-input.json +113 -0
- package/manifest/components/navigation-menu.json +226 -0
- package/manifest/components/node-card.json +109 -0
- package/manifest/components/node-handle.json +69 -0
- package/manifest/components/number-field.json +107 -0
- package/manifest/components/number-ticker.json +61 -0
- package/manifest/components/onboarding.json +84 -0
- package/manifest/components/otp-field.json +128 -0
- package/manifest/components/page-shell.json +96 -0
- package/manifest/components/pagination.json +92 -0
- package/manifest/components/panel-header.json +77 -0
- package/manifest/components/panel.json +71 -0
- package/manifest/components/password-input.json +119 -0
- package/manifest/components/permission-grant.json +92 -0
- package/manifest/components/permission-scopes.json +139 -0
- package/manifest/components/piano-keyboard.json +120 -0
- package/manifest/components/plussie.json +111 -0
- package/manifest/components/popover.json +193 -0
- package/manifest/components/preset-section.json +73 -0
- package/manifest/components/progress.json +95 -0
- package/manifest/components/prompt-library.json +99 -0
- package/manifest/components/queue-dock.json +110 -0
- package/manifest/components/quota-banner.json +94 -0
- package/manifest/components/quote-reply.json +105 -0
- package/manifest/components/radio-group.json +73 -0
- package/manifest/components/radio.json +80 -0
- package/manifest/components/rating.json +141 -0
- package/manifest/components/read-aloud.json +111 -0
- package/manifest/components/reasoning-effort.json +81 -0
- package/manifest/components/reasoning-panel.json +108 -0
- package/manifest/components/recommendation-card.json +107 -0
- package/manifest/components/regenerate-menu.json +89 -0
- package/manifest/components/replay-player.json +102 -0
- package/manifest/components/research-report.json +76 -0
- package/manifest/components/resizable.json +88 -0
- package/manifest/components/retrieval-chunks.json +84 -0
- package/manifest/components/revert-dock.json +150 -0
- package/manifest/components/reviewable-diff.json +93 -0
- package/manifest/components/risk-badge.json +74 -0
- package/manifest/components/row.json +109 -0
- package/manifest/components/schedule-card.json +101 -0
- package/manifest/components/score-breakdown.json +91 -0
- package/manifest/components/scroll-anchor.json +72 -0
- package/manifest/components/scroll-area.json +91 -0
- package/manifest/components/scrollable-tabs-list.json +83 -0
- package/manifest/components/scrub-input.json +200 -0
- package/manifest/components/seam-cell.json +75 -0
- package/manifest/components/seam-grid.json +75 -0
- package/manifest/components/seam-list.json +56 -0
- package/manifest/components/search-input.json +134 -0
- package/manifest/components/section-header.json +112 -0
- package/manifest/components/segmented-control.json +138 -0
- package/manifest/components/select.json +194 -0
- package/manifest/components/separator.json +53 -0
- package/manifest/components/settings-panel.json +118 -0
- package/manifest/components/shape-section.json +66 -0
- package/manifest/components/shared-conversation.json +89 -0
- package/manifest/components/sheet.json +186 -0
- package/manifest/components/shimmer-label.json +59 -0
- package/manifest/components/sidebar.json +198 -0
- package/manifest/components/signal-edge.json +56 -0
- package/manifest/components/skeleton.json +46 -0
- package/manifest/components/skill-icon.json +52 -0
- package/manifest/components/slider.json +89 -0
- package/manifest/components/sources.json +83 -0
- package/manifest/components/sparkline.json +76 -0
- package/manifest/components/speaker-identity.json +61 -0
- package/manifest/components/spec-sheet.json +80 -0
- package/manifest/components/spectrum-visualizer.json +115 -0
- package/manifest/components/spinner.json +61 -0
- package/manifest/components/stack-icon.json +52 -0
- package/manifest/components/stack.json +96 -0
- package/manifest/components/stacks-matrix-icon.json +52 -0
- package/manifest/components/stat.json +87 -0
- package/manifest/components/status-bar.json +58 -0
- package/manifest/components/status-dot.json +78 -0
- package/manifest/components/stepper.json +89 -0
- package/manifest/components/stopped-run.json +81 -0
- package/manifest/components/streaming-text.json +71 -0
- package/manifest/components/sub.json +44 -0
- package/manifest/components/subagent-list.json +88 -0
- package/manifest/components/suggestions.json +84 -0
- package/manifest/components/sup.json +44 -0
- package/manifest/components/swap-label.json +71 -0
- package/manifest/components/switch.json +87 -0
- package/manifest/components/table-scroll-region.json +69 -0
- package/manifest/components/table.json +155 -0
- package/manifest/components/tabs.json +145 -0
- package/manifest/components/tags-input.json +190 -0
- package/manifest/components/tail-status.json +109 -0
- package/manifest/components/terminal-block.json +91 -0
- package/manifest/components/terminal-frame.json +119 -0
- package/manifest/components/textarea.json +76 -0
- package/manifest/components/theme-configurator.json +124 -0
- package/manifest/components/theme-provider.json +134 -0
- package/manifest/components/thinking-indicator.json +63 -0
- package/manifest/components/thread-list.json +76 -0
- package/manifest/components/thread-search.json +90 -0
- package/manifest/components/threshold-rail.json +160 -0
- package/manifest/components/time-boundary.json +62 -0
- package/manifest/components/time-field.json +80 -0
- package/manifest/components/timeline-ruler.json +139 -0
- package/manifest/components/timeline.json +115 -0
- package/manifest/components/title-bar.json +82 -0
- package/manifest/components/toast.json +130 -0
- package/manifest/components/todo-list.json +69 -0
- package/manifest/components/toggle-group.json +106 -0
- package/manifest/components/toggle.json +109 -0
- package/manifest/components/token-editor.json +90 -0
- package/manifest/components/tool-call-card.json +200 -0
- package/manifest/components/tool-call.json +119 -0
- package/manifest/components/tool-error.json +114 -0
- package/manifest/components/tool-group.json +83 -0
- package/manifest/components/tool-timeline.json +119 -0
- package/manifest/components/toolbar.json +163 -0
- package/manifest/components/tooltip.json +164 -0
- package/manifest/components/trace-waterfall.json +74 -0
- package/manifest/components/tree-visibility-toggle.json +84 -0
- package/manifest/components/tree.json +140 -0
- package/manifest/components/turn-footer.json +105 -0
- package/manifest/components/two-step-button.json +113 -0
- package/manifest/components/typing-indicator.json +53 -0
- package/manifest/components/universe-grid.json +127 -0
- package/manifest/components/unread-divider.json +55 -0
- package/manifest/components/usage-chart.json +124 -0
- package/manifest/components/verdict-row.json +91 -0
- package/manifest/components/voice-conversation.json +109 -0
- package/manifest/components/web-preview.json +87 -0
- package/manifest/components/web-search.json +92 -0
- package/manifest/components/work-collapse.json +102 -0
- package/manifest/manifest.json +4779 -0
- package/manifest/tokens.json +159 -0
- package/package.json +54 -5
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "IconButton",
|
|
3
|
+
"slug": "icon-button",
|
|
4
|
+
"group": "primitives",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A square, icon-only button for toolbars, row affordances and panel headers.\n\nDefaults to the `ghost` variant: in a dense console most icon buttons should\nbe invisible until hovered, speaking through text colour rather than a rim.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "aria-label",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Required. An icon-only control has no text to name it, so the label is not\noptional — the type makes forgetting it a compile error."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "icon",
|
|
19
|
+
"type": "ElementType<any, keyof IntrinsicElements>",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "The icon component to render (e.g. a lucide icon). Rendered `aria-hidden`\nand sized to the density icon token."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "render",
|
|
26
|
+
"type": "RenderProp<Record<string, unknown>>",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Replace the rendered element (Base UI render prop)."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "size",
|
|
33
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": "md",
|
|
36
|
+
"description": ""
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"typeReferences": [
|
|
40
|
+
"Omit<React.ComponentPropsWithoutRef<\"button\">, \"children\">",
|
|
41
|
+
"VariantProps<typeof iconButtonVariants>"
|
|
42
|
+
],
|
|
43
|
+
"subcomponents": [],
|
|
44
|
+
"parts": [],
|
|
45
|
+
"variants": {
|
|
46
|
+
"size": [
|
|
47
|
+
"sm",
|
|
48
|
+
"md",
|
|
49
|
+
"lg"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"defaultVariants": {
|
|
53
|
+
"variant": "ghost",
|
|
54
|
+
"size": "md"
|
|
55
|
+
},
|
|
56
|
+
"tokensUsed": [
|
|
57
|
+
"--cue-control-lg",
|
|
58
|
+
"--cue-control-md",
|
|
59
|
+
"--cue-control-sm",
|
|
60
|
+
"--cue-icon-md",
|
|
61
|
+
"--cue-icon-sm"
|
|
62
|
+
],
|
|
63
|
+
"summary": "A square, icon-only button for toolbars, row affordances and panel headers.",
|
|
64
|
+
"examples": [
|
|
65
|
+
{
|
|
66
|
+
"title": "Usage",
|
|
67
|
+
"code": "<IconButton aria-label=\"Close panel\" icon={X} />\n<IconButton aria-label=\"Delete cue\" icon={Trash} variant=\"danger-outline\" size=\"sm\" />",
|
|
68
|
+
"language": "tsx"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"status": "todo-docs",
|
|
72
|
+
"url": "/docs/components/icon-button",
|
|
73
|
+
"mdUrl": "/docs/components/icon-button.md",
|
|
74
|
+
"jsonUrl": "/r/components/icon-button.json",
|
|
75
|
+
"specimens": [
|
|
76
|
+
{
|
|
77
|
+
"title": "IconButton",
|
|
78
|
+
"group": "primitives",
|
|
79
|
+
"components": [
|
|
80
|
+
"IconButton"
|
|
81
|
+
],
|
|
82
|
+
"code": "<Specimens>\n {BUTTON_VARIANTS.map((variant) => (\n <Specimen key={variant} label={variant}>\n <IconButton aria-label={`Play, ${variant}`} icon={Play} variant={variant} />\n </Specimen>\n ))}\n <Specimen label=\"disabled\">\n <IconButton aria-label=\"Delete cue\" icon={Trash2} disabled />\n </Specimen>\n {SIZES.map((size) => (\n <Specimen key={size} label={`size ${size}`}>\n <IconButton aria-label={`Pause, ${size}`} icon={Pause} size={size} />\n </Specimen>\n ))}\n</Specimens>",
|
|
83
|
+
"note": "A square button with a required accessible name. There is no unlabelled variant.",
|
|
84
|
+
"interaction": "same ring as Button; the hit target stays at the control height even when the glyph shrinks."
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"todo": true
|
|
88
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ImageGeneration",
|
|
3
|
+
"slug": "image-generation",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [
|
|
7
|
+
"lucide-react"
|
|
8
|
+
],
|
|
9
|
+
"clientOnly": true,
|
|
10
|
+
"description": "A dot grid holds the frame while the image resolves out of a blur.",
|
|
11
|
+
"props": [
|
|
12
|
+
{
|
|
13
|
+
"name": "prompt",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"defaultValue": null,
|
|
17
|
+
"description": "Prompt text shown under the image frame."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "generating",
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"required": true,
|
|
23
|
+
"defaultValue": null,
|
|
24
|
+
"description": "When true the frame holds a pulsing dot grid; otherwise the image resolves."
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"typeReferences": [
|
|
28
|
+
"Omit<ComponentProps<\"div\">, \"children\" | \"prompt\" | \"generating\"> & {\n /** Prompt text shown under the image frame. */\n prompt: string;\n /** When true the frame holds a pulsing dot grid; otherwise the image resolves. */\n generating: boolean;\n}"
|
|
29
|
+
],
|
|
30
|
+
"subcomponents": [],
|
|
31
|
+
"parts": [],
|
|
32
|
+
"variants": {},
|
|
33
|
+
"defaultVariants": {},
|
|
34
|
+
"tokensUsed": [
|
|
35
|
+
"--cue-accent-fg",
|
|
36
|
+
"--cue-fg-muted",
|
|
37
|
+
"--cue-fg-subtle",
|
|
38
|
+
"--cue-radius-overlay",
|
|
39
|
+
"--cue-surface-3",
|
|
40
|
+
"--cue-text-ui"
|
|
41
|
+
],
|
|
42
|
+
"summary": "A dot grid holds the frame while the image resolves out of a blur.",
|
|
43
|
+
"examples": [
|
|
44
|
+
{
|
|
45
|
+
"title": "Usage",
|
|
46
|
+
"code": "import { ImageGeneration } from \"@cueplusplus/ui/elements\";\n\n<ImageGeneration prompt=\"A calm blue abstract\" generating={false} />",
|
|
47
|
+
"language": "tsx"
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"status": "todo-docs",
|
|
51
|
+
"url": "/docs/components/image-generation",
|
|
52
|
+
"mdUrl": "/docs/components/image-generation.md",
|
|
53
|
+
"jsonUrl": "/r/components/image-generation.json",
|
|
54
|
+
"specimens": [
|
|
55
|
+
{
|
|
56
|
+
"title": "ImageGeneration",
|
|
57
|
+
"group": "elements-agents",
|
|
58
|
+
"components": [
|
|
59
|
+
"ImageGeneration"
|
|
60
|
+
],
|
|
61
|
+
"code": "<Specimens>\n <Specimen label=\"generating\">\n <ImageGeneration prompt=\"Pre-vis: front wash at 8.4 m trim\" generating />\n </Specimen>\n <Specimen label=\"resolved\">\n <ImageGeneration prompt=\"Pre-vis: front wash at 8.4 m trim\" generating={false} />\n </Specimen>\n</Specimens>",
|
|
62
|
+
"note": "A dot grid holds the square while the image resolves out of a blur — the frame is the right size from the first frame, so nothing below it moves when the picture lands. While generating, the prompt is replaced by a shimmering label; when it settles, the prompt is what is left under the image.",
|
|
63
|
+
"interaction": "regenerate is a labelled icon button. The grid and the image are both `aria-hidden`: the prompt underneath is the description, and a decorative placeholder should not be announced as a picture."
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"todo": true
|
|
67
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "InfoTip",
|
|
3
|
+
"slug": "info-tip",
|
|
4
|
+
"group": "overlays",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "The 13px circular \"i\" badge: a footnote marker for a field, a column or a\nnumber whose definition is not obvious.\n\nA real focusable `<button>`, not a bare `<span>` with a hover handler — the\nexplanation has to be reachable from the keyboard, and the badge's own\n`cursor-help` is the only hint sighted users get that it is there at all.\nEverything else (portal theme stamping, `role=\"tooltip\"`, dismissal) comes\nfrom {@link Tooltip}.\n\nThe badge stays 13px across densities on purpose: it is a punctuation mark\nsitting in a line of text, so it tracks the text, not the control ladder.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "text",
|
|
12
|
+
"type": "ReactNode",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "The explanation to reveal. One or two sentences; longer belongs in a `Popover`."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "width",
|
|
19
|
+
"type": "number",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": "224",
|
|
22
|
+
"description": "Width of the revealed panel in px, applied as rem so it scales with the\nroot font size. Defaults to `224`."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "label",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": "More information",
|
|
29
|
+
"description": "Accessible name for the badge. Defaults to `\"More information\"`."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "side",
|
|
33
|
+
"type": "\"left\" | \"right\" | \"bottom\" | \"top\" | \"inline-end\" | \"inline-start\"",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": "top",
|
|
36
|
+
"description": "Preferred side of the badge. Defaults to `\"top\"`."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "align",
|
|
40
|
+
"type": "\"center\" | \"end\" | \"start\"",
|
|
41
|
+
"required": false,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "Alignment along that side. Defaults to `\"center\"`."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "delay",
|
|
47
|
+
"type": "number",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": "200",
|
|
50
|
+
"description": "Hover delay in ms before the panel appears. Defaults to `200`."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "className",
|
|
54
|
+
"type": "string",
|
|
55
|
+
"required": false,
|
|
56
|
+
"defaultValue": null,
|
|
57
|
+
"description": "Extra classes for the badge."
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"typeReferences": [],
|
|
61
|
+
"subcomponents": [],
|
|
62
|
+
"parts": [],
|
|
63
|
+
"variants": {},
|
|
64
|
+
"defaultVariants": {},
|
|
65
|
+
"tokensUsed": [
|
|
66
|
+
"--cue-accent",
|
|
67
|
+
"--cue-border-strong",
|
|
68
|
+
"--cue-fg-muted",
|
|
69
|
+
"--cue-font-mono",
|
|
70
|
+
"--cue-text-micro"
|
|
71
|
+
],
|
|
72
|
+
"summary": "The 13px circular \"i\" badge: a footnote marker for a field, a column or a number whose definition is not obvious.",
|
|
73
|
+
"examples": [
|
|
74
|
+
{
|
|
75
|
+
"title": "Usage",
|
|
76
|
+
"code": "<FieldLabel>Pace <InfoTip text=\"Where usage should be by today, pro-rated.\" /></FieldLabel>",
|
|
77
|
+
"language": "tsx"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"status": "todo-docs",
|
|
81
|
+
"url": "/docs/components/info-tip",
|
|
82
|
+
"mdUrl": "/docs/components/info-tip.md",
|
|
83
|
+
"jsonUrl": "/r/components/info-tip.json",
|
|
84
|
+
"specimens": [
|
|
85
|
+
{
|
|
86
|
+
"title": "Tooltip / InfoTip",
|
|
87
|
+
"group": "overlays",
|
|
88
|
+
"components": [
|
|
89
|
+
"Tooltip",
|
|
90
|
+
"InfoTip"
|
|
91
|
+
],
|
|
92
|
+
"code": "<Tooltip.Provider>\n <Specimens>\n <Specimen label=\"tooltip\">\n <Tooltip.Root>\n <Tooltip.Trigger render={<IconButton aria-label=\"Go\" icon={Play} />} />\n <Tooltip.Content>Fire the selected cue</Tooltip.Content>\n </Tooltip.Root>\n </Specimen>\n <Specimen label=\"side bottom\">\n <Tooltip.Root>\n <Tooltip.Trigger render={<IconButton aria-label=\"Copy address\" icon={Copy} />} />\n <Tooltip.Content side=\"bottom\">Copy 10.0.0.42</Tooltip.Content>\n </Tooltip.Root>\n </Specimen>\n <Specimen label=\"info tip\">\n <span className=\"flex items-center gap-(--cue-space-2) font-mono text-(length:--cue-text-ui) text-fg-muted\">\n Pace tick\n <InfoTip text=\"Where the meter would be if usage were flat across the period.\" />\n </span>\n </Specimen>\n <Specimen label=\"wide info tip\">\n <InfoTip\n width={320}\n label=\"About provenance\"\n text=\"Vendor numbers are measured, estimated ones are hatched, and an unbounded meter draws no percentage at all.\"\n />\n </Specimen>\n </Specimens>\n</Tooltip.Provider>",
|
|
93
|
+
"note": "A tooltip names a control; an InfoTip is the 13px `i` badge that explains one.",
|
|
94
|
+
"interaction": "tooltips open on hover and on keyboard focus, and never on touch; the InfoTip badge is a real button."
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"todo": true
|
|
98
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "InlineCitation",
|
|
3
|
+
"slug": "inline-citation",
|
|
4
|
+
"group": "elements",
|
|
5
|
+
"importPath": "@cueplusplus/ui/elements",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "Numbered references inside a sentence, each with a hover preview of its source.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "sources",
|
|
12
|
+
"type": "CitationSource[]",
|
|
13
|
+
"required": true,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Sources attached to the numbered reference markers in the sentence."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "openIndex",
|
|
19
|
+
"type": "number | null",
|
|
20
|
+
"required": true,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Which citation preview is open, or null when none is open."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "onOpenIndexChange",
|
|
26
|
+
"type": "(index: number | null) => void",
|
|
27
|
+
"required": true,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Called when a citation marker opens or closes its preview."
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"typeReferences": [
|
|
33
|
+
"Omit<\n ComponentProps<\"p\">,\n \"children\"\n>"
|
|
34
|
+
],
|
|
35
|
+
"subcomponents": [],
|
|
36
|
+
"parts": [],
|
|
37
|
+
"variants": {},
|
|
38
|
+
"defaultVariants": {},
|
|
39
|
+
"tokensUsed": [
|
|
40
|
+
"--cue-accent",
|
|
41
|
+
"--cue-accent-fg",
|
|
42
|
+
"--cue-fg",
|
|
43
|
+
"--cue-fg-muted",
|
|
44
|
+
"--cue-fg-subtle",
|
|
45
|
+
"--cue-font-mono",
|
|
46
|
+
"--cue-radius-control",
|
|
47
|
+
"--cue-radius-overlay",
|
|
48
|
+
"--cue-surface-2",
|
|
49
|
+
"--cue-text-body",
|
|
50
|
+
"--cue-text-micro"
|
|
51
|
+
],
|
|
52
|
+
"summary": "Numbered references inside a sentence, each with a hover preview of its source.",
|
|
53
|
+
"examples": [
|
|
54
|
+
{
|
|
55
|
+
"title": "Usage",
|
|
56
|
+
"code": "import { InlineCitation } from \"@cueplusplus/ui/elements\";\n\n<InlineCitation\n sources={[\n {\n domain: \"docs.example.com\",\n title: \"Optimistic updates\",\n snippet: \"Confirm writes after paint.\",\n },\n ]}\n openIndex={0}\n onOpenIndexChange={setOpenIndex}\n/>",
|
|
57
|
+
"language": "tsx"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"status": "todo-docs",
|
|
61
|
+
"url": "/docs/components/inline-citation",
|
|
62
|
+
"mdUrl": "/docs/components/inline-citation.md",
|
|
63
|
+
"jsonUrl": "/r/components/inline-citation.json",
|
|
64
|
+
"specimens": [
|
|
65
|
+
{
|
|
66
|
+
"title": "InlineCitation",
|
|
67
|
+
"group": "elements-knowledge",
|
|
68
|
+
"components": [
|
|
69
|
+
"InlineCitation"
|
|
70
|
+
],
|
|
71
|
+
"code": "<Specimens>\n <Specimen label=\"the first marker open\" wide>\n <InlineCitation\n sources={CITED}\n openIndex={citation}\n onOpenIndexChange={setCitation}\n />\n </Specimen>\n <Specimen label=\"both closed\" wide>\n <InlineCitation\n sources={CITED}\n openIndex={null}\n onOpenIndexChange={() => undefined}\n />\n </Specimen>\n</Specimens>",
|
|
72
|
+
"note": "The marker inside the sentence, rather than the list under it: a numbered chip the paragraph flows around, and behind each one the page it stands on. `Sources` is the bibliography; this is the footnote, and the two are meant to be read together — the chip says a claim is attributable without spending a clause saying so.",
|
|
73
|
+
"interaction": "each marker is a button, so the preview is reachable from a keyboard as well as a pointer; the open one inverts to the accent fill. The card is the family's one portal, and it carries the island stamp — opened inside an `AgentSurface`, it paints in that island's values rather than the document's."
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"todo": true
|
|
77
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "InputGroup",
|
|
3
|
+
"slug": "input-group",
|
|
4
|
+
"group": "forms",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "A control and its adornments, drawn as a single field.\n\nThe group — not the input — owns the chassis, so there is exactly one rim and\none fill however many affordances are bolted on. It publishes that fact\nthrough context: an {@link Input } rendered inside strips its own border,\nbackground, height and padding and inherits the group's font size. Focus\nfeedback moves to `focus-within`, since a `<div>` never matches\n`:focus-visible`.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "leading",
|
|
12
|
+
"type": "ReactNode",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Content pinned to the left gutter — a glyph, a unit prefix, a protocol."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "trailing",
|
|
19
|
+
"type": "ReactNode",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Content pinned to the right gutter — a unit suffix, a `Kbd`, a clear button."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "size",
|
|
26
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "Rung of the control ladder for the whole cluster. Defaults to `\"md\"`."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "children",
|
|
33
|
+
"type": "ReactNode",
|
|
34
|
+
"required": true,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "The control. An {@link Input } here renders bare and fills the middle."
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"typeReferences": [
|
|
40
|
+
"React.ComponentPropsWithoutRef<\"div\">"
|
|
41
|
+
],
|
|
42
|
+
"subcomponents": [],
|
|
43
|
+
"parts": [],
|
|
44
|
+
"variants": {},
|
|
45
|
+
"defaultVariants": {},
|
|
46
|
+
"tokensUsed": [
|
|
47
|
+
"--cue-accent",
|
|
48
|
+
"--cue-border",
|
|
49
|
+
"--cue-control-lg",
|
|
50
|
+
"--cue-control-md",
|
|
51
|
+
"--cue-control-sm",
|
|
52
|
+
"--cue-danger",
|
|
53
|
+
"--cue-fg",
|
|
54
|
+
"--cue-fg-subtle",
|
|
55
|
+
"--cue-font-mono",
|
|
56
|
+
"--cue-radius-control",
|
|
57
|
+
"--cue-space-2",
|
|
58
|
+
"--cue-space-3",
|
|
59
|
+
"--cue-space-4",
|
|
60
|
+
"--cue-space-5",
|
|
61
|
+
"--cue-sunken",
|
|
62
|
+
"--cue-text-body",
|
|
63
|
+
"--cue-text-label",
|
|
64
|
+
"--cue-text-ui"
|
|
65
|
+
],
|
|
66
|
+
"summary": "A control and its adornments, drawn as a single field.",
|
|
67
|
+
"examples": [
|
|
68
|
+
{
|
|
69
|
+
"title": "Usage",
|
|
70
|
+
"code": "<InputGroup leading={<Search />} trailing={<Kbd>⌘K</Kbd>}>\n <Input aria-label=\"Search cues\" />\n</InputGroup>",
|
|
71
|
+
"language": "tsx"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"status": "todo-docs",
|
|
75
|
+
"url": "/docs/components/input-group",
|
|
76
|
+
"mdUrl": "/docs/components/input-group.md",
|
|
77
|
+
"jsonUrl": "/r/components/input-group.json",
|
|
78
|
+
"specimens": [
|
|
79
|
+
{
|
|
80
|
+
"title": "InputGroup",
|
|
81
|
+
"group": "forms",
|
|
82
|
+
"components": [
|
|
83
|
+
"InputGroup"
|
|
84
|
+
],
|
|
85
|
+
"code": "<Specimens>\n <Specimen label=\"leading\">\n <InputGroup leading={<Plug aria-hidden=\"true\" className=\"size-icon-md\" />}>\n <Input aria-label=\"Node address\" defaultValue=\"10.0.0.42\" />\n </InputGroup>\n </Specimen>\n <Specimen label=\"trailing\">\n <InputGroup trailing={<span className=\"font-mono text-fg-subtle\">%</span>}>\n <Input aria-label=\"Level\" defaultValue=\"80\" />\n </InputGroup>\n </Specimen>\n <Specimen label=\"both, sm\">\n <InputGroup\n size=\"sm\"\n leading={<Ruler aria-hidden=\"true\" className=\"size-icon-sm\" />}\n trailing={<span className=\"font-mono text-fg-subtle\">m</span>}\n >\n <Input aria-label=\"Throw distance\" defaultValue=\"7.5\" />\n </InputGroup>\n </Specimen>\n</Specimens>",
|
|
86
|
+
"note": "One rim around a control and its adornments, so the group focuses as a unit.",
|
|
87
|
+
"interaction": "focus inside the group lights the whole rim, not just the input."
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"todo": true
|
|
91
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Input",
|
|
3
|
+
"slug": "input",
|
|
4
|
+
"group": "forms",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": true,
|
|
8
|
+
"description": "The single-line text control.\n\nWraps Base UI's `Input`, so dropping one inside a {@link Field } wires up the\nlabel, the description and the validity state with no `id` plumbing. Rides\nthe recessed chassis: `bg-sunken` sets it into the panel rather than raising\nit off, which is how this system distinguishes \"you type here\" from \"you\npress here\".\n\nInside an {@link InputGroup } it renders bare — the group owns the rim — so the\ntwo compose without a doubled border.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "className",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Extra classes, merged over the chassis."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "size",
|
|
19
|
+
"type": "\"sm\" | \"md\" | \"lg\"",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "Rung of the control ladder. Defaults to `\"md\"`. Shadows the native `size`\nattribute (a character count), which nothing in a token-driven layout wants."
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"typeReferences": [
|
|
26
|
+
"Omit<BaseInput.Props, \"className\" | \"size\">"
|
|
27
|
+
],
|
|
28
|
+
"subcomponents": [],
|
|
29
|
+
"parts": [],
|
|
30
|
+
"variants": {},
|
|
31
|
+
"defaultVariants": {},
|
|
32
|
+
"tokensUsed": [
|
|
33
|
+
"--cue-accent",
|
|
34
|
+
"--cue-border",
|
|
35
|
+
"--cue-control-lg",
|
|
36
|
+
"--cue-control-md",
|
|
37
|
+
"--cue-control-sm",
|
|
38
|
+
"--cue-danger",
|
|
39
|
+
"--cue-fg",
|
|
40
|
+
"--cue-fg-subtle",
|
|
41
|
+
"--cue-font-mono",
|
|
42
|
+
"--cue-radius-control",
|
|
43
|
+
"--cue-space-3",
|
|
44
|
+
"--cue-space-4",
|
|
45
|
+
"--cue-space-5",
|
|
46
|
+
"--cue-sunken",
|
|
47
|
+
"--cue-text-body",
|
|
48
|
+
"--cue-text-label",
|
|
49
|
+
"--cue-text-ui"
|
|
50
|
+
],
|
|
51
|
+
"summary": "The single-line text control, recessed into its surface.",
|
|
52
|
+
"examples": [
|
|
53
|
+
{
|
|
54
|
+
"title": "Usage",
|
|
55
|
+
"code": "<Input placeholder=\"e.g. Blackout\" />\n<Input type=\"number\" size=\"sm\" defaultValue={512} />",
|
|
56
|
+
"language": "tsx"
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"status": "stable",
|
|
60
|
+
"url": "/docs/components/input",
|
|
61
|
+
"mdUrl": "/docs/components/input.md",
|
|
62
|
+
"jsonUrl": "/r/components/input.json",
|
|
63
|
+
"whenToUse": [
|
|
64
|
+
"Free text or a plain number the user types: names, addresses, ports, counts.",
|
|
65
|
+
"Inside a `Field`, which wires the label, the description and the error state with no id plumbing."
|
|
66
|
+
],
|
|
67
|
+
"whenNotToUse": [
|
|
68
|
+
"A number the user adjusts by feel rather than types. Use `ScrubInput`, or `NumberField` where a stepper is expected.",
|
|
69
|
+
"A value from a known set. Use `Select`, `Combobox` or `RadioGroup`.",
|
|
70
|
+
"A search box with debounce and Escape-to-clear. Use `SearchInput`."
|
|
71
|
+
],
|
|
72
|
+
"commonMistakes": [
|
|
73
|
+
"Expecting its own rim inside an `InputGroup`. The group owns the border; the input renders bare.",
|
|
74
|
+
"Using the placeholder as the label. A placeholder is gone the moment typing starts.",
|
|
75
|
+
"Adding a background utility. Inputs are sunken in this system, which is how a reader tells \"type here\" from \"press here\"."
|
|
76
|
+
],
|
|
77
|
+
"specimens": [
|
|
78
|
+
{
|
|
79
|
+
"title": "Input",
|
|
80
|
+
"group": "forms",
|
|
81
|
+
"components": [
|
|
82
|
+
"Input"
|
|
83
|
+
],
|
|
84
|
+
"code": "<Specimens>\n {SIZES.map((size) => (\n <Specimen key={size} label={size}>\n <Input aria-label={`Cue label, ${size}`} size={size} defaultValue=\"1/12 @ 80%\" />\n </Specimen>\n ))}\n <Specimen label=\"placeholder\">\n <Input aria-label=\"Empty cue label\" placeholder=\"e.g. Blackout\" />\n </Specimen>\n <Specimen label=\"disabled\">\n <Input aria-label=\"Disabled cue label\" defaultValue=\"Read-only\" disabled />\n </Specimen>\n <Specimen label=\"readonly\">\n <Input aria-label=\"Read-only cue label\" defaultValue=\"1/12 @ 80%\" readOnly />\n </Specimen>\n</Specimens>",
|
|
85
|
+
"note": "The recessed chassis: sunken fill, hairline rim, height from the density ladder.",
|
|
86
|
+
"interaction": "the rim goes accent on focus and the ring sits outside it; `invalid` turns the rim danger and outranks focus."
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Item",
|
|
3
|
+
"slug": "item",
|
|
4
|
+
"group": "layout",
|
|
5
|
+
"importPath": "@cueplusplus/ui",
|
|
6
|
+
"peerDependencies": [],
|
|
7
|
+
"clientOnly": false,
|
|
8
|
+
"description": "One thing in a list, with room for a glyph, a name, a line of detail and a\ncontrol — the shape a settings entry, a search hit and a device row all want.\n\nWhere `Row` is a line of a hairline table, `Item` is a self-contained object\nthat can stand alone, sit in a `Stack` or fill a `Grid` cell. It is a real\n`<button>` when interactive rather than a `<div>` with an `onClick`, so\nkeyboard users get it for free.\n\nStatic markup — no `\"use client\"`.",
|
|
9
|
+
"props": [
|
|
10
|
+
{
|
|
11
|
+
"name": "media",
|
|
12
|
+
"type": "ReactNode",
|
|
13
|
+
"required": false,
|
|
14
|
+
"defaultValue": null,
|
|
15
|
+
"description": "Leading slot: an icon, an avatar, a status dot."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "title",
|
|
19
|
+
"type": "ReactNode",
|
|
20
|
+
"required": false,
|
|
21
|
+
"defaultValue": null,
|
|
22
|
+
"description": "The item's name — one line, truncated rather than wrapped."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "description",
|
|
26
|
+
"type": "ReactNode",
|
|
27
|
+
"required": false,
|
|
28
|
+
"defaultValue": null,
|
|
29
|
+
"description": "One supporting line under the title, a rung smaller and muted."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "actions",
|
|
33
|
+
"type": "ReactNode",
|
|
34
|
+
"required": false,
|
|
35
|
+
"defaultValue": null,
|
|
36
|
+
"description": "Trailing slot: a value, a chip, a control.\n\nDo not combine with `interactive` — the whole item is then a `<button>`,\nand a button may not contain another one. Put the controls beside the item\ninstead, or drop `interactive` and make the title itself the link."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "variant",
|
|
40
|
+
"type": "\"plain\" | \"outline\" | \"soft\"",
|
|
41
|
+
"required": false,
|
|
42
|
+
"defaultValue": null,
|
|
43
|
+
"description": "Which framing to paint. Defaults to `\"plain\"`."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "interactive",
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"required": false,
|
|
49
|
+
"defaultValue": "false",
|
|
50
|
+
"description": "Render as a `<button>` with hover feedback and a focus ring instead of a\nstatic `<div>`. Use for items that select, open or toggle something."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "disabled",
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"required": false,
|
|
56
|
+
"defaultValue": null,
|
|
57
|
+
"description": "Disable the interactive form. Ignored when `interactive` is not set."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "children",
|
|
61
|
+
"type": "ReactNode",
|
|
62
|
+
"required": false,
|
|
63
|
+
"defaultValue": null,
|
|
64
|
+
"description": "Extra content between the text column and the action slot."
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"typeReferences": [
|
|
68
|
+
"Omit<React.HTMLAttributes<HTMLElement>, \"title\">",
|
|
69
|
+
"VariantProps<typeof itemVariants>"
|
|
70
|
+
],
|
|
71
|
+
"subcomponents": [],
|
|
72
|
+
"parts": [],
|
|
73
|
+
"variants": {
|
|
74
|
+
"variant": [
|
|
75
|
+
"plain",
|
|
76
|
+
"outline",
|
|
77
|
+
"soft"
|
|
78
|
+
],
|
|
79
|
+
"interactive": [
|
|
80
|
+
"true",
|
|
81
|
+
"false"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"defaultVariants": {
|
|
85
|
+
"variant": "plain",
|
|
86
|
+
"interactive": "false"
|
|
87
|
+
},
|
|
88
|
+
"tokensUsed": [
|
|
89
|
+
"--cue-accent",
|
|
90
|
+
"--cue-border",
|
|
91
|
+
"--cue-fg",
|
|
92
|
+
"--cue-fg-muted",
|
|
93
|
+
"--cue-font-mono",
|
|
94
|
+
"--cue-pad-row-x",
|
|
95
|
+
"--cue-pad-row-y",
|
|
96
|
+
"--cue-radius-control",
|
|
97
|
+
"--cue-space-1",
|
|
98
|
+
"--cue-space-2",
|
|
99
|
+
"--cue-space-4",
|
|
100
|
+
"--cue-surface-2",
|
|
101
|
+
"--cue-text-label",
|
|
102
|
+
"--cue-text-ui"
|
|
103
|
+
],
|
|
104
|
+
"summary": "One thing in a list, with room for a glyph, a name, a line of detail and a control — the shape a settings entry, a search hit and a device row all want.",
|
|
105
|
+
"examples": [
|
|
106
|
+
{
|
|
107
|
+
"title": "Usage",
|
|
108
|
+
"code": "<Item media={<StatusDot tone=\"ok\" />} title=\"Node 12\" description=\"10.0.0.12\" />\n<Item interactive variant=\"outline\" title=\"Front truss\" onClick={open} />",
|
|
109
|
+
"language": "tsx"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"status": "todo-docs",
|
|
113
|
+
"url": "/docs/components/item",
|
|
114
|
+
"mdUrl": "/docs/components/item.md",
|
|
115
|
+
"jsonUrl": "/r/components/item.json",
|
|
116
|
+
"specimens": [
|
|
117
|
+
{
|
|
118
|
+
"title": "Item",
|
|
119
|
+
"group": "layout",
|
|
120
|
+
"components": [
|
|
121
|
+
"Item"
|
|
122
|
+
],
|
|
123
|
+
"code": "<div className=\"flex w-full max-w-[36rem] flex-col gap-(--cue-space-3)\">\n <Item\n media={<Lightbulb aria-hidden=\"true\" className=\"size-icon-md text-fg-subtle\" />}\n title=\"Source Four 26°\"\n description=\"Universe 1, channels 12 to 19.\"\n actions={<Chip tone=\"ok\">patched</Chip>}\n />\n <Item\n variant=\"outline\"\n title=\"MAC Viper Profile\"\n description=\"Universe 2, channels 1 to 32.\"\n actions={<Button size=\"sm\">Inspect</Button>}\n />\n <Item variant=\"soft\" interactive title=\"Sharpy Plus\" description=\"Unpatched.\" />\n <Item variant=\"outline\" disabled title=\"Molefay 4-lite\" description=\"Profile missing.\" />\n</div>",
|
|
124
|
+
"note": "A media, title, description and actions row. Three variants, plus interactive and disabled.",
|
|
125
|
+
"interaction": "the interactive variant takes a hover ground and a focus ring; it is a button, so Enter and Space activate it."
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"todo": true
|
|
129
|
+
}
|