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
package/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# sv
|
|
2
|
+
|
|
3
|
+
Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).
|
|
4
|
+
|
|
5
|
+
## Creating a project
|
|
6
|
+
|
|
7
|
+
If you're seeing this, you've probably already done this step. Congrats!
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
# create a new project
|
|
11
|
+
npx sv create my-app
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
To recreate this project with the same configuration:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
# recreate this project
|
|
18
|
+
npx sv@0.16.5 create --template minimal --types ts --add eslint vitest="usages:unit,component" tailwindcss="plugins:typography,forms" --install npm negodesign
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Developing
|
|
22
|
+
|
|
23
|
+
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
npm run dev
|
|
27
|
+
|
|
28
|
+
# or start the server and open the app in a new browser tab
|
|
29
|
+
npm run dev -- --open
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Building
|
|
33
|
+
|
|
34
|
+
To create a production version of your app:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
npm run build
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
You can preview the production build with `npm run preview`.
|
|
41
|
+
|
|
42
|
+
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="107" height="128" viewBox="0 0 107 128"><title>svelte-logo</title><path d="M94.157 22.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282 29.608A29.92 29.92 0 0 0 8.764 49.65a31.5 31.5 0 0 0 3.108 20.231 30 30 0 0 0-4.477 11.183 31.9 31.9 0 0 0 5.448 24.116c10.402 14.887 30.942 19.297 45.791 9.835l26.083-16.624A29.92 29.92 0 0 0 98.235 78.35a31.53 31.53 0 0 0-3.105-20.232 30 30 0 0 0 4.474-11.182 31.88 31.88 0 0 0-5.447-24.116" style="fill:#ff3e00"/><path d="M45.817 106.582a20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.503 18 18 0 0 1 .624-2.435l.49-1.498 1.337.981a33.6 33.6 0 0 0 10.203 5.098l.97.294-.09.968a5.85 5.85 0 0 0 1.052 3.878 6.24 6.24 0 0 0 6.695 2.485 5.8 5.8 0 0 0 1.603-.704L69.27 76.28a5.43 5.43 0 0 0 2.45-3.631 5.8 5.8 0 0 0-.987-4.371 6.24 6.24 0 0 0-6.698-2.487 5.7 5.7 0 0 0-1.6.704l-9.953 6.345a19 19 0 0 1-5.296 2.326 20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.502 17.99 17.99 0 0 1 8.13-12.052l26.081-16.623a19 19 0 0 1 5.3-2.329 20.72 20.72 0 0 1 22.237 8.243 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-.624 2.435l-.49 1.498-1.337-.98a33.6 33.6 0 0 0-10.203-5.1l-.97-.294.09-.968a5.86 5.86 0 0 0-1.052-3.878 6.24 6.24 0 0 0-6.696-2.485 5.8 5.8 0 0 0-1.602.704L37.73 51.72a5.42 5.42 0 0 0-2.449 3.63 5.79 5.79 0 0 0 .986 4.372 6.24 6.24 0 0 0 6.698 2.486 5.8 5.8 0 0 0 1.602-.704l9.952-6.342a19 19 0 0 1 5.295-2.328 20.72 20.72 0 0 1 22.237 8.242 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-8.13 12.053l-26.081 16.622a19 19 0 0 1-5.3 2.328" style="fill:#fff"/></svg>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { MouseEventHandler } from 'svelte/elements';
|
|
3
|
+
|
|
4
|
+
export type ButtonProps = ButtonPrimitiveProps & {
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
onClickPromise?: (
|
|
7
|
+
e:
|
|
8
|
+
| Parameters<MouseEventHandler<HTMLButtonElement>>[0]
|
|
9
|
+
| Parameters<MouseEventHandler<HTMLAnchorElement>>[0]
|
|
10
|
+
) => Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type Size = 'default' | 'xs' | 'sm' | 'lg';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Map sizes to their icon/normal size variant
|
|
17
|
+
*/
|
|
18
|
+
export const sizeMap = {
|
|
19
|
+
default: {
|
|
20
|
+
icon: 'icon',
|
|
21
|
+
normal: 'default'
|
|
22
|
+
},
|
|
23
|
+
xs: {
|
|
24
|
+
icon: 'icon-xs',
|
|
25
|
+
normal: 'xs'
|
|
26
|
+
},
|
|
27
|
+
sm: {
|
|
28
|
+
icon: 'icon-sm',
|
|
29
|
+
normal: 'sm'
|
|
30
|
+
},
|
|
31
|
+
lg: {
|
|
32
|
+
icon: 'icon-lg',
|
|
33
|
+
normal: 'lg'
|
|
34
|
+
}
|
|
35
|
+
} as const;
|
|
36
|
+
|
|
37
|
+
export { type ButtonSize, type ButtonVariant } from './ui/button';
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<script lang="ts">
|
|
41
|
+
import { Button, type ButtonProps as ButtonPrimitiveProps } from './ui/button';
|
|
42
|
+
import { Spinner } from './ui/spinner';
|
|
43
|
+
import { cn } from '../utils.js';
|
|
44
|
+
|
|
45
|
+
let {
|
|
46
|
+
ref = $bindable(null),
|
|
47
|
+
loading: loadingProp = false,
|
|
48
|
+
onClickPromise,
|
|
49
|
+
onclick,
|
|
50
|
+
disabled,
|
|
51
|
+
class: className,
|
|
52
|
+
children,
|
|
53
|
+
...restProps
|
|
54
|
+
}: ButtonProps = $props();
|
|
55
|
+
|
|
56
|
+
let pending = $state(false);
|
|
57
|
+
|
|
58
|
+
const loading = $derived(loadingProp || pending);
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<Button
|
|
62
|
+
bind:ref
|
|
63
|
+
class={cn(loading && '[&_svg:not([data-loading-icon])]:hidden', className)}
|
|
64
|
+
disabled={loading || disabled}
|
|
65
|
+
onclick={async (e) => {
|
|
66
|
+
onclick?.(e as never);
|
|
67
|
+
|
|
68
|
+
if (onClickPromise) {
|
|
69
|
+
pending = true;
|
|
70
|
+
try {
|
|
71
|
+
await onClickPromise(e);
|
|
72
|
+
} finally {
|
|
73
|
+
pending = false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}}
|
|
77
|
+
{...restProps}
|
|
78
|
+
>
|
|
79
|
+
{#if loading}
|
|
80
|
+
<Spinner data-icon="inline-start" data-loading-icon />
|
|
81
|
+
{/if}
|
|
82
|
+
{@render children?.()}
|
|
83
|
+
</Button>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { MouseEventHandler } from 'svelte/elements';
|
|
2
|
+
export type ButtonProps = ButtonPrimitiveProps & {
|
|
3
|
+
loading?: boolean;
|
|
4
|
+
onClickPromise?: (e: Parameters<MouseEventHandler<HTMLButtonElement>>[0] | Parameters<MouseEventHandler<HTMLAnchorElement>>[0]) => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export type Size = 'default' | 'xs' | 'sm' | 'lg';
|
|
7
|
+
/**
|
|
8
|
+
* Map sizes to their icon/normal size variant
|
|
9
|
+
*/
|
|
10
|
+
export declare const sizeMap: {
|
|
11
|
+
readonly default: {
|
|
12
|
+
readonly icon: "icon";
|
|
13
|
+
readonly normal: "default";
|
|
14
|
+
};
|
|
15
|
+
readonly xs: {
|
|
16
|
+
readonly icon: "icon-xs";
|
|
17
|
+
readonly normal: "xs";
|
|
18
|
+
};
|
|
19
|
+
readonly sm: {
|
|
20
|
+
readonly icon: "icon-sm";
|
|
21
|
+
readonly normal: "sm";
|
|
22
|
+
};
|
|
23
|
+
readonly lg: {
|
|
24
|
+
readonly icon: "icon-lg";
|
|
25
|
+
readonly normal: "lg";
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export { type ButtonSize, type ButtonVariant } from './ui/button';
|
|
29
|
+
import { Button, type ButtonProps as ButtonPrimitiveProps } from './ui/button';
|
|
30
|
+
declare const Button: import("svelte").Component<ButtonProps, {}, "ref">;
|
|
31
|
+
type Button = ReturnType<typeof Button>;
|
|
32
|
+
export default Button;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as Breadcrumb from "../../ui/breadcrumb/index.js";
|
|
3
|
+
|
|
4
|
+
type Props = {
|
|
5
|
+
items: {
|
|
6
|
+
url?: string;
|
|
7
|
+
label: string;
|
|
8
|
+
}[];
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
let { items }: Props = $props();
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Breadcrumb.Root>
|
|
15
|
+
<Breadcrumb.List>
|
|
16
|
+
{#each items as item, i (item.label)}
|
|
17
|
+
{@const isLast = i === items.length - 1}
|
|
18
|
+
|
|
19
|
+
<Breadcrumb.Item class={isLast ? "" : "hidden md:block"}>
|
|
20
|
+
{#if isLast}
|
|
21
|
+
<Breadcrumb.Page>{item.label}</Breadcrumb.Page>
|
|
22
|
+
{:else}
|
|
23
|
+
<Breadcrumb.Link href={item.url ?? "##"}>{item.label}</Breadcrumb.Link>
|
|
24
|
+
{/if}
|
|
25
|
+
</Breadcrumb.Item>
|
|
26
|
+
|
|
27
|
+
{#if !isLast}
|
|
28
|
+
<Breadcrumb.Separator class="hidden md:block" />
|
|
29
|
+
{/if}
|
|
30
|
+
{/each}
|
|
31
|
+
</Breadcrumb.List>
|
|
32
|
+
</Breadcrumb.Root>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button from "../../ui/button/button.svelte";
|
|
3
|
+
import { ArrowLeft01Icon } from "@hugeicons/core-free-icons";
|
|
4
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
5
|
+
import { t } from "../../../i18n";
|
|
6
|
+
import type { ButtonProps } from "../../ui/button";
|
|
7
|
+
|
|
8
|
+
let { ...restProps }: ButtonProps = $props();
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<Button
|
|
12
|
+
variant="outline"
|
|
13
|
+
class="inline-flex items-center gap-1 text-sm text-slate-600 hover:text-slate-900 transition-colors rounded-full bg-input"
|
|
14
|
+
{...restProps}
|
|
15
|
+
>
|
|
16
|
+
<HugeiconsIcon icon={ArrowLeft01Icon} size={16} />
|
|
17
|
+
<span class="sr-only">{$t("button.back")}</span>
|
|
18
|
+
</Button>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button, {
|
|
3
|
+
type ButtonProps,
|
|
4
|
+
} from "../../ui/button/button.svelte";
|
|
5
|
+
import { t } from "../../../i18n";
|
|
6
|
+
import { Login02Icon } from "@hugeicons/core-free-icons";
|
|
7
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
8
|
+
|
|
9
|
+
let { ...restProps }: ButtonProps = $props();
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<Button class="w-full flex items-center gap-2" {...restProps}>
|
|
13
|
+
<HugeiconsIcon icon={Login02Icon} size={16} />
|
|
14
|
+
{$t("button.login")}
|
|
15
|
+
</Button>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button, {
|
|
3
|
+
type ButtonProps,
|
|
4
|
+
} from "../../ui/button/button.svelte";
|
|
5
|
+
import { HugeiconsIcon, type IconSvgElement } from "@hugeicons/svelte";
|
|
6
|
+
import { t } from "../../../i18n";
|
|
7
|
+
import {
|
|
8
|
+
GoogleIcon,
|
|
9
|
+
Facebook01Icon as Facebook,
|
|
10
|
+
Linkedin01Icon as Linkedin,
|
|
11
|
+
} from "@hugeicons/core-free-icons";
|
|
12
|
+
import type { Snippet } from "svelte";
|
|
13
|
+
|
|
14
|
+
type IconDefault = "GOOGLE" | "FACEBOOK" | "LINKEDLN";
|
|
15
|
+
|
|
16
|
+
type Props = {
|
|
17
|
+
icon?: IconSvgElement | IconDefault | Snippet;
|
|
18
|
+
label?: string;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
let { icon, label, ...restProps }: Props & ButtonProps = $props();
|
|
22
|
+
|
|
23
|
+
const defaultIconMap: Record<IconDefault, IconSvgElement> = {
|
|
24
|
+
GOOGLE: GoogleIcon,
|
|
25
|
+
FACEBOOK: Facebook,
|
|
26
|
+
LINKEDLN: Linkedin,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const defaultLabelMap: Record<IconDefault, string> = {
|
|
30
|
+
GOOGLE: "Google",
|
|
31
|
+
FACEBOOK: "Facebook",
|
|
32
|
+
LINKEDLN: "Linkedin",
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
function isIconDefault(value: unknown): value is IconDefault {
|
|
36
|
+
return typeof value === "string" && value in defaultLabelMap;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let resolvedIcon = $derived(
|
|
40
|
+
isIconDefault(icon) ? defaultIconMap[icon] : icon,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
let resolvedLabel = $derived(
|
|
44
|
+
label ?? (isIconDefault(icon) ? defaultLabelMap[icon] : ""),
|
|
45
|
+
);
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<Button variant="outline" class="w-full flex items-center gap-2" {...restProps}>
|
|
49
|
+
{#if resolvedIcon}
|
|
50
|
+
{#if typeof resolvedIcon === "function"}
|
|
51
|
+
{@render resolvedIcon()}
|
|
52
|
+
{:else}
|
|
53
|
+
<HugeiconsIcon icon={resolvedIcon} size={16} />
|
|
54
|
+
{/if}
|
|
55
|
+
{/if}
|
|
56
|
+
{$t("button.login.with", { name: resolvedLabel })}
|
|
57
|
+
</Button>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ButtonProps } from "../../ui/button/button.svelte";
|
|
2
|
+
import { type IconSvgElement } from "@hugeicons/svelte";
|
|
3
|
+
import type { Snippet } from "svelte";
|
|
4
|
+
type IconDefault = "GOOGLE" | "FACEBOOK" | "LINKEDLN";
|
|
5
|
+
type Props = {
|
|
6
|
+
icon?: IconSvgElement | IconDefault | Snippet;
|
|
7
|
+
label?: string;
|
|
8
|
+
};
|
|
9
|
+
type $$ComponentProps = Props & ButtonProps;
|
|
10
|
+
declare const ButtonLoginWith: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
11
|
+
type ButtonLoginWith = ReturnType<typeof ButtonLoginWith>;
|
|
12
|
+
export default ButtonLoginWith;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { renderComponent } from "../../../ui/data-table";
|
|
2
|
+
import DataTableDragHandle from "../ui/DataTableDragHandle.svelte";
|
|
3
|
+
import DataTableCheckbox from "../ui/DataTableCheckbox.svelte";
|
|
4
|
+
export function createDragColumn() {
|
|
5
|
+
return {
|
|
6
|
+
id: "drag",
|
|
7
|
+
size: 24,
|
|
8
|
+
minSize: 24,
|
|
9
|
+
header: () => null,
|
|
10
|
+
cell: () => renderComponent(DataTableDragHandle, {}),
|
|
11
|
+
enableSorting: false,
|
|
12
|
+
enableHiding: false,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function createSelectColumn() {
|
|
16
|
+
return {
|
|
17
|
+
id: "select",
|
|
18
|
+
size: 24,
|
|
19
|
+
minSize: 24,
|
|
20
|
+
header: ({ table }) => renderComponent(DataTableCheckbox, {
|
|
21
|
+
checked: table.getIsAllPageRowsSelected(),
|
|
22
|
+
indeterminate: table.getIsSomePageRowsSelected() &&
|
|
23
|
+
!table.getIsAllPageRowsSelected(),
|
|
24
|
+
onCheckedChange: (value) => table.toggleAllPageRowsSelected(!!value),
|
|
25
|
+
"aria-label": "Select all",
|
|
26
|
+
}),
|
|
27
|
+
cell: ({ row }) => renderComponent(DataTableCheckbox, {
|
|
28
|
+
checked: row.getIsSelected(),
|
|
29
|
+
onCheckedChange: (value) => row.toggleSelected(!!value),
|
|
30
|
+
"aria-label": "Select row",
|
|
31
|
+
}),
|
|
32
|
+
enableSorting: false,
|
|
33
|
+
enableHiding: false,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CellContext, HeaderContext } from "@tanstack/table-core";
|
|
2
|
+
import type { Component } from "svelte";
|
|
3
|
+
export interface DataTableItem<T = unknown> {
|
|
4
|
+
config: {
|
|
5
|
+
accessorKey: string;
|
|
6
|
+
header: string | ((context: HeaderContext<T, unknown>) => any);
|
|
7
|
+
cell: string | ((context: CellContext<T, unknown>) => any);
|
|
8
|
+
enableSorting?: boolean;
|
|
9
|
+
enableHiding?: boolean;
|
|
10
|
+
badge?: {
|
|
11
|
+
className?: string;
|
|
12
|
+
value: string;
|
|
13
|
+
label?: string;
|
|
14
|
+
}[];
|
|
15
|
+
}[];
|
|
16
|
+
columnFilter?: keyof T & string;
|
|
17
|
+
actions?: Component<any>;
|
|
18
|
+
items?: T[];
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CellContext } from "@tanstack/table-core";
|
|
2
|
+
type BadgeConfig = {
|
|
3
|
+
className?: string;
|
|
4
|
+
value: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function resolveCellBadge<T>(configCell: string | ((context: CellContext<T, unknown>) => any), badge?: BadgeConfig[]): (context: CellContext<T, unknown>) => any;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { renderComponent, renderSnippet } from "../../../ui/data-table";
|
|
2
|
+
import { createRawSnippet } from "svelte";
|
|
3
|
+
import { Badge } from "../../../ui/badge";
|
|
4
|
+
import { resolveCell } from "./resolve-cell.svelte";
|
|
5
|
+
export function resolveCellBadge(configCell, badge) {
|
|
6
|
+
if (typeof configCell === "string" && badge && badge.length > 0) {
|
|
7
|
+
const key = configCell;
|
|
8
|
+
const badgeMap = new Map(badge.map((b) => [b.value, b]));
|
|
9
|
+
return ({ row }) => {
|
|
10
|
+
const cellValue = String(row.original[key]);
|
|
11
|
+
const matchedBadge = badgeMap.get(cellValue);
|
|
12
|
+
if (matchedBadge) {
|
|
13
|
+
const displayText = matchedBadge.label ?? cellValue;
|
|
14
|
+
const badgeSnippet = createRawSnippet(() => ({
|
|
15
|
+
render: () => displayText,
|
|
16
|
+
}));
|
|
17
|
+
return renderComponent(Badge, {
|
|
18
|
+
class: matchedBadge.className,
|
|
19
|
+
children: badgeSnippet,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const fallbackSnippet = createRawSnippet((getProps) => {
|
|
23
|
+
const { value } = getProps();
|
|
24
|
+
return {
|
|
25
|
+
render: () => `<div class="capitalize">${value}</div>`,
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
return renderSnippet(fallbackSnippet, { value: cellValue });
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return resolveCell(configCell);
|
|
32
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createRawSnippet } from "svelte";
|
|
2
|
+
import { renderSnippet } from "../../../ui/data-table";
|
|
3
|
+
export function resolveCell(configCell) {
|
|
4
|
+
if (typeof configCell === "string") {
|
|
5
|
+
const key = configCell;
|
|
6
|
+
return ({ row }) => {
|
|
7
|
+
const snippet = createRawSnippet((getProps) => {
|
|
8
|
+
const { value } = getProps();
|
|
9
|
+
return {
|
|
10
|
+
render: () => `<div class="capitalize">${value}</div>`,
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
return renderSnippet(snippet, {
|
|
14
|
+
value: String(row.original[key]),
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return configCell;
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRawSnippet } from "svelte";
|
|
2
|
+
import { renderSnippet } from "../../../ui/data-table";
|
|
3
|
+
export function resolveHeader(configHeader) {
|
|
4
|
+
if (typeof configHeader === "string") {
|
|
5
|
+
const text = configHeader;
|
|
6
|
+
return ({ column }) => {
|
|
7
|
+
const snippet = createRawSnippet((getProps) => {
|
|
8
|
+
const { text } = getProps();
|
|
9
|
+
return {
|
|
10
|
+
render: () => `<div class="capitalize">${text}</div>`,
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
return renderSnippet(snippet, { text });
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return configHeader;
|
|
17
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts" generics="T">
|
|
2
|
+
import type { CellContext } from "@tanstack/table-core";
|
|
3
|
+
import * as DropdownMenu from "../../../ui/dropdown-menu/index.js";
|
|
4
|
+
import Button from "../../../button.svelte";
|
|
5
|
+
import { MoreHorizontalIcon } from "@hugeicons/core-free-icons";
|
|
6
|
+
import { HugeiconsIcon } from "@hugeicons/svelte";
|
|
7
|
+
|
|
8
|
+
let { row }: CellContext<T, unknown> = $props();
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<DropdownMenu.Root>
|
|
12
|
+
<DropdownMenu.Trigger>
|
|
13
|
+
{#snippet child({ props })}
|
|
14
|
+
<Button {...props} variant="ghost" class="size-8 p-0">
|
|
15
|
+
<HugeiconsIcon icon={MoreHorizontalIcon} class="size-4" />
|
|
16
|
+
<span class="sr-only">Open menu</span>
|
|
17
|
+
</Button>
|
|
18
|
+
{/snippet}
|
|
19
|
+
</DropdownMenu.Trigger>
|
|
20
|
+
<DropdownMenu.Content align="end">
|
|
21
|
+
<DropdownMenu.Item onclick={() => console.log(row.original)}
|
|
22
|
+
>Copy</DropdownMenu.Item
|
|
23
|
+
>
|
|
24
|
+
<DropdownMenu.Item onclick={() => console.log(row.original)}
|
|
25
|
+
>Delete</DropdownMenu.Item
|
|
26
|
+
>
|
|
27
|
+
</DropdownMenu.Content>
|
|
28
|
+
</DropdownMenu.Root>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CellContext } from "@tanstack/table-core";
|
|
2
|
+
declare function $$render<T>(): {
|
|
3
|
+
props: CellContext<T, unknown>;
|
|
4
|
+
exports: {};
|
|
5
|
+
bindings: "";
|
|
6
|
+
slots: {};
|
|
7
|
+
events: {};
|
|
8
|
+
};
|
|
9
|
+
declare class __sveltets_Render<T> {
|
|
10
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
11
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
12
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
13
|
+
bindings(): "";
|
|
14
|
+
exports(): {};
|
|
15
|
+
}
|
|
16
|
+
interface $$IsomorphicComponent {
|
|
17
|
+
new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
18
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
19
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
20
|
+
<T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
21
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
22
|
+
}
|
|
23
|
+
declare const DataTableActions: $$IsomorphicComponent;
|
|
24
|
+
type DataTableActions<T> = InstanceType<typeof DataTableActions<T>>;
|
|
25
|
+
export default DataTableActions;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Checkbox } from "../../../ui/checkbox";
|
|
3
|
+
|
|
4
|
+
let {
|
|
5
|
+
checked = $bindable(false),
|
|
6
|
+
indeterminate = $bindable(false),
|
|
7
|
+
onCheckedChange,
|
|
8
|
+
...restProps
|
|
9
|
+
}: {
|
|
10
|
+
checked?: boolean;
|
|
11
|
+
indeterminate?: boolean;
|
|
12
|
+
onCheckedChange?: (value: boolean) => void;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
} = $props();
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<Checkbox
|
|
18
|
+
bind:checked
|
|
19
|
+
bind:indeterminate
|
|
20
|
+
onCheckedChange={(v) => onCheckedChange?.(!!v)}
|
|
21
|
+
{...restProps}
|
|
22
|
+
/>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
checked?: boolean;
|
|
3
|
+
indeterminate?: boolean;
|
|
4
|
+
onCheckedChange?: (value: boolean) => void;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
};
|
|
7
|
+
declare const DataTableCheckbox: import("svelte").Component<$$ComponentProps, {}, "checked" | "indeterminate">;
|
|
8
|
+
type DataTableCheckbox = ReturnType<typeof DataTableCheckbox>;
|
|
9
|
+
export default DataTableCheckbox;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script lang="ts" generics="T">
|
|
2
|
+
import type {
|
|
3
|
+
ColumnDef,
|
|
4
|
+
Table as TanstackTable,
|
|
5
|
+
} from "@tanstack/table-core";
|
|
6
|
+
import * as Table from "../../../ui/table/index.js";
|
|
7
|
+
import FlexRender from "../../../ui/data-table/flex-render.svelte";
|
|
8
|
+
|
|
9
|
+
type Props = {
|
|
10
|
+
table: TanstackTable<T>;
|
|
11
|
+
columns: ColumnDef<T>[];
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
let { table, columns }: Props = $props();
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<div class="rounded-md border">
|
|
18
|
+
<Table.Root>
|
|
19
|
+
<Table.Header>
|
|
20
|
+
{#each table.getHeaderGroups() as headerGroup (headerGroup.id)}
|
|
21
|
+
<Table.Row>
|
|
22
|
+
{#each headerGroup.headers as header (header.id)}
|
|
23
|
+
<Table.Head class="[&:has([role=checkbox])]:ps-3">
|
|
24
|
+
{#if !header.isPlaceholder}
|
|
25
|
+
<FlexRender
|
|
26
|
+
content={header.column.columnDef.header}
|
|
27
|
+
context={header.getContext()}
|
|
28
|
+
/>
|
|
29
|
+
{/if}
|
|
30
|
+
</Table.Head>
|
|
31
|
+
{/each}
|
|
32
|
+
</Table.Row>
|
|
33
|
+
{/each}
|
|
34
|
+
</Table.Header>
|
|
35
|
+
<Table.Body>
|
|
36
|
+
{#each table.getRowModel().rows as row (row.id)}
|
|
37
|
+
<Table.Row data-state={row.getIsSelected() && "selected"}>
|
|
38
|
+
{#each row.getVisibleCells() as cell (cell.id)}
|
|
39
|
+
<Table.Cell class="[&:has([role=checkbox])]:ps-3">
|
|
40
|
+
<FlexRender
|
|
41
|
+
content={cell.column.columnDef.cell}
|
|
42
|
+
context={cell.getContext()}
|
|
43
|
+
/>
|
|
44
|
+
</Table.Cell>
|
|
45
|
+
{/each}
|
|
46
|
+
</Table.Row>
|
|
47
|
+
{:else}
|
|
48
|
+
<Table.Row>
|
|
49
|
+
<Table.Cell
|
|
50
|
+
colspan={columns.length}
|
|
51
|
+
class="h-24 text-center"
|
|
52
|
+
>
|
|
53
|
+
No results.
|
|
54
|
+
</Table.Cell>
|
|
55
|
+
</Table.Row>
|
|
56
|
+
{/each}
|
|
57
|
+
</Table.Body>
|
|
58
|
+
</Table.Root>
|
|
59
|
+
</div>
|