@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
|
@@ -1,14 +1,53 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { CircleAlertIcon, InboxIcon } from 'lucide-react';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { ThemeProvider } from '../lib/theme.js';
|
|
5
|
+
import { Alert, AlertDescription, AlertTitle } from '../components/ui/alert.js';
|
|
6
|
+
import { Avatar, AvatarBadge, AvatarFallback } from '../components/ui/avatar.js';
|
|
7
|
+
import { Badge } from '../components/ui/badge.js';
|
|
8
|
+
import { EdgeFade } from '../components/ui/edge-fade.js';
|
|
9
|
+
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from '../components/ui/empty.js';
|
|
10
|
+
import { ErrorBoundaryView } from '../components/ui/error-boundary-view.js';
|
|
11
|
+
import { Kbd, KbdGroup } from '../components/ui/kbd.js';
|
|
12
|
+
import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, } from '../components/ui/message-scroller.js';
|
|
13
|
+
import { NotificationDot } from '../components/ui/notification-dot.js';
|
|
14
|
+
import { Progress } from '../components/ui/progress.js';
|
|
15
|
+
import { Skeleton } from '../components/ui/skeleton.js';
|
|
16
|
+
import { Toaster, toast } from '../components/ui/sonner.js';
|
|
17
|
+
import { Spinner } from '../components/ui/spinner.js';
|
|
18
|
+
import { Status } from '../components/ui/status.js';
|
|
19
|
+
function StaticToasts() {
|
|
20
|
+
React.useEffect(() => {
|
|
21
|
+
const frame = requestAnimationFrame(() => {
|
|
22
|
+
toast.success('Workspace synced', {
|
|
23
|
+
id: 'catalog-success',
|
|
24
|
+
description: 'All local changes are backed up.',
|
|
25
|
+
duration: Number.POSITIVE_INFINITY,
|
|
26
|
+
});
|
|
27
|
+
toast('Changes staged', {
|
|
28
|
+
id: 'catalog-action',
|
|
29
|
+
description: 'The release is ready to review.',
|
|
30
|
+
action: {
|
|
31
|
+
label: 'Undo',
|
|
32
|
+
onClick: () => undefined,
|
|
33
|
+
},
|
|
34
|
+
duration: Number.POSITIVE_INFINITY,
|
|
35
|
+
});
|
|
36
|
+
toast.error('Upload paused', {
|
|
37
|
+
id: 'catalog-destructive',
|
|
38
|
+
description: 'Reconnect to continue.',
|
|
39
|
+
duration: Number.POSITIVE_INFINITY,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
return () => {
|
|
43
|
+
cancelAnimationFrame(frame);
|
|
44
|
+
toast.dismiss('catalog-success');
|
|
45
|
+
toast.dismiss('catalog-action');
|
|
46
|
+
toast.dismiss('catalog-destructive');
|
|
47
|
+
};
|
|
48
|
+
}, []);
|
|
49
|
+
return _jsx(Toaster, { visibleToasts: 3, position: "bottom-right", expand: true });
|
|
50
|
+
}
|
|
12
51
|
export const coreFeedbackSection = {
|
|
13
52
|
id: 'feedback',
|
|
14
53
|
title: 'Feedback',
|
|
@@ -18,7 +57,7 @@ export const coreFeedbackSection = {
|
|
|
18
57
|
title: 'Status and badges',
|
|
19
58
|
components: ['avatar', 'badge', 'notification-dot', 'status'],
|
|
20
59
|
viewports: ['narrow'],
|
|
21
|
-
render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Avatar, { children: [_jsx(AvatarFallback, { children: "RM" }), _jsx(AvatarBadge, {})] }), _jsx(Status, { variant: "
|
|
60
|
+
render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Avatar, { children: [_jsx(AvatarFallback, { children: "RM" }), _jsx(AvatarBadge, {})] }), _jsx(Status, { variant: "success", children: "Success" }), _jsx(Status, { variant: "info", children: "Info" }), _jsx(Status, { variant: "neutral", children: "Neutral" }), _jsx(Status, { variant: "pending", children: "Pending" }), _jsx(Badge, { variant: "secondary", children: "Draft" }), _jsxs(Badge, { variant: "outline", className: "gap-1.5", children: [_jsx(NotificationDot, {}), "New"] })] })),
|
|
22
61
|
},
|
|
23
62
|
{
|
|
24
63
|
id: 'semantic-alert',
|
|
@@ -46,5 +85,45 @@ export const coreFeedbackSection = {
|
|
|
46
85
|
accessibilityModes: ['standard', 'reduced-motion'],
|
|
47
86
|
render: () => (_jsxs("div", { className: "grid gap-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx(Spinner, {}), "Syncing changes"] }), _jsx(Progress, { "aria-label": "Sync progress", value: 64 }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Skeleton, { className: "h-3 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-1/2" })] })] })),
|
|
48
87
|
},
|
|
88
|
+
{
|
|
89
|
+
id: 'static-toasts',
|
|
90
|
+
title: 'Static toast stack',
|
|
91
|
+
components: ['sonner'],
|
|
92
|
+
render: () => (_jsxs(ThemeProvider, { children: [_jsx("div", { className: "text-muted-foreground h-56 text-sm", children: "Toasts are mounted at the viewport edge." }), _jsx(StaticToasts, {})] })),
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: 'keyboard-shortcuts',
|
|
96
|
+
title: 'Keyboard shortcuts',
|
|
97
|
+
components: ['kbd'],
|
|
98
|
+
render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm", children: [_jsxs("span", { className: "flex items-center gap-2", children: ["Commands", _jsxs(KbdGroup, { children: [_jsx(Kbd, { children: "\u2318" }), _jsx(Kbd, { children: "K" })] })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Search", _jsx(Kbd, { children: "/" })] }), _jsxs("span", { className: "flex items-center gap-2", children: ["Dismiss", _jsx(Kbd, { children: "Esc" })] })] })),
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'error-boundary',
|
|
102
|
+
title: 'Error boundary view',
|
|
103
|
+
components: ['error-boundary-view'],
|
|
104
|
+
render: () => (_jsx(ErrorBoundaryView, { className: "min-h-64", title: "Calendar could not load", message: "Your data is safe. Retry the local view.", details: "RenderError: calendar view unavailable", onRetry: () => undefined })),
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'edge-fades',
|
|
108
|
+
title: 'Overflow edge fades',
|
|
109
|
+
components: ['edge-fade'],
|
|
110
|
+
render: () => (_jsxs("div", { className: "border-border relative h-48 overflow-hidden rounded-md border", children: [_jsx("div", { className: "grid gap-3 p-4", children: ['Today', 'Planning', 'Review', 'Archive', 'Later'].map((label) => (_jsx("div", { className: "bg-card rounded-md border px-3 py-2 text-sm", children: label }, label))) }), _jsx(EdgeFade, { edge: "top", size: "sm" }), _jsx(EdgeFade, { edge: "bottom", size: "lg" })] })),
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
id: 'message-scroller-frame',
|
|
114
|
+
title: 'Static message scroller',
|
|
115
|
+
components: ['message-scroller'],
|
|
116
|
+
render: () => (_jsx(MessageScrollerProvider, { defaultScrollPosition: "start", children: _jsxs(MessageScroller, { className: "border-border h-56 rounded-md border", children: [_jsx(MessageScrollerViewport, { children: _jsx(MessageScrollerContent, { className: "gap-3 p-3", children: [
|
|
117
|
+
['user', 'Create a quiet weekly planner.'],
|
|
118
|
+
[
|
|
119
|
+
'assistant',
|
|
120
|
+
'I added a focused week view and quick capture.',
|
|
121
|
+
],
|
|
122
|
+
['user', 'Keep completed tasks visible.'],
|
|
123
|
+
['assistant', 'Completed tasks now remain grouped below.'],
|
|
124
|
+
].map(([role, message], index) => (_jsx(MessageScrollerItem, { messageId: `catalog-${index}`, className: role === 'user'
|
|
125
|
+
? 'bg-muted ml-8 rounded-md p-3 text-sm'
|
|
126
|
+
: 'mr-8 p-3 text-sm', children: message }, message))) }) }), _jsx(MessageScrollerButton, { direction: "end", behavior: "auto" })] }) })),
|
|
127
|
+
},
|
|
49
128
|
],
|
|
50
129
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-form-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-form-stories.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAO/D,eAAO,MAAM,gBAAgB,EAAE,wBAiK9B,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Calendar } from '../components/ui/calendar.js';
|
|
3
|
+
import { ColorWell } from '../components/ui/color-well.js';
|
|
4
|
+
import { DatePicker } from '../components/ui/date-picker.js';
|
|
5
|
+
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, } from '../components/ui/input-otp.js';
|
|
6
|
+
import { NumberInput } from '../components/ui/number-input.js';
|
|
7
|
+
import { Slider } from '../components/ui/slider.js';
|
|
8
|
+
import { enUS } from 'date-fns/locale';
|
|
9
|
+
const selectedDate = new Date('2026-07-26T12:00:00');
|
|
10
|
+
const rangeStart = new Date('2026-07-21T12:00:00');
|
|
11
|
+
const rangeEnd = new Date('2026-07-26T12:00:00');
|
|
12
|
+
export const coreFormsSection = {
|
|
13
|
+
id: 'forms-and-values',
|
|
14
|
+
title: 'Forms and values',
|
|
15
|
+
description: 'Frozen calendar, segmented-value, stepper, slider, and color fixtures.',
|
|
16
|
+
stories: [
|
|
17
|
+
{
|
|
18
|
+
id: 'calendar-month',
|
|
19
|
+
title: 'Calendar month and range',
|
|
20
|
+
components: ['calendar'],
|
|
21
|
+
render: () => (_jsxs("div", { className: "flex flex-wrap items-start gap-4", children: [_jsx(Calendar, { "aria-label": "July 2026", mode: "single", locale: enUS, month: selectedDate, selected: selectedDate, disabled: { before: rangeStart } }), _jsx(Calendar, { "aria-label": "July 2026 date range", mode: "range", locale: enUS, month: selectedDate, selected: { from: rangeStart, to: rangeEnd } })] })),
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'date-picker-open',
|
|
25
|
+
title: 'Open date picker',
|
|
26
|
+
components: ['date-picker'],
|
|
27
|
+
render: () => (_jsx("div", { className: "flex h-[25rem] items-start justify-center pt-2", children: _jsx(DatePicker, { "aria-label": "Due date", open: true, value: "2026-07-26", locale: enUS, min: "2026-07-20", max: "2026-08-10", clearable: true, onOpenChange: () => undefined }) })),
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: 'input-otp-values',
|
|
31
|
+
title: 'One-time code',
|
|
32
|
+
components: ['input-otp'],
|
|
33
|
+
liveStates: ['focus'],
|
|
34
|
+
render: () => (_jsxs(InputOTP, { "data-state-target": "focus", "aria-label": "Verification code", maxLength: 6, value: "4812", onChange: () => undefined, children: [_jsx(InputOTPGroup, { children: [0, 1, 2].map((index) => (_jsx(InputOTPSlot, { index: index }, index))) }), _jsx(InputOTPSeparator, {}), _jsx(InputOTPGroup, { children: [3, 4, 5].map((index) => (_jsx(InputOTPSlot, { index: index }, index))) })] })),
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'slider-range',
|
|
38
|
+
title: 'Slider range with multiple thumbs',
|
|
39
|
+
components: ['slider'],
|
|
40
|
+
render: () => (_jsxs("div", { className: "grid max-w-md gap-5", children: [_jsxs("div", { children: [_jsxs("div", { className: "mb-2 flex justify-between text-sm", children: [_jsx("span", { children: "Quiet hours" }), _jsx("span", { className: "text-muted-foreground", children: "22:00\u201307:00" })] }), _jsx(Slider, { "aria-label": "Quiet hours", value: [28, 78], thumbAriaLabels: ['Quiet hours start', 'Quiet hours end'] })] }), _jsx(Slider, { "aria-label": "Disabled volume", value: [45], thumbAriaLabels: ['Volume'], disabled: true })] })),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: 'number-input-steppers',
|
|
44
|
+
title: 'Number input stepper states',
|
|
45
|
+
components: ['number-input'],
|
|
46
|
+
render: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsx(NumberInput, { "aria-label": "Session duration", value: 25, min: 5, max: 60, step: 5, unit: "min", onValueChange: () => undefined, className: "w-36" }), _jsx(NumberInput, { "aria-label": "Maximum collaborators", value: 10, min: 1, max: 10, onValueChange: () => undefined, className: "w-28" }), _jsx(NumberInput, { "aria-label": "Disabled estimate", value: 3, unit: "hrs", disabled: true, className: "w-32" })] })),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'color-well-values',
|
|
50
|
+
title: 'Color wells',
|
|
51
|
+
components: ['color-well'],
|
|
52
|
+
liveStates: ['focus'],
|
|
53
|
+
render: () => (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(ColorWell, { "data-state-target": "focus", "aria-label": "Project color", value: "#ff6b4a", onValueChange: () => undefined }), _jsx(ColorWell, { "aria-label": "No color", value: null, readOnly: true }), _jsx(ColorWell, { "aria-label": "Disabled color", value: "#4f8cff", disabled: true }), _jsx(ColorWell, { "aria-label": "Large read-only color", value: "#34a853", readOnly: true, size: "lg" })] })),
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronLeftIcon, ChevronRightIcon, LocateFixedIcon, PlusIcon, } from 'lucide-react';
|
|
3
|
-
import { AppFrame, AppFrameContent, AppFrameTitlebar, AppFrameToolbar, } from '../components/ui/app-frame';
|
|
4
|
-
import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '../components/ui/card';
|
|
5
|
-
import { IconButton } from '../components/ui/icon-button';
|
|
6
|
-
import { Material, MaterialGroup } from '../components/ui/material';
|
|
7
|
-
import { Panel, PanelContent, PanelGroup, PanelHeader, } from '../components/ui/panel';
|
|
8
|
-
import { Text } from '../components/ui/text';
|
|
9
|
-
import { Toolbar, ToolbarActions, ToolbarContent, ToolbarDescription, ToolbarTitle, } from '../components/ui/toolbar';
|
|
3
|
+
import { AppFrame, AppFrameContent, AppFrameTitlebar, AppFrameToolbar, } from '../components/ui/app-frame.js';
|
|
4
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '../components/ui/card.js';
|
|
5
|
+
import { IconButton } from '../components/ui/icon-button.js';
|
|
6
|
+
import { Material, MaterialGroup } from '../components/ui/material.js';
|
|
7
|
+
import { Panel, PanelContent, PanelGroup, PanelHeader, } from '../components/ui/panel.js';
|
|
8
|
+
import { Text } from '../components/ui/text.js';
|
|
9
|
+
import { Toolbar, ToolbarActions, ToolbarContent, ToolbarDescription, ToolbarTitle, } from '../components/ui/toolbar.js';
|
|
10
10
|
export const coreFoundationSection = {
|
|
11
11
|
id: 'window-foundations',
|
|
12
12
|
title: 'Window foundations',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-layout-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-layout-stories.tsx"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE/D,eAAO,MAAM,iBAAiB,EAAE,wBAkQ/B,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CalendarIcon, FolderIcon, InboxIcon, SettingsIcon } from 'lucide-react';
|
|
3
|
+
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from '../components/ui/accordion.js';
|
|
4
|
+
import { AspectRatio } from '../components/ui/aspect-ratio.js';
|
|
5
|
+
import { CollapsibleSection, CollapsibleSectionContent, CollapsibleSectionTrigger, } from '../components/ui/collapsible.js';
|
|
6
|
+
import { Input } from '../components/ui/input.js';
|
|
7
|
+
import { Inspector, InspectorContent, InspectorHeader, InspectorLabel, InspectorRow, InspectorSection, InspectorValue, } from '../components/ui/inspector.js';
|
|
8
|
+
import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from '../components/ui/resizable.js';
|
|
9
|
+
import { ScrollArea } from '../components/ui/scroll-area.js';
|
|
10
|
+
import { Separator } from '../components/ui/separator.js';
|
|
11
|
+
import { Sidebar, SidebarContent, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarProvider, } from '../components/ui/sidebar.js';
|
|
12
|
+
import { SplitView, SplitViewHandle, SplitViewPane, } from '../components/ui/split-view.js';
|
|
13
|
+
export const coreLayoutSection = {
|
|
14
|
+
id: 'layout-and-disclosure',
|
|
15
|
+
title: 'Layout and disclosure',
|
|
16
|
+
description: 'Stable open disclosure states and fixed geometry for structural surfaces.',
|
|
17
|
+
stories: [
|
|
18
|
+
{
|
|
19
|
+
id: 'accordion-states',
|
|
20
|
+
title: 'Accordion states',
|
|
21
|
+
components: ['accordion'],
|
|
22
|
+
render: () => (_jsxs(Accordion, { type: "single", value: "storage", onValueChange: () => undefined, className: "max-w-lg", children: [_jsxs(AccordionItem, { value: "storage", children: [_jsx(AccordionTrigger, { children: "Where is app data stored?" }), _jsx(AccordionContent, { children: "App data remains inside the active local workspace." })] }), _jsxs(AccordionItem, { value: "sync", children: [_jsx(AccordionTrigger, { children: "When does sync run?" }), _jsx(AccordionContent, { children: "Sync runs after local changes." })] }), _jsx(AccordionItem, { value: "disabled", disabled: true, children: _jsx(AccordionTrigger, { children: "Managed policy" }) })] })),
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: 'collapsible-states',
|
|
26
|
+
title: 'Collapsible section states',
|
|
27
|
+
components: ['collapsible'],
|
|
28
|
+
render: () => (_jsxs("div", { className: "grid max-w-lg gap-3", children: [_jsxs(CollapsibleSection, { open: true, children: [_jsx(CollapsibleSectionTrigger, { children: "Advanced settings" }), _jsx(CollapsibleSectionContent, { motion: "none", children: "Local indexing is enabled for this workspace." })] }), _jsx(CollapsibleSection, { children: _jsx(CollapsibleSectionTrigger, { children: "Developer options" }) })] })),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'aspect-ratio-frame',
|
|
32
|
+
title: 'Aspect ratio frame',
|
|
33
|
+
components: ['aspect-ratio'],
|
|
34
|
+
render: () => (_jsx("div", { className: "max-w-md overflow-hidden rounded-md border", children: _jsx(AspectRatio, { ratio: 16 / 9, className: "grid place-items-center bg-[radial-gradient(circle_at_25%_20%,var(--chart-2),transparent_35%),linear-gradient(135deg,var(--surface-recessed),var(--surface-canvas))]", children: _jsx("span", { className: "bg-background/80 rounded-md px-3 py-1.5 text-sm font-medium", children: "16:9 preview" }) }) })),
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'inspector-properties',
|
|
38
|
+
title: 'Inspector properties',
|
|
39
|
+
components: ['inspector'],
|
|
40
|
+
render: () => (_jsxs(Inspector, { className: "h-64 max-w-sm rounded-md border", children: [_jsx(InspectorHeader, { children: _jsx("strong", { className: "text-sm", children: "Inspector" }) }), _jsx(InspectorContent, { children: _jsxs(InspectorSection, { title: "Appearance", children: [_jsxs(InspectorRow, { children: [_jsx(InspectorLabel, { htmlFor: "catalog-title", children: "Title" }), _jsx(InspectorValue, { children: _jsx(Input, { id: "catalog-title", value: "Weekly plan", readOnly: true, className: "h-8" }) })] }), _jsxs(InspectorRow, { children: [_jsx(InspectorLabel, { children: "Width" }), _jsx(InspectorValue, { className: "text-muted-foreground text-sm", children: "640 px" })] })] }) })] })),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: 'resizable-panels',
|
|
44
|
+
title: 'Resizable panel geometry',
|
|
45
|
+
components: ['resizable'],
|
|
46
|
+
render: () => (_jsxs(ResizablePanelGroup, { orientation: "horizontal", className: "h-52 overflow-hidden rounded-md border", children: [_jsx(ResizablePanel, { defaultSize: "35%", children: _jsx("div", { className: "bg-surface-sidebar grid size-full place-items-center text-sm", children: "Library" }) }), _jsx(ResizableHandle, { withHandle: true }), _jsx(ResizablePanel, { children: _jsx("div", { className: "grid size-full place-items-center text-sm", children: "Canvas" }) })] })),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'split-view',
|
|
50
|
+
title: 'Split view geometry',
|
|
51
|
+
components: ['split-view'],
|
|
52
|
+
render: () => (_jsx("div", { className: "h-56 overflow-hidden rounded-md border", children: _jsxs(SplitView, { orientation: "horizontal", children: [_jsx(SplitViewPane, { id: "library", defaultSize: "34%", minSize: "25%", children: _jsxs("div", { className: "bg-surface-sidebar flex size-full flex-col", children: [_jsx("div", { className: "border-border border-b px-3 py-2 text-sm font-medium", children: "Library" }), _jsxs("div", { className: "grid gap-1 p-2 text-sm", children: [_jsx("div", { className: "bg-surface-selected rounded-control px-2 py-1.5 font-medium", children: "Today" }), _jsx("div", { className: "text-muted-foreground px-2 py-1.5", children: "Projects" }), _jsx("div", { className: "text-muted-foreground px-2 py-1.5", children: "Archive" })] })] }) }), _jsx(SplitViewHandle, { withHandle: true }), _jsx(SplitViewPane, { id: "canvas", defaultSize: "66%", minSize: "40%", children: _jsxs("div", { className: "flex size-full flex-col", children: [_jsx("div", { className: "border-border border-b px-3 py-2 text-sm font-medium", children: "Canvas" }), _jsx("div", { className: "grid flex-1 place-items-center p-4", children: _jsxs("div", { className: "bg-card rounded-card w-full max-w-sm border p-4", children: [_jsx("p", { className: "text-sm font-medium", children: "Weekly plan" }), _jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: "A focused workspace for the week ahead." })] }) })] }) })] }) })),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: 'scroll-area',
|
|
56
|
+
title: 'Scroll area frame',
|
|
57
|
+
components: ['scroll-area'],
|
|
58
|
+
render: () => (_jsx(ScrollArea, { className: "h-52 max-w-sm rounded-md border", scrollbars: "both", type: "always", viewportClassName: "p-3", children: _jsx("div", { className: "grid w-[32rem] gap-2", children: Array.from({ length: 8 }, (_, index) => (_jsxs("div", { className: "bg-card rounded-md border px-3 py-2 text-sm", children: ["Workspace item ", index + 1] }, index))) }) })),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'separators',
|
|
62
|
+
title: 'Semantic separators',
|
|
63
|
+
components: ['separator'],
|
|
64
|
+
render: () => (_jsxs("div", { className: "max-w-sm rounded-md border p-4 text-sm", children: [_jsx("p", { className: "font-medium", children: "Workspace" }), _jsx(Separator, { className: "my-3" }), _jsxs("div", { className: "flex h-8 items-center gap-3", children: [_jsx("span", { children: "Local" }), _jsx(Separator, { orientation: "vertical", decorative: false }), _jsx("span", { children: "Private" }), _jsx(Separator, { orientation: "vertical" }), _jsx("span", { children: "Synced" })] })] })),
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'sidebar-shell',
|
|
68
|
+
title: 'Static sidebar shell',
|
|
69
|
+
components: ['sidebar'],
|
|
70
|
+
render: () => (_jsxs(SidebarProvider, { className: "min-h-64 overflow-hidden rounded-md border", style: { '--sidebar-width': '13rem' }, children: [_jsxs(Sidebar, { collapsible: "none", children: [_jsx(SidebarHeader, { className: "px-3 py-2 font-medium", children: "Moldable" }), _jsx(SidebarContent, { children: _jsxs(SidebarGroup, { children: [_jsx(SidebarGroupLabel, { children: "Workspace" }), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: [
|
|
71
|
+
{ Icon: InboxIcon, label: 'Today' },
|
|
72
|
+
{ Icon: CalendarIcon, label: 'Calendar' },
|
|
73
|
+
{ Icon: FolderIcon, label: 'Projects' },
|
|
74
|
+
{ Icon: SettingsIcon, label: 'Settings' },
|
|
75
|
+
].map(({ Icon, label }, index) => (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { isActive: index === 0, children: [_jsx(Icon, {}), _jsx("span", { children: label })] }) }, label))) }) })] }) })] }), _jsx("div", { className: "grid flex-1 place-items-center text-sm", children: "App canvas" })] })),
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-navigation-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-navigation-stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-navigation-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-navigation-stories.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAE/D,eAAO,MAAM,qBAAqB,EAAE,wBA0KnC,CAAA"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from '../components/ui/breadcrumb';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from '../components/ui/breadcrumb.js';
|
|
3
|
+
import { Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, } from '../components/ui/menubar.js';
|
|
4
|
+
import { NavigationButtonGroup } from '../components/ui/navigation-button-group.js';
|
|
5
|
+
import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, } from '../components/ui/navigation-menu.js';
|
|
6
|
+
import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from '../components/ui/pagination.js';
|
|
7
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from '../components/ui/tabs.js';
|
|
5
8
|
export const coreNavigationSection = {
|
|
6
9
|
id: 'navigation',
|
|
7
10
|
title: 'Navigation',
|
|
@@ -21,5 +24,24 @@ export const coreNavigationSection = {
|
|
|
21
24
|
interactions: ['rest', 'focus-visible', 'disabled'],
|
|
22
25
|
render: ({ interaction }) => (_jsxs(Tabs, { defaultValue: "overview", children: [_jsxs(TabsList, { children: [_jsx(TabsTrigger, { "data-catalog-target": true, value: "overview", autoFocus: interaction === 'focus-visible', children: "Overview" }), _jsx(TabsTrigger, { value: "activity", disabled: interaction === 'disabled', children: "Activity" })] }), _jsx(TabsContent, { value: "overview", className: "text-muted-foreground p-2 text-sm", children: "Project summary" }), _jsx(TabsContent, { value: "activity", children: "Recent activity" })] })),
|
|
23
26
|
},
|
|
27
|
+
{
|
|
28
|
+
id: 'pagination-range',
|
|
29
|
+
title: 'Responsive pagination',
|
|
30
|
+
components: ['pagination'],
|
|
31
|
+
render: () => (_jsx(Pagination, { children: _jsxs(PaginationContent, { children: [_jsx(PaginationItem, { children: _jsx(PaginationPrevious, { href: "#page-3" }) }), _jsx(PaginationItem, { children: _jsx(PaginationLink, { href: "#page-1", children: "1" }) }), _jsx(PaginationItem, { className: "hidden sm:list-item", children: _jsx(PaginationEllipsis, {}) }), _jsx(PaginationItem, { children: _jsx(PaginationLink, { href: "#page-4", isActive: true, children: "4" }) }), _jsx(PaginationItem, { children: _jsx(PaginationLink, { href: "#page-5", children: "5" }) }), _jsx(PaginationItem, { children: _jsx(PaginationNext, { href: "#page-5" }) })] }) })),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'navigation-menu-open',
|
|
35
|
+
title: 'Open navigation menu',
|
|
36
|
+
components: ['navigation-menu'],
|
|
37
|
+
render: () => (_jsx("div", { className: "flex h-72 items-start justify-center pt-2", children: _jsx(NavigationMenu, { viewport: false, value: "apps", onValueChange: () => undefined, children: _jsxs(NavigationMenuList, { children: [_jsxs(NavigationMenuItem, { value: "apps", children: [_jsx(NavigationMenuTrigger, { children: "Apps" }), _jsx(NavigationMenuContent, { children: _jsxs("div", { className: "grid w-64 gap-1", children: [_jsxs(NavigationMenuLink, { href: "#calendar", active: true, children: [_jsx("span", { className: "font-medium", children: "Calendar" }), _jsx("span", { className: "text-muted-foreground text-xs", children: "Events and schedules" })] }), _jsxs(NavigationMenuLink, { href: "#meetings", children: [_jsx("span", { className: "font-medium", children: "Meetings" }), _jsx("span", { className: "text-muted-foreground text-xs", children: "Notes and recordings" })] })] }) })] }), _jsx(NavigationMenuItem, { children: _jsx(NavigationMenuLink, { href: "#settings", children: "Settings" }) })] }) }) })),
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 'menubar-open',
|
|
41
|
+
title: 'Open application menubar',
|
|
42
|
+
components: ['menubar'],
|
|
43
|
+
liveStates: ['focus'],
|
|
44
|
+
render: () => (_jsx("div", { className: "flex h-64 items-start justify-center", children: _jsxs(Menubar, { value: "file", onValueChange: () => undefined, children: [_jsxs(MenubarMenu, { value: "file", children: [_jsx(MenubarTrigger, { children: "File" }), _jsxs(MenubarContent, { children: [_jsxs(MenubarItem, { "data-state-target": "focus", children: ["New window", _jsx(MenubarShortcut, { children: "\u2318N" })] }), _jsx(MenubarCheckboxItem, { checked: true, children: "Show in Today" }), _jsx(MenubarItem, { disabled: true, children: "Import workspace" }), _jsxs(MenubarSub, { open: true, children: [_jsx(MenubarSubTrigger, { children: "Open recent" }), _jsxs(MenubarSubContent, { children: [_jsx(MenubarItem, { children: "Personal" }), _jsx(MenubarItem, { children: "Work" })] })] }), _jsx(MenubarSeparator, {}), _jsx(MenubarItem, { variant: "destructive", children: "Close workspace" })] })] }), _jsx(MenubarMenu, { value: "edit", children: _jsx(MenubarTrigger, { children: "Edit" }) })] }) })),
|
|
45
|
+
},
|
|
24
46
|
],
|
|
25
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-overlay-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-overlay-stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-overlay-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-overlay-stories.tsx"],"names":[],"mappings":"AA0HA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAqD/D,eAAO,MAAM,mBAAmB,EAAE,wBAuVjC,CAAA"}
|
|
@@ -1,20 +1,125 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { ArchiveIcon, FolderIcon, SearchIcon, Trash2Icon } from 'lucide-react';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { AlertDialog } from '../components/ui/alert-dialog.js';
|
|
5
|
+
import { AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '../components/ui/alert-dialog.js';
|
|
6
|
+
import { Button } from '../components/ui/button.js';
|
|
7
|
+
import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, } from '../components/ui/combobox.js';
|
|
8
|
+
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandItemContent, CommandItemDescription, CommandItemIcon, CommandItemTitle, CommandList, CommandShortcut, } from '../components/ui/command.js';
|
|
9
|
+
import { ConfirmDialog } from '../components/ui/confirm-dialog.js';
|
|
10
|
+
import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, } from '../components/ui/context-menu.js';
|
|
11
|
+
import { Dialog, DialogAction, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '../components/ui/dialog.js';
|
|
12
|
+
import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, } from '../components/ui/drawer.js';
|
|
13
|
+
import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from '../components/ui/dropdown-menu.js';
|
|
14
|
+
import { HoverCard, HoverCardContent, HoverCardTrigger, } from '../components/ui/hover-card.js';
|
|
15
|
+
import { Kbd } from '../components/ui/kbd.js';
|
|
16
|
+
import { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, } from '../components/ui/popover.js';
|
|
17
|
+
import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, } from '../components/ui/select.js';
|
|
18
|
+
import { Sheet, SheetBody, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, } from '../components/ui/sheet.js';
|
|
19
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipShortcut, TooltipTrigger, } from '../components/ui/tooltip.js';
|
|
20
|
+
const noop = () => undefined;
|
|
21
|
+
function OpenContextMenuFixture() {
|
|
22
|
+
const triggerRef = React.useRef(null);
|
|
23
|
+
React.useLayoutEffect(() => {
|
|
24
|
+
const trigger = triggerRef.current;
|
|
25
|
+
if (!trigger)
|
|
26
|
+
return;
|
|
27
|
+
const bounds = trigger.getBoundingClientRect();
|
|
28
|
+
trigger.dispatchEvent(new MouseEvent('contextmenu', {
|
|
29
|
+
bubbles: true,
|
|
30
|
+
button: 2,
|
|
31
|
+
clientX: bounds.left + Math.min(96, bounds.width / 2),
|
|
32
|
+
clientY: bounds.top + 56,
|
|
33
|
+
}));
|
|
34
|
+
}, []);
|
|
35
|
+
return (_jsxs(ContextMenu, { modal: false, onOpenChange: noop, children: [_jsx(ContextMenuTrigger, { ref: triggerRef, className: "border-border grid h-56 place-items-center rounded-md border border-dashed text-sm", children: "Right-click canvas" }), _jsxs(ContextMenuContent, { className: "w-52", children: [_jsxs(ContextMenuItem, { "data-state-target": "focus", children: [_jsx(FolderIcon, {}), "Open"] }), _jsx(ContextMenuCheckboxItem, { checked: true, children: "Pin item" }), _jsx(ContextMenuItem, { disabled: true, children: "Rename" }), _jsxs(ContextMenuSub, { open: true, children: [_jsx(ContextMenuSubTrigger, { children: "Move to" }), _jsxs(ContextMenuSubContent, { children: [_jsx(ContextMenuItem, { children: "Personal" }), _jsx(ContextMenuItem, { children: "Work" })] })] }), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { variant: "destructive", children: [_jsx(Trash2Icon, {}), "Delete"] })] })] }));
|
|
36
|
+
}
|
|
4
37
|
export const coreOverlaysSection = {
|
|
5
38
|
id: 'overlays',
|
|
6
39
|
title: 'Overlays',
|
|
7
|
-
description: '
|
|
40
|
+
description: 'Controlled open portal surfaces rendered against the host theme with motion disabled.',
|
|
8
41
|
stories: [
|
|
42
|
+
{
|
|
43
|
+
id: 'dialog-open',
|
|
44
|
+
title: 'Open dialog',
|
|
45
|
+
components: ['dialog'],
|
|
46
|
+
render: () => (_jsxs(Dialog, { open: true, onOpenChange: noop, children: [_jsx(DialogTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Edit workspace" }) }), _jsxs(DialogContent, { size: "sm", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Edit workspace" }), _jsx(DialogDescription, { children: "Changes apply to this local workspace." })] }), _jsx(DialogBody, { className: "text-muted-foreground text-sm", children: "Personal workspace \u00B7 Toronto" }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", children: "Cancel" }), _jsx(DialogAction, { primary: true, children: "Save changes" })] })] })] })),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'alert-dialog-open',
|
|
50
|
+
title: 'Open alert dialog',
|
|
51
|
+
components: ['alert-dialog'],
|
|
52
|
+
render: () => (_jsx(AlertDialog, { open: true, onOpenChange: noop, children: _jsxs(AlertDialogContent, { size: "sm", children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: "Remove project?" }), _jsx(AlertDialogDescription, { children: "This removes the project from this workspace." })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Cancel" }), _jsx(AlertDialogAction, { primary: true, variant: "destructive", children: "Remove" })] })] }) })),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: 'confirm-dialog-open',
|
|
56
|
+
title: 'Open confirmation dialog',
|
|
57
|
+
components: ['confirm-dialog'],
|
|
58
|
+
render: () => (_jsx(ConfirmDialog, { open: true, title: "Archive conversation?", description: "You can restore it later from the archive.", confirmLabel: "Archive", onConfirm: noop, onOpenChange: noop })),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'sheet-open',
|
|
62
|
+
title: 'Open sheet',
|
|
63
|
+
components: ['sheet'],
|
|
64
|
+
render: () => (_jsxs(Sheet, { open: true, onOpenChange: noop, children: [_jsx(SheetTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Open inspector" }) }), _jsxs(SheetContent, { side: "right", size: "sm", children: [_jsxs(SheetHeader, { children: [_jsx(SheetTitle, { children: "Inspector" }), _jsx(SheetDescription, { children: "Properties for the selected item." })] }), _jsx(SheetBody, { className: "text-muted-foreground text-sm", children: "Created July 26, 2026" }), _jsx(SheetFooter, { children: _jsx(Button, { children: "Done" }) })] })] })),
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'drawer-open',
|
|
68
|
+
title: 'Open drawer',
|
|
69
|
+
components: ['drawer'],
|
|
70
|
+
render: () => (_jsxs(Drawer, { open: true, onOpenChange: noop, children: [_jsx(DrawerTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Open queue" }) }), _jsxs(DrawerContent, { children: [_jsxs(DrawerHeader, { children: [_jsx(DrawerTitle, { children: "Upload queue" }), _jsx(DrawerDescription, { children: "Two files are ready to sync." })] }), _jsxs(DrawerFooter, { children: [_jsx(Button, { children: "Upload all" }), _jsx(DrawerClose, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Close" }) })] })] })] })),
|
|
71
|
+
},
|
|
9
72
|
{
|
|
10
73
|
id: 'popover-open',
|
|
11
74
|
title: 'Open popover',
|
|
12
75
|
components: ['popover'],
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
76
|
+
render: () => (_jsx("div", { className: "flex h-32 items-start justify-center pt-2", children: _jsxs(Popover, { open: true, onOpenChange: noop, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "View details" }) }), _jsx(PopoverContent, { size: "sm", align: "center", children: _jsxs(PopoverHeader, { children: [_jsx(PopoverTitle, { children: "Local workspace" }), _jsx(PopoverDescription, { children: "Files and app data remain on this Mac." })] }) })] }) })),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: 'hover-card-open',
|
|
80
|
+
title: 'Open hover card',
|
|
81
|
+
components: ['hover-card'],
|
|
82
|
+
render: () => (_jsx("div", { className: "flex h-36 items-start justify-center pt-2", children: _jsxs(HoverCard, { open: true, onOpenChange: noop, children: [_jsx(HoverCardTrigger, { asChild: true, children: _jsx("a", { className: "text-sm underline underline-offset-4", href: "#rob", children: "@rob" }) }), _jsxs(HoverCardContent, { children: [_jsx("div", { className: "font-medium", children: "Rob McDonald" }), _jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: "Building quiet, personal software." })] })] }) })),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: 'tooltip-open',
|
|
86
|
+
title: 'Open tooltip',
|
|
87
|
+
components: ['tooltip'],
|
|
88
|
+
render: () => (_jsx("div", { className: "flex h-24 items-start justify-center pt-8", children: _jsx(TooltipProvider, { delayDuration: 0, children: _jsxs(Tooltip, { open: true, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Commands" }) }), _jsxs(TooltipContent, { children: ["Open commands", _jsxs(TooltipShortcut, { children: [_jsx(Kbd, { children: "\u2318" }), _jsx(Kbd, { children: "K" })] })] })] }) }) })),
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: 'dropdown-menu-open',
|
|
92
|
+
title: 'Open dropdown menu',
|
|
93
|
+
components: ['dropdown-menu'],
|
|
94
|
+
liveStates: ['focus'],
|
|
95
|
+
render: () => (_jsx("div", { className: "flex h-64 items-start justify-center pt-2", children: _jsxs(DropdownMenu, { modal: false, open: true, onOpenChange: noop, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Project actions" }) }), _jsxs(DropdownMenuContent, { align: "start", className: "w-56", children: [_jsxs(DropdownMenuItem, { "data-state-target": "focus", children: [_jsx(FolderIcon, {}), "Open project", _jsx(DropdownMenuShortcut, { children: "\u2318O" })] }), _jsx(DropdownMenuCheckboxItem, { checked: true, children: "Show in Today" }), _jsx(DropdownMenuItem, { disabled: true, children: "Duplicate" }), _jsxs(DropdownMenuSub, { open: true, children: [_jsx(DropdownMenuSubTrigger, { children: "Move to" }), _jsxs(DropdownMenuSubContent, { children: [_jsx(DropdownMenuItem, { children: "Personal" }), _jsx(DropdownMenuItem, { children: "Work" })] })] }), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { variant: "destructive", children: [_jsx(Trash2Icon, {}), "Delete project"] })] })] }) })),
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 'context-menu-open',
|
|
99
|
+
title: 'Open context menu',
|
|
100
|
+
components: ['context-menu'],
|
|
101
|
+
liveStates: ['focus'],
|
|
102
|
+
render: () => _jsx(OpenContextMenuFixture, {}),
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: 'select-open',
|
|
106
|
+
title: 'Open select',
|
|
107
|
+
components: ['select'],
|
|
108
|
+
liveStates: ['focus'],
|
|
109
|
+
render: () => (_jsx("div", { className: "flex h-64 items-start justify-center pt-2", children: _jsxs(Select, { open: true, value: "balanced", onOpenChange: noop, children: [_jsx(SelectTrigger, { className: "w-52", "aria-label": "Model effort", tabIndex: -1, children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsxs(SelectGroup, { children: [_jsx(SelectLabel, { children: "Model effort" }), _jsx(SelectItem, { value: "fast", "data-state-target": "focus", children: "Fast" }), _jsx(SelectItem, { value: "balanced", children: "Balanced" }), _jsx(SelectItem, { value: "deep", disabled: true, children: "Deep (unavailable)" })] }), _jsx(SelectSeparator, {}), _jsx(SelectItem, { value: "custom", children: "Custom" })] })] }) })),
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: 'combobox-open',
|
|
113
|
+
title: 'Open combobox',
|
|
114
|
+
components: ['combobox'],
|
|
115
|
+
liveStates: ['focus'],
|
|
116
|
+
render: () => (_jsx("div", { className: "flex h-64 items-start justify-center pt-2", children: _jsxs(Combobox, { modal: false, open: true, autoHighlight: true, defaultValue: "Calendar", items: ['Calendar', 'Meetings', 'Mail'], children: [_jsx(ComboboxInput, { "data-state-target": "focus", "data-state-key": "ArrowDown", "aria-label": "Choose an app", placeholder: "Search apps", className: "w-56" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxList, { children: _jsxs(ComboboxGroup, { children: [_jsx(ComboboxLabel, { children: "Apps" }), _jsx(ComboboxItem, { value: "Calendar", children: "Calendar" }), _jsx(ComboboxItem, { value: "Meetings", children: "Meetings" }), _jsx(ComboboxItem, { value: "Mail", disabled: true, children: "Mail (offline)" })] }) }), _jsx(ComboboxEmpty, { children: "No apps found." })] })] }) })),
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 'command-open',
|
|
120
|
+
title: 'Open command palette',
|
|
121
|
+
components: ['command'],
|
|
122
|
+
render: () => (_jsxs(CommandDialog, { open: true, onOpenChange: noop, children: [_jsx(CommandInput, { placeholder: "Search commands" }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No commands found." }), _jsxs(CommandGroup, { heading: "Workspace", children: [_jsxs(CommandItem, { value: "open-search", children: [_jsx(CommandItemIcon, { children: _jsx(SearchIcon, {}) }), _jsxs(CommandItemContent, { children: [_jsx(CommandItemTitle, { children: "Search workspace" }), _jsx(CommandItemDescription, { children: "Find apps, files, and conversations" })] }), _jsx(CommandShortcut, { children: "\u2318K" })] }), _jsxs(CommandItem, { value: "archive", children: [_jsx(CommandItemIcon, { children: _jsx(ArchiveIcon, {}) }), _jsx(CommandItemTitle, { children: "Open archive" })] }), _jsx(CommandItem, { value: "disabled", disabled: true, children: "Import cloud workspace" })] })] })] })),
|
|
18
123
|
},
|
|
19
124
|
],
|
|
20
125
|
};
|
package/dist/catalog/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { buildCatalogCases, createCatalogManifest, createCatalogSection, createCatalogStory, } from './catalog-manifest';
|
|
2
|
-
export { assertCatalogCoverage, getCatalogCoverage, type CatalogCoverageExclusion, type CatalogCoverageReport, } from './catalog-coverage';
|
|
3
|
-
export { CatalogCaseFrame, ComponentCatalog, type CatalogCaseFrameProps, type ComponentCatalogProps, } from './component-catalog';
|
|
4
|
-
export { coreComponentCatalog } from './core-catalog';
|
|
5
|
-
export { coreCatalogExclusions } from './core-catalog-exclusions';
|
|
6
|
-
export { catalogAccessibilityModes, catalogDensities, catalogInteractions, catalogThemes, catalogViewports, type CatalogAccessibilityMode, type CatalogCase, type CatalogCaseContext, type CatalogCaseFilter, type CatalogDensity, type CatalogInteraction, type CatalogManifest, type CatalogSectionDefinition, type CatalogStoryDefinition, type CatalogTheme, type CatalogViewport, } from './catalog-types';
|
|
1
|
+
export { buildCatalogCases, createCatalogManifest, createCatalogSection, createCatalogStory, } from './catalog-manifest.js';
|
|
2
|
+
export { assertCatalogCoverage, getCatalogCoverage, type CatalogCoverageExclusion, type CatalogCoverageReport, } from './catalog-coverage.js';
|
|
3
|
+
export { CatalogCaseFrame, ComponentCatalog, type CatalogCaseFrameProps, type ComponentCatalogProps, } from './component-catalog.js';
|
|
4
|
+
export { coreComponentCatalog } from './core-catalog.js';
|
|
5
|
+
export { coreCatalogExclusions } from './core-catalog-exclusions.js';
|
|
6
|
+
export { catalogAccessibilityModes, catalogDensities, catalogInteractions, catalogThemes, catalogViewports, type CatalogAccessibilityMode, type CatalogCase, type CatalogCaseContext, type CatalogCaseFilter, type CatalogDensity, type CatalogInteraction, type CatalogManifest, type CatalogSectionDefinition, type CatalogStoryDefinition, type CatalogTheme, type CatalogViewport, } from './catalog-types.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/catalog/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { buildCatalogCases, createCatalogManifest, createCatalogSection, createCatalogStory, } from './catalog-manifest';
|
|
2
|
-
export { assertCatalogCoverage, getCatalogCoverage, } from './catalog-coverage';
|
|
3
|
-
export { CatalogCaseFrame, ComponentCatalog, } from './component-catalog';
|
|
4
|
-
export { coreComponentCatalog } from './core-catalog';
|
|
5
|
-
export { coreCatalogExclusions } from './core-catalog-exclusions';
|
|
6
|
-
export { catalogAccessibilityModes, catalogDensities, catalogInteractions, catalogThemes, catalogViewports, } from './catalog-types';
|
|
1
|
+
export { buildCatalogCases, createCatalogManifest, createCatalogSection, createCatalogStory, } from './catalog-manifest.js';
|
|
2
|
+
export { assertCatalogCoverage, getCatalogCoverage, } from './catalog-coverage.js';
|
|
3
|
+
export { CatalogCaseFrame, ComponentCatalog, } from './component-catalog.js';
|
|
4
|
+
export { coreComponentCatalog } from './core-catalog.js';
|
|
5
|
+
export { coreCatalogExclusions } from './core-catalog-exclusions.js';
|
|
6
|
+
export { catalogAccessibilityModes, catalogDensities, catalogInteractions, catalogThemes, catalogViewports, } from './catalog-types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error-boundary.d.ts","sourceRoot":"","sources":["../../src/components/app-error-boundary.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"app-error-boundary.d.ts","sourceRoot":"","sources":["../../src/components/app-error-boundary.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAA;AAWzE,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;IACnB,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,aAAa,CAAC,EAAE,cAAc,CAAA;CAC/B;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,cAAc,CAAA;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAaD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWhE;AA0CD,qBAAa,gBAAiB,SAAQ,SAAS,CAC7C,qBAAqB,EACrB,qBAAqB,CACtB;IACC,KAAK,EAAE,qBAAqB,CAAA;IAE5B,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,qBAAqB,CAAC;gBAIrB,KAAK,EAAE,qBAAqB;IASxC,iBAAiB,IAAI,IAAI;IAgBzB,oBAAoB,IAAI,IAAI;IAU5B,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAWtD,OAAO,CAAC,iBAAiB,CAMxB;IAED,OAAO,CAAC,wBAAwB,CAa/B;IAED,OAAO,CAAC,MAAM,CAEb;IAED,OAAO,CAAC,WAAW,CAYlB;IAED,MAAM;CAoCP"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxs as _jsxs,
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { MessageSquareWarning, RefreshCw } from 'lucide-react';
|
|
4
4
|
import { Component } from 'react';
|
|
5
|
-
import { Button } from './ui/button';
|
|
5
|
+
import { Button } from './ui/button.js';
|
|
6
|
+
import { ErrorBoundaryView } from './ui/error-boundary-view.js';
|
|
6
7
|
function toError(value) {
|
|
7
8
|
if (value instanceof Error)
|
|
8
9
|
return value;
|
|
@@ -117,6 +118,6 @@ export class AppErrorBoundary extends Component {
|
|
|
117
118
|
if (!error)
|
|
118
119
|
return this.props.children;
|
|
119
120
|
const errorSummary = formatError(error, source, componentStack);
|
|
120
|
-
return (_jsx(
|
|
121
|
+
return (_jsx(ErrorBoundaryView, { className: "min-h-screen", title: `${this.props.appName} hit a UI error`, message: "Reload to recover, or send the captured client error to Moldable so it can inspect the crash.", details: errorSummary, actions: _jsxs(_Fragment, { children: [_jsxs(Button, { type: "button", className: "cursor-pointer", onClick: this.reload, children: [_jsx(RefreshCw, {}), "Reload"] }), _jsxs(Button, { type: "button", variant: "secondary", className: "cursor-pointer", onClick: this.askMoldable, children: [_jsx(MessageSquareWarning, {}), "Ask Moldable to fix this"] })] }) }));
|
|
121
122
|
}
|
|
122
123
|
}
|