@orochibraru/ui 0.0.0-stage → 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -2
- package/dist/appearance.d.ts +11 -0
- package/dist/appearance.js +16 -0
- package/dist/components/blocks/auth-shell.svelte +35 -0
- package/dist/components/blocks/auth-shell.svelte.d.ts +11 -0
- package/dist/components/blocks/copy-field.svelte +44 -0
- package/dist/components/blocks/copy-field.svelte.d.ts +11 -0
- package/dist/components/blocks/document-title.svelte +18 -0
- package/dist/components/blocks/document-title.svelte.d.ts +6 -0
- package/dist/components/blocks/empty-state.svelte +45 -0
- package/dist/components/blocks/empty-state.svelte.d.ts +13 -0
- package/dist/components/blocks/error-page.svelte +47 -0
- package/dist/components/blocks/error-page.svelte.d.ts +12 -0
- package/dist/components/blocks/fab.svelte +26 -0
- package/dist/components/blocks/fab.svelte.d.ts +11 -0
- package/dist/components/blocks/icon-button.svelte +38 -0
- package/dist/components/blocks/icon-button.svelte.d.ts +11 -0
- package/dist/components/blocks/install-prompt.svelte +156 -0
- package/dist/components/blocks/install-prompt.svelte.d.ts +19 -0
- package/dist/components/blocks/responsive-sheet.svelte +59 -0
- package/dist/components/blocks/responsive-sheet.svelte.d.ts +11 -0
- package/dist/components/blocks/setting-switch.svelte +30 -0
- package/dist/components/blocks/setting-switch.svelte.d.ts +10 -0
- package/dist/components/blocks/stat-card.svelte +52 -0
- package/dist/components/blocks/stat-card.svelte.d.ts +14 -0
- package/dist/components/blocks/top-loading-bar.svelte +54 -0
- package/dist/components/blocks/top-loading-bar.svelte.d.ts +6 -0
- package/dist/components/ui/accordion/accordion-content.svelte +28 -0
- package/dist/components/ui/accordion/accordion-content.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/accordion-item.svelte +18 -0
- package/dist/components/ui/accordion/accordion-item.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/accordion-trigger.svelte +39 -0
- package/dist/components/ui/accordion/accordion-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/accordion/accordion.svelte +20 -0
- package/dist/components/ui/accordion/accordion.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/index.d.ts +5 -0
- package/dist/components/ui/accordion/index.js +7 -0
- package/dist/components/ui/alert/alert-action.svelte +21 -0
- package/dist/components/ui/alert/alert-action.svelte.d.ts +5 -0
- package/dist/components/ui/alert/alert-description.svelte +24 -0
- package/dist/components/ui/alert/alert-description.svelte.d.ts +5 -0
- package/dist/components/ui/alert/alert-title.svelte +24 -0
- package/dist/components/ui/alert/alert-title.svelte.d.ts +5 -0
- package/dist/components/ui/alert/alert.svelte +45 -0
- package/dist/components/ui/alert/alert.svelte.d.ts +26 -0
- package/dist/components/ui/alert/index.d.ts +6 -0
- package/dist/components/ui/alert/index.js +8 -0
- package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +28 -0
- package/dist/components/ui/alert-dialog/alert-dialog-action.svelte.d.ts +9 -0
- package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +28 -0
- package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +9 -0
- package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +40 -0
- package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +11 -0
- package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +21 -0
- package/dist/components/ui/alert-dialog/alert-dialog-description.svelte.d.ts +4 -0
- package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +24 -0
- package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +5 -0
- package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +24 -0
- package/dist/components/ui/alert-dialog/alert-dialog-header.svelte.d.ts +5 -0
- package/dist/components/ui/alert-dialog/alert-dialog-media.svelte +24 -0
- package/dist/components/ui/alert-dialog/alert-dialog-media.svelte.d.ts +5 -0
- package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +21 -0
- package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/alert-dialog/alert-dialog-portal.svelte +7 -0
- package/dist/components/ui/alert-dialog/alert-dialog-portal.svelte.d.ts +3 -0
- package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +21 -0
- package/dist/components/ui/alert-dialog/alert-dialog-title.svelte.d.ts +4 -0
- package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte +14 -0
- package/dist/components/ui/alert-dialog/alert-dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/alert-dialog/alert-dialog.svelte +10 -0
- package/dist/components/ui/alert-dialog/alert-dialog.svelte.d.ts +3 -0
- package/dist/components/ui/alert-dialog/index.d.ts +13 -0
- package/dist/components/ui/alert-dialog/index.js +15 -0
- package/dist/components/ui/avatar/avatar-badge.svelte +27 -0
- package/dist/components/ui/avatar/avatar-badge.svelte.d.ts +5 -0
- package/dist/components/ui/avatar/avatar-fallback.svelte +21 -0
- package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/avatar-group-count.svelte +24 -0
- package/dist/components/ui/avatar/avatar-group-count.svelte.d.ts +5 -0
- package/dist/components/ui/avatar/avatar-group.svelte +24 -0
- package/dist/components/ui/avatar/avatar-group.svelte.d.ts +5 -0
- package/dist/components/ui/avatar/avatar-image.svelte +18 -0
- package/dist/components/ui/avatar/avatar-image.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/avatar.svelte +27 -0
- package/dist/components/ui/avatar/avatar.svelte.d.ts +7 -0
- package/dist/components/ui/avatar/index.d.ts +7 -0
- package/dist/components/ui/avatar/index.js +9 -0
- package/dist/components/ui/badge/badge.svelte +54 -0
- package/dist/components/ui/badge/badge.svelte.d.ts +38 -0
- package/dist/components/ui/badge/index.d.ts +2 -0
- package/dist/components/ui/badge/index.js +2 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +29 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +21 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +32 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +24 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +24 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +28 -0
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/index.d.ts +8 -0
- package/dist/components/ui/breadcrumb/index.js +10 -0
- package/dist/components/ui/button/button.svelte +93 -0
- package/dist/components/ui/button/button.svelte.d.ts +70 -0
- package/dist/components/ui/button/index.d.ts +2 -0
- package/dist/components/ui/button/index.js +4 -0
- package/dist/components/ui/button-group/button-group-separator.svelte +24 -0
- package/dist/components/ui/button-group/button-group-separator.svelte.d.ts +13 -0
- package/dist/components/ui/button-group/button-group-text.svelte +32 -0
- package/dist/components/ui/button-group/button-group-text.svelte.d.ts +11 -0
- package/dist/components/ui/button-group/button-group.svelte +49 -0
- package/dist/components/ui/button-group/button-group.svelte.d.ts +26 -0
- package/dist/components/ui/button-group/index.d.ts +4 -0
- package/dist/components/ui/button-group/index.js +6 -0
- package/dist/components/ui/calendar/calendar-caption.svelte +83 -0
- package/dist/components/ui/calendar/calendar-caption.svelte.d.ts +19 -0
- package/dist/components/ui/calendar/calendar-cell.svelte +20 -0
- package/dist/components/ui/calendar/calendar-cell.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-day.svelte +34 -0
- package/dist/components/ui/calendar/calendar-day.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid-body.svelte +13 -0
- package/dist/components/ui/calendar/calendar-grid-body.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid-head.svelte +13 -0
- package/dist/components/ui/calendar/calendar-grid-head.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid-row.svelte +17 -0
- package/dist/components/ui/calendar/calendar-grid-row.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid.svelte +17 -0
- package/dist/components/ui/calendar/calendar-grid.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-head-cell.svelte +20 -0
- package/dist/components/ui/calendar/calendar-head-cell.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-header.svelte +20 -0
- package/dist/components/ui/calendar/calendar-header.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-heading.svelte +17 -0
- package/dist/components/ui/calendar/calendar-heading.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-month-select.svelte +50 -0
- package/dist/components/ui/calendar/calendar-month-select.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-month.svelte +20 -0
- package/dist/components/ui/calendar/calendar-month.svelte.d.ts +5 -0
- package/dist/components/ui/calendar/calendar-months.svelte +20 -0
- package/dist/components/ui/calendar/calendar-months.svelte.d.ts +5 -0
- package/dist/components/ui/calendar/calendar-nav.svelte +23 -0
- package/dist/components/ui/calendar/calendar-nav.svelte.d.ts +5 -0
- package/dist/components/ui/calendar/calendar-next-button.svelte +41 -0
- package/dist/components/ui/calendar/calendar-next-button.svelte.d.ts +8 -0
- package/dist/components/ui/calendar/calendar-prev-button.svelte +41 -0
- package/dist/components/ui/calendar/calendar-prev-button.svelte.d.ts +8 -0
- package/dist/components/ui/calendar/calendar-year-select.svelte +49 -0
- package/dist/components/ui/calendar/calendar-year-select.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar.svelte +117 -0
- package/dist/components/ui/calendar/calendar.svelte.d.ts +21 -0
- package/dist/components/ui/calendar/index.d.ts +19 -0
- package/dist/components/ui/calendar/index.js +21 -0
- package/dist/components/ui/card/card-action.svelte +24 -0
- package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-content.svelte +21 -0
- package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-description.svelte +21 -0
- package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-footer.svelte +24 -0
- package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-header.svelte +24 -0
- package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-title.svelte +24 -0
- package/dist/components/ui/card/card-title.svelte.d.ts +5 -0
- package/dist/components/ui/card/card.svelte +28 -0
- package/dist/components/ui/card/card.svelte.d.ts +8 -0
- package/dist/components/ui/card/index.d.ts +8 -0
- package/dist/components/ui/card/index.js +10 -0
- package/dist/components/ui/checkbox/checkbox.svelte +40 -0
- package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
- package/dist/components/ui/checkbox/index.d.ts +2 -0
- package/dist/components/ui/checkbox/index.js +4 -0
- package/dist/components/ui/command/command-dialog.svelte +50 -0
- package/dist/components/ui/command/command-dialog.svelte.d.ts +14 -0
- package/dist/components/ui/command/command-empty.svelte +18 -0
- package/dist/components/ui/command/command-empty.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-group.svelte +36 -0
- package/dist/components/ui/command/command-group.svelte.d.ts +7 -0
- package/dist/components/ui/command/command-input.svelte +45 -0
- package/dist/components/ui/command/command-input.svelte.d.ts +8 -0
- package/dist/components/ui/command/command-item.svelte +29 -0
- package/dist/components/ui/command/command-item.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-link-item.svelte +22 -0
- package/dist/components/ui/command/command-link-item.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-list.svelte +21 -0
- package/dist/components/ui/command/command-list.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-loading.svelte +8 -0
- package/dist/components/ui/command/command-loading.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-separator.svelte +18 -0
- package/dist/components/ui/command/command-separator.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-shortcut.svelte +24 -0
- package/dist/components/ui/command/command-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/command/command.svelte +29 -0
- package/dist/components/ui/command/command.svelte.d.ts +8 -0
- package/dist/components/ui/command/index.d.ts +12 -0
- package/dist/components/ui/command/index.js +14 -0
- package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +44 -0
- package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +10 -0
- package/dist/components/ui/context-menu/context-menu-content.svelte +32 -0
- package/dist/components/ui/context-menu/context-menu-content.svelte.d.ts +10 -0
- package/dist/components/ui/context-menu/context-menu-group-heading.svelte +25 -0
- package/dist/components/ui/context-menu/context-menu-group-heading.svelte.d.ts +7 -0
- package/dist/components/ui/context-menu/context-menu-group.svelte +12 -0
- package/dist/components/ui/context-menu/context-menu-group.svelte.d.ts +4 -0
- package/dist/components/ui/context-menu/context-menu-item.svelte +28 -0
- package/dist/components/ui/context-menu/context-menu-item.svelte.d.ts +8 -0
- package/dist/components/ui/context-menu/context-menu-label.svelte +28 -0
- package/dist/components/ui/context-menu/context-menu-label.svelte.d.ts +8 -0
- package/dist/components/ui/context-menu/context-menu-portal.svelte +7 -0
- package/dist/components/ui/context-menu/context-menu-portal.svelte.d.ts +3 -0
- package/dist/components/ui/context-menu/context-menu-radio-group.svelte +16 -0
- package/dist/components/ui/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/context-menu/context-menu-radio-item.svelte +38 -0
- package/dist/components/ui/context-menu/context-menu-radio-item.svelte.d.ts +8 -0
- package/dist/components/ui/context-menu/context-menu-separator.svelte +18 -0
- package/dist/components/ui/context-menu/context-menu-separator.svelte.d.ts +4 -0
- package/dist/components/ui/context-menu/context-menu-shortcut.svelte +24 -0
- package/dist/components/ui/context-menu/context-menu-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/context-menu/context-menu-sub-content.svelte +35 -0
- package/dist/components/ui/context-menu/context-menu-sub-content.svelte.d.ts +10 -0
- package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +30 -0
- package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/context-menu/context-menu-sub.svelte +8 -0
- package/dist/components/ui/context-menu/context-menu-sub.svelte.d.ts +3 -0
- package/dist/components/ui/context-menu/context-menu-trigger.svelte +18 -0
- package/dist/components/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/context-menu/context-menu.svelte +10 -0
- package/dist/components/ui/context-menu/context-menu.svelte.d.ts +3 -0
- package/dist/components/ui/context-menu/index.d.ts +17 -0
- package/dist/components/ui/context-menu/index.js +19 -0
- package/dist/components/ui/dialog/dialog-close.svelte +16 -0
- package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-content.svelte +54 -0
- package/dist/components/ui/dialog/dialog-content.svelte.d.ts +12 -0
- package/dist/components/ui/dialog/dialog-description.svelte +21 -0
- package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-footer.svelte +36 -0
- package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +8 -0
- package/dist/components/ui/dialog/dialog-header.svelte +21 -0
- package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
- package/dist/components/ui/dialog/dialog-overlay.svelte +21 -0
- package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-portal.svelte +7 -0
- package/dist/components/ui/dialog/dialog-portal.svelte.d.ts +3 -0
- package/dist/components/ui/dialog/dialog-title.svelte +18 -0
- package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-trigger.svelte +16 -0
- package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog.svelte +8 -0
- package/dist/components/ui/dialog/dialog.svelte.d.ts +3 -0
- package/dist/components/ui/dialog/index.d.ts +11 -0
- package/dist/components/ui/dialog/index.js +13 -0
- package/dist/components/ui/drawer/drawer-close.svelte +8 -0
- package/dist/components/ui/drawer/drawer-close.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-content.svelte +41 -0
- package/dist/components/ui/drawer/drawer-content.svelte.d.ts +10 -0
- package/dist/components/ui/drawer/drawer-description.svelte +18 -0
- package/dist/components/ui/drawer/drawer-description.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-footer.svelte +21 -0
- package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +5 -0
- package/dist/components/ui/drawer/drawer-header.svelte +24 -0
- package/dist/components/ui/drawer/drawer-header.svelte.d.ts +5 -0
- package/dist/components/ui/drawer/drawer-nested.svelte +21 -0
- package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/drawer-overlay.svelte +21 -0
- package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-portal.svelte +7 -0
- package/dist/components/ui/drawer/drawer-portal.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/drawer-title.svelte +18 -0
- package/dist/components/ui/drawer/drawer-title.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-trigger.svelte +8 -0
- package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer.svelte +21 -0
- package/dist/components/ui/drawer/drawer.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/index.d.ts +13 -0
- package/dist/components/ui/drawer/index.js +15 -0
- package/dist/components/ui/drawer/inside.d.ts +4 -0
- package/dist/components/ui/drawer/inside.js +10 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +47 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +35 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +26 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +14 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +28 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +28 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte.d.ts +3 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +37 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +18 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +24 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +35 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +10 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +30 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +10 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte.d.ts +3 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +14 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +10 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +3 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +18 -0
- package/dist/components/ui/dropdown-menu/index.js +18 -0
- package/dist/components/ui/empty/empty-content.svelte +24 -0
- package/dist/components/ui/empty/empty-content.svelte.d.ts +5 -0
- package/dist/components/ui/empty/empty-description.svelte +24 -0
- package/dist/components/ui/empty/empty-description.svelte.d.ts +5 -0
- package/dist/components/ui/empty/empty-header.svelte +21 -0
- package/dist/components/ui/empty/empty-header.svelte.d.ts +5 -0
- package/dist/components/ui/empty/empty-media.svelte +46 -0
- package/dist/components/ui/empty/empty-media.svelte.d.ts +26 -0
- package/dist/components/ui/empty/empty-title.svelte +21 -0
- package/dist/components/ui/empty/empty-title.svelte.d.ts +5 -0
- package/dist/components/ui/empty/empty.svelte +24 -0
- package/dist/components/ui/empty/empty.svelte.d.ts +5 -0
- package/dist/components/ui/empty/index.d.ts +7 -0
- package/dist/components/ui/empty/index.js +9 -0
- package/dist/components/ui/field/field-content.svelte +24 -0
- package/dist/components/ui/field/field-content.svelte.d.ts +5 -0
- package/dist/components/ui/field/field-description.svelte +26 -0
- package/dist/components/ui/field/field-description.svelte.d.ts +5 -0
- package/dist/components/ui/field/field-error.svelte +61 -0
- package/dist/components/ui/field/field-error.svelte.d.ts +12 -0
- package/dist/components/ui/field/field-group.svelte +24 -0
- package/dist/components/ui/field/field-group.svelte.d.ts +5 -0
- package/dist/components/ui/field/field-label.svelte +26 -0
- package/dist/components/ui/field/field-label.svelte.d.ts +10 -0
- package/dist/components/ui/field/field-legend.svelte +28 -0
- package/dist/components/ui/field/field-legend.svelte.d.ts +8 -0
- package/dist/components/ui/field/field-separator.svelte +39 -0
- package/dist/components/ui/field/field-separator.svelte.d.ts +9 -0
- package/dist/components/ui/field/field-set.svelte +24 -0
- package/dist/components/ui/field/field-set.svelte.d.ts +5 -0
- package/dist/components/ui/field/field-title.svelte +24 -0
- package/dist/components/ui/field/field-title.svelte.d.ts +5 -0
- package/dist/components/ui/field/field.svelte +50 -0
- package/dist/components/ui/field/field.svelte.d.ts +29 -0
- package/dist/components/ui/field/index.d.ts +11 -0
- package/dist/components/ui/field/index.js +13 -0
- package/dist/components/ui/input/index.d.ts +2 -0
- package/dist/components/ui/input/index.js +4 -0
- package/dist/components/ui/input/input.svelte +69 -0
- package/dist/components/ui/input/input.svelte.d.ts +13 -0
- package/dist/components/ui/input-group/index.d.ts +7 -0
- package/dist/components/ui/input-group/index.js +9 -0
- package/dist/components/ui/input-group/input-group-addon.svelte +58 -0
- package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +32 -0
- package/dist/components/ui/input-group/input-group-button.svelte +53 -0
- package/dist/components/ui/input-group/input-group-button.svelte.d.ts +32 -0
- package/dist/components/ui/input-group/input-group-input.svelte +24 -0
- package/dist/components/ui/input-group/input-group-input.svelte.d.ts +11 -0
- package/dist/components/ui/input-group/input-group-text.svelte +23 -0
- package/dist/components/ui/input-group/input-group-text.svelte.d.ts +5 -0
- package/dist/components/ui/input-group/input-group-textarea.svelte +24 -0
- package/dist/components/ui/input-group/input-group-textarea.svelte.d.ts +3 -0
- package/dist/components/ui/input-group/input-group.svelte +25 -0
- package/dist/components/ui/input-group/input-group.svelte.d.ts +5 -0
- package/dist/components/ui/input-otp/index.d.ts +5 -0
- package/dist/components/ui/input-otp/index.js +5 -0
- package/dist/components/ui/input-otp/input-otp-group.svelte +24 -0
- package/dist/components/ui/input-otp/input-otp-group.svelte.d.ts +5 -0
- package/dist/components/ui/input-otp/input-otp-separator.svelte +31 -0
- package/dist/components/ui/input-otp/input-otp-separator.svelte.d.ts +5 -0
- package/dist/components/ui/input-otp/input-otp-slot.svelte +38 -0
- package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +4 -0
- package/dist/components/ui/input-otp/input-otp.svelte +25 -0
- package/dist/components/ui/input-otp/input-otp.svelte.d.ts +4 -0
- package/dist/components/ui/label/index.d.ts +2 -0
- package/dist/components/ui/label/index.js +4 -0
- package/dist/components/ui/label/label.svelte +21 -0
- package/dist/components/ui/label/label.svelte.d.ts +4 -0
- package/dist/components/ui/menubar/index.d.ts +18 -0
- package/dist/components/ui/menubar/index.js +20 -0
- package/dist/components/ui/menubar/menubar-checkbox-item.svelte +49 -0
- package/dist/components/ui/menubar/menubar-checkbox-item.svelte.d.ts +10 -0
- package/dist/components/ui/menubar/menubar-content.svelte +37 -0
- package/dist/components/ui/menubar/menubar-content.svelte.d.ts +10 -0
- package/dist/components/ui/menubar/menubar-group-heading.svelte +23 -0
- package/dist/components/ui/menubar/menubar-group-heading.svelte.d.ts +8 -0
- package/dist/components/ui/menubar/menubar-group.svelte +12 -0
- package/dist/components/ui/menubar/menubar-group.svelte.d.ts +7 -0
- package/dist/components/ui/menubar/menubar-item.svelte +28 -0
- package/dist/components/ui/menubar/menubar-item.svelte.d.ts +8 -0
- package/dist/components/ui/menubar/menubar-label.svelte +26 -0
- package/dist/components/ui/menubar/menubar-label.svelte.d.ts +8 -0
- package/dist/components/ui/menubar/menubar-menu.svelte +7 -0
- package/dist/components/ui/menubar/menubar-menu.svelte.d.ts +3 -0
- package/dist/components/ui/menubar/menubar-portal.svelte +7 -0
- package/dist/components/ui/menubar/menubar-portal.svelte.d.ts +3 -0
- package/dist/components/ui/menubar/menubar-radio-group.svelte +16 -0
- package/dist/components/ui/menubar/menubar-radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/menubar/menubar-radio-item.svelte +40 -0
- package/dist/components/ui/menubar/menubar-radio-item.svelte.d.ts +8 -0
- package/dist/components/ui/menubar/menubar-separator.svelte +18 -0
- package/dist/components/ui/menubar/menubar-separator.svelte.d.ts +4 -0
- package/dist/components/ui/menubar/menubar-shortcut.svelte +24 -0
- package/dist/components/ui/menubar/menubar-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/menubar/menubar-sub-content.svelte +33 -0
- package/dist/components/ui/menubar/menubar-sub-content.svelte.d.ts +10 -0
- package/dist/components/ui/menubar/menubar-sub-trigger.svelte +30 -0
- package/dist/components/ui/menubar/menubar-sub-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/menubar/menubar-sub.svelte +8 -0
- package/dist/components/ui/menubar/menubar-sub.svelte.d.ts +4 -0
- package/dist/components/ui/menubar/menubar-trigger.svelte +21 -0
- package/dist/components/ui/menubar/menubar-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/menubar/menubar.svelte +21 -0
- package/dist/components/ui/menubar/menubar.svelte.d.ts +4 -0
- package/dist/components/ui/pagination/index.d.ts +14 -0
- package/dist/components/ui/pagination/index.js +16 -0
- package/dist/components/ui/pagination/pagination-content.svelte +21 -0
- package/dist/components/ui/pagination/pagination-content.svelte.d.ts +5 -0
- package/dist/components/ui/pagination/pagination-ellipsis.svelte +28 -0
- package/dist/components/ui/pagination/pagination-ellipsis.svelte.d.ts +5 -0
- package/dist/components/ui/pagination/pagination-item.svelte +15 -0
- package/dist/components/ui/pagination/pagination-item.svelte.d.ts +5 -0
- package/dist/components/ui/pagination/pagination-link.svelte +46 -0
- package/dist/components/ui/pagination/pagination-link.svelte.d.ts +9 -0
- package/dist/components/ui/pagination/pagination-next-button.svelte +33 -0
- package/dist/components/ui/pagination/pagination-next-button.svelte.d.ts +4 -0
- package/dist/components/ui/pagination/pagination-next.svelte +27 -0
- package/dist/components/ui/pagination/pagination-next.svelte.d.ts +4 -0
- package/dist/components/ui/pagination/pagination-prev-button.svelte +33 -0
- package/dist/components/ui/pagination/pagination-prev-button.svelte.d.ts +4 -0
- package/dist/components/ui/pagination/pagination-previous.svelte +27 -0
- package/dist/components/ui/pagination/pagination-previous.svelte.d.ts +4 -0
- package/dist/components/ui/pagination/pagination.svelte +28 -0
- package/dist/components/ui/pagination/pagination.svelte.d.ts +4 -0
- package/dist/components/ui/popover/index.d.ts +9 -0
- package/dist/components/ui/popover/index.js +11 -0
- package/dist/components/ui/popover/popover-close.svelte +8 -0
- package/dist/components/ui/popover/popover-close.svelte.d.ts +4 -0
- package/dist/components/ui/popover/popover-content.svelte +33 -0
- package/dist/components/ui/popover/popover-content.svelte.d.ts +10 -0
- package/dist/components/ui/popover/popover-description.svelte +21 -0
- package/dist/components/ui/popover/popover-description.svelte.d.ts +5 -0
- package/dist/components/ui/popover/popover-header.svelte +21 -0
- package/dist/components/ui/popover/popover-header.svelte.d.ts +5 -0
- package/dist/components/ui/popover/popover-portal.svelte +7 -0
- package/dist/components/ui/popover/popover-portal.svelte.d.ts +3 -0
- package/dist/components/ui/popover/popover-title.svelte +21 -0
- package/dist/components/ui/popover/popover-title.svelte.d.ts +5 -0
- package/dist/components/ui/popover/popover-trigger.svelte +18 -0
- package/dist/components/ui/popover/popover-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/popover/popover.svelte +8 -0
- package/dist/components/ui/popover/popover.svelte.d.ts +3 -0
- package/dist/components/ui/progress/index.d.ts +2 -0
- package/dist/components/ui/progress/index.js +4 -0
- package/dist/components/ui/progress/progress.svelte +31 -0
- package/dist/components/ui/progress/progress.svelte.d.ts +4 -0
- package/dist/components/ui/radio-group/index.d.ts +3 -0
- package/dist/components/ui/radio-group/index.js +5 -0
- package/dist/components/ui/radio-group/radio-group-item.svelte +35 -0
- package/dist/components/ui/radio-group/radio-group-item.svelte.d.ts +4 -0
- package/dist/components/ui/radio-group/radio-group.svelte +20 -0
- package/dist/components/ui/radio-group/radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/index.d.ts +19 -0
- package/dist/components/ui/range-calendar/index.js +21 -0
- package/dist/components/ui/range-calendar/range-calendar-caption.svelte +83 -0
- package/dist/components/ui/range-calendar/range-calendar-caption.svelte.d.ts +19 -0
- package/dist/components/ui/range-calendar/range-calendar-cell.svelte +20 -0
- package/dist/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-day.svelte +37 -0
- package/dist/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-body.svelte +10 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-body.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-head.svelte +10 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-head.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte +17 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-grid.svelte +17 -0
- package/dist/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +20 -0
- package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-header.svelte +20 -0
- package/dist/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-heading.svelte +17 -0
- package/dist/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-month-select.svelte +50 -0
- package/dist/components/ui/range-calendar/range-calendar-month-select.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-month.svelte +16 -0
- package/dist/components/ui/range-calendar/range-calendar-month.svelte.d.ts +5 -0
- package/dist/components/ui/range-calendar/range-calendar-months.svelte +20 -0
- package/dist/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
- package/dist/components/ui/range-calendar/range-calendar-nav.svelte +23 -0
- package/dist/components/ui/range-calendar/range-calendar-nav.svelte.d.ts +5 -0
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +41 -0
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +8 -0
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +41 -0
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +8 -0
- package/dist/components/ui/range-calendar/range-calendar-year-select.svelte +50 -0
- package/dist/components/ui/range-calendar/range-calendar-year-select.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar.svelte +127 -0
- package/dist/components/ui/range-calendar/range-calendar.svelte.d.ts +20 -0
- package/dist/components/ui/resizable/index.d.ts +4 -0
- package/dist/components/ui/resizable/index.js +6 -0
- package/dist/components/ui/resizable/resizable-handle.svelte +28 -0
- package/dist/components/ui/resizable/resizable-handle.svelte.d.ts +8 -0
- package/dist/components/ui/resizable/resizable-pane-group.svelte +22 -0
- package/dist/components/ui/resizable/resizable-pane-group.svelte.d.ts +7 -0
- package/dist/components/ui/scroll-area/index.d.ts +3 -0
- package/dist/components/ui/scroll-area/index.js +5 -0
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
- package/dist/components/ui/scroll-area/scroll-area.svelte +45 -0
- package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +11 -0
- package/dist/components/ui/select/index.d.ts +13 -0
- package/dist/components/ui/select/index.js +15 -0
- package/dist/components/ui/select/select-content.svelte +47 -0
- package/dist/components/ui/select/select-content.svelte.d.ts +11 -0
- package/dist/components/ui/select/select-group-heading.svelte +22 -0
- package/dist/components/ui/select/select-group-heading.svelte.d.ts +10 -0
- package/dist/components/ui/select/select-group.svelte +18 -0
- package/dist/components/ui/select/select-group.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-item.svelte +45 -0
- package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-label.svelte +21 -0
- package/dist/components/ui/select/select-label.svelte.d.ts +6 -0
- package/dist/components/ui/select/select-portal.svelte +7 -0
- package/dist/components/ui/select/select-portal.svelte.d.ts +3 -0
- package/dist/components/ui/select/select-scroll-down-button.svelte +24 -0
- package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-scroll-up-button.svelte +24 -0
- package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-separator.svelte +19 -0
- package/dist/components/ui/select/select-separator.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-trigger.svelte +30 -0
- package/dist/components/ui/select/select-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/select/select-value.svelte +8 -0
- package/dist/components/ui/select/select-value.svelte.d.ts +4 -0
- package/dist/components/ui/select/select.svelte +11 -0
- package/dist/components/ui/select/select.svelte.d.ts +3 -0
- package/dist/components/ui/separator/index.d.ts +2 -0
- package/dist/components/ui/separator/index.js +4 -0
- package/dist/components/ui/separator/separator.svelte +22 -0
- package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/index.d.ts +11 -0
- package/dist/components/ui/sheet/index.js +13 -0
- package/dist/components/ui/sheet/sheet-close.svelte +8 -0
- package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-content.svelte +61 -0
- package/dist/components/ui/sheet/sheet-content.svelte.d.ts +14 -0
- package/dist/components/ui/sheet/sheet-description.svelte +18 -0
- package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-footer.svelte +21 -0
- package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
- package/dist/components/ui/sheet/sheet-header.svelte +21 -0
- package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
- package/dist/components/ui/sheet/sheet-overlay.svelte +21 -0
- package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-portal.svelte +7 -0
- package/dist/components/ui/sheet/sheet-portal.svelte.d.ts +3 -0
- package/dist/components/ui/sheet/sheet-title.svelte +18 -0
- package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-trigger.svelte +8 -0
- package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet.svelte +8 -0
- package/dist/components/ui/sheet/sheet.svelte.d.ts +3 -0
- package/dist/components/ui/sidebar/constants.d.ts +6 -0
- package/dist/components/ui/sidebar/constants.js +6 -0
- package/dist/components/ui/sidebar/context.svelte.d.ts +42 -0
- package/dist/components/ui/sidebar/context.svelte.js +54 -0
- package/dist/components/ui/sidebar/index.d.ts +25 -0
- package/dist/components/ui/sidebar/index.js +27 -0
- package/dist/components/ui/sidebar/sidebar-content.svelte +25 -0
- package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-footer.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-group-action.svelte +34 -0
- package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-group-content.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-group-label.svelte +34 -0
- package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-group.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-header.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-input.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-inset.svelte +24 -0
- package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte +38 -0
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +25 -0
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte +113 -0
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +51 -0
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +37 -0
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +40 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +13 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +22 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +26 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu.svelte +25 -0
- package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-provider.svelte +55 -0
- package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +9 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte +41 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-separator.svelte +20 -0
- package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +13 -0
- package/dist/components/ui/sidebar/sidebar-trigger.svelte +38 -0
- package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +8 -0
- package/dist/components/ui/sidebar/sidebar.svelte +108 -0
- package/dist/components/ui/sidebar/sidebar.svelte.d.ts +10 -0
- package/dist/components/ui/skeleton/index.d.ts +2 -0
- package/dist/components/ui/skeleton/index.js +4 -0
- package/dist/components/ui/skeleton/skeleton.svelte +18 -0
- package/dist/components/ui/skeleton/skeleton.svelte.d.ts +5 -0
- package/dist/components/ui/slider/index.d.ts +2 -0
- package/dist/components/ui/slider/index.js +4 -0
- package/dist/components/ui/slider/slider.svelte +53 -0
- package/dist/components/ui/slider/slider.svelte.d.ts +5 -0
- package/dist/components/ui/sonner/index.d.ts +1 -0
- package/dist/components/ui/sonner/index.js +1 -0
- package/dist/components/ui/sonner/sonner.svelte +66 -0
- package/dist/components/ui/sonner/sonner.svelte.d.ts +4 -0
- package/dist/components/ui/spinner/index.d.ts +1 -0
- package/dist/components/ui/spinner/index.js +1 -0
- package/dist/components/ui/spinner/spinner.svelte +30 -0
- package/dist/components/ui/spinner/spinner.svelte.d.ts +4 -0
- package/dist/components/ui/switch/index.d.ts +2 -0
- package/dist/components/ui/switch/index.js +4 -0
- package/dist/components/ui/switch/switch.svelte +35 -0
- package/dist/components/ui/switch/switch.svelte.d.ts +8 -0
- package/dist/components/ui/table/index.d.ts +9 -0
- package/dist/components/ui/table/index.js +11 -0
- package/dist/components/ui/table/table-body.svelte +21 -0
- package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-caption.svelte +21 -0
- package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-cell.svelte +24 -0
- package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-footer.svelte +24 -0
- package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-head.svelte +24 -0
- package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-header.svelte +21 -0
- package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-row.svelte +24 -0
- package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
- package/dist/components/ui/table/table.svelte +23 -0
- package/dist/components/ui/table/table.svelte.d.ts +5 -0
- package/dist/components/ui/tabs/index.d.ts +5 -0
- package/dist/components/ui/tabs/index.js +7 -0
- package/dist/components/ui/tabs/tabs-content.svelte +18 -0
- package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs-list.svelte +43 -0
- package/dist/components/ui/tabs/tabs-list.svelte.d.ts +25 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte +24 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs.svelte +20 -0
- package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
- package/dist/components/ui/textarea/index.d.ts +2 -0
- package/dist/components/ui/textarea/index.js +4 -0
- package/dist/components/ui/textarea/textarea.svelte +23 -0
- package/dist/components/ui/textarea/textarea.svelte.d.ts +5 -0
- package/dist/components/ui/toggle/index.d.ts +3 -0
- package/dist/components/ui/toggle/index.js +5 -0
- package/dist/components/ui/toggle/toggle.svelte +53 -0
- package/dist/components/ui/toggle/toggle.svelte.d.ts +43 -0
- package/dist/components/ui/toggle-group/index.d.ts +3 -0
- package/dist/components/ui/toggle-group/index.js +5 -0
- package/dist/components/ui/toggle-group/toggle-group-item.svelte +40 -0
- package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +6 -0
- package/dist/components/ui/toggle-group/toggle-group.svelte +77 -0
- package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +17 -0
- package/dist/components/ui/tooltip/index.d.ts +6 -0
- package/dist/components/ui/tooltip/index.js +8 -0
- package/dist/components/ui/tooltip/tooltip-content.svelte +50 -0
- package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +11 -0
- package/dist/components/ui/tooltip/tooltip-portal.svelte +7 -0
- package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +4 -0
- package/dist/components/ui/tooltip/tooltip-provider.svelte +8 -0
- package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +4 -0
- package/dist/components/ui/tooltip/tooltip-trigger.svelte +10 -0
- package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +25 -0
- package/dist/components/ui/tooltip/tooltip.svelte +8 -0
- package/dist/components/ui/tooltip/tooltip.svelte.d.ts +25 -0
- package/dist/haptics.d.ts +8 -0
- package/dist/haptics.js +11 -0
- package/dist/hooks/is-mobile.svelte.d.ts +4 -0
- package/dist/hooks/is-mobile.svelte.js +7 -0
- package/dist/page-title.svelte.d.ts +31 -0
- package/dist/page-title.svelte.js +33 -0
- package/dist/theme.css +440 -0
- package/dist/toast.d.ts +43 -0
- package/dist/toast.js +85 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.js +1 -0
- package/package.json +109 -5
package/README.md
CHANGED
|
@@ -1,3 +1,147 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @orochibraru/ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Svelte 5 components and the theme shared by OpenCount, LocalAssistant, Homerun,
|
|
4
|
+
Sergio's, Nuvio Web and Penombre: the shadcn-svelte primitives (vega style) as
|
|
5
|
+
these apps customised them, a handful of app-level blocks, and the oklch theme
|
|
6
|
+
they all draw from. One package instead of six drifting copies.
|
|
7
|
+
|
|
8
|
+
Built for SvelteKit 3, Svelte 5 runes and Tailwind CSS v4.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
bun add -d @orochibraru/ui
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
It goes in `devDependencies`: the app bundles it, so nothing from it is needed
|
|
17
|
+
at runtime next to the compiled server.
|
|
18
|
+
|
|
19
|
+
## Set up the stylesheet
|
|
20
|
+
|
|
21
|
+
Import the theme right after Tailwind in the app's root stylesheet:
|
|
22
|
+
|
|
23
|
+
```css
|
|
24
|
+
@import "tailwindcss";
|
|
25
|
+
@import "@orochibraru/ui/theme.css";
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The theme brings the design tokens, the `data-*` state variants the primitives
|
|
29
|
+
style with, `tw-animate-css`, and an `@source` that makes Tailwind scan the
|
|
30
|
+
package, so no other configuration is needed.
|
|
31
|
+
|
|
32
|
+
## Use
|
|
33
|
+
|
|
34
|
+
Every primitive is a subpath, with the same exports shadcn-svelte generates:
|
|
35
|
+
|
|
36
|
+
```svelte
|
|
37
|
+
<script lang="ts">
|
|
38
|
+
import EmptyState from "@orochibraru/ui/blocks/empty-state";
|
|
39
|
+
import { Button } from "@orochibraru/ui/button";
|
|
40
|
+
import * as Dialog from "@orochibraru/ui/dialog";
|
|
41
|
+
import { cn } from "@orochibraru/ui/utils";
|
|
42
|
+
</script>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Moving an app over is a rewrite of its imports:
|
|
46
|
+
`#lib/components/ui/button/index.js` becomes `@orochibraru/ui/button`.
|
|
47
|
+
|
|
48
|
+
Primitives: accordion, alert, alert-dialog, avatar, badge, breadcrumb, button,
|
|
49
|
+
button-group, calendar, card, checkbox, command, context-menu, dialog, drawer,
|
|
50
|
+
dropdown-menu, empty, field, input, input-group, input-otp, label, menubar,
|
|
51
|
+
pagination, popover, progress, radio-group, range-calendar, resizable,
|
|
52
|
+
scroll-area, select, separator, sheet, sidebar, skeleton, slider, sonner,
|
|
53
|
+
spinner, switch, table, tabs, textarea, toggle, toggle-group, tooltip.
|
|
54
|
+
|
|
55
|
+
`input` turns password managers off on fields that don't set `autocomplete`, so
|
|
56
|
+
a search box never gets a login suggestion.
|
|
57
|
+
|
|
58
|
+
## Blocks
|
|
59
|
+
|
|
60
|
+
Under `@orochibraru/ui/blocks/<name>`:
|
|
61
|
+
|
|
62
|
+
| Block | What it does |
|
|
63
|
+
| ------------------ | --------------------------------------------------------------------------- |
|
|
64
|
+
| `auth-shell` | Centered sign-in layout: heading, optional `brand` and `footer` snippets. |
|
|
65
|
+
| `copy-field` | Monospace value with a copy button and a promise toast. |
|
|
66
|
+
| `document-title` | `<title>` from the page title, suffixed with `appName`. |
|
|
67
|
+
| `empty-state` | Icon, title, subtitle and an action slot for an empty list. |
|
|
68
|
+
| `error-page` | Status, message and error id from `page`, with a link to `homeHref`. |
|
|
69
|
+
| `fab` | Floating action button above the phone tab bar, with a haptic tap. |
|
|
70
|
+
| `icon-button` | Round icon button with a tooltip that doubles as its accessible name. |
|
|
71
|
+
| `install-prompt` | One-time PWA install sheet: native prompt, iOS steps or browser menu steps. |
|
|
72
|
+
| `responsive-sheet` | A dialog on desktop, a bottom drawer under 768px. |
|
|
73
|
+
| `setting-switch` | Labelled switch row for settings forms, posting `name=true` when on. |
|
|
74
|
+
| `stat-card` | Glass card with an icon, a value and a hint, optionally a link. |
|
|
75
|
+
| `top-loading-bar` | Progress bar during SvelteKit navigations, safe-area aware. |
|
|
76
|
+
|
|
77
|
+
Blocks with built-in copy (`copy-field`, `error-page`, `install-prompt`) take a
|
|
78
|
+
`messages` prop. Its keys override the English defaults one by one, which is how
|
|
79
|
+
a French or translated app uses them. Blocks never set the page title: the app
|
|
80
|
+
calls `setPageTitle` itself.
|
|
81
|
+
|
|
82
|
+
`icon-button`, and `copy-field` through it, need a `Tooltip.Provider` above
|
|
83
|
+
them, which apps put in their root layout.
|
|
84
|
+
|
|
85
|
+
## Modules
|
|
86
|
+
|
|
87
|
+
- `@orochibraru/ui/utils`: `cn` and the shadcn-svelte prop helper types.
|
|
88
|
+
- `@orochibraru/ui/toast`: `enhanceToast` and `saveToast` narrate a form action
|
|
89
|
+
through one promise toast, `toastError` turns anything thrown into a message.
|
|
90
|
+
Form updates keep `reset: false` by default so `bind:value` fields survive a
|
|
91
|
+
submit.
|
|
92
|
+
- `@orochibraru/ui/page-title`: `providePageTitle` once in the root layout,
|
|
93
|
+
`setPageTitle` in pages, `usePageTitle` in app bars.
|
|
94
|
+
- `@orochibraru/ui/appearance`: `applyAppearance` and `appearanceBootScript`
|
|
95
|
+
apply a saved accent, theme, dark variant, font and corner style to `<html>`,
|
|
96
|
+
the boot script before first paint.
|
|
97
|
+
- `@orochibraru/ui/haptics`: `haptic("tap" | "success" | "error")`, a no-op
|
|
98
|
+
where vibration isn't supported.
|
|
99
|
+
|
|
100
|
+
## Theming
|
|
101
|
+
|
|
102
|
+
Colours derive from two variables, so an app usually overrides only these after
|
|
103
|
+
importing the theme:
|
|
104
|
+
|
|
105
|
+
```css
|
|
106
|
+
:root {
|
|
107
|
+
--hue: 8;
|
|
108
|
+
--primary-chroma: 0.15;
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
On `<html>`:
|
|
113
|
+
|
|
114
|
+
- `class="dark"` switches to the dark palette, `data-dark-variant="amoled"`
|
|
115
|
+
makes it pure black.
|
|
116
|
+
- `data-accent` picks a preset: `bordeaux`, `green`, `blue`, `violet`, `rose`,
|
|
117
|
+
`orange`, `amber`, `cyan` or `neutral`.
|
|
118
|
+
- `data-font` (`system`, `serif`, `mono`) and `data-corners="square"` change the
|
|
119
|
+
type and the radius.
|
|
120
|
+
|
|
121
|
+
`class="aurora"` on `<body>` adds the drifting gradient background. It is opt-in
|
|
122
|
+
so apps with a flat look don't get it.
|
|
123
|
+
|
|
124
|
+
The theme also defines the `glass`, `glow`, `no-scrollbar` and `tabular`
|
|
125
|
+
utilities, the `standalone` variant for installed PWAs, `safe-*` spacing for
|
|
126
|
+
notches, the toast styling and the page transitions on phones. Fonts are left to
|
|
127
|
+
each app: set `--app-font` and `--display-font`.
|
|
128
|
+
|
|
129
|
+
## Develop
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
bun install
|
|
133
|
+
bun run dev
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The dev server shows every primitive and block on one page, with an accent and
|
|
137
|
+
dark mode switch. `bun run check`, `bun run test` and `bun run build` are the
|
|
138
|
+
gates; `build` packages `dist/` and runs publint.
|
|
139
|
+
|
|
140
|
+
New upstream components come from the shadcn-svelte CLI (`components.json` is
|
|
141
|
+
set up), followed by `node_modules/.bin/tailwint --fix` on the new files. The
|
|
142
|
+
CLI overwrites any customised primitive a new one depends on (drawer, input and
|
|
143
|
+
sonner carry the apps' changes): copy those aside before `add --overwrite` and
|
|
144
|
+
put them back after.
|
|
145
|
+
|
|
146
|
+
Dependencies use caret ranges, unlike the apps' exact pins, so a consuming app
|
|
147
|
+
dedupes `bits-ui` and friends with its own copy instead of bundling two.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface AppearanceAttributes {
|
|
2
|
+
accent: string;
|
|
3
|
+
theme: string;
|
|
4
|
+
darkVariant: string;
|
|
5
|
+
font: string;
|
|
6
|
+
corners: string;
|
|
7
|
+
}
|
|
8
|
+
/** Applies an appearance to `<html>`: data attributes for accent, dark variant, font and corners, the `dark` class for the theme. */
|
|
9
|
+
export declare function applyAppearance(root: HTMLElement, appearance: AppearanceAttributes, prefersDark: boolean): void;
|
|
10
|
+
/** An inline script applying `appearance` before first paint, so a reload never flashes the default theme. */
|
|
11
|
+
export declare function appearanceBootScript(appearance: AppearanceAttributes): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Applies an appearance to `<html>`: data attributes for accent, dark variant, font and corners, the `dark` class for the theme. */
|
|
2
|
+
export function applyAppearance(root, appearance, prefersDark) {
|
|
3
|
+
root.dataset.accent = appearance.accent;
|
|
4
|
+
root.dataset.darkVariant = appearance.darkVariant;
|
|
5
|
+
root.dataset.font = appearance.font;
|
|
6
|
+
root.dataset.corners = appearance.corners;
|
|
7
|
+
const dark = appearance.theme === "dark" ||
|
|
8
|
+
(appearance.theme === "system" && prefersDark);
|
|
9
|
+
root.classList.toggle("dark", dark);
|
|
10
|
+
root.style.colorScheme = dark ? "dark" : "light";
|
|
11
|
+
}
|
|
12
|
+
/** An inline script applying `appearance` before first paint, so a reload never flashes the default theme. */
|
|
13
|
+
export function appearanceBootScript(appearance) {
|
|
14
|
+
const values = JSON.stringify(appearance).replaceAll("<", "\\u003c");
|
|
15
|
+
return `<script>(function(){var a=${values};var r=document.documentElement;r.dataset.accent=a.accent;r.dataset.darkVariant=a.darkVariant;r.dataset.font=a.font;r.dataset.corners=a.corners;try{localStorage.setItem("mode-watcher-mode",a.theme)}catch(e){}var d=a.theme==="dark"||(a.theme==="system"&&matchMedia("(prefers-color-scheme: dark)").matches);r.classList.toggle("dark",d);r.style.colorScheme=d?"dark":"light"})()</script>`;
|
|
16
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
heading: string;
|
|
6
|
+
subheading?: string;
|
|
7
|
+
brand?: Snippet;
|
|
8
|
+
children: Snippet;
|
|
9
|
+
footer?: Snippet;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const { heading, subheading, brand, children, footer }: Props = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<div class="pt-safe-top flex min-h-[85dvh] flex-col justify-center px-6 py-12">
|
|
16
|
+
<div class="mx-auto w-full max-w-sm">
|
|
17
|
+
{#if brand}
|
|
18
|
+
<div class="mb-8">
|
|
19
|
+
{@render brand()}
|
|
20
|
+
</div>
|
|
21
|
+
{/if}
|
|
22
|
+
<h1 class="text-3xl font-bold tracking-tight">{heading}</h1>
|
|
23
|
+
{#if subheading}
|
|
24
|
+
<p class="text-muted-foreground mt-2">{subheading}</p>
|
|
25
|
+
{/if}
|
|
26
|
+
<div class="mt-8">
|
|
27
|
+
{@render children()}
|
|
28
|
+
</div>
|
|
29
|
+
{#if footer}
|
|
30
|
+
<p class="text-muted-foreground mt-8 text-center text-sm">
|
|
31
|
+
{@render footer()}
|
|
32
|
+
</p>
|
|
33
|
+
{/if}
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
interface Props {
|
|
3
|
+
heading: string;
|
|
4
|
+
subheading?: string;
|
|
5
|
+
brand?: Snippet;
|
|
6
|
+
children: Snippet;
|
|
7
|
+
footer?: Snippet;
|
|
8
|
+
}
|
|
9
|
+
declare const AuthShell: import("svelte").Component<Props, {}, "">;
|
|
10
|
+
type AuthShell = ReturnType<typeof AuthShell>;
|
|
11
|
+
export default AuthShell;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import CheckIcon from "@lucide/svelte/icons/check";
|
|
3
|
+
import CopyIcon from "@lucide/svelte/icons/copy";
|
|
4
|
+
import { toast } from "svelte-sonner";
|
|
5
|
+
|
|
6
|
+
import IconButton from "./icon-button.svelte";
|
|
7
|
+
|
|
8
|
+
const defaultMessages = {
|
|
9
|
+
loading: "Copying",
|
|
10
|
+
success: "Copied.",
|
|
11
|
+
error: "Couldn't copy. Select the text instead.",
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
interface Props {
|
|
15
|
+
value: string;
|
|
16
|
+
label: string;
|
|
17
|
+
messages?: Partial<typeof defaultMessages>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const { value, label, messages = {} }: Props = $props();
|
|
21
|
+
|
|
22
|
+
let copied = $state(false);
|
|
23
|
+
|
|
24
|
+
async function copyCallback() {
|
|
25
|
+
await navigator.clipboard.writeText(value);
|
|
26
|
+
copied = true;
|
|
27
|
+
setTimeout(() => (copied = false), 2000);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function handleCopy() {
|
|
31
|
+
toast.promise(copyCallback(), { ...defaultMessages, ...messages });
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<div class="bg-muted flex min-w-0 items-center gap-2 rounded-xl py-1 pr-1 pl-3">
|
|
36
|
+
<span class="min-w-0 flex-1 truncate font-mono text-xs select-all"
|
|
37
|
+
>{value}</span
|
|
38
|
+
>
|
|
39
|
+
<IconButton
|
|
40
|
+
{label}
|
|
41
|
+
icon={copied ? CheckIcon : CopyIcon}
|
|
42
|
+
onclick={handleCopy}
|
|
43
|
+
/>
|
|
44
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const CopyField: import("svelte").Component<{
|
|
2
|
+
value: string;
|
|
3
|
+
label: string;
|
|
4
|
+
messages?: Partial<{
|
|
5
|
+
loading: string;
|
|
6
|
+
success: string;
|
|
7
|
+
error: string;
|
|
8
|
+
}>;
|
|
9
|
+
}, {}, "">;
|
|
10
|
+
type CopyField = ReturnType<typeof CopyField>;
|
|
11
|
+
export default CopyField;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { usePageTitle } from "../../page-title.svelte.js";
|
|
3
|
+
|
|
4
|
+
const { appName }: { appName: string } = $props();
|
|
5
|
+
|
|
6
|
+
const title = usePageTitle();
|
|
7
|
+
const text = $derived(
|
|
8
|
+
!title.current
|
|
9
|
+
? appName
|
|
10
|
+
: title.current.includes(appName)
|
|
11
|
+
? title.current
|
|
12
|
+
: `${title.current} · ${appName}`,
|
|
13
|
+
);
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<svelte:head>
|
|
17
|
+
<title>{text}</title>
|
|
18
|
+
</svelte:head>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Component, Snippet } from "svelte";
|
|
3
|
+
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
icon: Component<{ class?: string }>;
|
|
8
|
+
title: string;
|
|
9
|
+
subtitle?: string;
|
|
10
|
+
children?: Snippet;
|
|
11
|
+
class?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const {
|
|
15
|
+
icon: Icon,
|
|
16
|
+
title,
|
|
17
|
+
subtitle,
|
|
18
|
+
children,
|
|
19
|
+
class: className,
|
|
20
|
+
}: Props = $props();
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<div
|
|
24
|
+
class={cn(
|
|
25
|
+
"flex flex-col items-center justify-center px-6 py-16 text-center",
|
|
26
|
+
className,
|
|
27
|
+
)}
|
|
28
|
+
>
|
|
29
|
+
<div
|
|
30
|
+
class="bg-accent text-accent-foreground mb-5 flex size-16 items-center justify-center rounded-2xl"
|
|
31
|
+
>
|
|
32
|
+
<Icon class="size-7" />
|
|
33
|
+
</div>
|
|
34
|
+
<p class="text-lg font-semibold tracking-tight">{title}</p>
|
|
35
|
+
{#if subtitle}
|
|
36
|
+
<p class="text-muted-foreground mt-1.5 max-w-xs text-sm text-pretty">
|
|
37
|
+
{subtitle}
|
|
38
|
+
</p>
|
|
39
|
+
{/if}
|
|
40
|
+
{#if children}
|
|
41
|
+
<div class="mt-6">
|
|
42
|
+
{@render children()}
|
|
43
|
+
</div>
|
|
44
|
+
{/if}
|
|
45
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Component, Snippet } from "svelte";
|
|
2
|
+
interface Props {
|
|
3
|
+
icon: Component<{
|
|
4
|
+
class?: string;
|
|
5
|
+
}>;
|
|
6
|
+
title: string;
|
|
7
|
+
subtitle?: string;
|
|
8
|
+
children?: Snippet;
|
|
9
|
+
class?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const EmptyState: Component<Props, {}, "">;
|
|
12
|
+
type EmptyState = ReturnType<typeof EmptyState>;
|
|
13
|
+
export default EmptyState;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { page } from "$app/state";
|
|
3
|
+
|
|
4
|
+
import { Button } from "../ui/button/index.js";
|
|
5
|
+
|
|
6
|
+
const defaultMessages = {
|
|
7
|
+
notFoundTitle: "Nothing here",
|
|
8
|
+
notFoundDescription: "This page doesn't exist or was moved.",
|
|
9
|
+
errorTitle: "Something went wrong",
|
|
10
|
+
errorId: "Error ID",
|
|
11
|
+
home: "Back home",
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
interface Props {
|
|
15
|
+
homeHref: string;
|
|
16
|
+
messages?: Partial<typeof defaultMessages>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const { homeHref, messages = {} }: Props = $props();
|
|
20
|
+
|
|
21
|
+
const text = $derived({ ...defaultMessages, ...messages });
|
|
22
|
+
const notFound = $derived(page.status === 404);
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<div
|
|
26
|
+
class="pt-safe-top pb-safe-bottom flex min-h-dvh flex-col items-center justify-center gap-6 px-6 text-center"
|
|
27
|
+
>
|
|
28
|
+
<p class="text-primary text-7xl font-bold tracking-tight tabular">
|
|
29
|
+
{page.status}
|
|
30
|
+
</p>
|
|
31
|
+
<div>
|
|
32
|
+
<h1 class="text-xl font-semibold">
|
|
33
|
+
{notFound ? text.notFoundTitle : text.errorTitle}
|
|
34
|
+
</h1>
|
|
35
|
+
<p class="text-muted-foreground mt-2 text-sm">
|
|
36
|
+
{notFound ? text.notFoundDescription : page.error?.message}
|
|
37
|
+
</p>
|
|
38
|
+
{#if page.error?.errorId}
|
|
39
|
+
<p class="text-muted-foreground mt-3 font-mono text-xs">
|
|
40
|
+
{text.errorId}: {page.error.errorId}
|
|
41
|
+
</p>
|
|
42
|
+
{/if}
|
|
43
|
+
</div>
|
|
44
|
+
<Button href={homeHref} size="lg" class="h-11 rounded-full px-6"
|
|
45
|
+
>{text.home}</Button
|
|
46
|
+
>
|
|
47
|
+
</div>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare const ErrorPage: import("svelte").Component<{
|
|
2
|
+
homeHref: string;
|
|
3
|
+
messages?: Partial<{
|
|
4
|
+
notFoundTitle: string;
|
|
5
|
+
notFoundDescription: string;
|
|
6
|
+
errorTitle: string;
|
|
7
|
+
errorId: string;
|
|
8
|
+
home: string;
|
|
9
|
+
}>;
|
|
10
|
+
}, {}, "">;
|
|
11
|
+
type ErrorPage = ReturnType<typeof ErrorPage>;
|
|
12
|
+
export default ErrorPage;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Component } from "svelte";
|
|
3
|
+
|
|
4
|
+
import { haptic } from "../../haptics.js";
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
label: string;
|
|
8
|
+
icon: Component<{ class?: string }>;
|
|
9
|
+
onclick: () => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const { label, icon: Icon, onclick }: Props = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<button
|
|
16
|
+
type="button"
|
|
17
|
+
aria-label={label}
|
|
18
|
+
onclick={() => {
|
|
19
|
+
haptic("tap");
|
|
20
|
+
onclick();
|
|
21
|
+
}}
|
|
22
|
+
class="from-primary glow fixed right-5 bottom-[calc(max(0.75rem,env(safe-area-inset-bottom))+5.25rem)] z-40 flex size-15 items-center justify-center rounded-2xl bg-linear-to-br to-[oklch(0.62_calc(var(--primary-chroma)*1.1)_calc(var(--hue)+40))] text-white transition-transform duration-200 active:scale-90 md:hidden"
|
|
23
|
+
style="view-transition-name: fab"
|
|
24
|
+
>
|
|
25
|
+
<Icon class="size-7" />
|
|
26
|
+
</button>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Component } from "svelte";
|
|
3
|
+
|
|
4
|
+
import { Button, type ButtonProps } from "../ui/button/index.js";
|
|
5
|
+
import * as Tooltip from "../ui/tooltip/index.js";
|
|
6
|
+
import { cn } from "../../utils.js";
|
|
7
|
+
|
|
8
|
+
type Props = Omit<ButtonProps, "children"> & {
|
|
9
|
+
label: string;
|
|
10
|
+
icon: Component<{ class?: string }>;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
label,
|
|
15
|
+
icon: Icon,
|
|
16
|
+
class: className,
|
|
17
|
+
variant = "ghost",
|
|
18
|
+
...rest
|
|
19
|
+
}: Props = $props();
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<Tooltip.Root>
|
|
23
|
+
<Tooltip.Trigger>
|
|
24
|
+
{#snippet child({ props })}
|
|
25
|
+
<Button
|
|
26
|
+
{...props}
|
|
27
|
+
{...rest}
|
|
28
|
+
{variant}
|
|
29
|
+
size="icon"
|
|
30
|
+
aria-label={label}
|
|
31
|
+
class={cn("size-11 rounded-full md:size-9", className)}
|
|
32
|
+
>
|
|
33
|
+
<Icon class="size-5" />
|
|
34
|
+
</Button>
|
|
35
|
+
{/snippet}
|
|
36
|
+
</Tooltip.Trigger>
|
|
37
|
+
<Tooltip.Content>{label}</Tooltip.Content>
|
|
38
|
+
</Tooltip.Root>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Component } from "svelte";
|
|
2
|
+
import { type ButtonProps } from "../ui/button/index.js";
|
|
3
|
+
type Props = Omit<ButtonProps, "children"> & {
|
|
4
|
+
label: string;
|
|
5
|
+
icon: Component<{
|
|
6
|
+
class?: string;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
declare const IconButton: Component<Props, {}, "">;
|
|
10
|
+
type IconButton = ReturnType<typeof IconButton>;
|
|
11
|
+
export default IconButton;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import DownloadIcon from "@lucide/svelte/icons/download";
|
|
3
|
+
import EllipsisVerticalIcon from "@lucide/svelte/icons/ellipsis-vertical";
|
|
4
|
+
import ShareIcon from "@lucide/svelte/icons/share";
|
|
5
|
+
import SquarePlusIcon from "@lucide/svelte/icons/square-plus";
|
|
6
|
+
import { onMount, type Snippet } from "svelte";
|
|
7
|
+
|
|
8
|
+
import ResponsiveSheet from "./responsive-sheet.svelte";
|
|
9
|
+
import { Button } from "../ui/button/index.js";
|
|
10
|
+
|
|
11
|
+
interface InstallPromptEvent extends Event {
|
|
12
|
+
prompt: () => Promise<void>;
|
|
13
|
+
userChoice: Promise<{ outcome: "accepted" | "dismissed" }>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const defaultMessages = {
|
|
17
|
+
description:
|
|
18
|
+
"Open it from your home screen like any app: full screen, quicker to reach, and with notifications.",
|
|
19
|
+
appleShare: "Tap Share in your browser's toolbar or address bar.",
|
|
20
|
+
appleAdd: "Pick Add to Home Screen, then Add.",
|
|
21
|
+
menuOpen: "Open your browser's menu.",
|
|
22
|
+
menuInstall: "Pick Install app or Add to Home screen.",
|
|
23
|
+
gotIt: "Got it",
|
|
24
|
+
install: "Install",
|
|
25
|
+
notNow: "Not now",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
interface Props {
|
|
29
|
+
appName: string;
|
|
30
|
+
storageKey: string;
|
|
31
|
+
brand?: Snippet;
|
|
32
|
+
title?: string;
|
|
33
|
+
messages?: Partial<typeof defaultMessages>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const {
|
|
37
|
+
appName,
|
|
38
|
+
storageKey,
|
|
39
|
+
brand,
|
|
40
|
+
title = `Install ${appName}`,
|
|
41
|
+
messages = {},
|
|
42
|
+
}: Props = $props();
|
|
43
|
+
|
|
44
|
+
const text = $derived({ ...defaultMessages, ...messages });
|
|
45
|
+
|
|
46
|
+
let open = $state(false);
|
|
47
|
+
let mode = $state<"native" | "apple" | "menu">("native");
|
|
48
|
+
let deferred: InstallPromptEvent | undefined;
|
|
49
|
+
|
|
50
|
+
function alreadyPrompted(): boolean {
|
|
51
|
+
try {
|
|
52
|
+
return localStorage.getItem(storageKey) !== null;
|
|
53
|
+
} catch {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function show(next: "native" | "apple" | "menu") {
|
|
59
|
+
if (alreadyPrompted()) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
mode = next;
|
|
63
|
+
open = true;
|
|
64
|
+
try {
|
|
65
|
+
localStorage.setItem(storageKey, new Date().toISOString());
|
|
66
|
+
} catch {
|
|
67
|
+
open = false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
onMount(() => {
|
|
72
|
+
const standalone =
|
|
73
|
+
matchMedia("(display-mode: standalone)").matches ||
|
|
74
|
+
("standalone" in navigator && navigator.standalone === true);
|
|
75
|
+
const touch = matchMedia("(pointer: coarse)").matches;
|
|
76
|
+
if (standalone || !touch || alreadyPrompted()) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const apple =
|
|
80
|
+
/iPhone|iPad/.test(navigator.userAgent) ||
|
|
81
|
+
(/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints > 1);
|
|
82
|
+
if (apple) {
|
|
83
|
+
const timer = setTimeout(() => show("apple"), 1500);
|
|
84
|
+
return () => clearTimeout(timer);
|
|
85
|
+
}
|
|
86
|
+
const capture = (event: Event) => {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
deferred = event as InstallPromptEvent;
|
|
89
|
+
if (open) {
|
|
90
|
+
mode = "native";
|
|
91
|
+
} else {
|
|
92
|
+
show("native");
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
addEventListener("beforeinstallprompt", capture);
|
|
96
|
+
const fallback = setTimeout(() => {
|
|
97
|
+
if (!deferred) {
|
|
98
|
+
show("menu");
|
|
99
|
+
}
|
|
100
|
+
}, 4000);
|
|
101
|
+
return () => {
|
|
102
|
+
removeEventListener("beforeinstallprompt", capture);
|
|
103
|
+
clearTimeout(fallback);
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
async function install() {
|
|
108
|
+
open = false;
|
|
109
|
+
await deferred?.prompt();
|
|
110
|
+
deferred = undefined;
|
|
111
|
+
}
|
|
112
|
+
</script>
|
|
113
|
+
|
|
114
|
+
{#snippet step(Icon: typeof ShareIcon, label: string)}
|
|
115
|
+
<li class="flex items-center gap-3">
|
|
116
|
+
<span
|
|
117
|
+
class="bg-accent text-accent-foreground flex size-9 shrink-0 items-center justify-center rounded-xl"
|
|
118
|
+
><Icon class="size-4" /></span
|
|
119
|
+
>
|
|
120
|
+
{label}
|
|
121
|
+
</li>
|
|
122
|
+
{/snippet}
|
|
123
|
+
|
|
124
|
+
<ResponsiveSheet bind:open {title} description={text.description}>
|
|
125
|
+
<div class="flex flex-col gap-5 pb-4">
|
|
126
|
+
{#if brand}
|
|
127
|
+
<div class="flex justify-center py-2">
|
|
128
|
+
{@render brand()}
|
|
129
|
+
</div>
|
|
130
|
+
{/if}
|
|
131
|
+
{#if mode === "native"}
|
|
132
|
+
<Button class="glow h-12 rounded-xl text-base" onclick={install}>
|
|
133
|
+
<DownloadIcon />
|
|
134
|
+
{text.install}
|
|
135
|
+
</Button>
|
|
136
|
+
<Button
|
|
137
|
+
variant="ghost"
|
|
138
|
+
class="h-11 rounded-xl"
|
|
139
|
+
onclick={() => (open = false)}>{text.notNow}</Button
|
|
140
|
+
>
|
|
141
|
+
{:else}
|
|
142
|
+
<ol class="flex flex-col gap-3 text-sm">
|
|
143
|
+
{#if mode === "apple"}
|
|
144
|
+
{@render step(ShareIcon, text.appleShare)}
|
|
145
|
+
{@render step(SquarePlusIcon, text.appleAdd)}
|
|
146
|
+
{:else}
|
|
147
|
+
{@render step(EllipsisVerticalIcon, text.menuOpen)}
|
|
148
|
+
{@render step(SquarePlusIcon, text.menuInstall)}
|
|
149
|
+
{/if}
|
|
150
|
+
</ol>
|
|
151
|
+
<Button class="h-12 rounded-xl text-base" onclick={() => (open = false)}
|
|
152
|
+
>{text.gotIt}</Button
|
|
153
|
+
>
|
|
154
|
+
{/if}
|
|
155
|
+
</div>
|
|
156
|
+
</ResponsiveSheet>
|