@cueplusplus/ui 0.16.0 → 0.17.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 +825 -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/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 +4 -2
- package/dist/chrome/page-shell.js +8 -5
- package/dist/chrome/panel.d.ts +5 -2
- package/dist/chrome/panel.js +8 -4
- package/dist/chrome/row.js +6 -3
- package/dist/chrome/scroll-area.js +2 -1
- package/dist/chrome/section-header.js +13 -4
- package/dist/chrome/segmented-control.js +12 -3
- package/dist/chrome/status-bar.js +2 -1
- package/dist/chrome/tabs.js +11 -3
- package/dist/chrome/toolbar.js +2 -1
- 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/calendar.js +12 -8
- 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 +26 -6
- package/dist/forms/_chassis.js +33 -8
- package/dist/forms/_listbox.js +8 -5
- package/dist/forms/checkbox.js +8 -2
- package/dist/forms/env-var-input.js +3 -2
- package/dist/forms/field.d.ts +2 -1
- package/dist/forms/field.js +15 -4
- package/dist/forms/file-upload.js +3 -2
- package/dist/forms/number-field.js +2 -1
- package/dist/forms/password-input.js +4 -2
- package/dist/forms/radio-group.js +6 -2
- 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 +5 -2
- package/dist/forms/slider.js +6 -2
- package/dist/forms/switch.js +6 -2
- package/dist/forms/textarea.js +2 -1
- package/dist/forms/toggle.js +3 -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/progress.js +5 -2
- package/dist/instruments/seam-grid.js +5 -3
- package/dist/instruments/stat.js +10 -3
- package/dist/instruments/table.js +28 -10
- package/dist/instruments/terminal-frame.js +4 -2
- package/dist/instruments/usage-chart.js +1 -1
- package/dist/layout/_collapse.js +6 -1
- package/dist/layout/bento.js +7 -4
- package/dist/layout/breadcrumb.js +7 -3
- package/dist/layout/card.js +12 -6
- package/dist/layout/carousel.js +3 -2
- package/dist/layout/collapsible.js +5 -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 +16 -0
- package/dist/layout/link.js +22 -3
- package/dist/layout/pagination.js +2 -1
- 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 +72 -12
- package/dist/overlays/_surface.js +84 -12
- package/dist/overlays/command-palette.js +9 -5
- package/dist/overlays/dialog.d.ts +5 -0
- package/dist/overlays/dialog.js +6 -1
- package/dist/overlays/info-tip.js +2 -1
- package/dist/overlays/menubar.js +3 -1
- package/dist/overlays/popover.js +2 -1
- package/dist/overlays/toast.js +6 -2
- package/dist/overlays/tooltip.js +4 -1
- package/dist/primitives/button.d.ts +15 -0
- package/dist/primitives/button.js +40 -11
- package/dist/primitives/chip.d.ts +19 -1
- package/dist/primitives/chip.js +39 -17
- package/dist/primitives/kbd.d.ts +6 -0
- package/dist/primitives/kbd.js +10 -1
- package/dist/primitives/skeleton.js +1 -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-app-bar.js +65 -0
- package/dist/system/_style-band.js +57 -0
- package/dist/system/_style-body-leading.js +21 -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 +27 -0
- package/dist/system/_style-caption.js +19 -0
- package/dist/system/_style-card-pad.js +43 -0
- package/dist/system/_style-check.js +33 -0
- package/dist/system/_style-chip.js +103 -0
- package/dist/system/_style-code.js +13 -0
- package/dist/system/_style-collapse.js +14 -0
- package/dist/system/_style-control-face.js +29 -0
- package/dist/system/_style-control-label.js +22 -0
- package/dist/system/_style-control-step.js +22 -0
- package/dist/system/_style-control.js +76 -0
- package/dist/system/_style-data-face.js +28 -0
- package/dist/system/_style-description.js +23 -0
- package/dist/system/_style-eyebrow.js +43 -0
- package/dist/system/_style-footer-rule.js +47 -0
- package/dist/system/_style-gutter.js +17 -0
- package/dist/system/_style-help-ink.js +14 -0
- package/dist/system/_style-help.js +29 -0
- package/dist/system/_style-input-face.js +34 -0
- package/dist/system/_style-kbd.js +46 -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 +46 -0
- package/dist/system/_style-menu.js +30 -0
- package/dist/system/_style-nav-item.js +41 -0
- package/dist/system/_style-nav-voice.js +43 -0
- package/dist/system/_style-option.js +42 -0
- package/dist/system/_style-overlay-title.js +35 -0
- package/dist/system/_style-page-title.js +48 -0
- package/dist/system/_style-popover-pad.js +13 -0
- package/dist/system/_style-quiet-ink.js +13 -0
- package/dist/system/_style-row-pad.js +13 -0
- package/dist/system/_style-seam.js +43 -0
- package/dist/system/_style-section-rule.js +26 -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-stage-marks.js +26 -0
- package/dist/system/_style-tab.js +71 -0
- package/dist/system/_style-textarea.js +21 -0
- package/dist/system/_style-title.js +37 -0
- package/dist/system/_style-tooltip.js +17 -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 +7 -1
- package/manifest/components/agent-pile.json +3 -0
- package/manifest/components/alert-dialog.json +29 -3
- package/manifest/components/app-bar.json +19 -2
- package/manifest/components/app-shell.json +5 -0
- package/manifest/components/ask-box.json +3 -1
- package/manifest/components/autocomplete.json +38 -1
- package/manifest/components/band.json +7 -3
- package/manifest/components/bento.json +12 -1
- package/manifest/components/breadcrumb.json +8 -1
- package/manifest/components/button.json +27 -3
- package/manifest/components/calendar.json +7 -0
- package/manifest/components/card.json +22 -1
- package/manifest/components/carousel.json +4 -1
- package/manifest/components/channel-matrix.json +31 -3
- package/manifest/components/chart-tooltip-content.json +29 -3
- package/manifest/components/chat-empty-state.json +3 -1
- package/manifest/components/checkbox-group.json +14 -0
- package/manifest/components/checkbox.json +14 -0
- package/manifest/components/chip.json +16 -1
- package/manifest/components/clamp.json +3 -1
- package/manifest/components/code-block.json +10 -1
- package/manifest/components/collapsible.json +13 -2
- package/manifest/components/color-area.json +4 -2
- package/manifest/components/color-field.json +10 -0
- package/manifest/components/color-picker.json +10 -0
- package/manifest/components/color-slider.json +3 -1
- package/manifest/components/colors-section.json +9 -1
- package/manifest/components/combobox.json +38 -1
- package/manifest/components/command-palette.json +28 -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 +10 -0
- package/manifest/components/confidence-marker.json +3 -1
- package/manifest/components/container.json +2 -1
- package/manifest/components/context-menu.json +29 -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 +10 -0
- package/manifest/components/date-picker.json +10 -0
- package/manifest/components/date-range-picker.json +10 -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 +30 -3
- package/manifest/components/disclosure.json +13 -2
- package/manifest/components/dmx-bar.json +28 -3
- package/manifest/components/dmx-strip.json +28 -3
- package/manifest/components/drawer.json +29 -3
- package/manifest/components/dropdown-menu.json +29 -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/env-var-input.json +10 -1
- 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 +14 -0
- package/manifest/components/field-error.json +14 -0
- package/manifest/components/field-label.json +15 -1
- package/manifest/components/field.json +14 -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 +29 -3
- package/manifest/components/info-tip.json +3 -0
- package/manifest/components/input-group.json +10 -0
- package/manifest/components/input.json +10 -0
- package/manifest/components/item.json +3 -1
- package/manifest/components/kbd.json +10 -1
- package/manifest/components/ledger.json +9 -2
- package/manifest/components/link.json +10 -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 +32 -4
- package/manifest/components/message-list.json +3 -0
- package/manifest/components/message.json +6 -1
- package/manifest/components/mobile-composer.json +3 -1
- package/manifest/components/multi-select.json +38 -1
- package/manifest/components/musical-time-input.json +10 -0
- package/manifest/components/navigation-menu.json +32 -3
- package/manifest/components/node-card.json +3 -0
- package/manifest/components/number-field.json +10 -1
- package/manifest/components/otp-field.json +9 -0
- package/manifest/components/page-shell.json +14 -0
- package/manifest/components/pagination.json +3 -0
- package/manifest/components/panel-header.json +10 -0
- package/manifest/components/panel.json +11 -1
- package/manifest/components/password-input.json +10 -1
- package/manifest/components/permission-scopes.json +3 -1
- package/manifest/components/piano-keyboard.json +3 -0
- package/manifest/components/popover.json +30 -3
- package/manifest/components/preset-section.json +9 -1
- package/manifest/components/preview.json +24 -10
- package/manifest/components/progress.json +6 -1
- package/manifest/components/prompt-library.json +3 -1
- package/manifest/components/queue-dock.json +3 -1
- package/manifest/components/radio-group.json +8 -0
- package/manifest/components/radio.json +8 -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 +5 -1
- package/manifest/components/scroll-area.json +4 -2
- package/manifest/components/scrollable-tabs-list.json +18 -0
- package/manifest/components/scrub-input.json +10 -1
- package/manifest/components/seam-cell.json +1 -0
- package/manifest/components/seam-grid.json +1 -0
- package/manifest/components/seam-list.json +5 -1
- package/manifest/components/search-input.json +10 -1
- package/manifest/components/section-header.json +15 -2
- package/manifest/components/segmented-control.json +16 -0
- package/manifest/components/select.json +17 -0
- package/manifest/components/settings-panel.json +3 -0
- package/manifest/components/shape-section.json +9 -1
- package/manifest/components/sheet.json +29 -3
- package/manifest/components/shimmer-label.json +3 -0
- package/manifest/components/sidebar.json +19 -2
- package/manifest/components/slider.json +8 -0
- package/manifest/components/sources.json +3 -1
- package/manifest/components/stat.json +9 -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 +8 -0
- package/manifest/components/table-scroll-region.json +20 -2
- package/manifest/components/table.json +20 -2
- package/manifest/components/tabs.json +19 -1
- package/manifest/components/tags-input.json +38 -1
- package/manifest/components/terminal-frame.json +3 -0
- package/manifest/components/textarea.json +12 -0
- package/manifest/components/theme-configurator.json +29 -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 +10 -0
- package/manifest/components/toast.json +30 -2
- package/manifest/components/toggle.json +4 -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 +3 -1
- package/manifest/components/tooltip.json +31 -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/manifest.json +204 -184
- package/manifest/tokens.json +241 -4
- package/package.json +5 -5
package/dist/date/calendar.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { FOCUS_RING } from "../system/_focus-ring.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, LABEL_TRACKING_TIGHT } from "../system/_style-label-tracking.js";
|
|
3
7
|
import "react";
|
|
4
8
|
import { jsx } from "react/jsx-runtime";
|
|
5
9
|
import { DayPicker } from "react-day-picker";
|
|
@@ -23,29 +27,29 @@ const CALENDAR_CLASSES = {
|
|
|
23
27
|
months: "relative flex flex-wrap items-start gap-(--cue-space-5)",
|
|
24
28
|
month: "flex flex-col gap-(--cue-space-2)",
|
|
25
29
|
month_caption: "flex h-control-sm items-center justify-center",
|
|
26
|
-
caption_label:
|
|
30
|
+
caption_label: `${LABEL_FACE} text-(length:--cue-text-label) ${LABEL_TRACKING} text-fg-subtle ${LABEL_CASE}`,
|
|
27
31
|
nav: "absolute inset-x-0 top-0 flex h-control-sm items-center justify-between",
|
|
28
|
-
button_previous:
|
|
29
|
-
button_next:
|
|
32
|
+
button_previous: `flex size-control-sm cursor-pointer items-center justify-center rounded-control border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors duration-150 hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none`,
|
|
33
|
+
button_next: `flex size-control-sm cursor-pointer items-center justify-center rounded-control border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors duration-150 hover:text-fg ${FOCUS_RING} disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none`,
|
|
30
34
|
chevron: "size-icon-sm fill-current",
|
|
31
35
|
month_grid: "border-collapse border-spacing-0",
|
|
32
36
|
weekdays: "",
|
|
33
|
-
weekday:
|
|
37
|
+
weekday: `size-control-sm p-0 text-center align-middle ${LABEL_FACE} text-(length:--cue-text-micro) font-normal ${LABEL_TRACKING_TIGHT} text-fg-subtle ${LABEL_CASE}`,
|
|
34
38
|
week: "",
|
|
35
39
|
day: "p-0 text-center align-middle",
|
|
36
|
-
day_button:
|
|
40
|
+
day_button: `size-control-sm cursor-pointer rounded-control border-0 bg-transparent p-0 font-mono text-(length:--cue-text-ui) tabular-nums text-fg-muted 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
41
|
today: "[&_button]:font-medium [&_button]:ring-1 [&_button]:ring-inset [&_button]:ring-accent/60",
|
|
38
42
|
outside: "[&_button]:text-fg-subtle [&_button]:opacity-50",
|
|
39
43
|
disabled: "opacity-40",
|
|
40
44
|
hidden: "invisible",
|
|
41
45
|
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-
|
|
46
|
+
range_start: "rounded-l-control",
|
|
47
|
+
range_end: "rounded-r-control",
|
|
44
48
|
range_middle: "rounded-none bg-accent-soft text-fg [&_button]:rounded-none [&_button]:bg-transparent [&_button]:text-fg",
|
|
45
49
|
footer: "pt-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg-muted",
|
|
46
50
|
dropdowns: "flex items-center gap-(--cue-space-2)",
|
|
47
51
|
dropdown_root: "relative inline-flex items-center",
|
|
48
|
-
dropdown:
|
|
52
|
+
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
53
|
week_number: "size-control-sm text-center align-middle font-mono text-(length:--cue-text-micro) tabular-nums text-fg-subtle",
|
|
50
54
|
week_number_header: "size-control-sm text-center align-middle font-mono text-(length:--cue-text-micro) text-fg-subtle"
|
|
51
55
|
};
|
|
@@ -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", {
|
|
@@ -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, field, floating, ghostButton, iconSwap, iconSwapIn, iconSwapOut, inkButton, mono, paper } from "./surfaces.js";
|
|
4
5
|
import { clamp, pct } from "./range.js";
|
|
5
6
|
import { useMemo } from "react";
|
|
@@ -114,7 +115,7 @@ function ComposerBar({ dragActive = false, className, ...props }) {
|
|
|
114
115
|
return /* @__PURE__ */ jsx("div", {
|
|
115
116
|
"data-slot": "composer-bar",
|
|
116
117
|
"data-drag-active": dragActive || void 0,
|
|
117
|
-
className: cn(paper, "flex w-full flex-col gap-2 rounded-
|
|
118
|
+
className: cn(paper, "flex w-full flex-col gap-2 rounded-overlay p-2.5 transition-colors", dragActive && "bg-stream/10", className),
|
|
118
119
|
...props
|
|
119
120
|
});
|
|
120
121
|
}
|
|
@@ -126,7 +127,7 @@ function ComposerMenu({ open, align = "start", className, ...props }) {
|
|
|
126
127
|
return /* @__PURE__ */ jsx("div", {
|
|
127
128
|
"data-slot": "composer-menu",
|
|
128
129
|
"data-open": open || void 0,
|
|
129
|
-
className: cn(floating, "absolute bottom-full z-10 mb-2 flex w-72 flex-col gap-0.5 rounded-
|
|
130
|
+
className: cn(floating, "absolute bottom-full z-10 mb-2 flex w-72 flex-col gap-0.5 rounded-overlay p-1.5", align === "start" ? "start-0 origin-bottom-left" : "end-0 origin-bottom-right", "transition-[opacity,scale] duration-200 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none", open ? "scale-100 opacity-100" : "pointer-events-none scale-[0.97] opacity-0", className),
|
|
130
131
|
...props
|
|
131
132
|
});
|
|
132
133
|
}
|
|
@@ -139,7 +140,7 @@ function ComposerMenuItem({ active = false, className, ...props }) {
|
|
|
139
140
|
type: "button",
|
|
140
141
|
"data-slot": "composer-menu-item",
|
|
141
142
|
"data-active": active || void 0,
|
|
142
|
-
className: cn("flex w-full items-center gap-2.5 rounded-
|
|
143
|
+
className: cn("flex w-full items-center gap-2.5 rounded-surface px-2.5 py-2 text-(length:--cue-text-body) transition-colors", active ? field : "hover:bg-surface-1", className),
|
|
143
144
|
...props
|
|
144
145
|
});
|
|
145
146
|
}
|
|
@@ -162,7 +163,7 @@ function ComposerCommandItem({ command, active, ...props }) {
|
|
|
162
163
|
children: command.description
|
|
163
164
|
}),
|
|
164
165
|
active && /* @__PURE__ */ jsx("kbd", {
|
|
165
|
-
className: "bg-surface-2 text-fg-muted rounded-
|
|
166
|
+
className: "bg-surface-2 text-fg-muted rounded-control px-1 font-mono text-(length:--cue-text-micro)",
|
|
166
167
|
children: "↵"
|
|
167
168
|
})
|
|
168
169
|
]
|
|
@@ -210,11 +211,11 @@ function ComposerAttachmentChip({ attachment, onRemove, className, ...props }) {
|
|
|
210
211
|
return /* @__PURE__ */ jsxs("div", {
|
|
211
212
|
"data-slot": "composer-attachment",
|
|
212
213
|
"data-state": attachment.state,
|
|
213
|
-
className: cn(field, "relative flex items-center gap-2.5 overflow-hidden rounded-
|
|
214
|
+
className: cn(field, "relative flex items-center gap-2.5 overflow-hidden rounded-surface py-1.5 ps-1.5 pe-2.5", className),
|
|
214
215
|
...props,
|
|
215
216
|
children: [
|
|
216
217
|
/* @__PURE__ */ jsx("span", {
|
|
217
|
-
className: "bg-surface-2 text-fg-muted flex size-8 shrink-0 items-center justify-center rounded-
|
|
218
|
+
className: "bg-surface-2 text-fg-muted flex size-8 shrink-0 items-center justify-center rounded-surface",
|
|
218
219
|
children: /* @__PURE__ */ jsx(Icon, { className: "size-4" })
|
|
219
220
|
}),
|
|
220
221
|
/* @__PURE__ */ jsxs("span", {
|
|
@@ -258,7 +259,7 @@ function ComposerInput({ onSubmit, onKeyDown, className, ...props }) {
|
|
|
258
259
|
if (event.key !== "Enter" || event.nativeEvent.isComposing) return;
|
|
259
260
|
onSubmit?.();
|
|
260
261
|
},
|
|
261
|
-
className: cn(
|
|
262
|
+
className: cn(`placeholder:text-fg-subtle min-h-11 w-full bg-transparent px-3 text-(length:--cue-text-emphasis) caret-stream outline-none ${FOCUS_RING}`, className),
|
|
262
263
|
...props
|
|
263
264
|
});
|
|
264
265
|
}
|
|
@@ -393,7 +394,7 @@ function ComposerContext({ usage, className, ...props }) {
|
|
|
393
394
|
className: cn("group/ctx relative", className),
|
|
394
395
|
...props,
|
|
395
396
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
396
|
-
className: cn(floating, "absolute end-0 bottom-full z-10 mb-2 flex w-60 origin-bottom-right flex-col gap-3.5 rounded-
|
|
397
|
+
className: cn(floating, "absolute end-0 bottom-full z-10 mb-2 flex w-60 origin-bottom-right flex-col gap-3.5 rounded-overlay p-4", "transition-[opacity,scale] duration-200 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none", "pointer-events-none scale-[0.97] opacity-0", "group-hover/ctx:pointer-events-auto group-hover/ctx:scale-100 group-hover/ctx:opacity-100", "group-focus-within/ctx:pointer-events-auto group-focus-within/ctx:scale-100 group-focus-within/ctx:opacity-100"),
|
|
397
398
|
children: [
|
|
398
399
|
/* @__PURE__ */ jsxs("div", {
|
|
399
400
|
className: "flex items-baseline justify-between",
|
|
@@ -21,7 +21,7 @@ function ComputerUse({ url, steps, activeIndex, children, className, ...props })
|
|
|
21
21
|
const trail = steps.slice(Math.max(0, index - 2), index + 1);
|
|
22
22
|
return /* @__PURE__ */ jsxs("div", {
|
|
23
23
|
"data-slot": "computer-use",
|
|
24
|
-
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-
|
|
24
|
+
className: cn(paper, "flex w-full max-w-md flex-col overflow-hidden rounded-overlay", className),
|
|
25
25
|
...props,
|
|
26
26
|
children: [
|
|
27
27
|
/* @__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 "./surfaces.js";
|
|
4
5
|
import { useId } from "react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -38,7 +39,7 @@ function ConfidenceMarker({ claims, hoveredId, onHover, className, ...props }) {
|
|
|
38
39
|
onMouseLeave: () => onHover?.(""),
|
|
39
40
|
onFocus: () => onHover?.(claim.id),
|
|
40
41
|
onBlur: () => onHover?.(""),
|
|
41
|
-
className: cn(
|
|
42
|
+
className: cn(`${FOCUS_RING} inline cursor-help rounded-control text-start underline decoration-2 underline-offset-[3px] transition-colors outline-none`, UNDERLINE[claim.confidence], hoveredId === claim.id ? "text-fg" : "text-fg-muted"),
|
|
42
43
|
children: [claim.text, " "]
|
|
43
44
|
}, claim.id))
|
|
44
45
|
}), /* @__PURE__ */ jsx("div", {
|
|
@@ -17,7 +17,7 @@ function ConnectionState({ phase, attempt, resumedTokens, onRetry, className, ..
|
|
|
17
17
|
if (phase === "online") return null;
|
|
18
18
|
return /* @__PURE__ */ jsxs("div", {
|
|
19
19
|
"data-slot": "connection-state",
|
|
20
|
-
className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-top-1 cue-elements-animate-in flex w-full max-w-sm items-center gap-2.5 rounded-
|
|
20
|
+
className: cn(paper, "cue-elements-fade-in cue-elements-slide-in-from-top-1 cue-elements-animate-in flex w-full max-w-sm items-center gap-2.5 rounded-overlay px-3.5 py-2.5 duration-300", className),
|
|
21
21
|
...props,
|
|
22
22
|
children: [
|
|
23
23
|
phase === "dropped" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -19,7 +19,7 @@ function ContextBreakdown({ segments, limit, className, ...props }) {
|
|
|
19
19
|
const share = (tokens) => pct(tokens, limit);
|
|
20
20
|
return /* @__PURE__ */ jsxs("div", {
|
|
21
21
|
"data-slot": "context-breakdown",
|
|
22
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
22
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
23
23
|
...props,
|
|
24
24
|
children: [
|
|
25
25
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -91,7 +91,7 @@ const ContextUsage = React.forwardRef(function ContextUsage({ categories, limit,
|
|
|
91
91
|
ref,
|
|
92
92
|
"data-slot": "context-usage",
|
|
93
93
|
"data-pressure": pressure,
|
|
94
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
94
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
95
95
|
...elementProps,
|
|
96
96
|
children: [
|
|
97
97
|
/* @__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 { ghostButton, mono, paper } from "./surfaces.js";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { ChevronDownIcon, ChevronUpIcon, SearchIcon } from "lucide-react";
|
|
@@ -36,7 +37,7 @@ function ConversationSearch({ query, hits, activeIndex, onQueryChange, onStep, c
|
|
|
36
37
|
onChange: (event) => onQueryChange?.(event.target.value),
|
|
37
38
|
placeholder: "Find in conversation",
|
|
38
39
|
"aria-label": "Find in conversation",
|
|
39
|
-
className:
|
|
40
|
+
className: `text-fg-muted placeholder:text-fg-subtle min-w-0 flex-1 bg-transparent text-(length:--cue-text-body) outline-none ${FOCUS_RING}`
|
|
40
41
|
}),
|
|
41
42
|
/* @__PURE__ */ jsx("span", {
|
|
42
43
|
className: cn(mono, "text-fg-subtle shrink-0 tabular-nums"),
|
|
@@ -58,14 +59,14 @@ function ConversationSearch({ query, hits, activeIndex, onQueryChange, onStep, c
|
|
|
58
59
|
})
|
|
59
60
|
]
|
|
60
61
|
}), active && /* @__PURE__ */ jsxs("div", {
|
|
61
|
-
className: cn("bg-fg/[0.06]", "cue-elements-fade-in cue-elements-animate-in rounded-
|
|
62
|
+
className: cn("bg-fg/[0.06]", "cue-elements-fade-in cue-elements-animate-in rounded-surface px-3 py-2 text-(length:--cue-text-ui) leading-(--cue-leading-ui) duration-200"),
|
|
62
63
|
children: [
|
|
63
64
|
/* @__PURE__ */ jsx("span", {
|
|
64
65
|
className: "text-fg-muted",
|
|
65
66
|
children: active.before
|
|
66
67
|
}),
|
|
67
68
|
/* @__PURE__ */ jsx("span", {
|
|
68
|
-
className: "text-fg rounded-
|
|
69
|
+
className: "text-fg rounded-control bg-warn/35 px-0.5",
|
|
69
70
|
children: active.match
|
|
70
71
|
}),
|
|
71
72
|
/* @__PURE__ */ jsx("span", {
|
|
@@ -15,7 +15,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
function CostMeter({ runCost, sessionCost, lines, className, ...props }) {
|
|
16
16
|
return /* @__PURE__ */ jsxs("div", {
|
|
17
17
|
"data-slot": "cost-meter",
|
|
18
|
-
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-
|
|
18
|
+
className: cn(paper, "flex w-full max-w-sm flex-col gap-3 rounded-overlay p-4", className),
|
|
19
19
|
...props,
|
|
20
20
|
children: [
|
|
21
21
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -17,7 +17,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
17
17
|
function ElementsDataTable({ rows, cycle, className, ...props }) {
|
|
18
18
|
return /* @__PURE__ */ jsxs("div", {
|
|
19
19
|
"data-slot": "data-table",
|
|
20
|
-
className: cn(paper, "w-full max-w-sm overflow-hidden rounded-
|
|
20
|
+
className: cn(paper, "w-full max-w-sm overflow-hidden rounded-overlay text-(length:--cue-text-body)", className),
|
|
21
21
|
...props,
|
|
22
22
|
children: [
|
|
23
23
|
/* @__PURE__ */ jsxs("div", {
|
|
@@ -43,7 +43,7 @@ function ElementsDataTable({ rows, cycle, className, ...props }) {
|
|
|
43
43
|
style: { animationDelay: `${index * 80}ms` },
|
|
44
44
|
children: [
|
|
45
45
|
/* @__PURE__ */ jsx("span", {
|
|
46
|
-
className: "bg-surface-2 text-fg-muted flex size-5 shrink-0 items-center justify-center rounded-
|
|
46
|
+
className: "bg-surface-2 text-fg-muted flex size-5 shrink-0 items-center justify-center rounded-control text-(length:--cue-text-micro) font-medium",
|
|
47
47
|
children: row.name[0]
|
|
48
48
|
}),
|
|
49
49
|
/* @__PURE__ */ jsx("span", {
|