@moldable-ai/ui 0.2.21 → 0.2.24
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/dist/catalog/catalog-coverage.d.ts +1 -1
- package/dist/catalog/catalog-manifest.d.ts +1 -1
- package/dist/catalog/catalog-manifest.js +1 -1
- package/dist/catalog/catalog-types.d.ts +7 -0
- package/dist/catalog/catalog-types.d.ts.map +1 -1
- package/dist/catalog/catalog-types.js +1 -0
- package/dist/catalog/component-catalog.d.ts +1 -1
- package/dist/catalog/component-catalog.js +2 -2
- package/dist/catalog/core-catalog-exclusions.d.ts +1 -1
- package/dist/catalog/core-catalog-exclusions.d.ts.map +1 -1
- package/dist/catalog/core-catalog-exclusions.js +1 -146
- package/dist/catalog/core-catalog.d.ts +1 -1
- package/dist/catalog/core-catalog.d.ts.map +1 -1
- package/dist/catalog/core-catalog.js +11 -7
- package/dist/catalog/core-collection-stories.d.ts +1 -1
- package/dist/catalog/core-collection-stories.d.ts.map +1 -1
- package/dist/catalog/core-collection-stories.js +41 -9
- package/dist/catalog/core-control-stories.d.ts +1 -1
- package/dist/catalog/core-control-stories.d.ts.map +1 -1
- package/dist/catalog/core-control-stories.js +53 -22
- package/dist/catalog/core-feedback-stories.d.ts +1 -1
- package/dist/catalog/core-feedback-stories.d.ts.map +1 -1
- package/dist/catalog/core-feedback-stories.js +89 -10
- package/dist/catalog/core-form-stories.d.ts +3 -0
- package/dist/catalog/core-form-stories.d.ts.map +1 -0
- package/dist/catalog/core-form-stories.js +56 -0
- package/dist/catalog/core-foundation-stories.d.ts +1 -1
- package/dist/catalog/core-foundation-stories.js +7 -7
- package/dist/catalog/core-layout-stories.d.ts +3 -0
- package/dist/catalog/core-layout-stories.d.ts.map +1 -0
- package/dist/catalog/core-layout-stories.js +78 -0
- package/dist/catalog/core-navigation-stories.d.ts +1 -1
- package/dist/catalog/core-navigation-stories.d.ts.map +1 -1
- package/dist/catalog/core-navigation-stories.js +25 -3
- package/dist/catalog/core-overlay-stories.d.ts +1 -1
- package/dist/catalog/core-overlay-stories.d.ts.map +1 -1
- package/dist/catalog/core-overlay-stories.js +113 -8
- package/dist/catalog/index.d.ts +6 -6
- package/dist/catalog/index.js +6 -6
- package/dist/components/app-error-boundary.d.ts.map +1 -1
- package/dist/components/app-error-boundary.js +4 -3
- package/dist/components/chat/chat-image-lightbox.js +3 -3
- package/dist/components/chat/chat-input.js +5 -5
- package/dist/components/chat/chat-message.js +17 -17
- package/dist/components/chat/chat-messages.d.ts +1 -1
- package/dist/components/chat/chat-messages.js +3 -3
- package/dist/components/chat/chat-panel.d.ts +6 -6
- package/dist/components/chat/chat-panel.d.ts.map +1 -1
- package/dist/components/chat/chat-panel.js +33 -33
- package/dist/components/chat/checkpoint-badge.js +3 -3
- package/dist/components/chat/conversation-history.d.ts.map +1 -1
- package/dist/components/chat/conversation-history.js +13 -13
- package/dist/components/chat/index.d.ts +20 -15
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +20 -15
- package/dist/components/chat/markdown.js +1 -1
- package/dist/components/chat/model-effort-selector.js +10 -10
- package/dist/components/chat/model-selector.js +4 -4
- package/dist/components/chat/reasoning-effort-selector.js +4 -4
- package/dist/components/chat/restore-dialog.js +3 -3
- package/dist/components/chat/thinking-timeline.js +2 -2
- package/dist/components/chat/tool-approval.d.ts +1 -1
- package/dist/components/chat/tool-approval.d.ts.map +1 -1
- package/dist/components/chat/tool-approval.js +9 -9
- package/dist/components/chat/tool-handlers.d.ts +2 -2
- package/dist/components/chat/tool-handlers.js +90 -90
- package/dist/components/chat/voice-orb-audio.d.ts +16 -0
- package/dist/components/chat/voice-orb-audio.d.ts.map +1 -0
- package/dist/components/chat/voice-orb-audio.js +110 -0
- package/dist/components/chat/voice-orb-renderer.d.ts +51 -0
- package/dist/components/chat/voice-orb-renderer.d.ts.map +1 -0
- package/dist/components/chat/voice-orb-renderer.js +410 -0
- package/dist/components/chat/voice-orb-shaders.d.ts +3 -0
- package/dist/components/chat/voice-orb-shaders.d.ts.map +1 -0
- package/dist/components/chat/voice-orb-shaders.js +355 -0
- package/dist/components/chat/voice-orb-types.d.ts +24 -0
- package/dist/components/chat/voice-orb-types.d.ts.map +1 -0
- package/dist/components/chat/voice-orb-types.js +73 -0
- package/dist/components/chat/voice-orb.d.ts +20 -0
- package/dist/components/chat/voice-orb.d.ts.map +1 -0
- package/dist/components/chat/voice-orb.js +67 -0
- package/dist/components/code-block.js +1 -1
- package/dist/components/hardware/bluetooth-panel.d.ts +2 -2
- package/dist/components/hardware/bluetooth-panel.js +10 -10
- package/dist/components/hardware/camera-preview.js +6 -6
- package/dist/components/hardware/capability-badge.d.ts +2 -2
- package/dist/components/hardware/capability-badge.js +2 -2
- package/dist/components/hardware/capability-matrix.d.ts +1 -1
- package/dist/components/hardware/capability-matrix.js +5 -5
- package/dist/components/hardware/clipboard-button.d.ts +1 -1
- package/dist/components/hardware/clipboard-button.js +2 -2
- package/dist/components/hardware/device-list.js +1 -1
- package/dist/components/hardware/display-map.d.ts +1 -1
- package/dist/components/hardware/display-map.js +7 -7
- package/dist/components/hardware/haptic-button.d.ts +2 -2
- package/dist/components/hardware/haptic-button.js +3 -3
- package/dist/components/hardware/hardware-panel.js +1 -1
- package/dist/components/hardware/hid-panel.d.ts +2 -2
- package/dist/components/hardware/hid-panel.js +10 -10
- package/dist/components/hardware/index.d.ts +26 -26
- package/dist/components/hardware/index.js +26 -26
- package/dist/components/hardware/live-indicator.js +1 -1
- package/dist/components/hardware/local-auth-button.d.ts +2 -2
- package/dist/components/hardware/local-auth-button.js +4 -4
- package/dist/components/hardware/location-panel.d.ts +1 -1
- package/dist/components/hardware/location-panel.js +6 -6
- package/dist/components/hardware/microphone-meter.js +7 -7
- package/dist/components/hardware/midi-monitor.d.ts +2 -2
- package/dist/components/hardware/midi-monitor.js +9 -9
- package/dist/components/hardware/notification-panel.d.ts +1 -1
- package/dist/components/hardware/notification-panel.js +8 -8
- package/dist/components/hardware/power-blocker-controller.d.ts +1 -1
- package/dist/components/hardware/power-blocker-controller.js +1 -1
- package/dist/components/hardware/power-panel.d.ts +1 -1
- package/dist/components/hardware/power-panel.js +9 -9
- package/dist/components/hardware/readout.js +1 -1
- package/dist/components/hardware/screen-share-preview.js +5 -5
- package/dist/components/hardware/secure-storage-panel.d.ts +1 -1
- package/dist/components/hardware/secure-storage-panel.js +9 -9
- package/dist/components/hardware/serial-console.d.ts +2 -2
- package/dist/components/hardware/serial-console.js +10 -10
- package/dist/components/hardware/shortcut-recorder.d.ts +1 -1
- package/dist/components/hardware/shortcut-recorder.js +4 -4
- package/dist/components/hardware/stream-log.js +1 -1
- package/dist/components/hardware/system-audio-monitor.d.ts +1 -1
- package/dist/components/hardware/system-audio-monitor.js +9 -9
- package/dist/components/hardware/usb-panel.d.ts +5 -5
- package/dist/components/hardware/usb-panel.js +10 -10
- package/dist/components/hardware/use-capability.d.ts +1 -1
- package/dist/components/hardware/use-capability.js +1 -1
- package/dist/components/markdown.js +5 -5
- package/dist/components/native-capabilities/bluetooth-panel.d.ts +2 -2
- package/dist/components/native-capabilities/bluetooth-panel.d.ts.map +1 -1
- package/dist/components/native-capabilities/bluetooth-panel.js +17 -17
- package/dist/components/native-capabilities/camera-preview.d.ts.map +1 -1
- package/dist/components/native-capabilities/camera-preview.js +7 -7
- package/dist/components/native-capabilities/capability-badge.d.ts +2 -2
- package/dist/components/native-capabilities/capability-badge.js +4 -4
- package/dist/components/native-capabilities/capability-matrix.d.ts +1 -1
- package/dist/components/native-capabilities/capability-matrix.js +7 -7
- package/dist/components/native-capabilities/clipboard-button.d.ts +1 -1
- package/dist/components/native-capabilities/clipboard-button.js +2 -2
- package/dist/components/native-capabilities/device-list.js +4 -4
- package/dist/components/native-capabilities/display-map.d.ts +1 -1
- package/dist/components/native-capabilities/display-map.d.ts.map +1 -1
- package/dist/components/native-capabilities/display-map.js +11 -11
- package/dist/components/native-capabilities/haptic-button.d.ts +2 -2
- package/dist/components/native-capabilities/haptic-button.js +3 -3
- package/dist/components/native-capabilities/hid-panel.d.ts +2 -2
- package/dist/components/native-capabilities/hid-panel.d.ts.map +1 -1
- package/dist/components/native-capabilities/hid-panel.js +14 -14
- package/dist/components/native-capabilities/index.d.ts +26 -26
- package/dist/components/native-capabilities/index.js +26 -26
- package/dist/components/native-capabilities/live-indicator.js +3 -3
- package/dist/components/native-capabilities/local-auth-button.d.ts +2 -2
- package/dist/components/native-capabilities/local-auth-button.js +4 -4
- package/dist/components/native-capabilities/location-panel.d.ts +1 -1
- package/dist/components/native-capabilities/location-panel.d.ts.map +1 -1
- package/dist/components/native-capabilities/location-panel.js +8 -8
- package/dist/components/native-capabilities/microphone-meter.js +9 -9
- package/dist/components/native-capabilities/midi-monitor.d.ts +2 -2
- package/dist/components/native-capabilities/midi-monitor.d.ts.map +1 -1
- package/dist/components/native-capabilities/midi-monitor.js +11 -11
- package/dist/components/native-capabilities/native-capability-panel.js +6 -6
- package/dist/components/native-capabilities/notification-panel.d.ts +1 -1
- package/dist/components/native-capabilities/notification-panel.js +9 -9
- package/dist/components/native-capabilities/power-blocker-controller.d.ts +1 -1
- package/dist/components/native-capabilities/power-blocker-controller.js +1 -1
- package/dist/components/native-capabilities/power-panel.d.ts +1 -1
- package/dist/components/native-capabilities/power-panel.d.ts.map +1 -1
- package/dist/components/native-capabilities/power-panel.js +12 -12
- package/dist/components/native-capabilities/readout.d.ts.map +1 -1
- package/dist/components/native-capabilities/readout.js +2 -2
- package/dist/components/native-capabilities/screen-share-preview.js +6 -6
- package/dist/components/native-capabilities/secure-storage-panel.d.ts +1 -1
- package/dist/components/native-capabilities/secure-storage-panel.d.ts.map +1 -1
- package/dist/components/native-capabilities/secure-storage-panel.js +11 -11
- package/dist/components/native-capabilities/serial-console.d.ts +2 -2
- package/dist/components/native-capabilities/serial-console.d.ts.map +1 -1
- package/dist/components/native-capabilities/serial-console.js +11 -11
- package/dist/components/native-capabilities/shortcut-recorder.d.ts +1 -1
- package/dist/components/native-capabilities/shortcut-recorder.js +5 -5
- package/dist/components/native-capabilities/stream-log.js +3 -3
- package/dist/components/native-capabilities/system-audio-monitor.d.ts +1 -1
- package/dist/components/native-capabilities/system-audio-monitor.js +12 -12
- package/dist/components/native-capabilities/usb-panel.d.ts +5 -5
- package/dist/components/native-capabilities/usb-panel.js +15 -15
- package/dist/components/native-capabilities/use-capability.d.ts +1 -1
- package/dist/components/native-capabilities/use-capability.js +1 -1
- package/dist/components/rich-media-player.js +3 -3
- package/dist/components/ui/accordion.js +3 -3
- package/dist/components/ui/alert-dialog.d.ts +5 -3
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +20 -10
- package/dist/components/ui/alert.d.ts +2 -2
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/alert.js +11 -11
- package/dist/components/ui/app-frame.d.ts +7 -1
- package/dist/components/ui/app-frame.d.ts.map +1 -1
- package/dist/components/ui/app-frame.js +52 -16
- package/dist/components/ui/avatar.js +5 -5
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/badge.js +4 -4
- package/dist/components/ui/breadcrumb.js +2 -2
- package/dist/components/ui/button-group.d.ts +1 -1
- package/dist/components/ui/button-group.js +4 -4
- package/dist/components/ui/button.d.ts +6 -4
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +50 -18
- package/dist/components/ui/calendar.d.ts +1 -1
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +15 -15
- package/dist/components/ui/card.js +3 -3
- package/dist/components/ui/carousel.d.ts +1 -1
- package/dist/components/ui/carousel.js +4 -4
- package/dist/components/ui/chart.js +5 -5
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +2 -2
- package/dist/components/ui/collapsible.js +3 -3
- package/dist/components/ui/color-well.js +2 -2
- package/dist/components/ui/combobox.js +9 -9
- package/dist/components/ui/command.d.ts +1 -1
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +9 -9
- package/dist/components/ui/confirm-dialog.d.ts +1 -1
- package/dist/components/ui/confirm-dialog.d.ts.map +1 -1
- package/dist/components/ui/confirm-dialog.js +2 -2
- package/dist/components/ui/context-menu.d.ts +16 -5
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +92 -16
- package/dist/components/ui/date-field.d.ts.map +1 -1
- package/dist/components/ui/date-field.js +8 -8
- package/dist/components/ui/date-picker.d.ts +2 -2
- package/dist/components/ui/date-picker.js +7 -7
- package/dist/components/ui/dialog-primary-action.d.ts +4 -0
- package/dist/components/ui/dialog-primary-action.d.ts.map +1 -0
- package/dist/components/ui/dialog-primary-action.js +37 -0
- package/dist/components/ui/dialog.d.ts +6 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +20 -7
- package/dist/components/ui/drawer.js +4 -4
- package/dist/components/ui/dropdown-menu.d.ts +15 -5
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +98 -16
- package/dist/components/ui/edge-fade.js +1 -1
- package/dist/components/ui/empty.d.ts +1 -1
- package/dist/components/ui/empty.js +5 -5
- package/dist/components/ui/error-boundary-view.d.ts +12 -0
- package/dist/components/ui/error-boundary-view.d.ts.map +1 -0
- package/dist/components/ui/error-boundary-view.js +8 -0
- package/dist/components/ui/field.d.ts +1 -1
- package/dist/components/ui/field.d.ts.map +1 -1
- package/dist/components/ui/field.js +9 -9
- package/dist/components/ui/form.js +4 -4
- package/dist/components/ui/grid.d.ts.map +1 -1
- package/dist/components/ui/grid.js +5 -5
- package/dist/components/ui/hover-card.js +2 -2
- package/dist/components/ui/icon-button.d.ts +1 -1
- package/dist/components/ui/icon-button.d.ts.map +1 -1
- package/dist/components/ui/icon-button.js +3 -4
- package/dist/components/ui/index.d.ts +77 -76
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +77 -76
- package/dist/components/ui/input-group.d.ts +3 -3
- package/dist/components/ui/input-group.js +14 -14
- package/dist/components/ui/input-otp.js +3 -3
- package/dist/components/ui/input.js +2 -2
- package/dist/components/ui/inspector.d.ts +1 -1
- package/dist/components/ui/inspector.js +6 -6
- package/dist/components/ui/item.d.ts +1 -1
- package/dist/components/ui/item.js +7 -7
- package/dist/components/ui/kbd.js +2 -2
- package/dist/components/ui/label.js +2 -2
- package/dist/components/ui/list.d.ts.map +1 -1
- package/dist/components/ui/list.js +5 -5
- package/dist/components/ui/material.js +3 -3
- package/dist/components/ui/menu-items.d.ts +28 -0
- package/dist/components/ui/menu-items.d.ts.map +1 -0
- package/dist/components/ui/menu-items.js +111 -0
- package/dist/components/ui/menubar.js +11 -11
- package/dist/components/ui/message-scroller-controller.d.ts +1 -1
- package/dist/components/ui/message-scroller-controller.js +1 -1
- package/dist/components/ui/message-scroller-primitive.d.ts +1 -1
- package/dist/components/ui/message-scroller-primitive.js +1 -1
- package/dist/components/ui/message-scroller.d.ts +2 -2
- package/dist/components/ui/message-scroller.js +3 -3
- package/dist/components/ui/navigation-button-group.d.ts +2 -2
- package/dist/components/ui/navigation-button-group.js +2 -2
- package/dist/components/ui/navigation-menu.js +6 -6
- package/dist/components/ui/notification-dot.js +2 -2
- package/dist/components/ui/number-input.js +8 -8
- package/dist/components/ui/pagination.d.ts +1 -1
- package/dist/components/ui/pagination.js +2 -2
- package/dist/components/ui/panel.d.ts +1 -1
- package/dist/components/ui/panel.js +3 -3
- package/dist/components/ui/popover.d.ts +1 -1
- package/dist/components/ui/popover.js +3 -3
- package/dist/components/ui/progress.js +2 -2
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +2 -2
- package/dist/components/ui/resizable.d.ts +1 -1
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +15 -4
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +3 -3
- package/dist/components/ui/search-field.js +7 -7
- package/dist/components/ui/segmented-control.js +9 -9
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +6 -6
- package/dist/components/ui/separator.js +1 -1
- package/dist/components/ui/sheet.js +4 -4
- package/dist/components/ui/sidebar.d.ts +5 -5
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +111 -24
- package/dist/components/ui/skeleton.js +2 -2
- package/dist/components/ui/slider.d.ts +3 -1
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +3 -3
- package/dist/components/ui/sonner.js +1 -1
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +2 -2
- package/dist/components/ui/split-view.js +1 -1
- package/dist/components/ui/status.d.ts +1 -1
- package/dist/components/ui/status.d.ts.map +1 -1
- package/dist/components/ui/status.js +10 -9
- package/dist/components/ui/switch.js +2 -2
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/table.js +7 -7
- package/dist/components/ui/tabs.js +3 -3
- package/dist/components/ui/text.d.ts +2 -2
- package/dist/components/ui/text.js +19 -19
- package/dist/components/ui/textarea.js +2 -2
- package/dist/components/ui/toggle-group.d.ts +1 -1
- package/dist/components/ui/toggle-group.js +4 -4
- package/dist/components/ui/toggle.d.ts +1 -1
- package/dist/components/ui/toggle.js +10 -10
- package/dist/components/ui/toolbar.d.ts +7 -7
- package/dist/components/ui/toolbar.js +7 -7
- package/dist/components/ui/tooltip.d.ts +2 -2
- package/dist/components/ui/tooltip.js +5 -5
- package/dist/index.d.ts +21 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -15
- package/dist/lib/frame-lifecycle.d.ts +49 -0
- package/dist/lib/frame-lifecycle.d.ts.map +1 -1
- package/dist/lib/frame-lifecycle.js +163 -1
- package/dist/lib/host-date-time-picker.d.ts +36 -0
- package/dist/lib/host-date-time-picker.d.ts.map +1 -0
- package/dist/lib/host-date-time-picker.js +162 -0
- package/dist/lib/host-file-dialog.d.ts +66 -0
- package/dist/lib/host-file-dialog.d.ts.map +1 -0
- package/dist/lib/host-file-dialog.js +221 -0
- package/dist/lib/host-native-menu.d.ts +116 -0
- package/dist/lib/host-native-menu.d.ts.map +1 -0
- package/dist/lib/host-native-menu.js +242 -0
- package/dist/lib/host-services.d.ts +13 -0
- package/dist/lib/host-services.d.ts.map +1 -0
- package/dist/lib/host-services.js +161 -0
- package/dist/lib/host-share.d.ts +39 -0
- package/dist/lib/host-share.d.ts.map +1 -0
- package/dist/lib/host-share.js +161 -0
- package/dist/lib/host-web-surface.d.ts +31 -0
- package/dist/lib/host-web-surface.d.ts.map +1 -0
- package/dist/lib/host-web-surface.js +116 -0
- package/dist/lib/native-capabilities/access.d.ts +2 -2
- package/dist/lib/native-capabilities/access.js +2 -2
- package/dist/lib/native-capabilities/bluetooth-access.d.ts +1 -1
- package/dist/lib/native-capabilities/bluetooth-access.js +2 -2
- package/dist/lib/native-capabilities/bluetooth-connection.d.ts +1 -1
- package/dist/lib/native-capabilities/bluetooth-connection.js +1 -1
- package/dist/lib/native-capabilities/bluetooth-gatt.d.ts +1 -1
- package/dist/lib/native-capabilities/bluetooth-gatt.js +1 -1
- package/dist/lib/native-capabilities/bluetooth-internal.d.ts +2 -2
- package/dist/lib/native-capabilities/bluetooth-internal.js +1 -1
- package/dist/lib/native-capabilities/bluetooth-native-fallback.d.ts +2 -2
- package/dist/lib/native-capabilities/bluetooth-native-fallback.js +2 -2
- package/dist/lib/native-capabilities/bluetooth.d.ts +6 -6
- package/dist/lib/native-capabilities/bluetooth.js +4 -4
- package/dist/lib/native-capabilities/bridge.d.ts +1 -1
- package/dist/lib/native-capabilities/bridge.js +2 -2
- package/dist/lib/native-capabilities/capabilities.d.ts +1 -1
- package/dist/lib/native-capabilities/capabilities.js +1 -1
- package/dist/lib/native-capabilities/clipboard.js +2 -2
- package/dist/lib/native-capabilities/device-io-errors.d.ts +1 -1
- package/dist/lib/native-capabilities/device-io-errors.js +1 -1
- package/dist/lib/native-capabilities/displays.d.ts +1 -1
- package/dist/lib/native-capabilities/displays.js +1 -1
- package/dist/lib/native-capabilities/global-shortcuts.d.ts +2 -2
- package/dist/lib/native-capabilities/global-shortcuts.js +1 -1
- package/dist/lib/native-capabilities/haptics.d.ts +1 -1
- package/dist/lib/native-capabilities/haptics.js +1 -1
- package/dist/lib/native-capabilities/hid-native.d.ts +2 -2
- package/dist/lib/native-capabilities/hid-native.js +3 -3
- package/dist/lib/native-capabilities/hid.js +5 -5
- package/dist/lib/native-capabilities/index.d.ts +39 -39
- package/dist/lib/native-capabilities/index.js +21 -21
- package/dist/lib/native-capabilities/local-authentication.d.ts +1 -1
- package/dist/lib/native-capabilities/local-authentication.js +1 -1
- package/dist/lib/native-capabilities/location.js +1 -1
- package/dist/lib/native-capabilities/media-permissions.d.ts +1 -1
- package/dist/lib/native-capabilities/media-permissions.js +1 -1
- package/dist/lib/native-capabilities/media.d.ts +1 -1
- package/dist/lib/native-capabilities/media.js +2 -2
- package/dist/lib/native-capabilities/midi-access.d.ts +1 -1
- package/dist/lib/native-capabilities/midi-access.js +3 -3
- package/dist/lib/native-capabilities/midi-internal.d.ts +1 -1
- package/dist/lib/native-capabilities/midi-internal.js +1 -1
- package/dist/lib/native-capabilities/midi-native-fallback.d.ts +1 -1
- package/dist/lib/native-capabilities/midi-native-fallback.js +2 -2
- package/dist/lib/native-capabilities/midi-ports.d.ts +1 -1
- package/dist/lib/native-capabilities/midi-ports.js +1 -1
- package/dist/lib/native-capabilities/midi.d.ts +5 -5
- package/dist/lib/native-capabilities/midi.js +3 -3
- package/dist/lib/native-capabilities/native-device-io.d.ts +1 -1
- package/dist/lib/native-capabilities/native-device-io.js +1 -1
- package/dist/lib/native-capabilities/native-device-lifecycle.js +1 -1
- package/dist/lib/native-capabilities/notifications.d.ts +2 -2
- package/dist/lib/native-capabilities/notifications.js +1 -1
- package/dist/lib/native-capabilities/power-session.d.ts +2 -2
- package/dist/lib/native-capabilities/power-session.js +1 -1
- package/dist/lib/native-capabilities/secure-storage.d.ts +1 -1
- package/dist/lib/native-capabilities/secure-storage.js +1 -1
- package/dist/lib/native-capabilities/serial-native.d.ts +2 -2
- package/dist/lib/native-capabilities/serial-native.js +3 -3
- package/dist/lib/native-capabilities/serial.js +5 -5
- package/dist/lib/native-capabilities/system-audio.d.ts +1 -1
- package/dist/lib/native-capabilities/system-audio.js +1 -1
- package/dist/lib/native-capabilities/usb-native.d.ts +2 -2
- package/dist/lib/native-capabilities/usb-native.js +3 -3
- package/dist/lib/native-capabilities/usb.js +5 -5
- package/dist/lib/native-hardware/bluetooth-access.d.ts +1 -1
- package/dist/lib/native-hardware/bluetooth-access.js +1 -1
- package/dist/lib/native-hardware/bluetooth-connection.d.ts +1 -1
- package/dist/lib/native-hardware/bluetooth-connection.js +1 -1
- package/dist/lib/native-hardware/bluetooth-gatt.d.ts +1 -1
- package/dist/lib/native-hardware/bluetooth-gatt.js +1 -1
- package/dist/lib/native-hardware/bluetooth-internal.d.ts +2 -2
- package/dist/lib/native-hardware/bluetooth-internal.js +1 -1
- package/dist/lib/native-hardware/bluetooth-native-fallback.d.ts +2 -2
- package/dist/lib/native-hardware/bluetooth-native-fallback.js +2 -2
- package/dist/lib/native-hardware/bluetooth.d.ts +6 -6
- package/dist/lib/native-hardware/bluetooth.js +4 -4
- package/dist/lib/native-hardware/bridge.d.ts +1 -1
- package/dist/lib/native-hardware/bridge.js +2 -2
- package/dist/lib/native-hardware/capabilities.d.ts +1 -1
- package/dist/lib/native-hardware/capabilities.js +1 -1
- package/dist/lib/native-hardware/clipboard.js +1 -1
- package/dist/lib/native-hardware/device-io-errors.d.ts +1 -1
- package/dist/lib/native-hardware/device-io-errors.js +1 -1
- package/dist/lib/native-hardware/displays.d.ts +1 -1
- package/dist/lib/native-hardware/displays.js +1 -1
- package/dist/lib/native-hardware/global-shortcuts.d.ts +2 -2
- package/dist/lib/native-hardware/global-shortcuts.js +1 -1
- package/dist/lib/native-hardware/haptics.d.ts +1 -1
- package/dist/lib/native-hardware/haptics.js +1 -1
- package/dist/lib/native-hardware/hid-native.d.ts +2 -2
- package/dist/lib/native-hardware/hid-native.js +3 -3
- package/dist/lib/native-hardware/hid.js +4 -4
- package/dist/lib/native-hardware/index.d.ts +37 -37
- package/dist/lib/native-hardware/index.js +20 -20
- package/dist/lib/native-hardware/local-authentication.d.ts +1 -1
- package/dist/lib/native-hardware/local-authentication.js +1 -1
- package/dist/lib/native-hardware/location.js +1 -1
- package/dist/lib/native-hardware/media-permissions.d.ts +1 -1
- package/dist/lib/native-hardware/media-permissions.js +1 -1
- package/dist/lib/native-hardware/media.d.ts +1 -1
- package/dist/lib/native-hardware/media.js +1 -1
- package/dist/lib/native-hardware/midi-access.d.ts +1 -1
- package/dist/lib/native-hardware/midi-access.js +2 -2
- package/dist/lib/native-hardware/midi-internal.d.ts +1 -1
- package/dist/lib/native-hardware/midi-internal.js +1 -1
- package/dist/lib/native-hardware/midi-native-fallback.d.ts +1 -1
- package/dist/lib/native-hardware/midi-native-fallback.js +2 -2
- package/dist/lib/native-hardware/midi-ports.d.ts +1 -1
- package/dist/lib/native-hardware/midi-ports.js +1 -1
- package/dist/lib/native-hardware/midi.d.ts +5 -5
- package/dist/lib/native-hardware/midi.js +3 -3
- package/dist/lib/native-hardware/native-device-io.d.ts +1 -1
- package/dist/lib/native-hardware/native-device-io.js +1 -1
- package/dist/lib/native-hardware/native-device-lifecycle.js +1 -1
- package/dist/lib/native-hardware/notifications.d.ts +2 -2
- package/dist/lib/native-hardware/notifications.js +1 -1
- package/dist/lib/native-hardware/power-session.d.ts +2 -2
- package/dist/lib/native-hardware/power-session.js +1 -1
- package/dist/lib/native-hardware/secure-storage.d.ts +1 -1
- package/dist/lib/native-hardware/secure-storage.js +1 -1
- package/dist/lib/native-hardware/serial-native.d.ts +2 -2
- package/dist/lib/native-hardware/serial-native.js +3 -3
- package/dist/lib/native-hardware/serial.js +4 -4
- package/dist/lib/native-hardware/system-audio.d.ts +1 -1
- package/dist/lib/native-hardware/system-audio.js +1 -1
- package/dist/lib/native-hardware/usb-native.d.ts +2 -2
- package/dist/lib/native-hardware/usb-native.js +3 -3
- package/dist/lib/native-hardware/usb.js +4 -4
- package/dist/lib/theme.js +1 -1
- package/docs/README.md +1 -0
- package/docs/design-tokens.md +28 -6
- package/docs/foundations.md +4 -2
- package/docs/visual-regression.md +78 -0
- package/package.json +15 -4
- package/src/components/ui/alert-dialog.md +27 -0
- package/src/components/ui/button.md +10 -3
- package/src/components/ui/confirm-dialog.md +97 -0
- package/src/components/ui/context-menu.md +158 -0
- package/src/components/ui/dialog.md +23 -4
- package/src/components/ui/dropdown-menu.md +165 -0
- package/src/components/ui/error-boundary-view.md +98 -0
- package/src/components/ui/hover-card.md +90 -0
- package/src/components/ui/select.md +111 -0
- package/src/lib/host-date-time-picker.md +29 -0
- package/src/lib/host-file-dialog.md +76 -0
- package/src/lib/host-native-menu.md +67 -0
- package/src/lib/host-share.md +36 -0
- package/src/lib/host-web-surface.md +66 -0
- package/src/styles/index.css +141 -68
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Host file dialog
|
|
2
|
+
|
|
3
|
+
`useHostFileDialog()`, `openFileDialogWithHost()`, and
|
|
4
|
+
`saveFileDialogWithHost()` opt a call site into the host-owned macOS open/save
|
|
5
|
+
sheet when Moldable advertises `fileDialog`.
|
|
6
|
+
|
|
7
|
+
The fallback is intentionally only a routing signal:
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
const fileDialog = useHostFileDialog()
|
|
11
|
+
|
|
12
|
+
async function chooseFiles() {
|
|
13
|
+
const result = await fileDialog.open({
|
|
14
|
+
title: 'Import notes',
|
|
15
|
+
filters: [{ name: 'Text', extensions: ['txt', 'md'] }],
|
|
16
|
+
defaultLocation: 'documents',
|
|
17
|
+
properties: { multiple: true },
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
if (result.status === 'fallback') {
|
|
21
|
+
portableFileInputRef.current?.click()
|
|
22
|
+
return
|
|
23
|
+
}
|
|
24
|
+
if (result.status === 'completed') {
|
|
25
|
+
await importSelectedPaths(result.paths)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<>
|
|
31
|
+
<Button onClick={chooseFiles}>Import</Button>
|
|
32
|
+
<input ref={portableFileInputRef} type="file" multiple hidden />
|
|
33
|
+
</>
|
|
34
|
+
)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This SDK does not build or trigger the portable `<input type="file">` flow.
|
|
38
|
+
Callers own that cross-platform UI and route to it when the result is
|
|
39
|
+
`{ status: "fallback" }`.
|
|
40
|
+
|
|
41
|
+
## Result representation
|
|
42
|
+
|
|
43
|
+
For v1, completed native results contain absolute path strings. This preserves
|
|
44
|
+
parity with Moldable's legacy app-facing `moldable:select-folder` API; there is
|
|
45
|
+
currently no external-file asset or opaque-handle scheme. A selected path is
|
|
46
|
+
not additional filesystem authority: this service only selects a location and
|
|
47
|
+
adds no read or write API.
|
|
48
|
+
|
|
49
|
+
## Defined v1 behavior
|
|
50
|
+
|
|
51
|
+
- `filters` accepts at most 32 named filters. Each filter has 1–64 extensions,
|
|
52
|
+
written without a leading dot. On macOS the validated names describe the
|
|
53
|
+
filter groups, while AppKit receives the deduplicated union of their
|
|
54
|
+
extensions as its allowed file types.
|
|
55
|
+
- `defaultLocation` maps `documents`, `downloads`, and `desktop` to those
|
|
56
|
+
conventional folders under the user's home directory; `home` maps to the
|
|
57
|
+
home directory; `appData` maps to the requesting app's
|
|
58
|
+
`workspaces/{workspaceId}/apps/{appId}/data` directory.
|
|
59
|
+
- Open `multiple` defaults to `false`.
|
|
60
|
+
- Open `directories` defaults to `false`; when true the panel chooses
|
|
61
|
+
directories instead of files.
|
|
62
|
+
- Open and save `createDirectories` default to `false`; when true AppKit shows
|
|
63
|
+
its New Folder control.
|
|
64
|
+
- Open `showHidden` defaults to `false`; when true hidden entries are initially
|
|
65
|
+
visible. The user may still use AppKit's standard hidden-file shortcut.
|
|
66
|
+
- Save `defaultName` initializes the filename field and must be a filename, not
|
|
67
|
+
a path.
|
|
68
|
+
- `title` and `buttonLabel` set AppKit's panel title and confirmation prompt.
|
|
69
|
+
AppKit sheets may not visibly render a titlebar, but the value is still
|
|
70
|
+
applied to the panel.
|
|
71
|
+
- Unknown and mode-inappropriate properties are rejected before presentation.
|
|
72
|
+
|
|
73
|
+
The panel is presented as a sheet owned by the requesting embedded or dedicated
|
|
74
|
+
host window. User cancellation resolves with `{ status: "cancelled" }`. An
|
|
75
|
+
`AbortSignal` abort rejects with `AbortError` and asks the host to cancel the
|
|
76
|
+
request-ID-keyed AppKit panel.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Host native menu
|
|
2
|
+
|
|
3
|
+
`useHostNativeMenu()` and `openNativeMenuWithHost()` opt a call site into a
|
|
4
|
+
host-owned AppKit menu when the Moldable host advertises `nativeMenu`. The
|
|
5
|
+
portable Radix `ContextMenu` remains the cross-platform implementation and is
|
|
6
|
+
owned by the caller.
|
|
7
|
+
|
|
8
|
+
The intended integration shape is to try the native menu from the same pointer
|
|
9
|
+
handler that would open the portable menu, then leave or restore the portable
|
|
10
|
+
path when the host is unavailable:
|
|
11
|
+
|
|
12
|
+
```tsx
|
|
13
|
+
const nativeMenu = useHostNativeMenu()
|
|
14
|
+
const [portableOpen, setPortableOpen] = useState(false)
|
|
15
|
+
|
|
16
|
+
async function handleContextMenu(event: React.MouseEvent) {
|
|
17
|
+
if (!nativeMenu.available) {
|
|
18
|
+
// Do not prevent the event. ContextMenuTrigger opens the portable menu.
|
|
19
|
+
return
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
event.preventDefault()
|
|
23
|
+
const result = await nativeMenu.open(menuItems, {
|
|
24
|
+
position: { x: event.clientX, y: event.clientY },
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
if (result.status === 'completed') {
|
|
28
|
+
runCommand(result.selectedId)
|
|
29
|
+
} else if (result.status === 'fallback') {
|
|
30
|
+
setPortableOpen(true)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<ContextMenu open={portableOpen} onOpenChange={setPortableOpen}>
|
|
36
|
+
<ContextMenuTrigger asChild>
|
|
37
|
+
<div onContextMenu={handleContextMenu}>{children}</div>
|
|
38
|
+
</ContextMenuTrigger>
|
|
39
|
+
<ContextMenuContent>{/* existing portable items */}</ContextMenuContent>
|
|
40
|
+
</ContextMenu>
|
|
41
|
+
)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The request requires exactly one app-viewport placement: an `anchor` element or
|
|
45
|
+
rect, or a pointer `position`. Item depth is capped at 3 and the whole tree at
|
|
46
|
+
200 items. Selectable item IDs are non-empty and unique across the tree.
|
|
47
|
+
Checkboxes support `true`, `false`, and `"mixed"`; radio items reject
|
|
48
|
+
`"mixed"`.
|
|
49
|
+
|
|
50
|
+
`destructive` is reserved in v1. It is validated and carried through the
|
|
51
|
+
service but is deliberately not rendered with native destructive styling. The
|
|
52
|
+
portable menu may continue to render its destructive variant.
|
|
53
|
+
|
|
54
|
+
Shortcuts use AppKit's
|
|
55
|
+
[`NSMenuItem.keyEquivalent`](https://developer.apple.com/documentation/appkit/nsmenuitem/keyequivalent)
|
|
56
|
+
and modifier mask so AppKit draws the conventional shortcut label. The menu is
|
|
57
|
+
a transient popup attached to the requesting host window and is never installed
|
|
58
|
+
as the application's main menu, so these values do not register global app
|
|
59
|
+
shortcuts. AppKit may still match the equivalent while that popup is actively
|
|
60
|
+
tracking; callers must treat the field as display metadata and keep command
|
|
61
|
+
handling keyed by the returned `selectedId`.
|
|
62
|
+
|
|
63
|
+
Click-away and Escape resolve with `{ status: "cancelled" }`. An explicit
|
|
64
|
+
`AbortSignal` abort rejects with `AbortError` and asks the host to call
|
|
65
|
+
`cancelTracking()` on the request-ID-keyed open menu. When native menus are not
|
|
66
|
+
advertised, the helper resolves with `{ status: "fallback" }` without opening
|
|
67
|
+
renderer UI.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Host share
|
|
2
|
+
|
|
3
|
+
`useHostShare()` and `shareWithHost()` provide one share API across Moldable
|
|
4
|
+
hosts and ordinary browsers.
|
|
5
|
+
|
|
6
|
+
```tsx
|
|
7
|
+
const share = useHostShare()
|
|
8
|
+
const buttonRef = useRef<HTMLButtonElement>(null)
|
|
9
|
+
|
|
10
|
+
await share.share(
|
|
11
|
+
[
|
|
12
|
+
{ kind: 'text', text: 'A useful note' },
|
|
13
|
+
{ kind: 'url', url: 'https://example.com/note' },
|
|
14
|
+
],
|
|
15
|
+
{ anchor: buttonRef.current ?? undefined },
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The decision flow is:
|
|
20
|
+
|
|
21
|
+
1. When the host advertises `share`, the SDK sends a host-service request. The
|
|
22
|
+
host translates the supplied element or rect from app-viewport coordinates
|
|
23
|
+
and presents the native picker.
|
|
24
|
+
2. Without that advertisement, text and URL items use `navigator.share` when
|
|
25
|
+
Web Share is available.
|
|
26
|
+
3. Otherwise the promise resolves with `status: "fallback"` and returns the
|
|
27
|
+
original items. The caller can then expose its own copy or download UI.
|
|
28
|
+
File references always take this path outside a native Moldable host because
|
|
29
|
+
a browser cannot dereference a workspace-local path.
|
|
30
|
+
|
|
31
|
+
Native dismissal is represented by the envelope's terminal `cancelled` status;
|
|
32
|
+
the SDK maps it to `{ status: "cancelled", method: "native" }`. Web Share
|
|
33
|
+
dismissal resolves with the equivalent `web` result. An explicit `AbortSignal`
|
|
34
|
+
abort rejects with `AbortError`; on the native path the envelope also asks the
|
|
35
|
+
host to dismiss the open picker. `timeoutMs` can lower the host's default
|
|
36
|
+
timeout.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Host web surface
|
|
2
|
+
|
|
3
|
+
`useHostWebSurface()` controls a native child webview supplied by the Moldable
|
|
4
|
+
desktop host. It is progressive enhancement: `available` is `true` only in a
|
|
5
|
+
dedicated app window whose manifest declares:
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"nativeCapabilities": ["webSurface"]
|
|
10
|
+
}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Embedded app views, older hosts, and apps without the declaration receive
|
|
14
|
+
`available: false`. Keep an iframe or reader implementation for those cases.
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
import { useEffect } from 'react'
|
|
18
|
+
import { useHostWebSurface } from '@moldable-ai/ui'
|
|
19
|
+
|
|
20
|
+
function LivePage({
|
|
21
|
+
url,
|
|
22
|
+
bounds,
|
|
23
|
+
}: {
|
|
24
|
+
url: string
|
|
25
|
+
bounds: { x: number; y: number; width: number; height: number }
|
|
26
|
+
}) {
|
|
27
|
+
const { available, create, destroy, onNavState, setBounds } =
|
|
28
|
+
useHostWebSurface()
|
|
29
|
+
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!available) return
|
|
32
|
+
|
|
33
|
+
void create('active-tab', url, bounds)
|
|
34
|
+
const unsubscribe = onNavState((state) => {
|
|
35
|
+
if (state.surfaceId === 'active-tab') {
|
|
36
|
+
console.log(state.url, state.canGoBack, state.canGoForward)
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
return () => {
|
|
41
|
+
unsubscribe()
|
|
42
|
+
void destroy('active-tab')
|
|
43
|
+
}
|
|
44
|
+
}, [available, create, destroy, onNavState, url])
|
|
45
|
+
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (available) {
|
|
48
|
+
void setBounds('active-tab', bounds)
|
|
49
|
+
}
|
|
50
|
+
}, [available, bounds, setBounds])
|
|
51
|
+
|
|
52
|
+
return available ? null : <iframe title="Live page" src={url} />
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Bounds are logical pixels relative to the app content viewport. Re-send them
|
|
57
|
+
when a `ResizeObserver` reports a layout change. The host also re-clamps the
|
|
58
|
+
last requested bounds after native window resizes.
|
|
59
|
+
|
|
60
|
+
Native child webviews paint above app DOM. Call `setVisible(surfaceId, false)`
|
|
61
|
+
before showing a renderer-owned dialog or overlay, then restore visibility
|
|
62
|
+
when it closes. Host-native menus already paint above the surface.
|
|
63
|
+
|
|
64
|
+
All methods accept the standard host-service `{ signal, timeoutMs }` options.
|
|
65
|
+
Invalid input throws a `TypeError`; cancellation, timeout, and host failures
|
|
66
|
+
reject with the same errors as other host-service adapters.
|
package/src/styles/index.css
CHANGED
|
@@ -186,6 +186,11 @@
|
|
|
186
186
|
--font-sans: var(--font-family-ui);
|
|
187
187
|
--font-mono: var(--font-family-mono);
|
|
188
188
|
|
|
189
|
+
--text-11: 11px;
|
|
190
|
+
--text-13: 13px;
|
|
191
|
+
--text-16: 16px;
|
|
192
|
+
--text-18: 18px;
|
|
193
|
+
--text-24: 24px;
|
|
189
194
|
--text-ui-display: var(--type-display-size);
|
|
190
195
|
--text-ui-display--line-height: var(--type-display-line-height);
|
|
191
196
|
--text-ui-display--font-weight: var(--type-display-weight);
|
|
@@ -210,8 +215,15 @@
|
|
|
210
215
|
--radius-lg: var(--radius);
|
|
211
216
|
--radius-xl: calc(var(--radius) + 4px);
|
|
212
217
|
--radius-control: var(--shape-control);
|
|
218
|
+
--radius-checkbox: var(--shape-checkbox);
|
|
213
219
|
--radius-container: var(--shape-container);
|
|
214
220
|
--radius-overlay: var(--shape-overlay);
|
|
221
|
+
--radius-popover: var(--shape-popover);
|
|
222
|
+
--radius-card: var(--shape-card);
|
|
223
|
+
--radius-group: var(--shape-group);
|
|
224
|
+
--radius-panel: var(--shape-panel);
|
|
225
|
+
--radius-dialog: var(--shape-dialog);
|
|
226
|
+
--radius-pill: var(--shape-pill);
|
|
215
227
|
--radius-window: var(--window-corner-radius);
|
|
216
228
|
|
|
217
229
|
--spacing-control-gap: var(--density-control-gap);
|
|
@@ -231,6 +243,7 @@
|
|
|
231
243
|
--ease-spring: var(--motion-ease-spring);
|
|
232
244
|
--shadow-panel: var(--material-shadow-panel);
|
|
233
245
|
--shadow-overlay: var(--material-shadow-overlay);
|
|
246
|
+
--shadow-dialog: var(--material-shadow-dialog);
|
|
234
247
|
--shadow-window: var(--material-shadow-window);
|
|
235
248
|
|
|
236
249
|
--color-background: var(--background);
|
|
@@ -273,6 +286,12 @@
|
|
|
273
286
|
--color-accent-foreground: var(--accent-foreground);
|
|
274
287
|
--color-destructive: var(--destructive);
|
|
275
288
|
--color-destructive-foreground: var(--destructive-foreground);
|
|
289
|
+
--color-info: var(--info);
|
|
290
|
+
--color-info-foreground: var(--info-foreground);
|
|
291
|
+
--color-neutral: var(--neutral);
|
|
292
|
+
--color-neutral-foreground: var(--neutral-foreground);
|
|
293
|
+
--color-pending: var(--pending);
|
|
294
|
+
--color-pending-foreground: var(--pending-foreground);
|
|
276
295
|
--color-border: var(--border);
|
|
277
296
|
--color-input: var(--input);
|
|
278
297
|
--color-ring: var(--ring);
|
|
@@ -699,39 +718,46 @@
|
|
|
699
718
|
system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
700
719
|
--font-family-mono: ui-monospace, Menlo, Consolas, monospace;
|
|
701
720
|
|
|
702
|
-
--type-display-size:
|
|
703
|
-
--type-display-line-height:
|
|
704
|
-
--type-display-weight:
|
|
705
|
-
--type-display-tracking: -0.
|
|
706
|
-
--type-heading-size:
|
|
707
|
-
--type-heading-line-height:
|
|
708
|
-
--type-heading-weight:
|
|
709
|
-
--type-heading-tracking: -0.
|
|
710
|
-
--type-title-size:
|
|
711
|
-
--type-title-line-height:
|
|
721
|
+
--type-display-size: var(--text-24);
|
|
722
|
+
--type-display-line-height: 28px;
|
|
723
|
+
--type-display-weight: 600;
|
|
724
|
+
--type-display-tracking: -0.02em;
|
|
725
|
+
--type-heading-size: var(--text-18);
|
|
726
|
+
--type-heading-line-height: 22px;
|
|
727
|
+
--type-heading-weight: 600;
|
|
728
|
+
--type-heading-tracking: -0.012em;
|
|
729
|
+
--type-title-size: var(--text-16);
|
|
730
|
+
--type-title-line-height: 20px;
|
|
712
731
|
--type-title-weight: 600;
|
|
713
|
-
--type-title-tracking: -0.
|
|
714
|
-
--type-body-size:
|
|
715
|
-
--type-body-line-height:
|
|
716
|
-
--type-label-size:
|
|
717
|
-
--type-label-line-height:
|
|
718
|
-
--type-caption-size:
|
|
719
|
-
--type-caption-line-height:
|
|
732
|
+
--type-title-tracking: -0.006em;
|
|
733
|
+
--type-body-size: var(--text-13);
|
|
734
|
+
--type-body-line-height: 18px;
|
|
735
|
+
--type-label-size: var(--text-13);
|
|
736
|
+
--type-label-line-height: 16px;
|
|
737
|
+
--type-caption-size: var(--text-11);
|
|
738
|
+
--type-caption-line-height: 14px;
|
|
720
739
|
|
|
721
740
|
--density-control-height-xs: 1.5rem;
|
|
722
|
-
--density-control-height-sm:
|
|
723
|
-
--density-control-height-md:
|
|
724
|
-
--density-control-height-lg: 2.
|
|
725
|
-
--density-control-gap: 0.
|
|
726
|
-
--density-control-padding-inline: 0.
|
|
727
|
-
--density-row-height:
|
|
728
|
-
--density-toolbar-height: 2.
|
|
729
|
-
--density-pane-padding: 0.
|
|
730
|
-
--density-section-gap:
|
|
731
|
-
|
|
732
|
-
--shape-control:
|
|
733
|
-
--shape-
|
|
734
|
-
--shape-
|
|
741
|
+
--density-control-height-sm: 1.75rem;
|
|
742
|
+
--density-control-height-md: 2rem;
|
|
743
|
+
--density-control-height-lg: 2.25rem;
|
|
744
|
+
--density-control-gap: 0.3125rem;
|
|
745
|
+
--density-control-padding-inline: 0.625rem;
|
|
746
|
+
--density-row-height: 2rem;
|
|
747
|
+
--density-toolbar-height: 2.375rem;
|
|
748
|
+
--density-pane-padding: 0.625rem;
|
|
749
|
+
--density-section-gap: 0.875rem;
|
|
750
|
+
|
|
751
|
+
--shape-control: 10px;
|
|
752
|
+
--shape-checkbox: 4px;
|
|
753
|
+
--shape-popover: 12px;
|
|
754
|
+
--shape-card: 12px;
|
|
755
|
+
--shape-group: 12px;
|
|
756
|
+
--shape-panel: 16px;
|
|
757
|
+
--shape-dialog: 22px;
|
|
758
|
+
--shape-pill: 9999px;
|
|
759
|
+
--shape-container: var(--shape-card);
|
|
760
|
+
--shape-overlay: var(--shape-popover);
|
|
735
761
|
|
|
736
762
|
--motion-duration-instant: 80ms;
|
|
737
763
|
--motion-duration-fast: 120ms;
|
|
@@ -742,7 +768,7 @@
|
|
|
742
768
|
--motion-ease-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
743
769
|
--motion-ease-spring: cubic-bezier(0.22, 1.15, 0.36, 1);
|
|
744
770
|
|
|
745
|
-
--radius:
|
|
771
|
+
--radius: var(--shape-card);
|
|
746
772
|
--background: oklch(1 0 0);
|
|
747
773
|
--foreground: oklch(0.141 0.005 285.823);
|
|
748
774
|
--card: oklch(1 0 0);
|
|
@@ -754,22 +780,22 @@
|
|
|
754
780
|
--secondary: oklch(0.967 0.001 286.375);
|
|
755
781
|
--secondary-foreground: oklch(0.21 0.006 285.885);
|
|
756
782
|
--muted: oklch(0.967 0.001 286.375);
|
|
757
|
-
--muted-foreground: oklch(0.
|
|
783
|
+
--muted-foreground: oklch(0.5 0.016 285.938);
|
|
758
784
|
--accent: oklch(0.967 0.001 286.375);
|
|
759
785
|
--accent-foreground: oklch(0.21 0.006 285.885);
|
|
760
786
|
--destructive: oklch(0.5866 0.1994 31.76);
|
|
761
787
|
--destructive-foreground: oklch(0.985 0 0);
|
|
762
788
|
--border: oklch(0.92 0.004 286.32);
|
|
763
789
|
--input: oklch(0.92 0.004 286.32);
|
|
764
|
-
--ring: oklch(0.
|
|
790
|
+
--ring: oklch(0.2 0 0 / 48%);
|
|
765
791
|
--model-effort-blue: #339cff;
|
|
766
792
|
--model-effort-purple: #924ff7;
|
|
767
793
|
--model-effort-sparkle: #fff;
|
|
768
|
-
--chart-1:
|
|
769
|
-
--chart-2:
|
|
770
|
-
--chart-3:
|
|
771
|
-
--chart-4:
|
|
772
|
-
--chart-5:
|
|
794
|
+
--chart-1: var(--info);
|
|
795
|
+
--chart-2: var(--success);
|
|
796
|
+
--chart-3: var(--pending);
|
|
797
|
+
--chart-4: var(--neutral);
|
|
798
|
+
--chart-5: var(--accent-foreground);
|
|
773
799
|
--sidebar: oklch(0.967 0.001 286.375);
|
|
774
800
|
--sidebar-foreground: oklch(0.141 0.005 285.823);
|
|
775
801
|
--sidebar-primary: oklch(0.7145 0.185 45.03);
|
|
@@ -777,15 +803,21 @@
|
|
|
777
803
|
--sidebar-accent: oklch(0.9212 0.0029 264.54);
|
|
778
804
|
--sidebar-accent-foreground: oklch(0.21 0.006 285.885);
|
|
779
805
|
--sidebar-border: oklch(0.92 0.004 286.32);
|
|
780
|
-
--sidebar-ring:
|
|
781
|
-
--
|
|
782
|
-
--
|
|
783
|
-
--
|
|
784
|
-
--
|
|
785
|
-
--
|
|
786
|
-
--
|
|
787
|
-
--
|
|
788
|
-
--
|
|
806
|
+
--sidebar-ring: var(--ring);
|
|
807
|
+
--info: oklch(0.6 0.16 250);
|
|
808
|
+
--info-foreground: oklch(0.42 0.14 250);
|
|
809
|
+
--neutral: oklch(0.64 0.012 286);
|
|
810
|
+
--neutral-foreground: oklch(0.43 0.012 286);
|
|
811
|
+
--pending: oklch(0.64 0.14 75);
|
|
812
|
+
--pending-foreground: oklch(0.42 0.12 75);
|
|
813
|
+
--warning: oklch(0.64 0.14 75);
|
|
814
|
+
--warning-foreground: oklch(0.4 0.12 75);
|
|
815
|
+
--success: oklch(0.53 0.17 145);
|
|
816
|
+
--success-foreground: oklch(0.4 0.13 145);
|
|
817
|
+
--status-running: var(--success);
|
|
818
|
+
--status-stopped: var(--neutral);
|
|
819
|
+
--status-pending: var(--pending);
|
|
820
|
+
--status-error: var(--destructive);
|
|
789
821
|
|
|
790
822
|
--text-primary: var(--foreground);
|
|
791
823
|
--text-secondary: var(--muted-foreground);
|
|
@@ -860,10 +892,15 @@
|
|
|
860
892
|
--material-clear-blur: 12px;
|
|
861
893
|
--material-clear-saturation: 1.24;
|
|
862
894
|
--material-shadow-panel:
|
|
863
|
-
0
|
|
895
|
+
inset 0 0 0 1px var(--separator), 0 1px 2px oklch(0.15 0.005 285 / 5%),
|
|
896
|
+
0 5px 14px oklch(0.15 0.005 285 / 5%);
|
|
864
897
|
--material-shadow-overlay:
|
|
865
|
-
0
|
|
866
|
-
|
|
898
|
+
inset 0 0 0 1px var(--separator), 0 4px 12px oklch(0.12 0.004 285 / 9%),
|
|
899
|
+
0 16px 38px oklch(0.12 0.004 285 / 13%);
|
|
900
|
+
--material-shadow-dialog:
|
|
901
|
+
inset 0 0 0 1px var(--separator), 0 12px 32px oklch(0.1 0.004 285 / 12%),
|
|
902
|
+
0 32px 88px oklch(0.1 0.004 285 / 18%);
|
|
903
|
+
--material-shadow-window: 0 28px 96px oklch(0.1 0.005 285 / 24%);
|
|
867
904
|
|
|
868
905
|
/*
|
|
869
906
|
* Renderer boundary for embedded and standalone windows. The host may set
|
|
@@ -947,22 +984,22 @@
|
|
|
947
984
|
--secondary: oklch(0.3375 0.0035 286.21);
|
|
948
985
|
--secondary-foreground: oklch(0.985 0 0);
|
|
949
986
|
--muted: oklch(0.3375 0.0035 286.21);
|
|
950
|
-
--muted-foreground: oklch(0.
|
|
987
|
+
--muted-foreground: oklch(0.74 0.012 286);
|
|
951
988
|
--accent: oklch(0.3375 0.0035 286.21);
|
|
952
989
|
--accent-foreground: oklch(0.985 0 0);
|
|
953
990
|
--destructive: oklch(0.704 0.191 22.216);
|
|
954
991
|
--destructive-foreground: oklch(0.985 0 0);
|
|
955
992
|
--border: oklch(1 0 0 / 10%);
|
|
956
993
|
--input: oklch(1 0 0 / 15%);
|
|
957
|
-
--ring: oklch(0.
|
|
994
|
+
--ring: oklch(0.92 0 0 / 40%);
|
|
958
995
|
--model-effort-blue: #339cff;
|
|
959
996
|
--model-effort-purple: #ad7bf9;
|
|
960
997
|
--model-effort-sparkle: #fff;
|
|
961
|
-
--chart-1:
|
|
962
|
-
--chart-2:
|
|
963
|
-
--chart-3:
|
|
964
|
-
--chart-4:
|
|
965
|
-
--chart-5:
|
|
998
|
+
--chart-1: var(--info);
|
|
999
|
+
--chart-2: var(--success);
|
|
1000
|
+
--chart-3: var(--pending);
|
|
1001
|
+
--chart-4: var(--neutral);
|
|
1002
|
+
--chart-5: var(--accent-foreground);
|
|
966
1003
|
--sidebar: oklch(0.235 0 0);
|
|
967
1004
|
--sidebar-foreground: oklch(0.985 0 0);
|
|
968
1005
|
--sidebar-primary: oklch(0.7145 0.185 45.03);
|
|
@@ -970,15 +1007,21 @@
|
|
|
970
1007
|
--sidebar-accent: oklch(0.3375 0.0035 286.21);
|
|
971
1008
|
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
972
1009
|
--sidebar-border: oklch(1 0 0 / 10%);
|
|
973
|
-
--sidebar-ring:
|
|
974
|
-
--
|
|
975
|
-
--
|
|
1010
|
+
--sidebar-ring: var(--ring);
|
|
1011
|
+
--info: oklch(0.72 0.15 250);
|
|
1012
|
+
--info-foreground: oklch(0.78 0.11 250);
|
|
1013
|
+
--neutral: oklch(0.7 0.012 286);
|
|
1014
|
+
--neutral-foreground: oklch(0.76 0.012 286);
|
|
1015
|
+
--pending: oklch(0.79 0.12 80);
|
|
1016
|
+
--pending-foreground: oklch(0.84 0.1 80);
|
|
1017
|
+
--warning: oklch(0.79 0.12 80);
|
|
1018
|
+
--warning-foreground: oklch(0.84 0.1 80);
|
|
976
1019
|
--success: oklch(0.7 0.18 145);
|
|
977
|
-
--success-foreground: oklch(0.
|
|
978
|
-
--status-running:
|
|
979
|
-
--status-stopped:
|
|
980
|
-
--status-pending:
|
|
981
|
-
--status-error:
|
|
1020
|
+
--success-foreground: oklch(0.8 0.12 145);
|
|
1021
|
+
--status-running: var(--success);
|
|
1022
|
+
--status-stopped: var(--neutral);
|
|
1023
|
+
--status-pending: var(--pending);
|
|
1024
|
+
--status-error: var(--destructive);
|
|
982
1025
|
--material-regular-fill: color-mix(
|
|
983
1026
|
in oklch,
|
|
984
1027
|
var(--background) 68%,
|
|
@@ -1004,10 +1047,15 @@
|
|
|
1004
1047
|
--material-clear-border: oklch(1 0 0 / 18%);
|
|
1005
1048
|
--material-clear-highlight: oklch(1 0 0 / 10%);
|
|
1006
1049
|
--material-shadow-panel:
|
|
1007
|
-
|
|
1050
|
+
inset 0 0 0 1px var(--separator), 0 2px 5px oklch(0 0 0 / 28%),
|
|
1051
|
+
0 8px 22px oklch(0 0 0 / 22%);
|
|
1008
1052
|
--material-shadow-overlay:
|
|
1009
|
-
|
|
1010
|
-
|
|
1053
|
+
inset 0 0 0 1px var(--separator), 0 8px 22px oklch(0 0 0 / 36%),
|
|
1054
|
+
0 24px 56px oklch(0 0 0 / 46%);
|
|
1055
|
+
--material-shadow-dialog:
|
|
1056
|
+
inset 0 0 0 1px var(--separator), 0 16px 44px oklch(0 0 0 / 42%),
|
|
1057
|
+
0 40px 112px oklch(0 0 0 / 58%);
|
|
1058
|
+
--material-shadow-window: 0 32px 112px oklch(0 0 0 / 56%);
|
|
1011
1059
|
/* Terminal - same dark look in dark mode */
|
|
1012
1060
|
--terminal: oklch(0.16 0 0);
|
|
1013
1061
|
--terminal-header: oklch(0.22 0 0);
|
|
@@ -1036,6 +1084,14 @@
|
|
|
1036
1084
|
--separator-strong: color-mix(in oklch, var(--foreground) 54%, transparent);
|
|
1037
1085
|
--control-hover: color-mix(in oklch, var(--foreground) 12%, transparent);
|
|
1038
1086
|
--control-pressed: color-mix(in oklch, var(--foreground) 18%, transparent);
|
|
1087
|
+
--shape-control: 6px;
|
|
1088
|
+
--shape-checkbox: 3px;
|
|
1089
|
+
--shape-popover: 6px;
|
|
1090
|
+
--shape-card: 6px;
|
|
1091
|
+
--shape-group: 6px;
|
|
1092
|
+
--shape-panel: 6px;
|
|
1093
|
+
--shape-dialog: 6px;
|
|
1094
|
+
--shape-pill: 6px;
|
|
1039
1095
|
--material-regular-fill: color-mix(
|
|
1040
1096
|
in oklch,
|
|
1041
1097
|
var(--material-regular-fallback) 92%,
|
|
@@ -1048,6 +1104,10 @@
|
|
|
1048
1104
|
transparent
|
|
1049
1105
|
);
|
|
1050
1106
|
--material-clear-border: var(--separator-strong);
|
|
1107
|
+
--material-shadow-panel: inset 0 0 0 1px var(--separator-strong);
|
|
1108
|
+
--material-shadow-overlay: inset 0 0 0 1px var(--separator-strong);
|
|
1109
|
+
--material-shadow-dialog: inset 0 0 0 1px var(--separator-strong);
|
|
1110
|
+
--material-shadow-window: inset 0 0 0 1px var(--separator-strong);
|
|
1051
1111
|
--window-border: var(--separator-strong);
|
|
1052
1112
|
}
|
|
1053
1113
|
}
|
|
@@ -1067,6 +1127,14 @@
|
|
|
1067
1127
|
--separator-strong: color-mix(in oklch, var(--foreground) 54%, transparent);
|
|
1068
1128
|
--control-hover: color-mix(in oklch, var(--foreground) 12%, transparent);
|
|
1069
1129
|
--control-pressed: color-mix(in oklch, var(--foreground) 18%, transparent);
|
|
1130
|
+
--shape-control: 6px;
|
|
1131
|
+
--shape-checkbox: 3px;
|
|
1132
|
+
--shape-popover: 6px;
|
|
1133
|
+
--shape-card: 6px;
|
|
1134
|
+
--shape-group: 6px;
|
|
1135
|
+
--shape-panel: 6px;
|
|
1136
|
+
--shape-dialog: 6px;
|
|
1137
|
+
--shape-pill: 6px;
|
|
1070
1138
|
--material-regular-fill: color-mix(
|
|
1071
1139
|
in oklch,
|
|
1072
1140
|
var(--material-regular-fallback) 92%,
|
|
@@ -1079,6 +1147,10 @@
|
|
|
1079
1147
|
transparent
|
|
1080
1148
|
);
|
|
1081
1149
|
--material-clear-border: var(--separator-strong);
|
|
1150
|
+
--material-shadow-panel: inset 0 0 0 1px var(--separator-strong);
|
|
1151
|
+
--material-shadow-overlay: inset 0 0 0 1px var(--separator-strong);
|
|
1152
|
+
--material-shadow-dialog: inset 0 0 0 1px var(--separator-strong);
|
|
1153
|
+
--material-shadow-window: inset 0 0 0 1px var(--separator-strong);
|
|
1082
1154
|
--window-border: var(--separator-strong);
|
|
1083
1155
|
}
|
|
1084
1156
|
|
|
@@ -1121,6 +1193,7 @@
|
|
|
1121
1193
|
--material-saturation: 1;
|
|
1122
1194
|
--material-shadow-panel: none;
|
|
1123
1195
|
--material-shadow-overlay: none;
|
|
1196
|
+
--material-shadow-dialog: none;
|
|
1124
1197
|
--material-shadow-window: none;
|
|
1125
1198
|
}
|
|
1126
1199
|
}
|