@moldable-ai/ui 0.2.22 → 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/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 -150
- 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 +40 -8
- 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 +48 -20
- 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.js +2 -2
- 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 +2 -2
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +16 -10
- package/dist/components/ui/alert.d.ts +1 -1
- 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 +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +16 -16
- 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.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.d.ts +2 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +14 -8
- 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.map +1 -1
- package/dist/components/ui/error-boundary-view.js +3 -3
- 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.js +3 -3
- package/dist/components/ui/index.d.ts +77 -77
- package/dist/components/ui/index.js +77 -77
- package/dist/components/ui/input-group.d.ts +2 -2
- 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.js +1 -1
- 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 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -20
- package/dist/lib/frame-lifecycle.d.ts +27 -0
- package/dist/lib/frame-lifecycle.d.ts.map +1 -1
- package/dist/lib/frame-lifecycle.js +136 -0
- package/dist/lib/host-date-time-picker.d.ts +1 -1
- package/dist/lib/host-date-time-picker.js +1 -1
- package/dist/lib/host-file-dialog.d.ts +1 -1
- package/dist/lib/host-file-dialog.js +1 -1
- package/dist/lib/host-native-menu.d.ts +48 -7
- package/dist/lib/host-native-menu.d.ts.map +1 -1
- package/dist/lib/host-native-menu.js +56 -1
- package/dist/lib/host-services.js +1 -1
- package/dist/lib/host-share.d.ts +1 -1
- package/dist/lib/host-share.js +1 -1
- 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/design-tokens.md +28 -6
- package/docs/foundations.md +4 -2
- package/package.json +4 -2
- package/src/components/ui/confirm-dialog.md +97 -0
- package/src/components/ui/context-menu.md +158 -0
- package/src/components/ui/dropdown-menu.md +165 -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,4 +1,4 @@
|
|
|
1
|
-
import { type CatalogCase, type CatalogCaseFilter, type CatalogManifest, type CatalogSectionDefinition, type CatalogStoryDefinition } from './catalog-types';
|
|
1
|
+
import { type CatalogCase, type CatalogCaseFilter, type CatalogManifest, type CatalogSectionDefinition, type CatalogStoryDefinition } from './catalog-types.js';
|
|
2
2
|
export declare function createCatalogStory(story: CatalogStoryDefinition): CatalogStoryDefinition;
|
|
3
3
|
export declare function createCatalogSection(section: CatalogSectionDefinition): CatalogSectionDefinition;
|
|
4
4
|
export declare function createCatalogManifest(manifest: CatalogManifest): CatalogManifest;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { catalogDensities, catalogThemes, catalogViewports, } from './catalog-types';
|
|
1
|
+
import { catalogDensities, catalogThemes, catalogViewports, } from './catalog-types.js';
|
|
2
2
|
const catalogIdPattern = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
|
|
3
3
|
function assertCatalogId(id, kind) {
|
|
4
4
|
if (!catalogIdPattern.test(id)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type { CatalogCase, CatalogCaseFilter, CatalogManifest } from './catalog-types';
|
|
2
|
+
import type { CatalogCase, CatalogCaseFilter, CatalogManifest } from './catalog-types.js';
|
|
3
3
|
export interface ComponentCatalogProps extends Omit<React.ComponentProps<'main'>, 'children'> {
|
|
4
4
|
manifest: CatalogManifest;
|
|
5
5
|
filter?: CatalogCaseFilter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { cn } from '../lib/utils';
|
|
4
|
-
import { buildCatalogCases } from './catalog-manifest';
|
|
3
|
+
import { cn } from '../lib/utils.js';
|
|
4
|
+
import { buildCatalogCases } from './catalog-manifest.js';
|
|
5
5
|
function caseLabel(catalogCase) {
|
|
6
6
|
const labels = [
|
|
7
7
|
catalogCase.theme,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CatalogCoverageExclusion } from './catalog-coverage';
|
|
1
|
+
import type { CatalogCoverageExclusion } from './catalog-coverage.js';
|
|
2
2
|
/**
|
|
3
3
|
* Intentional gaps in the deterministic core catalog. Keeping this list
|
|
4
4
|
* explicit makes every new public visual module choose between authored
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-catalog-exclusions.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog-exclusions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,wBAAwB,
|
|
1
|
+
{"version":3,"file":"core-catalog-exclusions.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog-exclusions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,wBAAwB,EAAO,CAAA"}
|
|
@@ -3,153 +3,4 @@
|
|
|
3
3
|
* explicit makes every new public visual module choose between authored
|
|
4
4
|
* coverage and a reviewable, temporary reason for deferral.
|
|
5
5
|
*/
|
|
6
|
-
export const coreCatalogExclusions = [
|
|
7
|
-
{
|
|
8
|
-
component: 'accordion',
|
|
9
|
-
reason: 'Needs an authored expanded and collapsed keyboard matrix.',
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
component: 'alert-dialog',
|
|
13
|
-
reason: 'Requires isolated portal rendering before open states are stable.',
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
component: 'aspect-ratio',
|
|
17
|
-
reason: 'Layout utility is exercised by consumer media compositions.',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
component: 'calendar',
|
|
21
|
-
reason: 'Needs a dedicated date-grid interaction matrix.',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
component: 'carousel',
|
|
25
|
-
reason: 'Needs stable geometry and navigation fixtures.',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
component: 'chart',
|
|
29
|
-
reason: 'Needs deterministic chart data and resize fixtures.',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
component: 'collapsible',
|
|
33
|
-
reason: 'Needs an authored disclosure-state matrix.',
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
component: 'combobox',
|
|
37
|
-
reason: 'Requires isolated portal and filtering coverage.',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
component: 'command',
|
|
41
|
-
reason: 'Needs search, selection, empty, and keyboard fixtures.',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
component: 'confirm-dialog',
|
|
45
|
-
reason: 'Requires isolated async portal-state rendering.',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
component: 'context-menu',
|
|
49
|
-
reason: 'Requires isolated pointer-positioned portal rendering.',
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
component: 'dialog',
|
|
53
|
-
reason: 'Requires isolated portal rendering before open states are stable.',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
component: 'drawer',
|
|
57
|
-
reason: 'Requires isolated viewport and gesture fixtures.',
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
component: 'dropdown-menu',
|
|
61
|
-
reason: 'Requires isolated portal and keyboard coverage.',
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
component: 'error-boundary-view',
|
|
65
|
-
reason: 'Needs the separately planned pane and full-window catalog test host.',
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
component: 'date-picker',
|
|
69
|
-
reason: 'Requires isolated calendar portal rendering.',
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
component: 'edge-fade',
|
|
73
|
-
reason: 'Needs deterministic overflow geometry.',
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
component: 'form',
|
|
77
|
-
reason: 'Behavioral adapter is covered through authored field stories.',
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
component: 'hover-card',
|
|
81
|
-
reason: 'Requires isolated delayed-hover portal rendering.',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
component: 'input-group',
|
|
85
|
-
reason: 'Needs addon, button, and validation compositions.',
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
component: 'input-otp',
|
|
89
|
-
reason: 'Needs input-sequence and paste fixtures.',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
component: 'inspector',
|
|
93
|
-
reason: 'Needs a representative property-editing composition.',
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
component: 'label',
|
|
97
|
-
reason: 'Covered indirectly by labeled control compositions.',
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
component: 'menubar',
|
|
101
|
-
reason: 'Requires isolated multi-menu portal coverage.',
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
component: 'message-scroller',
|
|
105
|
-
reason: 'Needs deterministic overflow and anchoring geometry.',
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
component: 'navigation-menu',
|
|
109
|
-
reason: 'Requires isolated viewport and portal coverage.',
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
component: 'pagination',
|
|
113
|
-
reason: 'Needs compact and large-page-count compositions.',
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
component: 'resizable',
|
|
117
|
-
reason: 'Needs stable browser geometry and drag fixtures.',
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
component: 'scroll-area',
|
|
121
|
-
reason: 'Needs deterministic overflow geometry.',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
component: 'select',
|
|
125
|
-
reason: 'Requires isolated portal and keyboard coverage.',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
component: 'separator',
|
|
129
|
-
reason: 'Covered indirectly by toolbar, item, and panel compositions.',
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
component: 'sheet',
|
|
133
|
-
reason: 'Requires isolated portal and viewport-edge coverage.',
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
component: 'sidebar',
|
|
137
|
-
reason: 'Needs a complete app-shell viewport fixture.',
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
component: 'slider',
|
|
141
|
-
reason: 'Needs pointer and keyboard value fixtures.',
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
component: 'split-view',
|
|
145
|
-
reason: 'Needs stable browser geometry and drag fixtures.',
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
component: 'sonner',
|
|
149
|
-
reason: 'Requires an isolated live toaster host.',
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
component: 'tooltip',
|
|
153
|
-
reason: 'Requires isolated delayed portal rendering.',
|
|
154
|
-
},
|
|
155
|
-
];
|
|
6
|
+
export const coreCatalogExclusions = [];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const coreComponentCatalog: import("./catalog-types").CatalogManifest;
|
|
1
|
+
export declare const coreComponentCatalog: import("./catalog-types.js").CatalogManifest;
|
|
2
2
|
//# sourceMappingURL=core-catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/core-catalog.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB,2CAc/B,CAAA"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import { createCatalogManifest } from './catalog-manifest';
|
|
2
|
-
import { coreCollectionsSection } from './core-collection-stories';
|
|
3
|
-
import { coreControlsSection } from './core-control-stories';
|
|
4
|
-
import { coreFeedbackSection } from './core-feedback-stories';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { createCatalogManifest } from './catalog-manifest.js';
|
|
2
|
+
import { coreCollectionsSection } from './core-collection-stories.js';
|
|
3
|
+
import { coreControlsSection } from './core-control-stories.js';
|
|
4
|
+
import { coreFeedbackSection } from './core-feedback-stories.js';
|
|
5
|
+
import { coreFormsSection } from './core-form-stories.js';
|
|
6
|
+
import { coreFoundationSection } from './core-foundation-stories.js';
|
|
7
|
+
import { coreLayoutSection } from './core-layout-stories.js';
|
|
8
|
+
import { coreNavigationSection } from './core-navigation-stories.js';
|
|
9
|
+
import { coreOverlaysSection } from './core-overlay-stories.js';
|
|
8
10
|
export const coreComponentCatalog = createCatalogManifest({
|
|
9
11
|
title: 'Moldable UI component catalog',
|
|
10
12
|
description: 'Deterministic component cases for review and visual regression coverage.',
|
|
11
13
|
sections: [
|
|
12
14
|
coreFoundationSection,
|
|
13
15
|
coreControlsSection,
|
|
16
|
+
coreFormsSection,
|
|
14
17
|
coreCollectionsSection,
|
|
15
18
|
coreNavigationSection,
|
|
19
|
+
coreLayoutSection,
|
|
16
20
|
coreOverlaysSection,
|
|
17
21
|
coreFeedbackSection,
|
|
18
22
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-collection-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-collection-stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-collection-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-collection-stories.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAgB/D,eAAO,MAAM,sBAAsB,EAAE,wBAoNpC,CAAA"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { FileTextIcon, MoreHorizontalIcon } from 'lucide-react';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount, } from '../components/ui/avatar.js';
|
|
4
|
+
import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from '../components/ui/carousel.js';
|
|
5
|
+
import { ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent, } from '../components/ui/chart.js';
|
|
6
|
+
import { Grid, GridItem, GridItemContent, GridItemDescription, GridItemTitle, } from '../components/ui/grid.js';
|
|
7
|
+
import { IconButton } from '../components/ui/icon-button.js';
|
|
8
|
+
import { Item, ItemActions, ItemContent, ItemDescription, ItemGroup, ItemMedia, ItemTitle, } from '../components/ui/item.js';
|
|
9
|
+
import { List, ListItem, ListItemContent, ListItemDescription, ListItemTitle, } from '../components/ui/list.js';
|
|
10
|
+
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '../components/ui/table.js';
|
|
11
|
+
import { Bar, BarChart, CartesianGrid, XAxis } from 'recharts';
|
|
12
|
+
const chartData = [
|
|
13
|
+
{ day: 'Mon', created: 4, completed: 2 },
|
|
14
|
+
{ day: 'Tue', created: 7, completed: 5 },
|
|
15
|
+
{ day: 'Wed', created: 5, completed: 6 },
|
|
16
|
+
{ day: 'Thu', created: 9, completed: 7 },
|
|
17
|
+
{ day: 'Fri', created: 6, completed: 8 },
|
|
18
|
+
];
|
|
19
|
+
const chartConfig = {
|
|
20
|
+
created: { label: 'Created', color: 'var(--chart-1)' },
|
|
21
|
+
completed: { label: 'Completed', color: 'var(--chart-2)' },
|
|
22
|
+
};
|
|
8
23
|
export const coreCollectionsSection = {
|
|
9
24
|
id: 'collections',
|
|
10
25
|
title: 'Collections',
|
|
@@ -28,8 +43,7 @@ export const coreCollectionsSection = {
|
|
|
28
43
|
id: 'data-table',
|
|
29
44
|
title: 'Dense selectable table',
|
|
30
45
|
components: ['table'],
|
|
31
|
-
|
|
32
|
-
render: ({ density, interaction }) => (_jsxs(Table, { density: density === 'compact' ? 'compact' : 'default', children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Status" })] }) }), _jsx(TableBody, { children: interaction === 'empty' ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: 2, className: "text-muted-foreground", children: "No projects" }) })) : (_jsxs(_Fragment, { children: [_jsxs(TableRow, { "data-catalog-target": true, selected: interaction === 'selected', disabled: interaction === 'disabled', autoFocus: interaction === 'focus-visible', children: [_jsx(TableCell, { children: "Personal" }), _jsx(TableCell, { children: "Active" })] }), _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Archive" }), _jsx(TableCell, { children: "Local" })] })] })) })] })),
|
|
46
|
+
render: () => (_jsx("div", { className: "grid gap-4", children: ['default', 'compact'].map((density) => (_jsxs("div", { children: [_jsxs("p", { className: "text-muted-foreground mb-1 text-xs capitalize", children: [density, " density"] }), _jsxs(Table, { density: density, children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Status" })] }) }), _jsxs(TableBody, { children: [_jsxs(TableRow, { selected: true, children: [_jsx(TableCell, { children: "Personal" }), _jsx(TableCell, { children: "Active" })] }), _jsxs(TableRow, { disabled: true, children: [_jsx(TableCell, { children: "Archive" }), _jsx(TableCell, { children: "Unavailable" })] }), _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Work" }), _jsx(TableCell, { children: "Local" })] })] })] })] }, density))) })),
|
|
33
47
|
},
|
|
34
48
|
{
|
|
35
49
|
id: 'item-anatomy',
|
|
@@ -38,5 +52,23 @@ export const coreCollectionsSection = {
|
|
|
38
52
|
viewports: ['narrow'],
|
|
39
53
|
render: () => (_jsx(ItemGroup, { children: _jsxs(Item, { role: "listitem", size: "sm", variant: "outline", children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(FileTextIcon, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Project brief" }), _jsx(ItemDescription, { children: "Edited five minutes ago" })] }), _jsx(ItemActions, { children: _jsx(IconButton, { label: "More actions", size: "sm", variant: "ghost", children: _jsx(MoreHorizontalIcon, {}) }) })] }) })),
|
|
40
54
|
},
|
|
55
|
+
{
|
|
56
|
+
id: 'carousel-frame',
|
|
57
|
+
title: 'Static carousel frame',
|
|
58
|
+
components: ['carousel'],
|
|
59
|
+
render: () => (_jsxs(Carousel, { className: "mx-auto w-[min(100%-5rem,28rem)]", children: [_jsx(CarouselContent, { children: ['Today', 'Upcoming', 'Archive'].map((label, index) => (_jsx(CarouselItem, { children: _jsx("div", { className: "bg-card grid h-36 place-items-center rounded-md border", children: _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "font-medium", children: label }), _jsxs("p", { className: "text-muted-foreground text-sm", children: ["Frame ", index + 1, " of 3"] })] }) }) }, label))) }), _jsx(CarouselPrevious, {}), _jsx(CarouselNext, {})] })),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'seeded-chart',
|
|
63
|
+
title: 'Seeded activity chart',
|
|
64
|
+
components: ['chart'],
|
|
65
|
+
render: () => (_jsx(ChartContainer, { id: "catalog-activity", config: chartConfig, className: "h-64 w-full", children: _jsxs(BarChart, { accessibilityLayer: true, data: chartData, children: [_jsx(CartesianGrid, { vertical: false }), _jsx(XAxis, { dataKey: "day", tickLine: false, tickMargin: 8, axisLine: false }), _jsx(ChartTooltip, { cursor: false, content: _jsx(ChartTooltipContent, {}) }), _jsx(ChartLegend, { content: _jsx(ChartLegendContent, {}) }), _jsx(Bar, { dataKey: "created", fill: "var(--color-created)", radius: [3, 3, 0, 0] }), _jsx(Bar, { dataKey: "completed", fill: "var(--color-completed)", radius: [3, 3, 0, 0] })] }) })),
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'avatar-group-overflow',
|
|
69
|
+
title: 'Avatar group overflow',
|
|
70
|
+
components: ['avatar'],
|
|
71
|
+
render: () => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs(AvatarGroup, { "aria-label": "Workspace collaborators", children: [['RM', 'AK', 'SL'].map((initials) => (_jsx(Avatar, { children: _jsx(AvatarFallback, { children: initials }) }, initials))), _jsx(AvatarGroupCount, { "aria-label": "4 more collaborators", children: "+4" })] }), _jsx("span", { className: "text-muted-foreground text-sm", children: "7 collaborators" })] })),
|
|
72
|
+
},
|
|
41
73
|
],
|
|
42
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-control-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-control-stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-control-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-control-stories.tsx"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAuC/D,eAAO,MAAM,mBAAmB,EAAE,wBAoUjC,CAAA"}
|
|
@@ -1,22 +1,37 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { BoldIcon, ItalicIcon, PlusIcon } from 'lucide-react';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
2
|
+
import { AtSignIcon, BoldIcon, ItalicIcon, PlusIcon } from 'lucide-react';
|
|
3
|
+
import { useForm } from 'react-hook-form';
|
|
4
|
+
import { Button } from '../components/ui/button.js';
|
|
5
|
+
import { ButtonGroup, ButtonGroupText } from '../components/ui/button-group.js';
|
|
6
|
+
import { Checkbox } from '../components/ui/checkbox.js';
|
|
7
|
+
import { ColorWell } from '../components/ui/color-well.js';
|
|
8
|
+
import { DateField } from '../components/ui/date-field.js';
|
|
9
|
+
import { Field, FieldContent, FieldDescription, FieldLabel, } from '../components/ui/field.js';
|
|
10
|
+
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from '../components/ui/form.js';
|
|
11
|
+
import { IconButton } from '../components/ui/icon-button.js';
|
|
12
|
+
import { Input } from '../components/ui/input.js';
|
|
13
|
+
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, } from '../components/ui/input-group.js';
|
|
14
|
+
import { Kbd, KbdGroup } from '../components/ui/kbd.js';
|
|
15
|
+
import { NumberInput } from '../components/ui/number-input.js';
|
|
16
|
+
import { RadioGroup, RadioGroupItem } from '../components/ui/radio-group.js';
|
|
17
|
+
import { SearchField } from '../components/ui/search-field.js';
|
|
18
|
+
import { SegmentedControl, SegmentedControlItem, } from '../components/ui/segmented-control.js';
|
|
19
|
+
import { Switch } from '../components/ui/switch.js';
|
|
20
|
+
import { Textarea } from '../components/ui/textarea.js';
|
|
21
|
+
import { ToggleButton } from '../components/ui/toggle.js';
|
|
22
|
+
import { ToggleGroup, ToggleGroupItem } from '../components/ui/toggle-group.js';
|
|
23
|
+
function CatalogFormFixture() {
|
|
24
|
+
const form = useForm({
|
|
25
|
+
defaultValues: { project: '' },
|
|
26
|
+
errors: {
|
|
27
|
+
project: {
|
|
28
|
+
type: 'required',
|
|
29
|
+
message: 'Project name is required.',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
return (_jsx(Form, { ...form, children: _jsx("form", { className: "max-w-sm", children: _jsx(FormField, { control: form.control, name: "project", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Project name" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "Personal dashboard", ...field }) }), _jsx(FormDescription, { children: "Shown in the app titlebar." }), _jsx(FormMessage, {})] })) }) }) }));
|
|
34
|
+
}
|
|
20
35
|
function controlId(caseId, suffix) {
|
|
21
36
|
return `catalog-${caseId.replaceAll('/', '-')}-${suffix}`;
|
|
22
37
|
}
|
|
@@ -30,7 +45,7 @@ export const coreControlsSection = {
|
|
|
30
45
|
components: ['button'],
|
|
31
46
|
interactions: ['rest', 'focus-visible', 'disabled'],
|
|
32
47
|
liveStates: ['hover', 'focus', 'pressed'],
|
|
33
|
-
render: ({ interaction }) => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Button, { "data-catalog-target": true, "data-state-target": "hover focus pressed", autoFocus: interaction === 'focus-visible', disabled: interaction === 'disabled', children: "
|
|
48
|
+
render: ({ interaction }) => (_jsxs("div", { className: "grid gap-2", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { size: "xs", variant: "outline", disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Extra small"] }), _jsxs(Button, { size: "sm", disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Small"] }), _jsxs(Button, { "data-catalog-target": true, "data-state-target": "hover focus pressed", autoFocus: interaction === 'focus-visible', disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Default"] }), _jsxs(Button, { size: "lg", disabled: interaction === 'disabled', children: [_jsx(PlusIcon, {}), "Large"] })] }), _jsx("div", { className: "flex flex-wrap items-center gap-2", children: ['xs', 'sm', 'default', 'lg'].map((size) => (_jsx(IconButton, { label: `Add item, ${size} size`, size: size, variant: "outline", disabled: interaction === 'disabled', children: _jsx(PlusIcon, {}) }, size))) })] })),
|
|
34
49
|
},
|
|
35
50
|
{
|
|
36
51
|
id: 'icon-button',
|
|
@@ -75,7 +90,7 @@ export const coreControlsSection = {
|
|
|
75
90
|
const invalid = interaction === 'invalid' || undefined;
|
|
76
91
|
const checkboxId = controlId(caseId, 'notifications');
|
|
77
92
|
const switchId = controlId(caseId, 'sync');
|
|
78
|
-
return (_jsxs("div", { className: "grid gap-3 text-sm", children: [_jsxs("label", { className: "flex items-center gap-2", htmlFor: checkboxId, children: [_jsx(Checkbox, { "data-catalog-target": true, id: checkboxId, defaultChecked: selected, disabled: disabled, "aria-invalid": invalid }), "Notifications"] }), _jsxs("label", { className: "flex items-center gap-2", htmlFor: switchId, children: [_jsx(Switch, { id: switchId, defaultChecked: selected, disabled: disabled, "aria-invalid": invalid }), "Sync automatically"] }), _jsxs(RadioGroup, { "aria-label": "Priority", defaultValue: selected ? 'high' : 'normal', disabled: disabled, children: [_jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "normal", "aria-invalid": invalid }), "Normal priority"] }), _jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "high", "aria-invalid": invalid }), "High priority"] })] })] }));
|
|
93
|
+
return (_jsxs("div", { className: "grid gap-3 text-sm", children: [_jsxs("label", { className: "flex items-center gap-2", htmlFor: checkboxId, children: [_jsx(Checkbox, { "data-catalog-target": true, id: checkboxId, defaultChecked: interaction === 'rest' || selected, disabled: disabled, "aria-invalid": invalid }), "Notifications"] }), _jsxs("label", { className: "flex items-center gap-2", htmlFor: switchId, children: [_jsx(Switch, { id: switchId, defaultChecked: selected, disabled: disabled, "aria-invalid": invalid }), "Sync automatically"] }), _jsxs(RadioGroup, { "aria-label": "Priority", defaultValue: selected ? 'high' : 'normal', disabled: disabled, children: [_jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "normal", "aria-invalid": invalid }), "Normal priority"] }), _jsxs("label", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { value: "high", "aria-invalid": invalid }), "High priority"] })] })] }));
|
|
79
94
|
},
|
|
80
95
|
},
|
|
81
96
|
{
|
|
@@ -93,5 +108,18 @@ export const coreControlsSection = {
|
|
|
93
108
|
interactions: ['rest', 'focus-visible', 'disabled', 'invalid'],
|
|
94
109
|
render: ({ interaction }) => (_jsxs("div", { className: "grid max-w-sm gap-3", children: [_jsx(Textarea, { "data-catalog-target": true, "aria-label": "Notes", defaultValue: "Keep the interface quiet and direct.", autoFocus: interaction === 'focus-visible', disabled: interaction === 'disabled', "aria-invalid": interaction === 'invalid' || undefined }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(NumberInput, { "aria-label": "Duration", defaultValue: 25, unit: "min", disabled: interaction === 'disabled', "aria-invalid": interaction === 'invalid' || undefined, className: "w-32" }), _jsx(ColorWell, { "aria-label": "Accent color", value: "#ff6b4a", disabled: interaction === 'disabled' })] })] })),
|
|
95
110
|
},
|
|
111
|
+
{
|
|
112
|
+
id: 'input-groups',
|
|
113
|
+
title: 'Input groups and labels',
|
|
114
|
+
components: ['input-group', 'label'],
|
|
115
|
+
liveStates: ['focus'],
|
|
116
|
+
render: () => (_jsxs("div", { className: "grid max-w-sm gap-3", children: [_jsxs(InputGroup, { children: [_jsx(InputGroupAddon, { children: _jsx(AtSignIcon, {}) }), _jsx(InputGroupInput, { "data-state-target": "focus", "aria-label": "Username", value: "moldable", readOnly: true }), _jsx(InputGroupAddon, { align: "inline-end", children: _jsx(InputGroupText, { children: ".sh" }) })] }), _jsxs(InputGroup, { children: [_jsx(InputGroupInput, { "aria-label": "Invite address", placeholder: "person@example.com" }), _jsx(InputGroupAddon, { align: "inline-end", children: _jsx(InputGroupButton, { children: "Invite" }) })] }), _jsx(InputGroup, { "data-disabled": "true", children: _jsx(InputGroupInput, { "aria-label": "Disabled workspace URL", value: "local-only", disabled: true, readOnly: true }) })] })),
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 'validated-form',
|
|
120
|
+
title: 'Validated form adapter',
|
|
121
|
+
components: ['form'],
|
|
122
|
+
render: () => _jsx(CatalogFormFixture, {}),
|
|
123
|
+
},
|
|
96
124
|
],
|
|
97
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-feedback-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-feedback-stories.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core-feedback-stories.d.ts","sourceRoot":"","sources":["../../src/catalog/core-feedback-stories.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAqC/D,eAAO,MAAM,mBAAmB,EAAE,wBAwMjC,CAAA"}
|
|
@@ -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"}
|