@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,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, mono, paper } from "./surfaces.js";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
//#region src/elements/map-answer.tsx
|
|
@@ -15,7 +16,7 @@ function MapAnswer({ pins, activeId, route, onSelect, className, ...props }) {
|
|
|
15
16
|
const path = pins.map((pin) => `${pin.x},${pin.y}`).join(" ");
|
|
16
17
|
return /* @__PURE__ */ jsxs("div", {
|
|
17
18
|
"data-slot": "map-answer",
|
|
18
|
-
className: cn(paper, "flex w-full max-w-sm flex-col overflow-hidden rounded-
|
|
19
|
+
className: cn(paper, "flex w-full max-w-sm flex-col overflow-hidden rounded-overlay", className),
|
|
19
20
|
...props,
|
|
20
21
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
21
22
|
className: cn(field, "relative h-40"),
|
|
@@ -64,7 +65,7 @@ function MapAnswer({ pins, activeId, route, onSelect, className, ...props }) {
|
|
|
64
65
|
"aria-label": pin.label,
|
|
65
66
|
"aria-current": pin.id === activeId || void 0,
|
|
66
67
|
onClick: () => onSelect?.(pin.id),
|
|
67
|
-
className:
|
|
68
|
+
className: `${FOCUS_RING} absolute flex size-6 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full outline-none`,
|
|
68
69
|
style: {
|
|
69
70
|
left: `${pin.x}%`,
|
|
70
71
|
top: `${pin.y}%`
|
|
@@ -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 { codeScroll, codeSurface, field, mono } from "./surfaces.js";
|
|
4
5
|
import * as React from "react";
|
|
5
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -452,7 +453,7 @@ function markdownComponents(options) {
|
|
|
452
453
|
title,
|
|
453
454
|
target,
|
|
454
455
|
rel: "noopener noreferrer nofollow",
|
|
455
|
-
className:
|
|
456
|
+
className: `text-accent underline underline-offset-2 ${FOCUS_RING}`,
|
|
456
457
|
children
|
|
457
458
|
}),
|
|
458
459
|
strong: ({ children }) => /* @__PURE__ */ jsx("strong", {
|
|
@@ -503,11 +504,11 @@ function markdownComponents(options) {
|
|
|
503
504
|
loading: "lazy",
|
|
504
505
|
decoding: "async",
|
|
505
506
|
referrerPolicy: "no-referrer",
|
|
506
|
-
className: "max-w-full rounded-
|
|
507
|
+
className: "max-w-full rounded-control border border-border"
|
|
507
508
|
}),
|
|
508
509
|
code: ({ children, className: codeClass }) => /* @__PURE__ */ jsx("code", {
|
|
509
510
|
"data-slot": "markdown-code",
|
|
510
|
-
className: cn(mono, "rounded-
|
|
511
|
+
className: cn(mono, "rounded-control [pre_&]:rounded-none [pre_&]:bg-transparent [pre_&]:px-0 [pre_&]:py-0", field, "px-[0.35em] py-[0.1em]", codeClass),
|
|
511
512
|
children
|
|
512
513
|
}),
|
|
513
514
|
pre: ({ children, node }) => {
|
|
@@ -515,7 +516,7 @@ function markdownComponents(options) {
|
|
|
515
516
|
return /* @__PURE__ */ jsx("pre", {
|
|
516
517
|
"data-slot": "markdown-code-block",
|
|
517
518
|
"data-language": block.language,
|
|
518
|
-
className: cn("m-0 rounded-
|
|
519
|
+
className: cn("m-0 rounded-control border border-border p-(--cue-space-3)", field, codeScroll),
|
|
519
520
|
children: renderCodeBlock === void 0 ? children : /* @__PURE__ */ jsx("span", {
|
|
520
521
|
className: codeSurface,
|
|
521
522
|
children: renderCodeBlock(block)
|
|
@@ -15,7 +15,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
function MathBlock({ label, steps, visibleSteps, className, ...props }) {
|
|
16
16
|
return /* @__PURE__ */ jsxs("div", {
|
|
17
17
|
"data-slot": "math-block",
|
|
18
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-2.5 rounded-
|
|
18
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-2.5 rounded-overlay p-4", className),
|
|
19
19
|
...props,
|
|
20
20
|
children: [label && /* @__PURE__ */ jsx("span", {
|
|
21
21
|
className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-subtle"),
|
|
@@ -34,7 +34,7 @@ function McpServerPanel({ servers, expandedId, onToggle, onAuthorize, className,
|
|
|
34
34
|
const connected = servers.filter((server) => server.status === "connected").length;
|
|
35
35
|
return /* @__PURE__ */ jsxs("div", {
|
|
36
36
|
"data-slot": "mcp-server-panel",
|
|
37
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-1 rounded-
|
|
37
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-1 rounded-overlay p-3", className),
|
|
38
38
|
...props,
|
|
39
39
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
40
40
|
className: "flex items-baseline justify-between px-1 pb-1",
|
|
@@ -58,7 +58,7 @@ function McpServerPanel({ servers, expandedId, onToggle, onAuthorize, className,
|
|
|
58
58
|
type: "button",
|
|
59
59
|
"aria-expanded": expanded,
|
|
60
60
|
onClick: () => onToggle?.(server.id),
|
|
61
|
-
className: "hover:bg-surface-1 flex items-center gap-2.5 rounded-
|
|
61
|
+
className: "hover:bg-surface-1 flex items-center gap-2.5 rounded-surface px-1.5 py-2 text-start transition-colors",
|
|
62
62
|
children: [
|
|
63
63
|
/* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("text-fg-subtle size-3 shrink-0 transition-transform duration-200 motion-reduce:transition-none", expanded && "rotate-90") }),
|
|
64
64
|
/* @__PURE__ */ jsx(PlugIcon, { className: "text-fg-subtle size-3.5 shrink-0" }),
|
|
@@ -102,7 +102,7 @@ function McpServerPanel({ servers, expandedId, onToggle, onAuthorize, className,
|
|
|
102
102
|
}), /* @__PURE__ */ jsx("div", {
|
|
103
103
|
className: "flex flex-wrap gap-1",
|
|
104
104
|
children: server.tools.map((tool) => /* @__PURE__ */ jsx("span", {
|
|
105
|
-
className: cn("bg-fg/[0.06]", "font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-muted rounded-
|
|
105
|
+
className: cn("bg-fg/[0.06]", "font-mono text-(length:--cue-text-label) tracking-tight", "text-fg-muted rounded-control px-1.5 py-0.5"),
|
|
106
106
|
children: tool
|
|
107
107
|
}, tool))
|
|
108
108
|
})]
|
|
@@ -17,11 +17,11 @@ function MessageAttachments({ attachments, onOpen, className, ...props }) {
|
|
|
17
17
|
children: attachments.map((item) => item.kind === "image" ? /* @__PURE__ */ jsxs("button", {
|
|
18
18
|
type: "button",
|
|
19
19
|
onClick: () => onOpen?.(item.id),
|
|
20
|
-
className: cn(paper, "cue-elements-fade-in cue-elements-animate-in cue-elements-fill-mode-both group flex w-full items-center gap-3 overflow-hidden rounded-
|
|
20
|
+
className: cn(paper, "cue-elements-fade-in cue-elements-animate-in cue-elements-fill-mode-both group flex w-full items-center gap-3 overflow-hidden rounded-overlay p-2 text-start duration-300"),
|
|
21
21
|
children: [
|
|
22
22
|
/* @__PURE__ */ jsx("span", {
|
|
23
23
|
"aria-hidden": true,
|
|
24
|
-
className: "size-12 shrink-0 rounded-
|
|
24
|
+
className: "size-12 shrink-0 rounded-surface bg-cover bg-center transition-transform duration-300 group-hover:scale-[1.04] motion-reduce:transition-none",
|
|
25
25
|
style: {
|
|
26
26
|
backgroundImage: item.swatch,
|
|
27
27
|
backgroundColor: "var(--cue-fg)"
|
|
@@ -42,9 +42,9 @@ function MessageAttachments({ attachments, onOpen, className, ...props }) {
|
|
|
42
42
|
}, item.id) : /* @__PURE__ */ jsxs("button", {
|
|
43
43
|
type: "button",
|
|
44
44
|
onClick: () => onOpen?.(item.id),
|
|
45
|
-
className: cn(field, "cue-elements-fade-in cue-elements-animate-in cue-elements-fill-mode-both hover:bg-surface-2 flex w-full items-center gap-2.5 rounded-
|
|
45
|
+
className: cn(field, "cue-elements-fade-in cue-elements-animate-in cue-elements-fill-mode-both hover:bg-surface-2 flex w-full items-center gap-2.5 rounded-overlay px-3 py-2.5 text-start transition-colors duration-300"),
|
|
46
46
|
children: [/* @__PURE__ */ jsx("span", {
|
|
47
|
-
className: "bg-bg text-fg-muted flex size-8 shrink-0 items-center justify-center rounded-
|
|
47
|
+
className: "bg-bg text-fg-muted flex size-8 shrink-0 items-center justify-center rounded-surface",
|
|
48
48
|
children: item.kind === "document" ? /* @__PURE__ */ jsx(FileTextIcon, { className: "size-3.5" }) : /* @__PURE__ */ jsx(PaperclipIcon, { className: "size-3.5" })
|
|
49
49
|
}), /* @__PURE__ */ jsxs("span", {
|
|
50
50
|
className: "flex min-w-0 flex-1 flex-col gap-0.5",
|
|
@@ -25,7 +25,7 @@ function MessagePair({ userMessage, words, visibleWords, streaming, variant = "b
|
|
|
25
25
|
className: cn("flex w-full max-w-sm flex-col gap-5", className),
|
|
26
26
|
...props,
|
|
27
27
|
children: [/* @__PURE__ */ jsx("p", {
|
|
28
|
-
className: cn("max-w-[85%] self-end text-(length:--cue-text-body)", variant === "bubble" ? cn(paper, "rounded-
|
|
28
|
+
className: cn("max-w-[85%] self-end text-(length:--cue-text-body)", variant === "bubble" ? cn(paper, "rounded-overlay px-3.5 py-2") : "text-fg text-end"),
|
|
29
29
|
children: userMessage
|
|
30
30
|
}), /* @__PURE__ */ jsxs("div", {
|
|
31
31
|
className: "group/message flex flex-col items-start",
|
|
@@ -23,7 +23,7 @@ function MessageQueue({ running, queued, onCancel, className, ...props }) {
|
|
|
23
23
|
...props,
|
|
24
24
|
children: [
|
|
25
25
|
/* @__PURE__ */ jsxs("div", {
|
|
26
|
-
className: cn(paper, "flex items-center gap-2.5 rounded-
|
|
26
|
+
className: cn(paper, "flex items-center gap-2.5 rounded-overlay p-3"),
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ jsxs("span", {
|
|
29
29
|
className: "relative flex size-2 shrink-0",
|
|
@@ -52,7 +52,7 @@ function MessageQueue({ running, queued, onCancel, className, ...props }) {
|
|
|
52
52
|
/* @__PURE__ */ jsx("ul", {
|
|
53
53
|
className: "flex flex-col gap-1.5",
|
|
54
54
|
children: queued.map((message, index) => /* @__PURE__ */ jsxs("li", {
|
|
55
|
-
className: cn(field, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both flex items-center gap-2.5 rounded-
|
|
55
|
+
className: cn(field, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both flex items-center gap-2.5 rounded-overlay py-2 pr-2 pl-3 duration-300"),
|
|
56
56
|
children: [
|
|
57
57
|
/* @__PURE__ */ jsx("span", {
|
|
58
58
|
className: cn(mono, "text-fg-subtle w-3 shrink-0 tabular-nums"),
|
|
@@ -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, ghostButton, inkButton } from "./surfaces.js";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { ArrowUpIcon, MicIcon, PlusIcon, SquareIcon } from "lucide-react";
|
|
@@ -22,7 +23,7 @@ import { ArrowUpIcon, MicIcon, PlusIcon, SquareIcon } from "lucide-react";
|
|
|
22
23
|
function MobileComposer({ value, keyboardOpen, running, actions, onAction, onAttach, onValueChange, onSend, onStop, onFocus, className, ...props }) {
|
|
23
24
|
return /* @__PURE__ */ jsxs("div", {
|
|
24
25
|
"data-slot": "mobile-composer",
|
|
25
|
-
className: cn("bg-bg border-border flex w-full max-w-[19rem] flex-col gap-2.5 rounded-t-
|
|
26
|
+
className: cn("bg-bg border-border flex w-full max-w-[19rem] flex-col gap-2.5 rounded-t-overlay border-t px-3 pt-3", keyboardOpen ? "pb-3" : "pb-6", className),
|
|
26
27
|
...props,
|
|
27
28
|
children: [
|
|
28
29
|
!keyboardOpen && /* @__PURE__ */ jsx("div", {
|
|
@@ -47,7 +48,7 @@ function MobileComposer({ value, keyboardOpen, running, actions, onAction, onAtt
|
|
|
47
48
|
children: /* @__PURE__ */ jsx(PlusIcon, { className: "size-4" })
|
|
48
49
|
}),
|
|
49
50
|
/* @__PURE__ */ jsxs("div", {
|
|
50
|
-
className: cn(field, "flex min-w-0 flex-1 items-center gap-2 rounded-
|
|
51
|
+
className: cn(field, "flex min-w-0 flex-1 items-center gap-2 rounded-overlay px-3 py-2"),
|
|
51
52
|
children: [/* @__PURE__ */ jsx("input", {
|
|
52
53
|
value,
|
|
53
54
|
onChange: (event) => onValueChange?.(event.target.value),
|
|
@@ -60,7 +61,7 @@ function MobileComposer({ value, keyboardOpen, running, actions, onAction, onAtt
|
|
|
60
61
|
},
|
|
61
62
|
placeholder: "Message",
|
|
62
63
|
"aria-label": "Message",
|
|
63
|
-
className:
|
|
64
|
+
className: `text-fg-muted placeholder:text-fg-subtle min-w-0 flex-1 bg-transparent text-(length:--cue-text-emphasis) outline-none ${FOCUS_RING}`
|
|
64
65
|
}), value === "" && /* @__PURE__ */ jsx(MicIcon, { className: "text-fg-subtle size-4 shrink-0" })]
|
|
65
66
|
}),
|
|
66
67
|
/* @__PURE__ */ jsx("button", {
|
|
@@ -17,7 +17,7 @@ function ModelPicker({ models, selectedId, onSelect, className, ...props }) {
|
|
|
17
17
|
const families = [...new Set(models.map((model) => model.family))];
|
|
18
18
|
return /* @__PURE__ */ jsx("div", {
|
|
19
19
|
"data-slot": "model-picker",
|
|
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-2", className),
|
|
21
21
|
...props,
|
|
22
22
|
children: families.map((family) => /* @__PURE__ */ jsxs("div", {
|
|
23
23
|
className: "flex flex-col",
|
|
@@ -30,7 +30,7 @@ function ModelPicker({ models, selectedId, onSelect, className, ...props }) {
|
|
|
30
30
|
type: "button",
|
|
31
31
|
"aria-pressed": selected,
|
|
32
32
|
onClick: () => onSelect?.(model.id),
|
|
33
|
-
className: cn("flex items-center gap-2.5 rounded-
|
|
33
|
+
className: cn("flex items-center gap-2.5 rounded-surface px-2 py-2 text-start transition-colors", selected ? "bg-surface-2" : "hover:bg-surface-1"),
|
|
34
34
|
children: [
|
|
35
35
|
/* @__PURE__ */ jsx("span", {
|
|
36
36
|
className: "flex size-3.5 shrink-0 items-center justify-center",
|
|
@@ -44,7 +44,7 @@ function ModelPicker({ models, selectedId, onSelect, className, ...props }) {
|
|
|
44
44
|
}), /* @__PURE__ */ jsx("span", {
|
|
45
45
|
className: "flex flex-wrap gap-1",
|
|
46
46
|
children: model.capabilities.map((capability) => /* @__PURE__ */ jsx("span", {
|
|
47
|
-
className: cn(field, mono, "text-fg-muted rounded-
|
|
47
|
+
className: cn(field, mono, "text-fg-muted rounded-control px-1 py-px"),
|
|
48
48
|
children: capability
|
|
49
49
|
}, capability))
|
|
50
50
|
})]
|
|
@@ -19,7 +19,7 @@ function Onboarding({ steps, index, onNext, onSkip, className, ...props }) {
|
|
|
19
19
|
const last = current >= steps.length - 1;
|
|
20
20
|
return /* @__PURE__ */ jsxs("div", {
|
|
21
21
|
"data-slot": "onboarding",
|
|
22
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-4 rounded-
|
|
22
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-4 rounded-overlay p-5", className),
|
|
23
23
|
...props,
|
|
24
24
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
25
25
|
className: "cue-elements-fade-in cue-elements-animate-in flex flex-col gap-2 duration-300",
|
|
@@ -41,7 +41,7 @@ function Onboarding({ steps, index, onNext, onSkip, className, ...props }) {
|
|
|
41
41
|
children: step.body
|
|
42
42
|
}),
|
|
43
43
|
/* @__PURE__ */ jsx("span", {
|
|
44
|
-
className: cn(field, "text-fg-muted rounded-
|
|
44
|
+
className: cn(field, "text-fg-muted rounded-surface px-3 py-2 text-(length:--cue-text-body) leading-(--cue-leading-ui)"),
|
|
45
45
|
children: step.example
|
|
46
46
|
})
|
|
47
47
|
]
|
|
@@ -21,13 +21,13 @@ import { KeyRoundIcon } from "lucide-react";
|
|
|
21
21
|
function PermissionGrant({ capability, requester, reach, scope, onGrant, className, ...props }) {
|
|
22
22
|
return /* @__PURE__ */ jsxs("div", {
|
|
23
23
|
"data-slot": "permission-grant",
|
|
24
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-
|
|
24
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3.5 rounded-overlay p-4", className),
|
|
25
25
|
...props,
|
|
26
26
|
children: [
|
|
27
27
|
/* @__PURE__ */ jsxs("div", {
|
|
28
28
|
className: "flex items-center gap-2.5",
|
|
29
29
|
children: [/* @__PURE__ */ jsx("span", {
|
|
30
|
-
className: "bg-surface-1 text-fg-muted flex size-7 shrink-0 items-center justify-center rounded-
|
|
30
|
+
className: "bg-surface-1 text-fg-muted flex size-7 shrink-0 items-center justify-center rounded-surface",
|
|
31
31
|
children: /* @__PURE__ */ jsx(KeyRoundIcon, { className: "size-3.5" })
|
|
32
32
|
}), /* @__PURE__ */ jsxs("div", {
|
|
33
33
|
className: "flex min-w-0 flex-1 flex-col",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING_INSET_2, FOCUS_RING_OFFSET_2 } from "../system/_focus-ring.js";
|
|
3
4
|
import { field, fieldInteractive, mono, paper } from "./surfaces.js";
|
|
4
5
|
import { PERMISSION_LABELS } from "./vocabulary.js";
|
|
5
6
|
import * as React from "react";
|
|
@@ -170,7 +171,7 @@ const PermissionScopes = React.forwardRef(function PermissionScopes({ question,
|
|
|
170
171
|
event.preventDefault();
|
|
171
172
|
answer.run();
|
|
172
173
|
},
|
|
173
|
-
className: cn(paper, "flex w-full max-w-md flex-col gap-2.5 rounded-
|
|
174
|
+
className: cn(paper, "flex w-full max-w-md flex-col gap-2.5 rounded-overlay p-3", className),
|
|
174
175
|
...elementProps,
|
|
175
176
|
children: [
|
|
176
177
|
/* @__PURE__ */ jsxs("p", {
|
|
@@ -183,7 +184,7 @@ const PermissionScopes = React.forwardRef(function PermissionScopes({ question,
|
|
|
183
184
|
}),
|
|
184
185
|
input === void 0 ? null : /* @__PURE__ */ jsx("pre", {
|
|
185
186
|
"data-slot": "permission-scopes-input",
|
|
186
|
-
className: cn(field, mono, "text-fg-muted max-h-40 overflow-auto rounded-
|
|
187
|
+
className: cn(field, mono, "text-fg-muted max-h-40 overflow-auto rounded-control px-2.5 py-2 whitespace-pre-wrap"),
|
|
187
188
|
children: input
|
|
188
189
|
}),
|
|
189
190
|
/* @__PURE__ */ jsx("ul", {
|
|
@@ -195,7 +196,7 @@ const PermissionScopes = React.forwardRef(function PermissionScopes({ question,
|
|
|
195
196
|
type: "button",
|
|
196
197
|
"data-answer": answer.id,
|
|
197
198
|
onClick: answer.run,
|
|
198
|
-
className: cn(answer.id === "always" ? fieldInteractive : "hover:bg-surface-2",
|
|
199
|
+
className: cn(answer.id === "always" ? fieldInteractive : "hover:bg-surface-2", `flex w-full items-baseline gap-1 rounded-control px-2 py-1.5 text-start text-(length:--cue-text-ui) outline-none ${FOCUS_RING_INSET_2}`, answer.id === "deny" ? "text-fg-muted" : "text-fg"),
|
|
199
200
|
children: [/* @__PURE__ */ jsx("span", {
|
|
200
201
|
className: cn(mono, "shrink-0 opacity-60"),
|
|
201
202
|
children: index + 1
|
|
@@ -211,7 +212,7 @@ const PermissionScopes = React.forwardRef(function PermissionScopes({ question,
|
|
|
211
212
|
onClick: () => {
|
|
212
213
|
onScopeChange(scopes[(scopes.indexOf(chosen) + 1) % scopes.length].id);
|
|
213
214
|
},
|
|
214
|
-
className:
|
|
215
|
+
className: `text-fg-subtle ms-6 self-start rounded-control text-start text-(length:--cue-text-ui) wrap-anywhere underline decoration-dotted underline-offset-2 outline-none hover:decoration-solid ${FOCUS_RING_OFFSET_2}`,
|
|
215
216
|
children: chosen.writes
|
|
216
217
|
}) : /* @__PURE__ */ jsx("span", {
|
|
217
218
|
"data-slot": "permission-scopes-destination",
|
|
@@ -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, paper } from "./surfaces.js";
|
|
4
5
|
import { useId } from "react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -46,11 +47,11 @@ function PromptLibrary({ prompts, query, selectedId, onQueryChange, onSelect, on
|
|
|
46
47
|
};
|
|
47
48
|
return /* @__PURE__ */ jsxs("div", {
|
|
48
49
|
"data-slot": "prompt-library",
|
|
49
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-2 rounded-
|
|
50
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-2 rounded-overlay p-3", className),
|
|
50
51
|
...props,
|
|
51
52
|
children: [
|
|
52
53
|
/* @__PURE__ */ jsxs("div", {
|
|
53
|
-
className: cn(field, "flex items-center gap-2 rounded-
|
|
54
|
+
className: cn(field, "flex items-center gap-2 rounded-surface px-2.5 py-1.5"),
|
|
54
55
|
children: [/* @__PURE__ */ jsx(BookmarkIcon, { className: "text-fg-subtle size-3.5 shrink-0" }), /* @__PURE__ */ jsx("input", {
|
|
55
56
|
value: query,
|
|
56
57
|
onChange: (event) => onQueryChange?.(event.target.value),
|
|
@@ -62,7 +63,7 @@ function PromptLibrary({ prompts, query, selectedId, onQueryChange, onSelect, on
|
|
|
62
63
|
"aria-controls": listId,
|
|
63
64
|
"aria-autocomplete": "list",
|
|
64
65
|
"aria-activedescendant": selected ? optionId(selected.id) : void 0,
|
|
65
|
-
className:
|
|
66
|
+
className: `text-fg-muted placeholder:text-fg-subtle min-w-0 flex-1 bg-transparent text-(length:--cue-text-body) outline-none ${FOCUS_RING}`
|
|
66
67
|
})]
|
|
67
68
|
}),
|
|
68
69
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -79,7 +80,7 @@ function PromptLibrary({ prompts, query, selectedId, onQueryChange, onSelect, on
|
|
|
79
80
|
onMouseDown: (event) => event.preventDefault(),
|
|
80
81
|
onClick: () => onSelect?.(prompt.id),
|
|
81
82
|
onDoubleClick: () => onInsert?.(prompt.id),
|
|
82
|
-
className: cn("flex items-center gap-2 rounded-
|
|
83
|
+
className: cn("flex items-center gap-2 rounded-surface px-2 py-1.5 text-start transition-colors", prompt.id === selectedId ? "bg-surface-1" : "hover:bg-surface-1"),
|
|
83
84
|
children: [/* @__PURE__ */ jsx("span", {
|
|
84
85
|
className: "min-w-0 flex-1 truncate text-(length:--cue-text-body)",
|
|
85
86
|
children: prompt.name
|
|
@@ -98,14 +99,14 @@ function PromptLibrary({ prompts, query, selectedId, onQueryChange, onSelect, on
|
|
|
98
99
|
]
|
|
99
100
|
}),
|
|
100
101
|
selected && /* @__PURE__ */ jsxs("div", {
|
|
101
|
-
className: cn("bg-fg/[0.06]", "cue-elements-fade-in cue-elements-animate-in flex flex-col gap-2 rounded-
|
|
102
|
+
className: cn("bg-fg/[0.06]", "cue-elements-fade-in cue-elements-animate-in flex flex-col gap-2 rounded-surface p-2.5 duration-200"),
|
|
102
103
|
children: [/* @__PURE__ */ jsx("p", {
|
|
103
104
|
className: "text-fg-muted text-(length:--cue-text-ui) leading-(--cue-leading-ui) break-words",
|
|
104
105
|
children: selected.body
|
|
105
106
|
}), selected.variables.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
106
107
|
className: "flex flex-wrap gap-1",
|
|
107
108
|
children: selected.variables.map((variable) => /* @__PURE__ */ jsx("span", {
|
|
108
|
-
className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "bg-bg text-fg-muted rounded-
|
|
109
|
+
className: cn("font-mono text-(length:--cue-text-label) tracking-tight", "bg-bg text-fg-muted rounded-control px-1.5 py-0.5"),
|
|
109
110
|
children: `{${variable}}`
|
|
110
111
|
}, variable))
|
|
111
112
|
})]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
|
|
3
4
|
import { field, ghostButton, mono, paper } from "./surfaces.js";
|
|
4
5
|
import { QUEUE_LABELS } from "./vocabulary.js";
|
|
5
6
|
import * as React from "react";
|
|
@@ -73,14 +74,14 @@ const QueueDock = React.forwardRef(function QueueDock({ messages, open, onOpenCh
|
|
|
73
74
|
ref,
|
|
74
75
|
"data-slot": "queue-dock",
|
|
75
76
|
"data-open": String(open),
|
|
76
|
-
className: cn(paper, "flex w-full flex-col rounded-
|
|
77
|
+
className: cn(paper, "flex w-full flex-col rounded-overlay", className),
|
|
77
78
|
...elementProps,
|
|
78
79
|
children: [/* @__PURE__ */ jsxs("button", {
|
|
79
80
|
type: "button",
|
|
80
81
|
"aria-expanded": open,
|
|
81
82
|
title: open ? copy.collapse : copy.expand,
|
|
82
83
|
onClick: () => onOpenChange?.(!open),
|
|
83
|
-
className:
|
|
84
|
+
className: `hover:bg-surface-2 flex items-center gap-2.5 rounded-overlay px-3 py-2 text-start transition-colors ${FOCUS_RING_INSET_2} motion-reduce:transition-none`,
|
|
84
85
|
children: [/* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
85
86
|
"aria-hidden": true,
|
|
86
87
|
className: cn("text-fg-subtle size-3 shrink-0 transition-transform duration-200 motion-reduce:transition-none", open && "rotate-90")
|
|
@@ -92,7 +93,7 @@ const QueueDock = React.forwardRef(function QueueDock({ messages, open, onOpenCh
|
|
|
92
93
|
"data-slot": "queue-dock-entries",
|
|
93
94
|
className: "flex flex-col gap-1 px-2 pb-2",
|
|
94
95
|
children: messages.map((message, index) => /* @__PURE__ */ jsxs("li", {
|
|
95
|
-
className: cn(field, "flex items-center gap-2 rounded-
|
|
96
|
+
className: cn(field, "flex items-center gap-2 rounded-control py-1.5 pe-1.5 ps-2.5"),
|
|
96
97
|
children: [
|
|
97
98
|
/* @__PURE__ */ jsx("span", {
|
|
98
99
|
className: cn(mono, "text-fg-subtle w-3 shrink-0 tabular-nums"),
|
|
@@ -17,7 +17,7 @@ function QuotaBanner({ used, limit, unit, resetsIn, upgradeLabel, onUpgrade, cla
|
|
|
17
17
|
const tight = (limit === 0 ? 0 : used / limit) >= .9;
|
|
18
18
|
return /* @__PURE__ */ jsxs("div", {
|
|
19
19
|
"data-slot": "quota-banner",
|
|
20
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-2.5 rounded-
|
|
20
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-2.5 rounded-overlay p-3.5", className),
|
|
21
21
|
...props,
|
|
22
22
|
children: [
|
|
23
23
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -38,7 +38,7 @@ function QuoteReply({ before, selection, after, actions, toolbarVisible, quoted,
|
|
|
38
38
|
children: before
|
|
39
39
|
}),
|
|
40
40
|
/* @__PURE__ */ jsx("span", {
|
|
41
|
-
className: "text-fg rounded-
|
|
41
|
+
className: "text-fg rounded-control bg-stream/25 px-0.5",
|
|
42
42
|
children: selection
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -26,12 +26,12 @@ function ReadAloud({ words, spokenIndex, playing, rate, elapsed, duration, onTog
|
|
|
26
26
|
const progress = pct(spokenIndex, words.length);
|
|
27
27
|
return /* @__PURE__ */ jsxs("div", {
|
|
28
28
|
"data-slot": "read-aloud",
|
|
29
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
29
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-3.5", className),
|
|
30
30
|
...props,
|
|
31
31
|
children: [/* @__PURE__ */ jsx("p", {
|
|
32
32
|
className: "text-(length:--cue-text-body) leading-(--cue-leading-ui)",
|
|
33
33
|
children: words.map((word, i) => /* @__PURE__ */ jsxs("span", {
|
|
34
|
-
className: cn("transition-colors duration-200 motion-reduce:transition-none", i < spokenIndex ? "text-fg-subtle" : i === spokenIndex ? "text-fg rounded-
|
|
34
|
+
className: cn("transition-colors duration-200 motion-reduce:transition-none", i < spokenIndex ? "text-fg-subtle" : i === spokenIndex ? "text-fg rounded-control bg-stream/15" : "text-fg-muted"),
|
|
35
35
|
children: [word, " "]
|
|
36
36
|
}, `${i}-${word}`))
|
|
37
37
|
}), /* @__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 { ShimmerLabel, SwapLabel, collapsePanel } from "./surfaces.js";
|
|
4
5
|
import { take } from "./range.js";
|
|
5
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -31,7 +32,7 @@ function ReasoningPanel({ steps, visibleSteps, streaming, open, onOpenChange, re
|
|
|
31
32
|
onOpenChange,
|
|
32
33
|
className: cn("w-full max-w-sm", className),
|
|
33
34
|
children: [/* @__PURE__ */ jsxs(Collapsible.Trigger, {
|
|
34
|
-
className:
|
|
35
|
+
className: `group/trigger text-fg-muted hover:text-fg flex items-center gap-1.5 py-1 text-(length:--cue-text-body) transition-[color,scale] outline-none active:scale-[0.98] ${FOCUS_RING}`,
|
|
35
36
|
children: [/* @__PURE__ */ jsxs(SwapLabel, {
|
|
36
37
|
active: streaming ? 0 : 1,
|
|
37
38
|
className: "text-start",
|
|
@@ -19,7 +19,7 @@ type RecommendationState = "idle" | "accepted";
|
|
|
19
19
|
* onAccept={() => accept()}
|
|
20
20
|
* >
|
|
21
21
|
* Wire{" "}
|
|
22
|
-
* <span className="bg-surface-2 text-fg-muted rounded-
|
|
22
|
+
* <span className="bg-surface-2 text-fg-muted rounded-control px-1.5 py-0.5 font-mono text-(length:--cue-text-label)">
|
|
23
23
|
* runtime.drafts
|
|
24
24
|
* </span>{" "}
|
|
25
25
|
* with three lines.
|
|
@@ -23,7 +23,7 @@ const CONFIDENCE_BARS = [
|
|
|
23
23
|
* onAccept={() => accept()}
|
|
24
24
|
* >
|
|
25
25
|
* Wire{" "}
|
|
26
|
-
* <span className="bg-surface-2 text-fg-muted rounded-
|
|
26
|
+
* <span className="bg-surface-2 text-fg-muted rounded-control px-1.5 py-0.5 font-mono text-(length:--cue-text-label)">
|
|
27
27
|
* runtime.drafts
|
|
28
28
|
* </span>{" "}
|
|
29
29
|
* with three lines.
|
|
@@ -32,7 +32,7 @@ const CONFIDENCE_BARS = [
|
|
|
32
32
|
function RecommendationCard({ state, question, children, confidenceLabel, acceptedLabel, onAccept, onAlternatives, className, ...props }) {
|
|
33
33
|
return /* @__PURE__ */ jsxs("div", {
|
|
34
34
|
"data-slot": "recommendation-card",
|
|
35
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
35
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
36
36
|
...props,
|
|
37
37
|
children: [
|
|
38
38
|
/* @__PURE__ */ jsx("p", {
|
|
@@ -31,11 +31,11 @@ function RegenerateMenu({ options, open, currentId, onOpenChange, onPick, classN
|
|
|
31
31
|
className: cn(ghostButton, "size-7 self-start", open && "bg-surface-2 text-fg"),
|
|
32
32
|
children: /* @__PURE__ */ jsx(RefreshCwIcon, { className: "size-3.5" })
|
|
33
33
|
}), open && /* @__PURE__ */ jsx("div", {
|
|
34
|
-
className: cn("bg-surface-2 border border-border-overlay", "cue-elements-fade-in cue-elements-zoom-in-95 cue-elements-slide-in-from-top-1 cue-elements-animate-in flex flex-col gap-0.5 rounded-
|
|
34
|
+
className: cn("bg-surface-2 border border-border-overlay", "cue-elements-fade-in cue-elements-zoom-in-95 cue-elements-slide-in-from-top-1 cue-elements-animate-in flex flex-col gap-0.5 rounded-overlay p-1.5 duration-200"),
|
|
35
35
|
children: options.map((option) => /* @__PURE__ */ jsxs("button", {
|
|
36
36
|
type: "button",
|
|
37
37
|
onClick: () => onPick?.(option.id),
|
|
38
|
-
className: "hover:bg-surface-1 flex items-baseline gap-2 rounded-
|
|
38
|
+
className: "hover:bg-surface-1 flex items-baseline gap-2 rounded-surface px-2.5 py-1.5 text-start transition-colors",
|
|
39
39
|
children: [/* @__PURE__ */ jsx("span", {
|
|
40
40
|
className: "min-w-0 flex-1 truncate text-(length:--cue-text-body)",
|
|
41
41
|
children: option.label
|
|
@@ -16,7 +16,7 @@ function ResearchReport({ title, sections, sourcesRead, className, ...props }) {
|
|
|
16
16
|
const done = sections.filter((section) => section.state === "done").length;
|
|
17
17
|
return /* @__PURE__ */ jsxs("div", {
|
|
18
18
|
"data-slot": "research-report",
|
|
19
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
19
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
20
20
|
...props,
|
|
21
21
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
22
22
|
className: "flex flex-col gap-1",
|
|
@@ -41,7 +41,7 @@ function RetrievalChunks({ query, chunks, visibleCount, searching, className, ..
|
|
|
41
41
|
/* @__PURE__ */ jsx("div", {
|
|
42
42
|
className: "flex min-h-[7rem] flex-col gap-1.5",
|
|
43
43
|
children: take(chunks, visibleCount).map((chunk) => /* @__PURE__ */ jsxs("div", {
|
|
44
|
-
className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both flex flex-col gap-1.5 rounded-
|
|
44
|
+
className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-bottom-1 cue-elements-animate-in cue-elements-fill-mode-both flex flex-col gap-1.5 rounded-overlay px-3.5 py-2.5 duration-300"),
|
|
45
45
|
children: [
|
|
46
46
|
/* @__PURE__ */ jsxs("div", {
|
|
47
47
|
className: "flex items-baseline gap-2",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING, FOCUS_RING_INSET_2 } from "../system/_focus-ring.js";
|
|
3
4
|
import { field, fieldInteractive, ghostButton, mono, paper } from "./surfaces.js";
|
|
4
5
|
import { REVERT_LABELS, REVERT_SCOPES, REVERT_SCOPE_DESCRIPTIONS, REVERT_SCOPE_LABELS } from "./vocabulary.js";
|
|
5
6
|
import * as React from "react";
|
|
@@ -210,7 +211,7 @@ const RevertDock = React.forwardRef(function RevertDock({ label = "Revert to thi
|
|
|
210
211
|
"data-slot": "revert-dock",
|
|
211
212
|
"data-open": String(open),
|
|
212
213
|
"data-confirming": confirming ?? "none",
|
|
213
|
-
className: cn(paper, "flex w-full flex-col rounded-
|
|
214
|
+
className: cn(paper, "flex w-full flex-col rounded-overlay", className),
|
|
214
215
|
onKeyDown: (event) => {
|
|
215
216
|
onKeyDown?.(event);
|
|
216
217
|
if (event.key !== "Escape" || confirming === null) return;
|
|
@@ -226,7 +227,7 @@ const RevertDock = React.forwardRef(function RevertDock({ label = "Revert to thi
|
|
|
226
227
|
if (open && confirming !== null) onConfirmingChange?.(null);
|
|
227
228
|
onOpenChange?.(!open);
|
|
228
229
|
},
|
|
229
|
-
className:
|
|
230
|
+
className: `hover:bg-surface-2 flex items-center gap-2.5 rounded-overlay px-3 py-2 text-start transition-colors ${FOCUS_RING_INSET_2} motion-reduce:transition-none`,
|
|
230
231
|
children: [
|
|
231
232
|
/* @__PURE__ */ jsx(HistoryIcon, {
|
|
232
233
|
"aria-hidden": true,
|
|
@@ -270,7 +271,7 @@ const RevertDock = React.forwardRef(function RevertDock({ label = "Revert to thi
|
|
|
270
271
|
disabled: confirming !== null,
|
|
271
272
|
id: armed ? scopeId : void 0,
|
|
272
273
|
onClick: () => onConfirmingChange?.(scope),
|
|
273
|
-
className: cn(confirming === null ? fieldInteractive : armed ? "bg-danger/10" : cn(field, "opacity-60"),
|
|
274
|
+
className: cn(confirming === null ? fieldInteractive : armed ? "bg-danger/10" : cn(field, "opacity-60"), `flex flex-col items-start gap-0.5 rounded-control px-3 py-2 text-start outline-none ${FOCUS_RING_INSET_2}`),
|
|
274
275
|
children: [/* @__PURE__ */ jsx("span", {
|
|
275
276
|
className: "text-fg text-(length:--cue-text-ui) font-medium",
|
|
276
277
|
children: scopeCopy[scope]
|
|
@@ -311,7 +312,7 @@ const RevertDock = React.forwardRef(function RevertDock({ label = "Revert to thi
|
|
|
311
312
|
onConfirmingChange?.(null);
|
|
312
313
|
onRestore?.(confirming);
|
|
313
314
|
},
|
|
314
|
-
className:
|
|
315
|
+
className: `bg-danger text-danger-fg flex items-center gap-1.5 rounded-control px-3 py-1.5 text-(length:--cue-text-ui) font-medium outline-none transition-[opacity,scale] duration-150 enabled:hover:opacity-90 enabled:active:scale-[0.96] disabled:opacity-60 ${FOCUS_RING} motion-reduce:transition-none`,
|
|
315
316
|
children: [/* @__PURE__ */ jsx(RotateCcwIcon, {
|
|
316
317
|
"aria-hidden": true,
|
|
317
318
|
className: "size-3.5"
|
|
@@ -29,7 +29,7 @@ function ReviewableDiff({ filename, hunks, onKeep, onDiscard, onApply, className
|
|
|
29
29
|
const pending = hunks.filter((hunk) => hunk.decision === "pending").length;
|
|
30
30
|
return /* @__PURE__ */ jsxs("div", {
|
|
31
31
|
"data-slot": "reviewable-diff",
|
|
32
|
-
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-
|
|
32
|
+
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-overlay", className),
|
|
33
33
|
...props,
|
|
34
34
|
children: [
|
|
35
35
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -22,14 +22,14 @@ import { CheckIcon, ClockIcon, XIcon } from "lucide-react";
|
|
|
22
22
|
function ScheduleCard({ name, cadence, nextRun, enabled, history, onToggle, className, ...props }) {
|
|
23
23
|
return /* @__PURE__ */ jsxs("div", {
|
|
24
24
|
"data-slot": "schedule-card",
|
|
25
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
25
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
26
26
|
...props,
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ jsxs("div", {
|
|
29
29
|
className: "flex items-center gap-2.5",
|
|
30
30
|
children: [
|
|
31
31
|
/* @__PURE__ */ jsx("span", {
|
|
32
|
-
className: "bg-surface-1 text-fg-muted flex size-7 shrink-0 items-center justify-center rounded-
|
|
32
|
+
className: "bg-surface-1 text-fg-muted flex size-7 shrink-0 items-center justify-center rounded-surface",
|
|
33
33
|
children: /* @__PURE__ */ jsx(ClockIcon, { className: "size-3.5" })
|
|
34
34
|
}),
|
|
35
35
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -54,7 +54,7 @@ function ScheduleCard({ name, cadence, nextRun, enabled, history, onToggle, clas
|
|
|
54
54
|
]
|
|
55
55
|
}),
|
|
56
56
|
/* @__PURE__ */ jsxs("div", {
|
|
57
|
-
className: cn(field, "flex items-baseline gap-2 rounded-
|
|
57
|
+
className: cn(field, "flex items-baseline gap-2 rounded-surface px-3 py-2", !enabled && "opacity-45"),
|
|
58
58
|
children: [/* @__PURE__ */ jsx("span", {
|
|
59
59
|
className: cn(mono, "text-fg-subtle"),
|
|
60
60
|
children: "next"
|
|
@@ -22,7 +22,7 @@ function ScoreBreakdown({ verdict, total, outOf, criteria, visibleCount, classNa
|
|
|
22
22
|
const ratio = outOf === 0 ? 0 : total / outOf;
|
|
23
23
|
return /* @__PURE__ */ jsxs("div", {
|
|
24
24
|
"data-slot": "score-breakdown",
|
|
25
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
25
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
26
26
|
...props,
|
|
27
27
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
28
28
|
className: "flex items-baseline gap-2",
|