negodesign 0.0.1
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 +42 -0
- package/dist/assets/favicon.svg +1 -0
- package/dist/components/button.svelte +83 -0
- package/dist/components/button.svelte.d.ts +32 -0
- package/dist/components/core/breadcrumb/breadcrumb-list.svelte +32 -0
- package/dist/components/core/breadcrumb/breadcrumb-list.svelte.d.ts +9 -0
- package/dist/components/core/button/ButtonBack.svelte +18 -0
- package/dist/components/core/button/ButtonBack.svelte.d.ts +4 -0
- package/dist/components/core/button/ButtonLogin.svelte +15 -0
- package/dist/components/core/button/ButtonLogin.svelte.d.ts +4 -0
- package/dist/components/core/button/ButtonLoginWith.svelte +57 -0
- package/dist/components/core/button/ButtonLoginWith.svelte.d.ts +12 -0
- package/dist/components/core/carousel/data/CarouselModel.d.ts +10 -0
- package/dist/components/core/carousel/data/CarouselModel.js +1 -0
- package/dist/components/core/datatable/data/columns-create.d.ts +3 -0
- package/dist/components/core/datatable/data/columns-create.js +35 -0
- package/dist/components/core/datatable/data/data-table.d.ts +19 -0
- package/dist/components/core/datatable/data/data-table.js +1 -0
- package/dist/components/core/datatable/data/resolve-cell-badge.svelte.d.ts +8 -0
- package/dist/components/core/datatable/data/resolve-cell-badge.svelte.js +32 -0
- package/dist/components/core/datatable/data/resolve-cell.svelte.d.ts +2 -0
- package/dist/components/core/datatable/data/resolve-cell.svelte.js +19 -0
- package/dist/components/core/datatable/data/resolve-header.svelte.d.ts +2 -0
- package/dist/components/core/datatable/data/resolve-header.svelte.js +17 -0
- package/dist/components/core/datatable/ui/DataTableActions.svelte +28 -0
- package/dist/components/core/datatable/ui/DataTableActions.svelte.d.ts +25 -0
- package/dist/components/core/datatable/ui/DataTableCheckbox.svelte +22 -0
- package/dist/components/core/datatable/ui/DataTableCheckbox.svelte.d.ts +9 -0
- package/dist/components/core/datatable/ui/DataTableContent.svelte +59 -0
- package/dist/components/core/datatable/ui/DataTableContent.svelte.d.ts +28 -0
- package/dist/components/core/datatable/ui/DataTableCore.svelte +144 -0
- package/dist/components/core/datatable/ui/DataTableCore.svelte.d.ts +25 -0
- package/dist/components/core/datatable/ui/DataTableDragHandle.svelte +8 -0
- package/dist/components/core/datatable/ui/DataTableDragHandle.svelte.d.ts +18 -0
- package/dist/components/core/datatable/ui/DataTableListFilter.svelte +59 -0
- package/dist/components/core/datatable/ui/DataTableListFilter.svelte.d.ts +28 -0
- package/dist/components/core/datatable/ui/DataTableListPagination.svelte +35 -0
- package/dist/components/core/datatable/ui/DataTableListPagination.svelte.d.ts +27 -0
- package/dist/components/core/datatable/ui/columns-create.svelte.d.ts +3 -0
- package/dist/components/core/datatable/ui/columns-create.svelte.js +33 -0
- package/dist/components/core/form/data/InputIconDefault.svelte.d.ts +3 -0
- package/dist/components/core/form/data/InputIconDefault.svelte.js +9 -0
- package/dist/components/core/form/data/InputLabel.svelte.d.ts +8 -0
- package/dist/components/core/form/data/InputLabel.svelte.js +1 -0
- package/dist/components/core/form/ui/input-base.svelte +81 -0
- package/dist/components/core/form/ui/input-base.svelte.d.ts +4 -0
- package/dist/components/core/form/ui/input-email.svelte +22 -0
- package/dist/components/core/form/ui/input-email.svelte.d.ts +4 -0
- package/dist/components/core/form/ui/input-password-confirm.svelte +22 -0
- package/dist/components/core/form/ui/input-password-confirm.svelte.d.ts +4 -0
- package/dist/components/core/form/ui/input-password.svelte +22 -0
- package/dist/components/core/form/ui/input-password.svelte.d.ts +4 -0
- package/dist/components/core/form/ui/input-username.svelte +21 -0
- package/dist/components/core/form/ui/input-username.svelte.d.ts +4 -0
- package/dist/components/core/label/LabelOr.svelte +25 -0
- package/dist/components/core/label/LabelOr.svelte.d.ts +6 -0
- package/dist/components/core/link/link-forget-password.svelte +12 -0
- package/dist/components/core/link/link-forget-password.svelte.d.ts +4 -0
- package/dist/components/core/link/link-privacy-polity.svelte +12 -0
- package/dist/components/core/link/link-privacy-polity.svelte.d.ts +4 -0
- package/dist/components/core/link/link-terms-of-service.svelte +12 -0
- package/dist/components/core/link/link-terms-of-service.svelte.d.ts +4 -0
- package/dist/components/core/nav/data/nav-menu-sidebar.d.ts +21 -0
- package/dist/components/core/nav/data/nav-menu-sidebar.js +1 -0
- package/dist/components/core/nav/data/nav-top-bar-sidebar.d.ts +22 -0
- package/dist/components/core/nav/data/nav-top-bar-sidebar.js +1 -0
- package/dist/components/core/nav/data/nav-user-sidebar.d.ts +14 -0
- package/dist/components/core/nav/data/nav-user-sidebar.js +1 -0
- package/dist/components/core/nav/ui/nav-menu-bar.svelte +97 -0
- package/dist/components/core/nav/ui/nav-menu-bar.svelte.d.ts +7 -0
- package/dist/components/core/nav/ui/nav-menu-bottom-bar.svelte +33 -0
- package/dist/components/core/nav/ui/nav-menu-bottom-bar.svelte.d.ts +10 -0
- package/dist/components/core/nav/ui/nav-menu-header.svelte +78 -0
- package/dist/components/core/nav/ui/nav-menu-header.svelte.d.ts +10 -0
- package/dist/components/core/nav/ui/nav-menu-top-bar.svelte +103 -0
- package/dist/components/core/nav/ui/nav-menu-top-bar.svelte.d.ts +4 -0
- package/dist/components/core/nav/ui/nav-user-sidebar.svelte +94 -0
- package/dist/components/core/nav/ui/nav-user-sidebar.svelte.d.ts +7 -0
- package/dist/components/core/sidebar/menu-bar-sidebar.svelte +62 -0
- package/dist/components/core/sidebar/menu-bar-sidebar.svelte.d.ts +16 -0
- package/dist/components/core/tabs/data/TabModel.d.ts +9 -0
- package/dist/components/core/tabs/data/TabModel.js +1 -0
- package/dist/components/core/tabs/ui/tab-underline.svelte +41 -0
- package/dist/components/core/tabs/ui/tab-underline.svelte.d.ts +8 -0
- package/dist/components/pages/admin/ui/admin-content.svelte +13 -0
- package/dist/components/pages/admin/ui/admin-content.svelte.d.ts +7 -0
- package/dist/components/pages/admin/ui/admin-panel.svelte +40 -0
- package/dist/components/pages/admin/ui/admin-panel.svelte.d.ts +9 -0
- package/dist/components/pages/login/admin/01/ui/AuthCard.svelte +58 -0
- package/dist/components/pages/login/admin/01/ui/AuthCard.svelte.d.ts +18 -0
- package/dist/components/pages/login/admin/01/ui/FormLogin.svelte +31 -0
- package/dist/components/pages/login/admin/01/ui/FormLogin.svelte.d.ts +3 -0
- package/dist/components/pages/login/admin/01/ui/FormRegister.svelte +28 -0
- package/dist/components/pages/login/admin/01/ui/FormRegister.svelte.d.ts +3 -0
- package/dist/components/pages/login/admin/01/ui/LeftHero.svelte +105 -0
- package/dist/components/pages/login/admin/01/ui/LeftHero.svelte.d.ts +11 -0
- package/dist/components/pages/login/admin/01/ui/PageLogin.svelte +49 -0
- package/dist/components/pages/login/admin/01/ui/PageLogin.svelte.d.ts +18 -0
- package/dist/components/pages/login/admin/index.d.ts +0 -0
- package/dist/components/pages/login/admin/index.js +1 -0
- package/dist/components/pages/login/index.d.ts +0 -0
- package/dist/components/pages/login/index.js +1 -0
- package/dist/components/ui/avatar/avatar-badge.svelte +26 -0
- package/dist/components/ui/avatar/avatar-badge.svelte.d.ts +5 -0
- package/dist/components/ui/avatar/avatar-fallback.svelte +20 -0
- package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/avatar-group-count.svelte +23 -0
- package/dist/components/ui/avatar/avatar-group-count.svelte.d.ts +5 -0
- package/dist/components/ui/avatar/avatar-group.svelte +23 -0
- package/dist/components/ui/avatar/avatar-group.svelte.d.ts +5 -0
- package/dist/components/ui/avatar/avatar-image.svelte +17 -0
- package/dist/components/ui/avatar/avatar-image.svelte.d.ts +4 -0
- package/dist/components/ui/avatar/avatar.svelte +26 -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 +49 -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 +24 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +20 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +31 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +20 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +23 -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 +22 -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 +82 -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/chart/chart-container.svelte +80 -0
- package/dist/components/ui/chart/chart-container.svelte.d.ts +9 -0
- package/dist/components/ui/chart/chart-style.svelte +37 -0
- package/dist/components/ui/chart/chart-style.svelte.d.ts +8 -0
- package/dist/components/ui/chart/chart-tooltip.svelte +184 -0
- package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +27 -0
- package/dist/components/ui/chart/chart-utils.d.ts +36 -0
- package/dist/components/ui/chart/chart-utils.js +38 -0
- package/dist/components/ui/chart/index.d.ts +4 -0
- package/dist/components/ui/chart/index.js +4 -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/collapsible/collapsible-content.svelte +7 -0
- package/dist/components/ui/collapsible/collapsible-content.svelte.d.ts +4 -0
- package/dist/components/ui/collapsible/collapsible-trigger.svelte +7 -0
- package/dist/components/ui/collapsible/collapsible-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/collapsible/collapsible.svelte +11 -0
- package/dist/components/ui/collapsible/collapsible.svelte.d.ts +4 -0
- package/dist/components/ui/collapsible/index.d.ts +4 -0
- package/dist/components/ui/collapsible/index.js +6 -0
- package/dist/components/ui/data-table/data-table.svelte.d.ts +40 -0
- package/dist/components/ui/data-table/data-table.svelte.js +110 -0
- package/dist/components/ui/data-table/flex-render.svelte +40 -0
- package/dist/components/ui/data-table/flex-render.svelte.d.ts +33 -0
- package/dist/components/ui/data-table/index.d.ts +3 -0
- package/dist/components/ui/data-table/index.js +3 -0
- package/dist/components/ui/data-table/render-helpers.d.ts +90 -0
- package/dist/components/ui/data-table/render-helpers.js +99 -0
- package/dist/components/ui/drawer/drawer-close.svelte +7 -0
- package/dist/components/ui/drawer/drawer-close.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-content.svelte +33 -0
- package/dist/components/ui/drawer/drawer-content.svelte.d.ts +10 -0
- package/dist/components/ui/drawer/drawer-description.svelte +17 -0
- package/dist/components/ui/drawer/drawer-description.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-footer.svelte +20 -0
- package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +5 -0
- package/dist/components/ui/drawer/drawer-header.svelte +20 -0
- package/dist/components/ui/drawer/drawer-header.svelte.d.ts +5 -0
- package/dist/components/ui/drawer/drawer-nested.svelte +12 -0
- package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/drawer-overlay.svelte +17 -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 +17 -0
- package/dist/components/ui/drawer/drawer-title.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-trigger.svelte +7 -0
- package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer.svelte +12 -0
- package/dist/components/ui/drawer/drawer.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/index.d.ts +12 -0
- package/dist/components/ui/drawer/index.js +14 -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 +45 -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 +31 -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 +22 -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 +7 -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 +27 -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 +24 -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 +35 -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 +17 -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 +20 -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 +17 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -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 +7 -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 +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +7 -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/input/index.d.ts +2 -0
- package/dist/components/ui/input/index.js +4 -0
- package/dist/components/ui/input/input.svelte +48 -0
- package/dist/components/ui/input/input.svelte.d.ts +13 -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 +20 -0
- package/dist/components/ui/label/label.svelte.d.ts +4 -0
- package/dist/components/ui/language-switcher/index.d.ts +3 -0
- package/dist/components/ui/language-switcher/index.js +2 -0
- package/dist/components/ui/language-switcher/language-switcher.svelte +48 -0
- package/dist/components/ui/language-switcher/language-switcher.svelte.d.ts +10 -0
- package/dist/components/ui/light-switch/index.d.ts +2 -0
- package/dist/components/ui/light-switch/index.js +2 -0
- package/dist/components/ui/light-switch/light-switch.svelte +32 -0
- package/dist/components/ui/light-switch/light-switch.svelte.d.ts +8 -0
- package/dist/components/ui/select/index.d.ts +12 -0
- package/dist/components/ui/select/index.js +14 -0
- package/dist/components/ui/select/select-content.svelte +45 -0
- package/dist/components/ui/select/select-content.svelte.d.ts +11 -0
- package/dist/components/ui/select/select-group-heading.svelte +21 -0
- package/dist/components/ui/select/select-group-heading.svelte.d.ts +10 -0
- package/dist/components/ui/select/select-group.svelte +17 -0
- package/dist/components/ui/select/select-group.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-item.svelte +41 -0
- package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-label.svelte +20 -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 +21 -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 +21 -0
- package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-separator.svelte +18 -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.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 +23 -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 +7 -0
- package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-content.svelte +56 -0
- package/dist/components/ui/sheet/sheet-content.svelte.d.ts +15 -0
- package/dist/components/ui/sheet/sheet-description.svelte +17 -0
- package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-footer.svelte +20 -0
- package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
- package/dist/components/ui/sheet/sheet-header.svelte +20 -0
- package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
- package/dist/components/ui/sheet/sheet-overlay.svelte +17 -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 +17 -0
- package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet-trigger.svelte +7 -0
- package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/sheet/sheet.svelte +7 -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 +24 -0
- package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-footer.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-group-action.svelte +33 -0
- package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-group-content.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-group-label.svelte +33 -0
- package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-group.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-header.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-input.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +11 -0
- package/dist/components/ui/sidebar/sidebar-inset.svelte +20 -0
- package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte +37 -0
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +24 -0
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte +102 -0
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +51 -0
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +36 -0
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +39 -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 +21 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-menu.svelte +21 -0
- package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-provider.svelte +53 -0
- package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +9 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte +36 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +5 -0
- package/dist/components/ui/sidebar/sidebar-separator.svelte +19 -0
- package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +13 -0
- package/dist/components/ui/sidebar/sidebar-trigger.svelte +37 -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 +17 -0
- package/dist/components/ui/skeleton/skeleton.svelte.d.ts +5 -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 +26 -0
- package/dist/components/ui/spinner/spinner.svelte.d.ts +4 -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 +15 -0
- package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-caption.svelte +20 -0
- package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-cell.svelte +15 -0
- package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-footer.svelte +20 -0
- package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-head.svelte +15 -0
- package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-header.svelte +20 -0
- package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-row.svelte +15 -0
- package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
- package/dist/components/ui/table/table.svelte +17 -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 +17 -0
- package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs-list.svelte +40 -0
- package/dist/components/ui/tabs/tabs-list.svelte.d.ts +25 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte +23 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs.svelte +19 -0
- package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -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 +52 -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 +7 -0
- package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +4 -0
- package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
- package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +25 -0
- package/dist/components/ui/tooltip/tooltip.svelte +7 -0
- package/dist/components/ui/tooltip/tooltip.svelte.d.ts +25 -0
- package/dist/components/ui/underline-tabs/index.d.ts +5 -0
- package/dist/components/ui/underline-tabs/index.js +7 -0
- package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +17 -0
- package/dist/components/ui/underline-tabs/underline-tabs-content.svelte.d.ts +4 -0
- package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +34 -0
- package/dist/components/ui/underline-tabs/underline-tabs-list.svelte.d.ts +4 -0
- package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +61 -0
- package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/underline-tabs/underline-tabs.svelte +33 -0
- package/dist/components/ui/underline-tabs/underline-tabs.svelte.d.ts +7 -0
- package/dist/components/ui/underline-tabs/underline-tabs.svelte.js +61 -0
- package/dist/hooks/is-mobile.svelte.d.ts +4 -0
- package/dist/hooks/is-mobile.svelte.js +7 -0
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n/index.js +24 -0
- package/dist/i18n/translations.d.ts +77 -0
- package/dist/i18n/translations.js +76 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +2 -0
- package/dist/utils.d.ts +12 -0
- package/dist/utils.js +5 -0
- package/dist/vitest-examples/Welcome.svelte +8 -0
- package/dist/vitest-examples/Welcome.svelte.d.ts +13 -0
- package/dist/vitest-examples/Welcome.svelte.spec.d.ts +1 -0
- package/dist/vitest-examples/Welcome.svelte.spec.js +11 -0
- package/dist/vitest-examples/greet.d.ts +1 -0
- package/dist/vitest-examples/greet.js +3 -0
- package/dist/vitest-examples/greet.spec.d.ts +1 -0
- package/dist/vitest-examples/greet.spec.js +7 -0
- package/package.json +89 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Separator from "../../ui/separator/separator.svelte";
|
|
3
|
+
import { t } from "../../../i18n";
|
|
4
|
+
|
|
5
|
+
type Props = {
|
|
6
|
+
variant?: "SEPARATOR";
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
let { variant }: Props = $props();
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
{#if variant === "SEPARATOR"}
|
|
13
|
+
<div class="relative my-1 text-center">
|
|
14
|
+
<div class="absolute inset-0 flex items-center">
|
|
15
|
+
<Separator />
|
|
16
|
+
</div>
|
|
17
|
+
<span
|
|
18
|
+
class="relative bg-white dark:bg-primary px-4 text-[10px] uppercase text-slate-400 tracking-wider"
|
|
19
|
+
>
|
|
20
|
+
{$t("label.or")}
|
|
21
|
+
</span>
|
|
22
|
+
</div>
|
|
23
|
+
{:else}
|
|
24
|
+
{$t("label.or")}
|
|
25
|
+
{/if}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { t } from "../../../i18n";
|
|
3
|
+
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
4
|
+
|
|
5
|
+
type Props = HTMLAnchorAttributes;
|
|
6
|
+
|
|
7
|
+
let { ...restProps }: Props = $props();
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<a {...restProps} class="text-xs text-slate-500 hover:text-slate-800 z-10">
|
|
11
|
+
{$t("link.forget.password")}!
|
|
12
|
+
</a>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { t } from "../../../i18n";
|
|
3
|
+
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
4
|
+
|
|
5
|
+
type Props = HTMLAnchorAttributes;
|
|
6
|
+
|
|
7
|
+
let { ...restProps }: Props = $props();
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<a {...restProps} class="text-xs text-slate-500 hover:text-slate-800 z-10">
|
|
11
|
+
{$t("link.privacy-policy.label")}
|
|
12
|
+
</a>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { t } from "../../../i18n";
|
|
3
|
+
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
4
|
+
|
|
5
|
+
type Props = HTMLAnchorAttributes;
|
|
6
|
+
|
|
7
|
+
let { ...restProps }: Props = $props();
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<a {...restProps} class="text-xs text-slate-500 hover:text-slate-800 z-10">
|
|
11
|
+
{$t("link.terms-of-service.label")}
|
|
12
|
+
</a>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IconSvgElement } from "@hugeicons/svelte";
|
|
2
|
+
export interface GroupMenuSidebar {
|
|
3
|
+
name: string;
|
|
4
|
+
}
|
|
5
|
+
export interface SubMenuSidebar {
|
|
6
|
+
title: string;
|
|
7
|
+
url: string;
|
|
8
|
+
icon: IconSvgElement;
|
|
9
|
+
isActive?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface NavMenuSidebar {
|
|
12
|
+
title: string;
|
|
13
|
+
url?: string;
|
|
14
|
+
icon: IconSvgElement;
|
|
15
|
+
isActive?: boolean;
|
|
16
|
+
group?: GroupMenuSidebar;
|
|
17
|
+
}
|
|
18
|
+
export interface NavMenuAndSubmenuSidebar extends NavMenuSidebar {
|
|
19
|
+
submenus?: SubMenuSidebar[];
|
|
20
|
+
}
|
|
21
|
+
export type NavMenuItem = NavMenuSidebar | NavMenuAndSubmenuSidebar;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface NavTopBarSidebarItem {
|
|
2
|
+
content: {
|
|
3
|
+
logo?: any;
|
|
4
|
+
title: string;
|
|
5
|
+
subtitle: string;
|
|
6
|
+
};
|
|
7
|
+
dropdownMenu?: {
|
|
8
|
+
header: {
|
|
9
|
+
icon?: any;
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
items?: {
|
|
13
|
+
icon: any;
|
|
14
|
+
text: string;
|
|
15
|
+
onclick?: () => void;
|
|
16
|
+
}[];
|
|
17
|
+
footer?: {
|
|
18
|
+
icon?: any;
|
|
19
|
+
text: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IconSvgElement } from "@hugeicons/svelte";
|
|
2
|
+
export interface NavUserSidebarItem {
|
|
3
|
+
user: {
|
|
4
|
+
name: string;
|
|
5
|
+
email: string;
|
|
6
|
+
avatar?: string;
|
|
7
|
+
};
|
|
8
|
+
actions?: {
|
|
9
|
+
label: string;
|
|
10
|
+
icon: IconSvgElement;
|
|
11
|
+
onclick?: () => void;
|
|
12
|
+
}[];
|
|
13
|
+
onLogout?: () => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
import * as Collapsible from "../../../ui/collapsible/index.js";
|
|
4
|
+
import * as Sidebar from "../../../ui/sidebar/index.js";
|
|
5
|
+
import ChevronRightIcon from "@lucide/svelte/icons/chevron-right";
|
|
6
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
7
|
+
import type {
|
|
8
|
+
NavMenuAndSubmenuSidebar,
|
|
9
|
+
NavMenuItem,
|
|
10
|
+
NavMenuSidebar,
|
|
11
|
+
} from "../data/nav-menu-sidebar";
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
items,
|
|
15
|
+
}: {
|
|
16
|
+
items: NavMenuItem[];
|
|
17
|
+
} = $props();
|
|
18
|
+
|
|
19
|
+
// Chave interna para itens sem group; nunca colide com um nome real
|
|
20
|
+
// porque não é uma string acessível a quem define os itens.
|
|
21
|
+
const UNGROUPED = Symbol("ungrouped");
|
|
22
|
+
|
|
23
|
+
function hasSubmenus(
|
|
24
|
+
item: NavMenuSidebar | NavMenuAndSubmenuSidebar,
|
|
25
|
+
): item is NavMenuAndSubmenuSidebar {
|
|
26
|
+
return "submenus" in item && Array.isArray(item.submenus);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let groupedItems = $derived(
|
|
30
|
+
Map.groupBy(items, (item) => item.group?.name ?? UNGROUPED),
|
|
31
|
+
);
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
{#snippet menuItem(item: NavMenuItem)}
|
|
35
|
+
{#if hasSubmenus(item)}
|
|
36
|
+
<Collapsible.Root open={item.isActive} class="group/collapsible">
|
|
37
|
+
{#snippet child({ props })}
|
|
38
|
+
<Sidebar.MenuItem {...props}>
|
|
39
|
+
<Collapsible.Trigger>
|
|
40
|
+
{#snippet child({ props })}
|
|
41
|
+
<Sidebar.MenuButton {...props} tooltipContent={item.title}>
|
|
42
|
+
{#if item.icon}
|
|
43
|
+
<HugeiconsIcon icon={item.icon} />
|
|
44
|
+
{/if}
|
|
45
|
+
<span>{item.title}</span>
|
|
46
|
+
<ChevronRightIcon
|
|
47
|
+
class="ms-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"
|
|
48
|
+
/>
|
|
49
|
+
</Sidebar.MenuButton>
|
|
50
|
+
{/snippet}
|
|
51
|
+
</Collapsible.Trigger>
|
|
52
|
+
<Collapsible.Content>
|
|
53
|
+
<Sidebar.MenuSub>
|
|
54
|
+
{#each item.submenus ?? [] as subItem (subItem.title)}
|
|
55
|
+
<Sidebar.MenuSubItem>
|
|
56
|
+
<Sidebar.MenuSubButton>
|
|
57
|
+
{#snippet child({ props })}
|
|
58
|
+
<a href={subItem.url} {...props}>
|
|
59
|
+
<span>{subItem.title}</span>
|
|
60
|
+
</a>
|
|
61
|
+
{/snippet}
|
|
62
|
+
</Sidebar.MenuSubButton>
|
|
63
|
+
</Sidebar.MenuSubItem>
|
|
64
|
+
{/each}
|
|
65
|
+
</Sidebar.MenuSub>
|
|
66
|
+
</Collapsible.Content>
|
|
67
|
+
</Sidebar.MenuItem>
|
|
68
|
+
{/snippet}
|
|
69
|
+
</Collapsible.Root>
|
|
70
|
+
{:else}
|
|
71
|
+
<Sidebar.MenuItem>
|
|
72
|
+
<Sidebar.MenuButton>
|
|
73
|
+
{#snippet child({ props })}
|
|
74
|
+
<a href={item.url} {...props}>
|
|
75
|
+
{#if item.icon}
|
|
76
|
+
<HugeiconsIcon icon={item.icon} />
|
|
77
|
+
{/if}
|
|
78
|
+
<span>{item.title}</span>
|
|
79
|
+
</a>
|
|
80
|
+
{/snippet}
|
|
81
|
+
</Sidebar.MenuButton>
|
|
82
|
+
</Sidebar.MenuItem>
|
|
83
|
+
{/if}
|
|
84
|
+
{/snippet}
|
|
85
|
+
|
|
86
|
+
{#each groupedItems as [groupLabel, groupItems] (typeof groupLabel === "string" ? groupLabel : "ungrouped")}
|
|
87
|
+
<Sidebar.Group>
|
|
88
|
+
{#if typeof groupLabel === "string"}
|
|
89
|
+
<Sidebar.GroupLabel>{groupLabel}</Sidebar.GroupLabel>
|
|
90
|
+
{/if}
|
|
91
|
+
<Sidebar.Menu>
|
|
92
|
+
{#each groupItems as item (item.title)}
|
|
93
|
+
{@render menuItem(item)}
|
|
94
|
+
{/each}
|
|
95
|
+
</Sidebar.Menu>
|
|
96
|
+
</Sidebar.Group>
|
|
97
|
+
{/each}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NavMenuItem } from "../data/nav-menu-sidebar";
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
items: NavMenuItem[];
|
|
4
|
+
};
|
|
5
|
+
declare const NavMenuBar: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type NavMenuBar = ReturnType<typeof NavMenuBar>;
|
|
7
|
+
export default NavMenuBar;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Sidebar from "../../../ui/sidebar/index.js";
|
|
3
|
+
import type { WithoutChildren } from "../../../../utils.js";
|
|
4
|
+
import type { ComponentProps } from "svelte";
|
|
5
|
+
import type { NavMenuSidebar } from "../data/nav-menu-sidebar";
|
|
6
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
items,
|
|
10
|
+
...restProps
|
|
11
|
+
}: { items?: NavMenuSidebar[] } & WithoutChildren<
|
|
12
|
+
ComponentProps<typeof Sidebar.Group>
|
|
13
|
+
> = $props();
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<Sidebar.Group {...restProps}>
|
|
17
|
+
<Sidebar.GroupContent>
|
|
18
|
+
<Sidebar.Menu>
|
|
19
|
+
{#each items as item (item.title)}
|
|
20
|
+
<Sidebar.MenuItem>
|
|
21
|
+
<Sidebar.MenuButton>
|
|
22
|
+
{#snippet child({ props })}
|
|
23
|
+
<a href={item.url} {...props}>
|
|
24
|
+
<HugeiconsIcon icon={item.icon} size={16} />
|
|
25
|
+
<span>{item.title}</span>
|
|
26
|
+
</a>
|
|
27
|
+
{/snippet}
|
|
28
|
+
</Sidebar.MenuButton>
|
|
29
|
+
</Sidebar.MenuItem>
|
|
30
|
+
{/each}
|
|
31
|
+
</Sidebar.Menu>
|
|
32
|
+
</Sidebar.GroupContent>
|
|
33
|
+
</Sidebar.Group>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as Sidebar from "../../../ui/sidebar/index.js";
|
|
2
|
+
import type { WithoutChildren } from "../../../../utils.js";
|
|
3
|
+
import type { ComponentProps } from "svelte";
|
|
4
|
+
import type { NavMenuSidebar } from "../data/nav-menu-sidebar";
|
|
5
|
+
type $$ComponentProps = {
|
|
6
|
+
items?: NavMenuSidebar[];
|
|
7
|
+
} & WithoutChildren<ComponentProps<typeof Sidebar.Group>>;
|
|
8
|
+
declare const NavMenuBottomBar: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
+
type NavMenuBottomBar = ReturnType<typeof NavMenuBottomBar>;
|
|
10
|
+
export default NavMenuBottomBar;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
|
|
3
|
+
import * as Sidebar from "../../../ui/sidebar/index.js";
|
|
4
|
+
import { useSidebar } from "../../../ui/sidebar/index.js";
|
|
5
|
+
import ChevronsUpDownIcon from "@lucide/svelte/icons/chevrons-up-down";
|
|
6
|
+
import PlusIcon from "@lucide/svelte/icons/plus";
|
|
7
|
+
|
|
8
|
+
// This should be `Component` after @lucide/svelte updates types
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
let { teams }: { teams: { name: string; logo: any; plan: string }[] } =
|
|
11
|
+
$props();
|
|
12
|
+
const sidebar = useSidebar();
|
|
13
|
+
|
|
14
|
+
// svelte-ignore state_referenced_locally
|
|
15
|
+
let activeTeam = $state(teams[0]);
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<Sidebar.Menu>
|
|
19
|
+
<Sidebar.MenuItem>
|
|
20
|
+
<DropdownMenu.Root>
|
|
21
|
+
<DropdownMenu.Trigger>
|
|
22
|
+
{#snippet child({ props })}
|
|
23
|
+
<Sidebar.MenuButton
|
|
24
|
+
{...props}
|
|
25
|
+
size="lg"
|
|
26
|
+
class="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
27
|
+
>
|
|
28
|
+
<div
|
|
29
|
+
class="bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg"
|
|
30
|
+
>
|
|
31
|
+
<activeTeam.logo class="size-4" />
|
|
32
|
+
</div>
|
|
33
|
+
<div class="grid flex-1 text-start text-sm leading-tight">
|
|
34
|
+
<span class="truncate font-medium">
|
|
35
|
+
{activeTeam.name}
|
|
36
|
+
</span>
|
|
37
|
+
<span class="truncate text-xs">{activeTeam.plan}</span>
|
|
38
|
+
</div>
|
|
39
|
+
<ChevronsUpDownIcon class="ms-auto" />
|
|
40
|
+
</Sidebar.MenuButton>
|
|
41
|
+
{/snippet}
|
|
42
|
+
</DropdownMenu.Trigger>
|
|
43
|
+
<DropdownMenu.Content
|
|
44
|
+
class="w-(--bits-dropdown-menu-anchor-width) min-w-56 rounded-lg"
|
|
45
|
+
align="start"
|
|
46
|
+
side={sidebar.isMobile ? "bottom" : "right"}
|
|
47
|
+
sideOffset={4}
|
|
48
|
+
>
|
|
49
|
+
<DropdownMenu.Label class="text-muted-foreground text-xs"
|
|
50
|
+
>Teams</DropdownMenu.Label
|
|
51
|
+
>
|
|
52
|
+
{#each teams as team, index (team.name)}
|
|
53
|
+
<DropdownMenu.Item
|
|
54
|
+
onSelect={() => (activeTeam = team)}
|
|
55
|
+
class="gap-2 p-2"
|
|
56
|
+
>
|
|
57
|
+
<div
|
|
58
|
+
class="flex size-6 items-center justify-center rounded-md border"
|
|
59
|
+
>
|
|
60
|
+
<team.logo class="size-3.5 shrink-0" />
|
|
61
|
+
</div>
|
|
62
|
+
{team.name}
|
|
63
|
+
<DropdownMenu.Shortcut>⌘{index + 1}</DropdownMenu.Shortcut>
|
|
64
|
+
</DropdownMenu.Item>
|
|
65
|
+
{/each}
|
|
66
|
+
<DropdownMenu.Separator />
|
|
67
|
+
<DropdownMenu.Item class="gap-2 p-2">
|
|
68
|
+
<div
|
|
69
|
+
class="flex size-6 items-center justify-center rounded-md border bg-transparent"
|
|
70
|
+
>
|
|
71
|
+
<PlusIcon class="size-4" />
|
|
72
|
+
</div>
|
|
73
|
+
<div class="text-muted-foreground font-medium">Add team</div>
|
|
74
|
+
</DropdownMenu.Item>
|
|
75
|
+
</DropdownMenu.Content>
|
|
76
|
+
</DropdownMenu.Root>
|
|
77
|
+
</Sidebar.MenuItem>
|
|
78
|
+
</Sidebar.Menu>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
teams: {
|
|
3
|
+
name: string;
|
|
4
|
+
logo: any;
|
|
5
|
+
plan: string;
|
|
6
|
+
}[];
|
|
7
|
+
};
|
|
8
|
+
declare const NavMenuHeader: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
+
type NavMenuHeader = ReturnType<typeof NavMenuHeader>;
|
|
10
|
+
export default NavMenuHeader;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
|
|
3
|
+
import * as Sidebar from "../../../ui/sidebar/index.js";
|
|
4
|
+
import { useSidebar } from "../../../ui/sidebar/index.js";
|
|
5
|
+
import type { NavTopBarSidebarItem } from "../data/nav-top-bar-sidebar";
|
|
6
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
7
|
+
import { UnfoldMoreIcon } from "@hugeicons/core-free-icons";
|
|
8
|
+
|
|
9
|
+
// This should be `Component` after @lucide/svelte updates types
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
let { content, dropdownMenu }: NavTopBarSidebarItem = $props();
|
|
12
|
+
const sidebar = useSidebar();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<Sidebar.Menu>
|
|
16
|
+
<Sidebar.MenuItem>
|
|
17
|
+
<DropdownMenu.Root>
|
|
18
|
+
<DropdownMenu.Trigger>
|
|
19
|
+
{#snippet child({ props })}
|
|
20
|
+
<Sidebar.MenuButton
|
|
21
|
+
{...props}
|
|
22
|
+
size="lg"
|
|
23
|
+
class="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
24
|
+
>
|
|
25
|
+
<div
|
|
26
|
+
class="bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg"
|
|
27
|
+
>
|
|
28
|
+
<content.logo class="size-4" />
|
|
29
|
+
</div>
|
|
30
|
+
<div
|
|
31
|
+
class="grid flex-1 text-start text-sm leading-tight"
|
|
32
|
+
>
|
|
33
|
+
<span class="truncate font-medium">
|
|
34
|
+
{content.title}
|
|
35
|
+
</span>
|
|
36
|
+
<span class="truncate text-xs"
|
|
37
|
+
>{content.subtitle}</span
|
|
38
|
+
>
|
|
39
|
+
</div>
|
|
40
|
+
{#if dropdownMenu}
|
|
41
|
+
<HugeiconsIcon
|
|
42
|
+
icon={UnfoldMoreIcon}
|
|
43
|
+
class="ms-auto"
|
|
44
|
+
/>
|
|
45
|
+
{/if}
|
|
46
|
+
</Sidebar.MenuButton>
|
|
47
|
+
{/snippet}
|
|
48
|
+
</DropdownMenu.Trigger>
|
|
49
|
+
{#if dropdownMenu}
|
|
50
|
+
<DropdownMenu.Content
|
|
51
|
+
class="w-(--bits-dropdown-menu-anchor-width) min-w-56 rounded-lg"
|
|
52
|
+
align="start"
|
|
53
|
+
side={sidebar.isMobile ? "bottom" : "right"}
|
|
54
|
+
sideOffset={4}
|
|
55
|
+
>
|
|
56
|
+
{#if dropdownMenu.header}
|
|
57
|
+
<DropdownMenu.Label
|
|
58
|
+
class="text-muted-foreground text-xs"
|
|
59
|
+
>
|
|
60
|
+
{#if dropdownMenu.header.icon}
|
|
61
|
+
<dropdownMenu.header.icon
|
|
62
|
+
class="size-3.5 shrink-0"
|
|
63
|
+
/>
|
|
64
|
+
{/if}
|
|
65
|
+
{dropdownMenu.header.text}
|
|
66
|
+
</DropdownMenu.Label>
|
|
67
|
+
{/if}
|
|
68
|
+
{#each dropdownMenu.items as it, index (index)}
|
|
69
|
+
<DropdownMenu.Item
|
|
70
|
+
onSelect={it.onclick}
|
|
71
|
+
class="gap-2 p-2"
|
|
72
|
+
>
|
|
73
|
+
<div
|
|
74
|
+
class="flex size-6 items-center justify-center rounded-md border"
|
|
75
|
+
>
|
|
76
|
+
<it.icon class="size-3.5 shrink-0" />
|
|
77
|
+
</div>
|
|
78
|
+
{it.text}
|
|
79
|
+
<DropdownMenu.Shortcut>
|
|
80
|
+
⌘{index + 1}
|
|
81
|
+
</DropdownMenu.Shortcut>
|
|
82
|
+
</DropdownMenu.Item>
|
|
83
|
+
{/each}
|
|
84
|
+
{#if dropdownMenu.footer}
|
|
85
|
+
<DropdownMenu.Separator />
|
|
86
|
+
<DropdownMenu.Item class="gap-2 p-2">
|
|
87
|
+
<div
|
|
88
|
+
class="flex size-6 items-center justify-center rounded-md border bg-transparent"
|
|
89
|
+
>
|
|
90
|
+
{#if dropdownMenu.footer.icon}
|
|
91
|
+
<dropdownMenu.footer.icon class="size-4" />
|
|
92
|
+
{/if}
|
|
93
|
+
</div>
|
|
94
|
+
<div class="text-muted-foreground font-medium">
|
|
95
|
+
{dropdownMenu.footer.text}
|
|
96
|
+
</div>
|
|
97
|
+
</DropdownMenu.Item>
|
|
98
|
+
{/if}
|
|
99
|
+
</DropdownMenu.Content>
|
|
100
|
+
{/if}
|
|
101
|
+
</DropdownMenu.Root>
|
|
102
|
+
</Sidebar.MenuItem>
|
|
103
|
+
</Sidebar.Menu>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Avatar from "../../../ui/avatar/index.js";
|
|
3
|
+
import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
|
|
4
|
+
import * as Sidebar from "../../../ui/sidebar/index.js";
|
|
5
|
+
import type { NavUserSidebarItem } from "../data/nav-user-sidebar";
|
|
6
|
+
import { useSidebar } from "../../../ui/sidebar/index.js";
|
|
7
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
8
|
+
import {
|
|
9
|
+
UnfoldMoreIcon,
|
|
10
|
+
Logout01Icon,
|
|
11
|
+
SparklesIcon,
|
|
12
|
+
} from "@hugeicons/core-free-icons";
|
|
13
|
+
import { t } from "../../../../i18n";
|
|
14
|
+
|
|
15
|
+
let { user: userLogged }: { user: NavUserSidebarItem } = $props();
|
|
16
|
+
|
|
17
|
+
const sidebar = useSidebar();
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<Sidebar.Menu>
|
|
21
|
+
<Sidebar.MenuItem>
|
|
22
|
+
<DropdownMenu.Root>
|
|
23
|
+
<DropdownMenu.Trigger>
|
|
24
|
+
{#snippet child({ props })}
|
|
25
|
+
<Sidebar.MenuButton
|
|
26
|
+
size="lg"
|
|
27
|
+
class="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground"
|
|
28
|
+
{...props}
|
|
29
|
+
>
|
|
30
|
+
<Avatar.Root class="size-8 rounded-lg">
|
|
31
|
+
<Avatar.Image
|
|
32
|
+
src={userLogged.user.avatar}
|
|
33
|
+
alt={userLogged.user.name}
|
|
34
|
+
/>
|
|
35
|
+
<Avatar.Fallback class="rounded-lg">ND</Avatar.Fallback>
|
|
36
|
+
</Avatar.Root>
|
|
37
|
+
<div class="grid flex-1 text-start text-sm leading-tight">
|
|
38
|
+
<span class="truncate font-medium">{userLogged.user.name}</span>
|
|
39
|
+
<span class="truncate text-xs">{userLogged.user.email}</span>
|
|
40
|
+
</div>
|
|
41
|
+
<HugeiconsIcon icon={UnfoldMoreIcon} size={16} class="ms-auto" />
|
|
42
|
+
</Sidebar.MenuButton>
|
|
43
|
+
{/snippet}
|
|
44
|
+
</DropdownMenu.Trigger>
|
|
45
|
+
<DropdownMenu.Content
|
|
46
|
+
class="w-(--bits-dropdown-menu-anchor-width) min-w-56 rounded-lg"
|
|
47
|
+
side={sidebar.isMobile ? "bottom" : "right"}
|
|
48
|
+
align="end"
|
|
49
|
+
sideOffset={4}
|
|
50
|
+
>
|
|
51
|
+
<DropdownMenu.Label class="p-0 font-normal">
|
|
52
|
+
<div class="flex items-center gap-2 px-1 py-1.5 text-start text-sm">
|
|
53
|
+
<Avatar.Root class="size-8 rounded-lg">
|
|
54
|
+
<Avatar.Image
|
|
55
|
+
src={userLogged.user.avatar}
|
|
56
|
+
alt={userLogged.user.name}
|
|
57
|
+
/>
|
|
58
|
+
<Avatar.Fallback class="rounded-lg">CN</Avatar.Fallback>
|
|
59
|
+
</Avatar.Root>
|
|
60
|
+
<div class="grid flex-1 text-start text-sm leading-tight">
|
|
61
|
+
<span class="truncate font-medium">{userLogged.user.name}</span>
|
|
62
|
+
<span class="truncate text-xs">{userLogged.user.email}</span>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</DropdownMenu.Label>
|
|
66
|
+
<DropdownMenu.Separator />
|
|
67
|
+
<DropdownMenu.Group>
|
|
68
|
+
<DropdownMenu.Item>
|
|
69
|
+
<HugeiconsIcon icon={SparklesIcon} size={16} />
|
|
70
|
+
Upgrade to Pro
|
|
71
|
+
</DropdownMenu.Item>
|
|
72
|
+
</DropdownMenu.Group>
|
|
73
|
+
|
|
74
|
+
{#if userLogged.actions && userLogged.actions.length > 0}
|
|
75
|
+
<DropdownMenu.Separator />
|
|
76
|
+
<DropdownMenu.Group>
|
|
77
|
+
{#each userLogged.actions as action (action.label)}
|
|
78
|
+
<DropdownMenu.Item onclick={action.onclick}>
|
|
79
|
+
<HugeiconsIcon icon={action.icon} size={16} />
|
|
80
|
+
{action.label}
|
|
81
|
+
</DropdownMenu.Item>
|
|
82
|
+
{/each}
|
|
83
|
+
</DropdownMenu.Group>
|
|
84
|
+
{/if}
|
|
85
|
+
|
|
86
|
+
<DropdownMenu.Separator />
|
|
87
|
+
<DropdownMenu.Item onclick={userLogged?.onLogout}>
|
|
88
|
+
<HugeiconsIcon icon={Logout01Icon} size={16} />
|
|
89
|
+
{$t("label.logout")}
|
|
90
|
+
</DropdownMenu.Item>
|
|
91
|
+
</DropdownMenu.Content>
|
|
92
|
+
</DropdownMenu.Root>
|
|
93
|
+
</Sidebar.MenuItem>
|
|
94
|
+
</Sidebar.Menu>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NavUserSidebarItem } from "../data/nav-user-sidebar";
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
user: NavUserSidebarItem;
|
|
4
|
+
};
|
|
5
|
+
declare const NavUserSidebar: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type NavUserSidebar = ReturnType<typeof NavUserSidebar>;
|
|
7
|
+
export default NavUserSidebar;
|