@cueplusplus/ui 0.16.0 → 0.18.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 +901 -0
- package/README.md +1 -1
- package/dist/agent-runtime/tool-call-card.js +7 -3
- 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/charts/ramps.js +1 -1
- package/dist/chat/agent-pile.js +2 -1
- package/dist/chat/ask-box.js +4 -3
- package/dist/chat/delegation-card.js +3 -2
- package/dist/chat/message-list.js +3 -2
- package/dist/chat/message.js +17 -7
- package/dist/chrome/_edge-scroller.js +2 -1
- package/dist/chrome/_status-bar.js +9 -3
- package/dist/chrome/_tabs-scroll.d.ts +1 -1
- package/dist/chrome/_tabs-scroll.js +1 -1
- package/dist/chrome/app-bar.js +9 -3
- package/dist/chrome/app-shell.js +2 -1
- package/dist/chrome/band.d.ts +18 -12
- package/dist/chrome/band.js +18 -32
- package/dist/chrome/empty-state.js +8 -4
- package/dist/chrome/eyebrow.d.ts +13 -5
- package/dist/chrome/eyebrow.js +18 -7
- package/dist/chrome/footer.d.ts +5 -0
- package/dist/chrome/footer.js +14 -3
- package/dist/chrome/navigation-menu.js +6 -3
- package/dist/chrome/page-shell.js +8 -5
- package/dist/chrome/panel.d.ts +5 -2
- package/dist/chrome/panel.js +10 -5
- package/dist/chrome/row.js +9 -5
- package/dist/chrome/scroll-area.js +6 -4
- package/dist/chrome/section-header.js +13 -4
- package/dist/chrome/segmented-control.js +14 -4
- package/dist/chrome/status-bar.js +2 -1
- package/dist/chrome/tabs.js +14 -3
- package/dist/chrome/toolbar.js +6 -3
- package/dist/chrome/tree.js +3 -2
- package/dist/color/_thumb.js +9 -3
- package/dist/color/color-area.js +1 -1
- package/dist/color/color-swatch.js +1 -1
- package/dist/configurator/_overrides.js +13 -4
- package/dist/configurator/configurator.js +4 -1
- package/dist/configurator/export-dialog.js +5 -2
- package/dist/configurator/panel-sections.js +6 -2
- package/dist/configurator/token-editor.js +4 -1
- package/dist/date/_trigger.js +4 -1
- package/dist/date/calendar.js +22 -12
- package/dist/dmx/channel-matrix.js +3 -2
- package/dist/dmx/dmx-bar.js +1 -1
- package/dist/dmx/dmx-strip.js +1 -1
- package/dist/dmx/universe-grid.js +3 -2
- package/dist/elements/activity-graph.js +3 -3
- package/dist/elements/agent-card.js +3 -3
- package/dist/elements/approval-card.js +3 -3
- package/dist/elements/artifact-card.js +2 -2
- package/dist/elements/background-inbox.js +2 -2
- package/dist/elements/canvas-split.js +2 -2
- package/dist/elements/chart.js +1 -1
- package/dist/elements/chat-panel.js +2 -2
- package/dist/elements/checkpoint-history.js +2 -2
- package/dist/elements/clamp.js +2 -1
- package/dist/elements/code-diff.js +1 -1
- package/dist/elements/code-runner.js +1 -1
- package/dist/elements/command-palette.js +6 -5
- package/dist/elements/comparison-card.js +2 -2
- package/dist/elements/composer.js +9 -8
- package/dist/elements/computer-use.js +1 -1
- package/dist/elements/confidence-marker.js +2 -1
- package/dist/elements/connection-state.js +1 -1
- package/dist/elements/context-breakdown.js +1 -1
- package/dist/elements/context-usage.js +1 -1
- package/dist/elements/conversation-search.js +4 -3
- package/dist/elements/cost-meter.js +1 -1
- package/dist/elements/data-table.js +2 -2
- package/dist/elements/day-separator.js +1 -1
- package/dist/elements/diagram.js +1 -1
- package/dist/elements/document-reference.js +3 -3
- package/dist/elements/draft-restore.js +1 -1
- package/dist/elements/edit-message.js +4 -3
- package/dist/elements/elements.css +26 -5
- package/dist/elements/elicitation-form.js +3 -3
- package/dist/elements/empty-state.js +2 -1
- package/dist/elements/error-state.js +1 -1
- package/dist/elements/feedback-dialog.js +4 -3
- package/dist/elements/file-tree.js +2 -2
- package/dist/elements/flow-graph.js +2 -2
- package/dist/elements/guardrail-notice.js +3 -3
- package/dist/elements/image-generation.js +1 -1
- package/dist/elements/inline-citation.js +3 -3
- package/dist/elements/job-progress.js +3 -3
- package/dist/elements/launcher-bubble.js +2 -2
- package/dist/elements/loading-state.js +1 -1
- package/dist/elements/map-answer.js +3 -2
- package/dist/elements/markdown.js +5 -4
- package/dist/elements/math-block.js +1 -1
- package/dist/elements/mcp-server-panel.js +3 -3
- package/dist/elements/message-attachment.js +4 -4
- package/dist/elements/message-pair.js +1 -1
- package/dist/elements/message-queue.js +2 -2
- package/dist/elements/mobile-composer.js +4 -3
- package/dist/elements/model-picker.js +3 -3
- package/dist/elements/onboarding.js +2 -2
- package/dist/elements/permission-grant.js +2 -2
- package/dist/elements/permission-scopes.js +5 -4
- package/dist/elements/prompt-library.js +7 -6
- package/dist/elements/queue-dock.js +4 -3
- package/dist/elements/quota-banner.js +1 -1
- package/dist/elements/quote-reply.js +1 -1
- package/dist/elements/read-aloud.js +2 -2
- package/dist/elements/reasoning-panel.js +2 -1
- package/dist/elements/recommendation-card.d.ts +1 -1
- package/dist/elements/recommendation-card.js +2 -2
- package/dist/elements/regenerate-menu.js +2 -2
- package/dist/elements/research-report.js +1 -1
- package/dist/elements/retrieval-chunks.js +1 -1
- package/dist/elements/revert-dock.js +5 -4
- package/dist/elements/reviewable-diff.js +1 -1
- package/dist/elements/schedule-card.js +3 -3
- package/dist/elements/score-breakdown.js +1 -1
- package/dist/elements/scroll-anchor.js +2 -2
- package/dist/elements/settings-panel.js +3 -2
- package/dist/elements/shared-conversation.js +2 -2
- package/dist/elements/sources.js +4 -3
- package/dist/elements/speaker-identity.js +1 -1
- package/dist/elements/spec-sheet.js +1 -1
- package/dist/elements/streaming-text.js +1 -1
- package/dist/elements/subagent-list.js +2 -2
- package/dist/elements/suggestions.js +1 -1
- package/dist/elements/surfaces.d.ts +1 -1
- package/dist/elements/surfaces.js +2 -1
- package/dist/elements/tail-status.js +1 -1
- package/dist/elements/terminal-block.js +1 -1
- package/dist/elements/thread-list.js +1 -1
- package/dist/elements/thread-search.js +5 -4
- package/dist/elements/timeline.js +1 -1
- package/dist/elements/todo-list.js +2 -2
- package/dist/elements/tool-call.js +4 -3
- package/dist/elements/tool-error.js +2 -2
- package/dist/elements/tool-group.js +1 -1
- package/dist/elements/tool-timeline.js +4 -3
- package/dist/elements/trace-waterfall.js +1 -1
- package/dist/elements/verdict-row.js +2 -2
- package/dist/elements/voice-conversation.js +3 -2
- package/dist/elements/web-preview.js +1 -1
- package/dist/elements/web-search.js +2 -2
- package/dist/elements/work-collapse.js +2 -1
- package/dist/flow/node-card.js +3 -2
- package/dist/flow/use-flow-theme.js +2 -1
- package/dist/forms/_chassis.d.ts +34 -6
- package/dist/forms/_chassis.js +44 -9
- package/dist/forms/_listbox.js +22 -14
- package/dist/forms/checkbox.js +13 -4
- package/dist/forms/env-var-input.js +3 -2
- package/dist/forms/field.d.ts +2 -1
- package/dist/forms/field.js +16 -5
- package/dist/forms/file-upload.js +3 -2
- package/dist/forms/input-group.js +11 -2
- package/dist/forms/multi-select.js +4 -3
- package/dist/forms/number-field.js +7 -3
- package/dist/forms/otp-field.js +15 -6
- package/dist/forms/password-input.js +4 -2
- package/dist/forms/radio-group.js +10 -4
- package/dist/forms/rating.js +2 -1
- package/dist/forms/scrub-input.js +2 -1
- package/dist/forms/search-input.js +2 -1
- package/dist/forms/select.js +10 -4
- package/dist/forms/slider.js +9 -3
- package/dist/forms/switch.js +9 -3
- package/dist/forms/tags-input.js +4 -3
- package/dist/forms/textarea.js +3 -1
- package/dist/forms/toggle-group.js +2 -1
- package/dist/forms/toggle.js +5 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/instruments/_data-row.js +2 -1
- package/dist/instruments/app-window-frame.js +1 -1
- package/dist/instruments/code-block.js +8 -2
- package/dist/instruments/group-bar.js +1 -1
- package/dist/instruments/ledger.js +6 -2
- package/dist/instruments/log-viewer.js +4 -3
- package/dist/instruments/meter.js +2 -1
- package/dist/instruments/progress.js +9 -3
- package/dist/instruments/seam-grid.js +5 -3
- package/dist/instruments/stat.js +13 -4
- package/dist/instruments/table.js +29 -10
- package/dist/instruments/terminal-frame.js +4 -2
- package/dist/instruments/usage-chart.js +1 -1
- package/dist/layout/_collapse.js +26 -5
- package/dist/layout/accordion.js +2 -1
- package/dist/layout/bento.js +7 -4
- package/dist/layout/breadcrumb.js +10 -5
- package/dist/layout/card.js +14 -7
- package/dist/layout/carousel.js +3 -2
- package/dist/layout/collapsible.js +6 -1
- package/dist/layout/container.js +2 -1
- package/dist/layout/description-list.js +4 -1
- package/dist/layout/frames.js +11 -5
- package/dist/layout/item.js +3 -2
- package/dist/layout/link.d.ts +30 -0
- package/dist/layout/link.js +22 -3
- package/dist/layout/pagination.js +8 -8
- package/dist/layout/preview.d.ts +32 -12
- package/dist/layout/preview.js +149 -40
- package/dist/layout/resizable.js +2 -1
- package/dist/layout/sidebar.js +11 -3
- package/dist/layout/stepper.js +6 -2
- package/dist/lib/cn.js +29 -2
- package/dist/midi/piano-keyboard.js +3 -2
- package/dist/midi/spectrum-visualizer.js +1 -1
- package/dist/midi/threshold-rail.js +2 -1
- package/dist/midi/timeline-ruler.js +1 -1
- package/dist/overlays/_surface.d.ts +74 -14
- package/dist/overlays/_surface.js +87 -14
- package/dist/overlays/alert-dialog.js +1 -1
- package/dist/overlays/command-palette.js +28 -9
- package/dist/overlays/dialog.d.ts +5 -0
- package/dist/overlays/dialog.js +6 -1
- package/dist/overlays/drawer.js +8 -1
- package/dist/overlays/hover-card.js +3 -1
- package/dist/overlays/info-tip.js +2 -1
- package/dist/overlays/menubar.js +3 -1
- package/dist/overlays/popover.js +3 -1
- package/dist/overlays/toast.js +14 -6
- package/dist/overlays/tooltip.js +3 -1
- package/dist/primitives/avatar.js +6 -2
- package/dist/primitives/button.d.ts +16 -1
- package/dist/primitives/button.js +44 -12
- package/dist/primitives/chip.d.ts +11 -29
- package/dist/primitives/chip.js +40 -50
- package/dist/primitives/icon-button.d.ts +1 -1
- package/dist/primitives/kbd.d.ts +6 -0
- package/dist/primitives/kbd.js +10 -1
- package/dist/primitives/skeleton.js +2 -1
- package/dist/system/_focus-ring-field.js +29 -0
- package/dist/system/_focus-ring.js +125 -0
- package/dist/system/_paint-glow.js +22 -3
- package/dist/system/_paint-rest-shade.js +32 -0
- package/dist/system/_paint-rim.js +22 -4
- package/dist/system/_paint-stroke-surface-1.js +1 -1
- package/dist/system/_paint-stroke-surface-2.js +14 -1
- package/dist/system/_paint-texture.js +5 -2
- package/dist/system/_style-accordion-rule.js +32 -0
- package/dist/system/_style-app-bar.js +65 -0
- package/dist/system/_style-avatar.js +20 -0
- package/dist/system/_style-band.js +57 -0
- package/dist/system/_style-body-leading.js +19 -0
- package/dist/system/_style-body-size.js +30 -0
- package/dist/system/_style-body-weight.js +24 -0
- package/dist/system/_style-body.js +32 -0
- package/dist/system/_style-caption-ink.js +17 -0
- package/dist/system/_style-caption-size.js +19 -0
- package/dist/system/_style-caption-weight.js +18 -0
- package/dist/system/_style-caption.js +19 -0
- package/dist/system/_style-card-gap.js +14 -0
- package/dist/system/_style-card-pad.js +43 -0
- package/dist/system/_style-cell.js +18 -0
- package/dist/system/_style-check-glyph.js +14 -0
- package/dist/system/_style-check.js +40 -0
- package/dist/system/_style-chip.js +143 -0
- package/dist/system/_style-choice-gap.js +15 -0
- package/dist/system/_style-code.js +13 -0
- package/dist/system/_style-collapse.js +94 -0
- package/dist/system/_style-control-face.js +29 -0
- package/dist/system/_style-control-gap.js +14 -0
- package/dist/system/_style-control-label.js +29 -0
- package/dist/system/_style-control-step.js +22 -0
- package/dist/system/_style-control.js +76 -0
- package/dist/system/_style-crumb.js +44 -0
- package/dist/system/_style-data-face.js +28 -0
- package/dist/system/_style-day.js +25 -0
- package/dist/system/_style-description.js +23 -0
- package/dist/system/_style-disabled.js +70 -0
- package/dist/system/_style-disclosure.js +21 -0
- package/dist/system/_style-empty-state.js +42 -0
- package/dist/system/_style-eyebrow.js +43 -0
- package/dist/system/_style-field-chassis.js +38 -0
- package/dist/system/_style-field-gap.js +12 -0
- package/dist/system/_style-footer-rule.js +47 -0
- package/dist/system/_style-glyph-ink.js +20 -0
- package/dist/system/_style-glyph-opacity.js +20 -0
- package/dist/system/_style-glyph-size.js +21 -0
- package/dist/system/_style-group-gap.js +15 -0
- package/dist/system/_style-group-label-pad.js +14 -0
- package/dist/system/_style-group-label.js +24 -0
- package/dist/system/_style-gutter.js +17 -0
- package/dist/system/_style-help-ink.js +14 -0
- package/dist/system/_style-help.js +38 -0
- package/dist/system/_style-hover-card-width.js +15 -0
- package/dist/system/_style-input-face.js +34 -0
- package/dist/system/_style-kbd.js +58 -0
- package/dist/system/_style-label-case.js +36 -0
- package/dist/system/_style-label-face.js +32 -0
- package/dist/system/_style-label-ink.js +29 -0
- package/dist/system/_style-label-leading.js +14 -0
- package/dist/system/_style-label-size.js +36 -0
- package/dist/system/_style-label-tracking.js +45 -0
- package/dist/system/_style-label-weight.js +40 -0
- package/dist/system/_style-lede.js +49 -0
- package/dist/system/_style-link.js +58 -0
- package/dist/system/_style-menu.js +43 -0
- package/dist/system/_style-meter.js +15 -0
- package/dist/system/_style-nav-item.js +41 -0
- package/dist/system/_style-nav-menu.js +48 -0
- package/dist/system/_style-nav-voice.js +43 -0
- package/dist/system/_style-option.js +99 -0
- package/dist/system/_style-otp.js +15 -0
- package/dist/system/_style-outline-hover.js +18 -0
- package/dist/system/_style-overlay-title.js +35 -0
- package/dist/system/_style-page-title.js +48 -0
- package/dist/system/_style-page.js +17 -0
- package/dist/system/_style-palette.js +18 -0
- package/dist/system/_style-panel.js +21 -0
- package/dist/system/_style-popover-pad.js +13 -0
- package/dist/system/_style-popover-width.js +15 -0
- package/dist/system/_style-quiet-ink.js +13 -0
- package/dist/system/_style-radio.js +19 -0
- package/dist/system/_style-row-disabled.js +17 -0
- package/dist/system/_style-row-pad.js +13 -0
- package/dist/system/_style-row.js +30 -0
- package/dist/system/_style-scrollbar.js +19 -0
- package/dist/system/_style-seam.js +43 -0
- package/dist/system/_style-section-rule.js +26 -0
- package/dist/system/_style-segment-pad.js +15 -0
- package/dist/system/_style-segment.js +30 -0
- package/dist/system/_style-segmented-control.js +86 -0
- package/dist/system/_style-selected.js +36 -0
- package/dist/system/_style-skeleton.js +15 -0
- package/dist/system/_style-slider.js +26 -0
- package/dist/system/_style-stage-marks.js +26 -0
- package/dist/system/_style-stat.js +31 -0
- package/dist/system/_style-stepper.js +16 -0
- package/dist/system/_style-switch.js +26 -0
- package/dist/system/_style-tab-hover.js +15 -0
- package/dist/system/_style-tab.js +71 -0
- package/dist/system/_style-text-focus.js +26 -0
- package/dist/system/_style-textarea.js +21 -0
- package/dist/system/_style-title.js +37 -0
- package/dist/system/_style-toast.js +22 -0
- package/dist/system/_style-toggle.js +50 -0
- package/dist/system/_style-toolbar.js +23 -0
- package/dist/system/_style-tooltip.js +46 -0
- package/dist/system/density.d.ts +15 -5
- package/dist/system/density.js +188 -25
- package/dist/system/index.d.ts +2 -2
- package/dist/system/index.js +2 -2
- package/dist/system/overrides.d.ts +1 -0
- package/dist/system/overrides.js +151 -3
- package/dist/system/portal.d.ts +3 -2
- package/dist/system/portal.js +22 -10
- package/dist/system/prepaint.d.ts +21 -5
- package/dist/system/prepaint.js +3 -1
- package/dist/system/published.d.ts +1 -0
- package/dist/system/published.js +131 -0
- package/dist/system/theme-provider.d.ts +118 -21
- package/dist/system/theme-provider.js +362 -73
- package/dist/system/theme-registry.d.ts +2 -1
- package/dist/system/theme-registry.js +27 -10
- package/dist/system/use-density.js +4 -3
- package/dist/system/use-theme.d.ts +5 -2
- package/dist/system/use-theme.js +7 -4
- package/dist/system/vocabulary.js +2 -2
- package/dist/theming/create-theme.js +12 -6
- package/dist/theming/serialize.d.ts +34 -2
- package/dist/theming/serialize.js +86 -4
- package/manifest/components/accordion.json +29 -2
- package/manifest/components/agent-pile.json +3 -0
- package/manifest/components/alert-dialog.json +36 -3
- package/manifest/components/app-bar.json +61 -2
- package/manifest/components/app-shell.json +5 -0
- package/manifest/components/ask-box.json +3 -1
- package/manifest/components/autocomplete.json +85 -1
- package/manifest/components/avatar-group.json +7 -0
- package/manifest/components/avatar.json +7 -0
- package/manifest/components/band.json +7 -3
- package/manifest/components/bento.json +12 -1
- package/manifest/components/breadcrumb.json +12 -0
- package/manifest/components/button.json +43 -4
- package/manifest/components/calendar.json +13 -0
- package/manifest/components/card.json +23 -1
- package/manifest/components/carousel.json +4 -1
- package/manifest/components/channel-matrix.json +37 -3
- package/manifest/components/chart-tooltip-content.json +35 -3
- package/manifest/components/chat-empty-state.json +3 -1
- package/manifest/components/checkbox-group.json +36 -1
- package/manifest/components/checkbox.json +36 -1
- package/manifest/components/chip.json +22 -1
- package/manifest/components/clamp.json +3 -1
- package/manifest/components/code-block.json +10 -1
- package/manifest/components/collapsible.json +35 -2
- package/manifest/components/color-area.json +4 -2
- package/manifest/components/color-field.json +29 -0
- package/manifest/components/color-picker.json +29 -0
- package/manifest/components/color-slider.json +3 -1
- package/manifest/components/colors-section.json +9 -1
- package/manifest/components/combobox.json +85 -1
- package/manifest/components/command-palette.json +39 -3
- package/manifest/components/composer-actions.json +3 -0
- package/manifest/components/composer-attach-button.json +3 -0
- package/manifest/components/composer-attachment-chip.json +3 -0
- package/manifest/components/composer-attachments.json +3 -0
- package/manifest/components/composer-bar.json +3 -0
- package/manifest/components/composer-command-item.json +3 -0
- package/manifest/components/composer-context.json +3 -0
- package/manifest/components/composer-input.json +3 -0
- package/manifest/components/composer-menu-item.json +3 -0
- package/manifest/components/composer-menu.json +3 -0
- package/manifest/components/composer-model-item.json +3 -0
- package/manifest/components/composer-model-trigger.json +3 -0
- package/manifest/components/composer-person-item.json +3 -0
- package/manifest/components/composer-send.json +3 -0
- package/manifest/components/composer-toolbar.json +3 -0
- package/manifest/components/composer-voice-button.json +3 -0
- package/manifest/components/composer-voice.json +3 -0
- package/manifest/components/composer.json +29 -0
- package/manifest/components/confidence-marker.json +3 -1
- package/manifest/components/container.json +2 -1
- package/manifest/components/context-menu.json +35 -3
- package/manifest/components/conversation-search.json +3 -1
- package/manifest/components/cue-mark.json +2 -2
- package/manifest/components/cue-portal-frame.json +1 -1
- package/manifest/components/data-row.json +3 -1
- package/manifest/components/data-tree.json +3 -1
- package/manifest/components/date-field.json +28 -0
- package/manifest/components/date-picker.json +32 -0
- package/manifest/components/date-range-picker.json +32 -0
- package/manifest/components/delegation-card.json +3 -1
- package/manifest/components/density.json +15 -7
- package/manifest/components/description-list.json +6 -1
- package/manifest/components/dialog.json +37 -3
- package/manifest/components/disclosure.json +35 -2
- package/manifest/components/dmx-bar.json +34 -3
- package/manifest/components/dmx-strip.json +34 -3
- package/manifest/components/drawer.json +36 -3
- package/manifest/components/dropdown-menu.json +35 -3
- package/manifest/components/edit-message.json +3 -1
- package/manifest/components/elements-command-palette.json +3 -1
- package/manifest/components/elements-composer.json +3 -0
- package/manifest/components/empty-state-composer.json +3 -1
- package/manifest/components/empty-state-greeting.json +3 -1
- package/manifest/components/empty-state-suggestion.json +3 -1
- package/manifest/components/empty-state-suggestions.json +3 -1
- package/manifest/components/empty-state.json +13 -0
- package/manifest/components/env-var-input.json +28 -0
- package/manifest/components/export-dialog.json +6 -1
- package/manifest/components/eyebrow.json +13 -2
- package/manifest/components/feedback-dialog.json +3 -0
- package/manifest/components/field-description.json +15 -0
- package/manifest/components/field-error.json +15 -0
- package/manifest/components/field-label.json +16 -1
- package/manifest/components/field.json +15 -0
- package/manifest/components/file-upload.json +3 -0
- package/manifest/components/footer.json +14 -1
- package/manifest/components/frames.json +14 -1
- package/manifest/components/hover-card.json +37 -3
- package/manifest/components/info-tip.json +3 -0
- package/manifest/components/input-group.json +31 -0
- package/manifest/components/input.json +29 -0
- package/manifest/components/item.json +3 -1
- package/manifest/components/kbd.json +12 -1
- package/manifest/components/ledger.json +9 -2
- package/manifest/components/link.json +33 -0
- package/manifest/components/log-viewer.json +3 -0
- package/manifest/components/map-answer.json +3 -1
- package/manifest/components/markdown-text.json +3 -0
- package/manifest/components/menubar.json +38 -4
- package/manifest/components/message-list.json +3 -0
- package/manifest/components/message.json +6 -1
- package/manifest/components/meter.json +1 -0
- package/manifest/components/mobile-composer.json +3 -1
- package/manifest/components/multi-select.json +86 -1
- package/manifest/components/musical-time-input.json +29 -0
- package/manifest/components/navigation-menu.json +48 -3
- package/manifest/components/node-card.json +3 -0
- package/manifest/components/number-field.json +30 -0
- package/manifest/components/otp-field.json +29 -0
- package/manifest/components/page-shell.json +14 -0
- package/manifest/components/pagination.json +22 -0
- package/manifest/components/panel-header.json +13 -0
- package/manifest/components/panel.json +14 -1
- package/manifest/components/password-input.json +28 -0
- package/manifest/components/permission-scopes.json +3 -1
- package/manifest/components/piano-keyboard.json +3 -0
- package/manifest/components/popover.json +37 -3
- package/manifest/components/preset-section.json +9 -1
- package/manifest/components/preview.json +24 -10
- package/manifest/components/progress.json +10 -1
- package/manifest/components/prompt-library.json +3 -1
- package/manifest/components/queue-dock.json +3 -1
- package/manifest/components/radio-group.json +14 -0
- package/manifest/components/radio.json +14 -0
- package/manifest/components/rating.json +4 -1
- package/manifest/components/reasoning-panel.json +3 -1
- package/manifest/components/recommendation-card.json +1 -1
- package/manifest/components/resizable.json +4 -1
- package/manifest/components/revert-dock.json +3 -1
- package/manifest/components/row.json +8 -1
- package/manifest/components/scroll-area.json +6 -2
- package/manifest/components/scrollable-tabs-list.json +21 -0
- package/manifest/components/scrub-input.json +28 -0
- package/manifest/components/seam-cell.json +1 -0
- package/manifest/components/seam-grid.json +1 -0
- package/manifest/components/seam-list.json +8 -1
- package/manifest/components/search-input.json +28 -0
- package/manifest/components/section-header.json +15 -2
- package/manifest/components/segmented-control.json +17 -0
- package/manifest/components/select.json +42 -0
- package/manifest/components/settings-panel.json +3 -0
- package/manifest/components/shape-section.json +9 -1
- package/manifest/components/sheet.json +35 -3
- package/manifest/components/shimmer-label.json +3 -0
- package/manifest/components/sidebar.json +19 -2
- package/manifest/components/skeleton.json +2 -0
- package/manifest/components/slider.json +16 -0
- package/manifest/components/sources.json +3 -1
- package/manifest/components/stat.json +17 -0
- package/manifest/components/status-bar.json +4 -0
- package/manifest/components/stepper.json +8 -0
- package/manifest/components/swap-label.json +3 -0
- package/manifest/components/switch.json +30 -0
- package/manifest/components/table-scroll-region.json +22 -2
- package/manifest/components/table.json +22 -2
- package/manifest/components/tabs.json +22 -1
- package/manifest/components/tags-input.json +86 -1
- package/manifest/components/terminal-frame.json +3 -0
- package/manifest/components/textarea.json +31 -0
- package/manifest/components/theme-configurator.json +35 -3
- package/manifest/components/theme-provider.json +31 -19
- package/manifest/components/thread-search.json +3 -1
- package/manifest/components/threshold-rail.json +3 -0
- package/manifest/components/time-field.json +28 -0
- package/manifest/components/toast.json +39 -2
- package/manifest/components/toggle-group.json +2 -1
- package/manifest/components/toggle.json +32 -0
- package/manifest/components/token-editor.json +6 -1
- package/manifest/components/tool-call-card.json +9 -2
- package/manifest/components/tool-call.json +3 -1
- package/manifest/components/tool-timeline.json +3 -1
- package/manifest/components/toolbar.json +22 -1
- package/manifest/components/tooltip.json +42 -3
- package/manifest/components/tree-visibility-toggle.json +3 -0
- package/manifest/components/tree.json +3 -0
- package/manifest/components/universe-grid.json +3 -0
- package/manifest/components/voice-conversation.json +3 -0
- package/manifest/components/work-collapse.json +3 -1
- package/manifest/fixtures.json +15 -0
- package/manifest/manifest.json +210 -190
- package/manifest/tokens.json +395 -4
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { THEME_NAME_PATTERN as THEME_NAME_PATTERN$1, assertCssValue, serializeSystemModeAliases, serializeThemeBlock, tokenProperty } from "../theming/serialize.js";
|
|
1
|
+
import { THEME_NAME_PATTERN as THEME_NAME_PATTERN$1, assertCssValue, followerSelector, serializeSystemModeAliases, serializeThemeBlock, themeFollowerSelector, tokenProperty } from "../theming/serialize.js";
|
|
2
2
|
import { DEFAULT_DENSITY_LEVEL, DENSITY_RADIUS_SCALE, THEME_COLOR_TOKENS } from "../theming/create-theme.js";
|
|
3
3
|
import { resolve } from "@cueplusplus/theme-base";
|
|
4
4
|
//#region src/configurator/_overrides.ts
|
|
@@ -320,9 +320,18 @@ function orderedDeclarations(entries) {
|
|
|
320
320
|
* form: a bare `[data-theme="x"]` for dark, because that is the block a
|
|
321
321
|
* stylesheet writes first. An override has to beat that block **and** the light
|
|
322
322
|
* block above it, so it always names the mode.
|
|
323
|
+
*
|
|
324
|
+
* Which is why it carries the follower's twin in both modes, not only in light:
|
|
325
|
+
* a theme island that follows a persisting root's mode stamps no `data-mode`
|
|
326
|
+
* until it mounts, and a compound naming `dark` misses it exactly as one naming
|
|
327
|
+
* `light` does (see `followerSelector`). And the theme follower's twin for the
|
|
328
|
+
* same reason one axis over: an island that names a mode and follows the
|
|
329
|
+
* root's theme stamps no `data-theme` until it mounts (see
|
|
330
|
+
* `themeFollowerSelector`). Same specificity, so source order still puts these
|
|
331
|
+
* after every theme's own blocks.
|
|
323
332
|
*/
|
|
324
333
|
function overrideSelector(theme, mode) {
|
|
325
|
-
return
|
|
334
|
+
return `${themeFollowerSelector(theme, mode)},\n${followerSelector(theme, "mode", mode)},\n[data-theme="${theme}"][data-mode="${mode}"]`;
|
|
326
335
|
}
|
|
327
336
|
/** Round a product of two scales to something a stylesheet can print. */
|
|
328
337
|
const scaled = (a, b) => String(Number((a * b).toFixed(4)));
|
|
@@ -376,7 +385,7 @@ function serializeOverrideCss(overrides, options = {}) {
|
|
|
376
385
|
if (scaledDeclarations.length > 0) for (const level of DENSITY_LEVELS) {
|
|
377
386
|
const isDefault = level === DEFAULT_DENSITY_LEVEL;
|
|
378
387
|
blocks.push({
|
|
379
|
-
selector:
|
|
388
|
+
selector: `:where(:root[data-density="${level}"]) [data-cue-follows~="density"],\n${isDefault ? ":root,\n" : ""}[data-density="${level}"]`,
|
|
380
389
|
sections: [{
|
|
381
390
|
comment: isDefault ? CROSSED_COMMENT : void 0,
|
|
382
391
|
declarations: scaledDeclarations.map(([property, value]) => [property, crossed(property, value, level)])
|
|
@@ -384,7 +393,7 @@ function serializeOverrideCss(overrides, options = {}) {
|
|
|
384
393
|
});
|
|
385
394
|
}
|
|
386
395
|
if (flatDeclarations.length > 0) blocks.push({
|
|
387
|
-
selector: ":root,\n[data-density]",
|
|
396
|
+
selector: "[data-cue-follows~=\"density\"],\n:root,\n[data-density]",
|
|
388
397
|
sections: [{ declarations: flatDeclarations }]
|
|
389
398
|
});
|
|
390
399
|
if (inlineDeclarations.length > 0) blocks.push({
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
3
|
import { Button } from "../primitives/button.js";
|
|
4
|
+
import { LABEL_FACE } from "../system/_style-label-face.js";
|
|
4
5
|
import { Chip } from "../primitives/chip.js";
|
|
5
6
|
import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
|
|
7
|
+
import { LABEL_CASE } from "../system/_style-label-case.js";
|
|
8
|
+
import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
|
|
6
9
|
import { overlaySurfaceClasses } from "../overlays/_surface.js";
|
|
7
10
|
import { IconButton } from "../primitives/icon-button.js";
|
|
8
11
|
import { TwoStepButton } from "../instruments/two-step-button.js";
|
|
@@ -221,7 +224,7 @@ function ThemeConfigurator({ position: positionProp, defaultPosition = "floating
|
|
|
221
224
|
}),
|
|
222
225
|
/* @__PURE__ */ jsx("span", {
|
|
223
226
|
id: titleId,
|
|
224
|
-
className: "flex-1 truncate
|
|
227
|
+
className: cn("flex-1 truncate text-(length:--cue-text-label) text-fg-muted", LABEL_FACE, LABEL_TRACKING, LABEL_CASE),
|
|
225
228
|
children: title
|
|
226
229
|
}),
|
|
227
230
|
moved === 0 ? null : /* @__PURE__ */ jsx(Chip, {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Input } from "../forms/input.js";
|
|
3
3
|
import { Button } from "../primitives/button.js";
|
|
4
|
+
import { LABEL_FACE } from "../system/_style-label-face.js";
|
|
5
|
+
import { LABEL_CASE } from "../system/_style-label-case.js";
|
|
6
|
+
import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
|
|
4
7
|
import { Tabs } from "../chrome/tabs.js";
|
|
5
8
|
import { Field, FieldLabel } from "../forms/field.js";
|
|
6
9
|
import { CopyButton } from "../instruments/copy-button.js";
|
|
@@ -70,7 +73,7 @@ function ExportDialog({ open, onOpenChange, overrides, scope, defaultFormat = "c
|
|
|
70
73
|
/* @__PURE__ */ jsxs(Field, {
|
|
71
74
|
className: "gap-(--cue-space-1)",
|
|
72
75
|
children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
73
|
-
className:
|
|
76
|
+
className: `${LABEL_FACE} text-(length:--cue-text-micro) ${LABEL_TRACKING} ${LABEL_CASE}`,
|
|
74
77
|
children: "Theme name"
|
|
75
78
|
}), /* @__PURE__ */ jsx(Input, {
|
|
76
79
|
size: "sm",
|
|
@@ -96,7 +99,7 @@ function ExportDialog({ open, onOpenChange, overrides, scope, defaultFormat = "c
|
|
|
96
99
|
}), /* @__PURE__ */ jsx("pre", {
|
|
97
100
|
"data-testid": "configurator-export-text",
|
|
98
101
|
"data-slot": "configurator-export-text",
|
|
99
|
-
className: "max-h-[38vh] overflow-auto rounded-
|
|
102
|
+
className: "max-h-[38vh] overflow-auto rounded-control border border-border bg-sunken p-(--cue-space-3) font-mono text-(length:--cue-text-label) leading-(--cue-leading-ui) whitespace-pre text-fg",
|
|
100
103
|
children: entry.text
|
|
101
104
|
})]
|
|
102
105
|
}, entry.id))]
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.js";
|
|
3
4
|
import { Input } from "../forms/input.js";
|
|
5
|
+
import { LABEL_FACE } from "../system/_style-label-face.js";
|
|
6
|
+
import { LABEL_CASE } from "../system/_style-label-case.js";
|
|
7
|
+
import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
|
|
4
8
|
import { useDensities, useThemes } from "../system/theme-registry.js";
|
|
5
9
|
import { SectionHeader } from "../chrome/section-header.js";
|
|
6
10
|
import { SegmentedControl } from "../chrome/segmented-control.js";
|
|
@@ -133,7 +137,7 @@ function TextTokenField({ label, token, edits, placeholder }) {
|
|
|
133
137
|
return /* @__PURE__ */ jsxs(Field, {
|
|
134
138
|
className: "gap-(--cue-space-1)",
|
|
135
139
|
children: [/* @__PURE__ */ jsx(FieldLabel, {
|
|
136
|
-
className:
|
|
140
|
+
className: `${LABEL_FACE} text-(length:--cue-text-micro) ${LABEL_TRACKING} ${LABEL_CASE}`,
|
|
137
141
|
children: label
|
|
138
142
|
}), /* @__PURE__ */ jsx(Input, {
|
|
139
143
|
size: "sm",
|
|
@@ -193,7 +197,7 @@ function PresetSection({ edits, zoom, className }) {
|
|
|
193
197
|
"aria-pressed": active,
|
|
194
198
|
"data-slot": "configurator-preset",
|
|
195
199
|
onClick: () => setTheme(name),
|
|
196
|
-
className: cn(
|
|
200
|
+
className: cn(`flex cursor-pointer flex-col gap-(--cue-space-2) rounded-control border p-(--cue-space-2) text-left outline-none ${FOCUS_RING}`, active ? "border-accent text-accent" : "border-border text-fg-muted hover:border-border-strong hover:text-fg"),
|
|
197
201
|
children: [/* @__PURE__ */ jsx("span", {
|
|
198
202
|
className: "truncate font-mono text-(length:--cue-text-label)",
|
|
199
203
|
children: name
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { LABEL_FACE } from "../system/_style-label-face.js";
|
|
4
|
+
import { LABEL_CASE } from "../system/_style-label-case.js";
|
|
5
|
+
import { LABEL_TRACKING } from "../system/_style-label-tracking.js";
|
|
3
6
|
import { IconButton } from "../primitives/icon-button.js";
|
|
4
7
|
import { tokenProperty } from "../theming/serialize.js";
|
|
5
8
|
import { ColorPicker } from "../color/color-picker.js";
|
|
@@ -133,7 +136,7 @@ function TokenEditor({ values, overridden, onTokenChange, onTokenReset, groups =
|
|
|
133
136
|
"data-slot": "configurator-token-group",
|
|
134
137
|
className: "flex flex-col gap-(--cue-space-2)",
|
|
135
138
|
children: [/* @__PURE__ */ jsx("span", {
|
|
136
|
-
className: "
|
|
139
|
+
className: cn("text-(length:--cue-text-micro) text-fg-subtle", LABEL_FACE, LABEL_TRACKING, LABEL_CASE),
|
|
137
140
|
children: group.label
|
|
138
141
|
}), group.tokens.map((token) => {
|
|
139
142
|
const property = tokenProperty(token);
|
package/dist/date/_trigger.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
2
|
import { controlVariants } from "../forms/_chassis.js";
|
|
3
|
+
import { GLYPH_INK_SUBTLE } from "../system/_style-glyph-ink.js";
|
|
4
|
+
import { GLYPH_OPACITY } from "../system/_style-glyph-opacity.js";
|
|
5
|
+
import { GLYPH_SIZE } from "../system/_style-glyph-size.js";
|
|
3
6
|
//#region src/date/_trigger.ts
|
|
4
7
|
/**
|
|
5
8
|
* The shared skin of the two popover-backed date controls, `DatePicker` and
|
|
@@ -24,7 +27,7 @@ const dateTriggerValueClasses = "truncate tabular-nums";
|
|
|
24
27
|
/** Placeholder ink, applied to the readout when there is nothing to read. */
|
|
25
28
|
const dateTriggerPlaceholderClasses = "text-fg-subtle";
|
|
26
29
|
/** The trailing glyph — never a control, so it never takes the pointer. */
|
|
27
|
-
const dateTriggerGlyphClasses =
|
|
30
|
+
const dateTriggerGlyphClasses = `${GLYPH_SIZE} shrink-0 ${GLYPH_INK_SUBTLE} ${GLYPH_OPACITY}`;
|
|
28
31
|
/** Padding of the popup around a calendar: one unit tighter than a popover's. */
|
|
29
32
|
const datePopupClasses = "p-(--cue-space-3)";
|
|
30
33
|
//#endregion
|
package/dist/date/calendar.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.js";
|
|
4
|
+
import { GLYPH_INK_SUBTLE } from "../system/_style-glyph-ink.js";
|
|
5
|
+
import { GLYPH_OPACITY } from "../system/_style-glyph-opacity.js";
|
|
6
|
+
import { LABEL_FACE } from "../system/_style-label-face.js";
|
|
7
|
+
import { LABEL_CASE } from "../system/_style-label-case.js";
|
|
8
|
+
import { LABEL_TRACKING, LABEL_TRACKING_TIGHT } from "../system/_style-label-tracking.js";
|
|
9
|
+
import { CAPTION_SIZE_LABEL, CAPTION_SIZE_MICRO } from "../system/_style-caption-size.js";
|
|
10
|
+
import { CAPTION_WEIGHT, CAPTION_WEIGHT_NORMAL } from "../system/_style-caption-weight.js";
|
|
11
|
+
import { DAY_HEIGHT, DAY_INK, DAY_SIZE } from "../system/_style-day.js";
|
|
3
12
|
import "react";
|
|
4
13
|
import { jsx } from "react/jsx-runtime";
|
|
5
14
|
import { DayPicker } from "react-day-picker";
|
|
@@ -10,7 +19,8 @@ import { DayPicker } from "react-day-picker";
|
|
|
10
19
|
* react-day-picker ships its own stylesheet; this system never loads it. Each
|
|
11
20
|
* key below is one `UI` / `DayFlag` / `SelectionState` slot, dressed from the
|
|
12
21
|
* same tokens as the rest of the kit: the day cell is one rung of the control
|
|
13
|
-
* ladder (`size-control-sm
|
|
22
|
+
* ladder (`size-control-sm`, or a set's `style-day-size`, which the month-nav
|
|
23
|
+
* buttons and the caption row share), the caption is a mono micro label, the selected
|
|
14
24
|
* day takes the solid accent and a range's middle takes `accent-soft` — the
|
|
15
25
|
* same "soft tint for a span, solid for the thing you picked" rule the menus
|
|
16
26
|
* use.
|
|
@@ -22,30 +32,30 @@ const CALENDAR_CLASSES = {
|
|
|
22
32
|
root: "font-mono text-(length:--cue-text-ui) text-fg",
|
|
23
33
|
months: "relative flex flex-wrap items-start gap-(--cue-space-5)",
|
|
24
34
|
month: "flex flex-col gap-(--cue-space-2)",
|
|
25
|
-
month_caption:
|
|
26
|
-
caption_label:
|
|
27
|
-
nav:
|
|
28
|
-
button_previous:
|
|
29
|
-
button_next:
|
|
30
|
-
chevron:
|
|
35
|
+
month_caption: `flex ${DAY_HEIGHT} items-center justify-center`,
|
|
36
|
+
caption_label: `${LABEL_FACE} ${CAPTION_SIZE_LABEL} ${CAPTION_WEIGHT} ${LABEL_TRACKING} text-fg-subtle ${LABEL_CASE}`,
|
|
37
|
+
nav: `absolute inset-x-0 top-0 flex ${DAY_HEIGHT} items-center justify-between`,
|
|
38
|
+
button_previous: `flex ${DAY_SIZE} cursor-pointer items-center justify-center rounded-control border-0 bg-transparent p-0 ${GLYPH_INK_SUBTLE} outline-none transition-colors duration-150 hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none`,
|
|
39
|
+
button_next: `flex ${DAY_SIZE} cursor-pointer items-center justify-center rounded-control border-0 bg-transparent p-0 ${GLYPH_INK_SUBTLE} outline-none transition-colors duration-150 hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none`,
|
|
40
|
+
chevron: `size-icon-sm fill-current ${GLYPH_OPACITY}`,
|
|
31
41
|
month_grid: "border-collapse border-spacing-0",
|
|
32
42
|
weekdays: "",
|
|
33
|
-
weekday:
|
|
43
|
+
weekday: `${DAY_SIZE} p-0 text-center align-middle ${LABEL_FACE} ${CAPTION_SIZE_MICRO} ${CAPTION_WEIGHT_NORMAL} ${LABEL_TRACKING_TIGHT} text-fg-subtle ${LABEL_CASE}`,
|
|
34
44
|
week: "",
|
|
35
45
|
day: "p-0 text-center align-middle",
|
|
36
|
-
day_button:
|
|
46
|
+
day_button: `${DAY_SIZE} cursor-pointer rounded-control border-0 bg-transparent p-0 font-mono text-(length:--cue-text-ui) tabular-nums ${DAY_INK} outline-none transition-colors duration-150 hover:bg-surface-3 hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none`,
|
|
37
47
|
today: "[&_button]:font-medium [&_button]:ring-1 [&_button]:ring-inset [&_button]:ring-accent/60",
|
|
38
48
|
outside: "[&_button]:text-fg-subtle [&_button]:opacity-50",
|
|
39
49
|
disabled: "opacity-40",
|
|
40
50
|
hidden: "invisible",
|
|
41
51
|
selected: "bg-accent text-accent-fg [&_button]:bg-accent [&_button]:text-accent-fg [&_button]:hover:bg-accent-hover",
|
|
42
|
-
range_start: "rounded-l-
|
|
43
|
-
range_end: "rounded-r-
|
|
52
|
+
range_start: "rounded-l-control",
|
|
53
|
+
range_end: "rounded-r-control",
|
|
44
54
|
range_middle: "rounded-none bg-accent-soft text-fg [&_button]:rounded-none [&_button]:bg-transparent [&_button]:text-fg",
|
|
45
55
|
footer: "pt-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg-muted",
|
|
46
56
|
dropdowns: "flex items-center gap-(--cue-space-2)",
|
|
47
57
|
dropdown_root: "relative inline-flex items-center",
|
|
48
|
-
dropdown:
|
|
58
|
+
dropdown: `h-control-sm cursor-pointer rounded-control border border-border bg-sunken px-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg outline-none ${FOCUS_RING}`,
|
|
49
59
|
week_number: "size-control-sm text-center align-middle font-mono text-(length:--cue-text-micro) tabular-nums text-fg-subtle",
|
|
50
60
|
week_number_header: "size-control-sm text-center align-middle font-mono text-(length:--cue-text-micro) text-fg-subtle"
|
|
51
61
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.js";
|
|
3
4
|
import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
|
|
4
5
|
import { useComposedRefs } from "../lib/compose.js";
|
|
5
6
|
import { useCuePortalProps } from "../system/portal.js";
|
|
@@ -237,7 +238,7 @@ const ChannelMatrix = React.forwardRef(function ChannelMatrix({ className, data,
|
|
|
237
238
|
selectUniverse(index);
|
|
238
239
|
selectMode("detail");
|
|
239
240
|
},
|
|
240
|
-
className:
|
|
241
|
+
className: `flex cursor-pointer flex-col gap-(--cue-space-2) rounded-control border border-border bg-surface-1 p-(--cue-space-2) text-left outline-none ${FOCUS_RING} data-[selected=true]:border-accent`,
|
|
241
242
|
children: [/* @__PURE__ */ jsxs("span", {
|
|
242
243
|
className: "font-mono text-(length:--cue-text-micro) tabular-nums text-fg-muted",
|
|
243
244
|
children: ["U", String(index).padStart(2, "0")]
|
|
@@ -277,7 +278,7 @@ function ControlButton({ pressed, onClick, children }) {
|
|
|
277
278
|
type: "button",
|
|
278
279
|
"aria-pressed": pressed,
|
|
279
280
|
onClick,
|
|
280
|
-
className:
|
|
281
|
+
className: `flex h-control-sm cursor-pointer items-center rounded-control px-(--cue-space-3) font-mono text-(length:--cue-text-label) text-fg-muted outline-none transition-colors duration-150 hover:text-fg ${FOCUS_RING} aria-pressed:bg-accent-soft aria-pressed:text-accent motion-reduce:transition-none`,
|
|
281
282
|
children
|
|
282
283
|
});
|
|
283
284
|
}
|
package/dist/dmx/dmx-bar.js
CHANGED
|
@@ -84,7 +84,7 @@ const DmxBar = React.forwardRef(function DmxBar({ className, data, height = DEFA
|
|
|
84
84
|
"aria-label": summary,
|
|
85
85
|
"data-slot": "dmx-bar-canvas",
|
|
86
86
|
"data-live": String(live),
|
|
87
|
-
className: "block w-full cursor-crosshair rounded-
|
|
87
|
+
className: "block w-full cursor-crosshair rounded-control border border-border bg-(--cue-data-ground) [image-rendering:pixelated] data-[live=false]:opacity-45",
|
|
88
88
|
style: { height: toRem(height) }
|
|
89
89
|
}),
|
|
90
90
|
hover === null ? null : /* @__PURE__ */ jsx("span", {
|
package/dist/dmx/dmx-strip.js
CHANGED
|
@@ -172,7 +172,7 @@ const DmxStrip = React.forwardRef(function DmxStrip({ className, cells = DEFAULT
|
|
|
172
172
|
role: "img",
|
|
173
173
|
"aria-label": label ?? "Simulated DMX activity",
|
|
174
174
|
"data-slot": "dmx-strip-canvas",
|
|
175
|
-
className: "block w-full cursor-crosshair rounded-
|
|
175
|
+
className: "block w-full cursor-crosshair rounded-control border border-border bg-(--cue-data-ground) [image-rendering:pixelated]",
|
|
176
176
|
style: { height: toRem(height) }
|
|
177
177
|
}),
|
|
178
178
|
hover === null ? null : /* @__PURE__ */ jsx("span", {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.js";
|
|
3
4
|
import { toRem } from "../instruments/_rem.js";
|
|
4
5
|
import "./_ramp.js";
|
|
5
6
|
import { UNIVERSE_TICKS, channelPercent, universeLayout } from "./_universe.js";
|
|
@@ -85,7 +86,7 @@ const UniverseGrid = React.forwardRef(function UniverseGrid({ className, allocat
|
|
|
85
86
|
role: interactive ? "group" : "img",
|
|
86
87
|
"aria-label": interactive ? label ?? "Universe" : label === void 0 ? summary : `${label}: ${summary}`,
|
|
87
88
|
"data-slot": "universe-grid-track",
|
|
88
|
-
className: "relative w-full overflow-hidden rounded-
|
|
89
|
+
className: "relative w-full overflow-hidden rounded-control border border-border bg-sunken",
|
|
89
90
|
style: { height: toRem(height) },
|
|
90
91
|
children: [
|
|
91
92
|
GRIDLINES.filter((channel) => channel <= slots).map((channel) => /* @__PURE__ */ jsx("span", {
|
|
@@ -110,7 +111,7 @@ const UniverseGrid = React.forwardRef(function UniverseGrid({ className, allocat
|
|
|
110
111
|
"data-conflict": block.conflict ? "true" : void 0,
|
|
111
112
|
"aria-label": `${block.label}: channels ${block.start} to ${block.end}`,
|
|
112
113
|
onClick: () => onSelect(block.allocation),
|
|
113
|
-
className: cn(
|
|
114
|
+
className: cn(`absolute inset-y-0 min-w-[2px] cursor-pointer rounded-[2px] outline-none transition-opacity duration-150 hover:opacity-85 ${FOCUS_RING} motion-reduce:transition-none`, BLOCK_TONES[block.tone], block.conflict ? "z-10 ring-1 ring-danger" : void 0),
|
|
114
115
|
style: {
|
|
115
116
|
left: `${block.left}%`,
|
|
116
117
|
width: `${block.width}%`
|
|
@@ -28,7 +28,7 @@ const LEVEL_TINT = [
|
|
|
28
28
|
function ActivityGraph({ data, start, end, title, total, className, ...props }) {
|
|
29
29
|
return /* @__PURE__ */ jsxs("div", {
|
|
30
30
|
"data-slot": "activity-graph",
|
|
31
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
31
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
32
32
|
...props,
|
|
33
33
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
34
34
|
className: "flex items-baseline justify-between",
|
|
@@ -55,7 +55,7 @@ function ActivityGraph({ data, start, end, title, total, className, ...props })
|
|
|
55
55
|
}) })
|
|
56
56
|
}), /* @__PURE__ */ jsx(HeatGraph.Grid, {
|
|
57
57
|
className: "gap-[3px]",
|
|
58
|
-
children: ({ cell }) => /* @__PURE__ */ jsx(HeatGraph.Cell, { className: cn("size-[9px] rounded-
|
|
58
|
+
children: ({ cell }) => /* @__PURE__ */ jsx(HeatGraph.Cell, { className: cn("size-[9px] rounded-control", LEVEL_TINT[cell.level] ?? LEVEL_TINT[0]) })
|
|
59
59
|
})]
|
|
60
60
|
}), /* @__PURE__ */ jsxs("div", {
|
|
61
61
|
className: "flex items-center gap-1.5 self-end",
|
|
@@ -66,7 +66,7 @@ function ActivityGraph({ data, start, end, title, total, className, ...props })
|
|
|
66
66
|
}),
|
|
67
67
|
LEVEL_TINT.map((tint, level) => /* @__PURE__ */ jsx("span", {
|
|
68
68
|
"aria-hidden": true,
|
|
69
|
-
className: cn("size-[9px] rounded-
|
|
69
|
+
className: cn("size-[9px] rounded-control", tint)
|
|
70
70
|
}, level)),
|
|
71
71
|
/* @__PURE__ */ jsx("span", {
|
|
72
72
|
className: cn(mono, "text-fg-subtle"),
|
|
@@ -25,13 +25,13 @@ import { BotIcon, CheckIcon } from "lucide-react";
|
|
|
25
25
|
function AgentCard({ name, description, provider, version, model, endpoint, skills, connected, onConnect, className, ...props }) {
|
|
26
26
|
return /* @__PURE__ */ jsxs("div", {
|
|
27
27
|
"data-slot": "agent-card",
|
|
28
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-
|
|
28
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-overlay p-4", className),
|
|
29
29
|
...props,
|
|
30
30
|
children: [
|
|
31
31
|
/* @__PURE__ */ jsxs("div", {
|
|
32
32
|
className: "flex items-start gap-3",
|
|
33
33
|
children: [/* @__PURE__ */ jsx("span", {
|
|
34
|
-
className: "bg-surface-1 text-fg-muted flex size-9 shrink-0 items-center justify-center rounded-
|
|
34
|
+
className: "bg-surface-1 text-fg-muted flex size-9 shrink-0 items-center justify-center rounded-surface",
|
|
35
35
|
children: /* @__PURE__ */ jsx(BotIcon, { className: "size-4" })
|
|
36
36
|
}), /* @__PURE__ */ jsxs("div", {
|
|
37
37
|
className: "flex min-w-0 flex-1 flex-col",
|
|
@@ -59,7 +59,7 @@ function AgentCard({ name, description, provider, version, model, endpoint, skil
|
|
|
59
59
|
children: skills.map((skill) => /* @__PURE__ */ jsxs("div", {
|
|
60
60
|
className: "flex items-baseline gap-2",
|
|
61
61
|
children: [/* @__PURE__ */ jsx("span", {
|
|
62
|
-
className: cn(field, mono, "text-fg-muted shrink-0 rounded-
|
|
62
|
+
className: cn(field, mono, "text-fg-muted shrink-0 rounded-control px-1.5 py-0.5"),
|
|
63
63
|
children: skill.name
|
|
64
64
|
}), /* @__PURE__ */ jsx("span", {
|
|
65
65
|
className: "text-fg-muted min-w-0 flex-1 truncate text-(length:--cue-text-ui)",
|
|
@@ -22,13 +22,13 @@ import { CheckIcon, Loader2Icon, TerminalIcon, XIcon } from "lucide-react";
|
|
|
22
22
|
function ApprovalCard({ state, command, title, subtitle, onAllowOnce, onAlwaysAllow, onDeny, className, ...props }) {
|
|
23
23
|
return /* @__PURE__ */ jsxs("div", {
|
|
24
24
|
"data-slot": "approval-card",
|
|
25
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-
|
|
25
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-overlay p-4", className),
|
|
26
26
|
...props,
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ jsxs("div", {
|
|
29
29
|
className: "flex items-center gap-3",
|
|
30
30
|
children: [/* @__PURE__ */ jsx("span", {
|
|
31
|
-
className: "bg-surface-1 text-fg-muted flex size-9 shrink-0 items-center justify-center rounded-
|
|
31
|
+
className: "bg-surface-1 text-fg-muted flex size-9 shrink-0 items-center justify-center rounded-surface",
|
|
32
32
|
children: /* @__PURE__ */ jsx(TerminalIcon, { className: "size-4" })
|
|
33
33
|
}), /* @__PURE__ */ jsxs("div", {
|
|
34
34
|
className: "flex flex-col",
|
|
@@ -42,7 +42,7 @@ function ApprovalCard({ state, command, title, subtitle, onAllowOnce, onAlwaysAl
|
|
|
42
42
|
})]
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ jsx("div", {
|
|
45
|
-
className: cn(field, "text-fg-muted rounded-
|
|
45
|
+
className: cn(field, "text-fg-muted rounded-surface px-3.5 py-2.5 font-mono text-(length:--cue-text-ui)"),
|
|
46
46
|
children: command
|
|
47
47
|
}),
|
|
48
48
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -20,11 +20,11 @@ import { ArrowUpRightIcon, FileTextIcon } from "lucide-react";
|
|
|
20
20
|
function ArtifactCard({ title, meta, generating = false, words = 0, className, ...props }) {
|
|
21
21
|
return /* @__PURE__ */ jsxs("div", {
|
|
22
22
|
"data-slot": "artifact-card",
|
|
23
|
-
className: cn(paper, "group flex w-full max-w-xs cursor-pointer items-center gap-3 rounded-
|
|
23
|
+
className: cn(paper, "group flex w-full max-w-xs cursor-pointer items-center gap-3 rounded-overlay p-3.5 transition-transform duration-150 hover:-translate-y-px active:scale-[0.98]", className),
|
|
24
24
|
...props,
|
|
25
25
|
children: [
|
|
26
26
|
/* @__PURE__ */ jsx("span", {
|
|
27
|
-
className: "bg-surface-1 text-fg-muted flex size-9 shrink-0 items-center justify-center rounded-
|
|
27
|
+
className: "bg-surface-1 text-fg-muted flex size-9 shrink-0 items-center justify-center rounded-surface",
|
|
28
28
|
children: /* @__PURE__ */ jsx(FileTextIcon, { className: cn("size-4", generating && "animate-pulse motion-reduce:animate-none") })
|
|
29
29
|
}),
|
|
30
30
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -17,7 +17,7 @@ function BackgroundInbox({ runs, onCollect, className, ...props }) {
|
|
|
17
17
|
const running = runs.filter((run) => run.state === "running").length;
|
|
18
18
|
return /* @__PURE__ */ jsxs("div", {
|
|
19
19
|
"data-slot": "background-inbox",
|
|
20
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-1 rounded-
|
|
20
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-1 rounded-overlay p-3", className),
|
|
21
21
|
...props,
|
|
22
22
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
23
23
|
className: "flex items-baseline justify-between px-1 pb-1",
|
|
@@ -32,7 +32,7 @@ function BackgroundInbox({ runs, onCollect, className, ...props }) {
|
|
|
32
32
|
type: "button",
|
|
33
33
|
disabled: run.state === "running",
|
|
34
34
|
onClick: () => onCollect?.(run.id),
|
|
35
|
-
className: cn("flex items-center gap-2.5 rounded-
|
|
35
|
+
className: cn("flex items-center gap-2.5 rounded-surface px-1.5 py-2 text-start transition-colors", run.state === "running" ? "cursor-default" : "hover:bg-surface-1"),
|
|
36
36
|
children: [
|
|
37
37
|
/* @__PURE__ */ jsx("span", {
|
|
38
38
|
className: "flex size-3.5 shrink-0 items-center justify-center",
|
|
@@ -34,7 +34,7 @@ import { CheckIcon, CopyIcon, FileTextIcon, XIcon } from "lucide-react";
|
|
|
34
34
|
function CanvasSplit({ className, ...props }) {
|
|
35
35
|
return /* @__PURE__ */ jsx("div", {
|
|
36
36
|
"data-slot": "canvas-split",
|
|
37
|
-
className: cn(paper, "flex w-full max-w-3xl flex-col overflow-hidden rounded-
|
|
37
|
+
className: cn(paper, "flex w-full max-w-3xl flex-col overflow-hidden rounded-overlay md:h-80 md:flex-row", className),
|
|
38
38
|
...props
|
|
39
39
|
});
|
|
40
40
|
}
|
|
@@ -54,7 +54,7 @@ function CanvasSplitMessage({ speaker, className, ...props }) {
|
|
|
54
54
|
return /* @__PURE__ */ jsx("div", {
|
|
55
55
|
"data-slot": "canvas-split-message",
|
|
56
56
|
"data-speaker": speaker,
|
|
57
|
-
className: cn("cue-elements-fade-in cue-elements-animate-in cue-elements-fill-mode-both text-(length:--cue-text-body) leading-(--cue-leading-ui) duration-300", speaker === "user" ? cn(field, "text-fg-muted ms-auto rounded-
|
|
57
|
+
className: cn("cue-elements-fade-in cue-elements-animate-in cue-elements-fill-mode-both text-(length:--cue-text-body) leading-(--cue-leading-ui) duration-300", speaker === "user" ? cn(field, "text-fg-muted ms-auto rounded-overlay px-3 py-2") : "text-fg-muted", className),
|
|
58
58
|
...props
|
|
59
59
|
});
|
|
60
60
|
}
|
package/dist/elements/chart.js
CHANGED
|
@@ -45,7 +45,7 @@ function Chart({ label, value, delta, points, visibleCount, variant = "area", cl
|
|
|
45
45
|
const rising = delta !== void 0 && !falling;
|
|
46
46
|
return /* @__PURE__ */ jsxs("div", {
|
|
47
47
|
"data-slot": "chart",
|
|
48
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
48
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
49
49
|
...props,
|
|
50
50
|
children: [
|
|
51
51
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -27,7 +27,7 @@ import { ArrowUpIcon } from "lucide-react";
|
|
|
27
27
|
function ChatPanel({ className, ...props }) {
|
|
28
28
|
return /* @__PURE__ */ jsx("div", {
|
|
29
29
|
"data-slot": "chat-panel",
|
|
30
|
-
className: cn(paper, "flex h-[270px] w-full max-w-md flex-col overflow-hidden rounded-
|
|
30
|
+
className: cn(paper, "flex h-[270px] w-full max-w-md flex-col overflow-hidden rounded-overlay", className),
|
|
31
31
|
...props
|
|
32
32
|
});
|
|
33
33
|
}
|
|
@@ -46,7 +46,7 @@ function ChatPanelMessages({ className, ...props }) {
|
|
|
46
46
|
function ChatPanelUserMessage({ className, ...props }) {
|
|
47
47
|
return /* @__PURE__ */ jsx("div", {
|
|
48
48
|
"data-slot": "chat-panel-user-message",
|
|
49
|
-
className: cn(field, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in self-end rounded-
|
|
49
|
+
className: cn(field, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in self-end rounded-overlay px-3 py-1.5 text-(length:--cue-text-ui) duration-300", className),
|
|
50
50
|
...props
|
|
51
51
|
});
|
|
52
52
|
}
|
|
@@ -16,7 +16,7 @@ function CheckpointHistory({ checkpoints, currentId, onRestore, className, ...pr
|
|
|
16
16
|
const currentIndex = checkpoints.findIndex((checkpoint) => checkpoint.id === currentId);
|
|
17
17
|
return /* @__PURE__ */ jsxs("div", {
|
|
18
18
|
"data-slot": "checkpoint-history",
|
|
19
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-1 rounded-
|
|
19
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-1 rounded-overlay p-3", className),
|
|
20
20
|
...props,
|
|
21
21
|
children: [/* @__PURE__ */ jsx("span", {
|
|
22
22
|
className: "px-1.5 pb-1 text-(length:--cue-text-body) font-medium",
|
|
@@ -25,7 +25,7 @@ function CheckpointHistory({ checkpoints, currentId, onRestore, className, ...pr
|
|
|
25
25
|
const ahead = currentIndex >= 0 && i > currentIndex;
|
|
26
26
|
const current = checkpoint.id === currentId;
|
|
27
27
|
return /* @__PURE__ */ jsxs("div", {
|
|
28
|
-
className: cn("group flex items-center gap-2.5 rounded-
|
|
28
|
+
className: cn("group flex items-center gap-2.5 rounded-surface px-1.5 py-1.5 transition-colors", current ? "bg-surface-1" : "hover:bg-surface-1", ahead && "opacity-40"),
|
|
29
29
|
children: [
|
|
30
30
|
/* @__PURE__ */ jsx("span", {
|
|
31
31
|
"aria-hidden": true,
|
package/dist/elements/clamp.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.js";
|
|
3
4
|
import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
|
|
4
5
|
import { CLAMP_LABELS } from "./vocabulary.js";
|
|
5
6
|
import * as React from "react";
|
|
@@ -100,7 +101,7 @@ const Clamp = React.forwardRef(function Clamp({ height = 250, fade = 50, open, o
|
|
|
100
101
|
"data-slot": "clamp-reveal",
|
|
101
102
|
"aria-expanded": open,
|
|
102
103
|
onClick: () => onOpenChange?.(!open),
|
|
103
|
-
className: cn(
|
|
104
|
+
className: cn(`text-fg-muted hover:text-fg self-start rounded-control py-0.5 text-(length:--cue-text-ui) transition-opacity ${FOCUS_RING} motion-reduce:transition-none`, !open && "opacity-60 group-hover/clamp:opacity-100 focus-visible:opacity-100"),
|
|
104
105
|
children: open ? said.less : said.more
|
|
105
106
|
}) : null]
|
|
106
107
|
});
|
|
@@ -28,7 +28,7 @@ const GUTTER = {
|
|
|
28
28
|
function CodeDiff({ filename, additions, deletions, lines, cycle, className, ...props }) {
|
|
29
29
|
return /* @__PURE__ */ jsxs("div", {
|
|
30
30
|
"data-slot": "code-diff",
|
|
31
|
-
className: cn(paper, "w-full max-w-md overflow-hidden rounded-
|
|
31
|
+
className: cn(paper, "w-full max-w-md overflow-hidden rounded-overlay font-mono text-(length:--cue-text-ui)", className),
|
|
32
32
|
...props,
|
|
33
33
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
34
34
|
className: "flex items-center justify-between px-4 pt-3 pb-2",
|
|
@@ -22,7 +22,7 @@ import { Loader2Icon, PlayIcon } from "lucide-react";
|
|
|
22
22
|
function CodeRunner({ language, code, state, output, durationMs, onRun, className, ...props }) {
|
|
23
23
|
return /* @__PURE__ */ jsxs("div", {
|
|
24
24
|
"data-slot": "code-runner",
|
|
25
|
-
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-
|
|
25
|
+
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-overlay", className),
|
|
26
26
|
...props,
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.js";
|
|
3
4
|
import { field, floating, mono } from "./surfaces.js";
|
|
4
5
|
import { useEffect, useId } from "react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -50,7 +51,7 @@ function ElementsCommandPalette({ commands, query, activeId, onQueryChange, onAc
|
|
|
50
51
|
};
|
|
51
52
|
return /* @__PURE__ */ jsxs("div", {
|
|
52
53
|
"data-slot": "command-palette",
|
|
53
|
-
className: cn(floating, "flex w-full max-w-sm flex-col overflow-hidden rounded-
|
|
54
|
+
className: cn(floating, "flex w-full max-w-sm flex-col overflow-hidden rounded-overlay", className),
|
|
54
55
|
...props,
|
|
55
56
|
children: [
|
|
56
57
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -68,10 +69,10 @@ function ElementsCommandPalette({ commands, query, activeId, onQueryChange, onAc
|
|
|
68
69
|
"aria-controls": listId,
|
|
69
70
|
"aria-autocomplete": "list",
|
|
70
71
|
"aria-activedescendant": ordered.some((command) => command.id === activeId) ? optionId(activeId) : void 0,
|
|
71
|
-
className:
|
|
72
|
+
className: `text-fg-muted placeholder:text-fg-subtle min-w-0 flex-1 bg-transparent text-(length:--cue-text-body) outline-none ${FOCUS_RING}`
|
|
72
73
|
}),
|
|
73
74
|
/* @__PURE__ */ jsx("span", {
|
|
74
|
-
className: cn(field, mono, "text-fg-subtle rounded-
|
|
75
|
+
className: cn(field, mono, "text-fg-subtle rounded-control px-1.5 py-0.5"),
|
|
75
76
|
children: "esc"
|
|
76
77
|
})
|
|
77
78
|
]
|
|
@@ -97,14 +98,14 @@ function ElementsCommandPalette({ commands, query, activeId, onQueryChange, onAc
|
|
|
97
98
|
"aria-selected": command.id === activeId,
|
|
98
99
|
onMouseDown: (event) => event.preventDefault(),
|
|
99
100
|
onClick: () => onRun?.(command.id),
|
|
100
|
-
className: cn("flex items-center gap-2 rounded-
|
|
101
|
+
className: cn("flex items-center gap-2 rounded-surface px-2 py-1.5 text-start transition-colors", command.id === activeId ? "bg-surface-2" : "hover:bg-surface-1"),
|
|
101
102
|
children: [/* @__PURE__ */ jsx("span", {
|
|
102
103
|
className: "min-w-0 flex-1 truncate text-(length:--cue-text-body)",
|
|
103
104
|
children: command.label
|
|
104
105
|
}), /* @__PURE__ */ jsx("span", {
|
|
105
106
|
className: "flex shrink-0 gap-1",
|
|
106
107
|
children: command.keys.map((key) => /* @__PURE__ */ jsx("span", {
|
|
107
|
-
className: cn(field, mono, "text-fg-subtle rounded-
|
|
108
|
+
className: cn(field, mono, "text-fg-subtle rounded-control px-1.5 py-0.5"),
|
|
108
109
|
children: key
|
|
109
110
|
}, key))
|
|
110
111
|
})]
|
|
@@ -20,14 +20,14 @@ import { CheckIcon, MinusIcon } from "lucide-react";
|
|
|
20
20
|
function ComparisonCard({ traitLabels, options, recommendedId, reason, className, ...props }) {
|
|
21
21
|
return /* @__PURE__ */ jsxs("div", {
|
|
22
22
|
"data-slot": "comparison-card",
|
|
23
|
-
className: cn(paper, "flex w-full max-w-md flex-col gap-3 rounded-
|
|
23
|
+
className: cn(paper, "flex w-full max-w-md flex-col gap-3 rounded-overlay p-4", className),
|
|
24
24
|
...props,
|
|
25
25
|
children: [/* @__PURE__ */ jsx("div", {
|
|
26
26
|
className: "flex gap-2",
|
|
27
27
|
children: options.map((option) => {
|
|
28
28
|
const recommended = option.id === recommendedId;
|
|
29
29
|
return /* @__PURE__ */ jsxs("div", {
|
|
30
|
-
className: cn("flex min-w-0 flex-1 flex-col gap-2 rounded-
|
|
30
|
+
className: cn("flex min-w-0 flex-1 flex-col gap-2 rounded-surface p-3 transition-colors", recommended ? "bg-stream/10" : field),
|
|
31
31
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
32
32
|
className: "flex flex-col gap-0.5",
|
|
33
33
|
children: [/* @__PURE__ */ jsxs("span", {
|