From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server-vie001.gnuweeb.org X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,URIBL_ZEN_BLOCKED_OPENDNS autolearn=ham autolearn_force=no version=3.4.6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1737247185; bh=GknQTd1n//IO23mZoZ+w29fx7lMGBAQJVoBqBBVWPd0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version: Content-Transfer-Encoding:Message-ID:Date:From:Reply-To:Subject:To: Cc:In-Reply-To:References:Resent-Date:Resent-From:Resent-To: Resent-Cc:User-Agent:Content-Type:Content-Transfer-Encoding; b=D21RHn1IrTam1XSCPEOtgg8sVerqrFi+rVMOZmciNypYigiO4sZ4Xakyiew3RO7cQ Fd76sOw+KTnsac3fkjjk0y2ILQa1UlLCWn1z6uv7BVeuBPW+RXtqme/BP07Ldj3MEg KYU6BUMOC/qSOXGkreRuJN8hy2kzEyhyY3yz+cBrKhMxZsQFk0Hw8mDMW/GorcHjIg nTTLi7pzHUFTyEJ6o70LKWB4XFNppBb2gHmGi4QNfHRWRHpVR6D3iTPjxfZqMNTjVf yg2ZTg5bA0yHFl7Jg9ioqycitSU8KBO2KBZXrghLHjQR5rOcb5PY6Ku3XCv2cgxu+Q mrVVP2WVwF/ew== Received: from localhost.localdomain (unknown [101.128.125.239]) by server-vie001.gnuweeb.org (Postfix) with ESMTPSA id B3D822061C0B; Sun, 19 Jan 2025 00:39:43 +0000 (UTC) From: Muhammad Rizki To: Ammar Faizi Cc: Muhammad Rizki , Alviro Iskandar Setiawan , Dwiky Rizky Ananditya , GNU/Weeb Mailing List Subject: [PATCH v1 00/16] Refactor GNU/Weeb Mail Site Date: Sun, 19 Jan 2025 07:38:53 +0700 Message-ID: <20250119003911.1183-1-kiizuha@gnuweeb.org> X-Mailer: git-send-email 2.45.2.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Hello everyone, This series refactors the `mail.gnuweeb.org` website to adopt a more modern architecture. The migration uses shadcn-svelte and sveltekit superforms to improve development efficiency, maintainability, and user experience. The changes in this series include: 1. Refactored login page: - A new user-friendly login form was added with built-in validation using sveltekit superforms and zod. 2. Refactored home page: - The home page was redesigned to align with modern UI/UX standards. - shadcn-svelte components like buttons, inputs, and cards were used to ensure consistency and accessibility. Key benefits of this refactor include: - Improved modularity and code reuse through sveltekit's component-based architecture. - Enhanced maintainability with better organization and modern libraries. Future enhancements may include adding animations, responsive design improvements, and expanding form validation capabilities. Any feedback, issues, or bugs, just tell me! Kiizuha Kanazawa (15): feat(routes): configure page layout options feat(fonts): add Google fonts feat(components): add shadcn-svelte components feat(deps): add `axios` as HTTP client feat(deps): add `svelte-copy` dependency feat(constants): add navigations and mail-config constant feat(components): add loading spinner component feat(components): add header component feat: initial hooks, schemas, typings for the login functions feat(components): add app-sidebar component feat(routes): create initial settings page feat(routes): add home page feat(routes): add main layout for the protected routes feat(routes): add login page chore(.gitignore): add patch files ignore Muhammad Rizki (1): chore: update README.md .gitignore | 4 + README.md | 117 +- components.json | 17 + package-lock.json | 10026 +++++++++------- package.json | 17 +- src/app.css | 111 + src/lib/components/customs/app-sidebar.svelte | 74 + src/lib/components/customs/header.svelte | 32 + src/lib/components/customs/loading.svelte | 21 + .../ui/breadcrumb/breadcrumb-ellipsis.svelte | 23 + .../ui/breadcrumb/breadcrumb-item.svelte | 16 + .../ui/breadcrumb/breadcrumb-link.svelte | 31 + .../ui/breadcrumb/breadcrumb-list.svelte | 23 + .../ui/breadcrumb/breadcrumb-page.svelte | 23 + .../ui/breadcrumb/breadcrumb-separator.svelte | 27 + .../ui/breadcrumb/breadcrumb.svelte | 15 + src/lib/components/ui/breadcrumb/index.ts | 25 + src/lib/components/ui/button/button.svelte | 81 + src/lib/components/ui/button/index.ts | 17 + .../components/ui/card/card-content.svelte | 16 + .../ui/card/card-description.svelte | 16 + src/lib/components/ui/card/card-footer.svelte | 16 + src/lib/components/ui/card/card-header.svelte | 16 + src/lib/components/ui/card/card-title.svelte | 25 + src/lib/components/ui/card/card.svelte | 20 + src/lib/components/ui/card/index.ts | 22 + src/lib/components/ui/form/form-button.svelte | 7 + .../ui/form/form-description.svelte | 17 + .../ui/form/form-element-field.svelte | 30 + .../ui/form/form-field-errors.svelte | 30 + src/lib/components/ui/form/form-field.svelte | 30 + .../components/ui/form/form-fieldset.svelte | 21 + src/lib/components/ui/form/form-label.svelte | 21 + src/lib/components/ui/form/form-legend.svelte | 17 + src/lib/components/ui/form/index.ts | 33 + src/lib/components/ui/input/index.ts | 7 + .../components/ui/input/input-password.svelte | 46 + src/lib/components/ui/input/input.svelte | 22 + src/lib/components/ui/label/index.ts | 7 + src/lib/components/ui/label/label.svelte | 19 + src/lib/components/ui/separator/index.ts | 7 + .../components/ui/separator/separator.svelte | 22 + src/lib/components/ui/sheet/index.ts | 37 + .../components/ui/sheet/sheet-content.svelte | 56 + .../ui/sheet/sheet-description.svelte | 16 + .../components/ui/sheet/sheet-footer.svelte | 20 + .../components/ui/sheet/sheet-header.svelte | 20 + .../components/ui/sheet/sheet-overlay.svelte | 19 + .../components/ui/sheet/sheet-title.svelte | 16 + src/lib/components/ui/sidebar/constants.ts | 6 + .../components/ui/sidebar/context.svelte.ts | 79 + src/lib/components/ui/sidebar/index.ts | 75 + .../ui/sidebar/sidebar-content.svelte | 24 + .../ui/sidebar/sidebar-footer.svelte | 21 + .../ui/sidebar/sidebar-group-action.svelte | 36 + .../ui/sidebar/sidebar-group-content.svelte | 21 + .../ui/sidebar/sidebar-group-label.svelte | 34 + .../ui/sidebar/sidebar-group.svelte | 21 + .../ui/sidebar/sidebar-header.svelte | 21 + .../ui/sidebar/sidebar-input.svelte | 23 + .../ui/sidebar/sidebar-inset.svelte | 24 + .../ui/sidebar/sidebar-menu-action.svelte | 43 + .../ui/sidebar/sidebar-menu-badge.svelte | 29 + .../ui/sidebar/sidebar-menu-button.svelte | 95 + .../ui/sidebar/sidebar-menu-item.svelte | 21 + .../ui/sidebar/sidebar-menu-skeleton.svelte | 36 + .../ui/sidebar/sidebar-menu-sub-button.svelte | 43 + .../ui/sidebar/sidebar-menu-sub-item.svelte | 14 + .../ui/sidebar/sidebar-menu-sub.svelte | 25 + .../components/ui/sidebar/sidebar-menu.svelte | 21 + .../ui/sidebar/sidebar-provider.svelte | 59 + .../components/ui/sidebar/sidebar-rail.svelte | 36 + .../ui/sidebar/sidebar-separator.svelte | 18 + .../ui/sidebar/sidebar-trigger.svelte | 34 + src/lib/components/ui/sidebar/sidebar.svelte | 98 + src/lib/components/ui/skeleton/index.ts | 7 + .../components/ui/skeleton/skeleton.svelte | 17 + src/lib/components/ui/sonner/index.ts | 1 + src/lib/components/ui/sonner/sonner.svelte | 20 + src/lib/components/ui/tooltip/index.ts | 18 + .../ui/tooltip/tooltip-content.svelte | 21 + src/lib/constants/index.ts | 4 + src/lib/constants/mail-config.ts | 48 + src/lib/constants/navigations.ts | 15 + src/lib/hooks/auth.svelte.ts | 64 + src/lib/hooks/http.svelte.ts | 129 + src/lib/hooks/is-mobile.svelte.ts | 27 + src/lib/schemas/login.ts | 6 + src/lib/typings/common.d.ts | 19 + src/lib/typings/credential.d.ts | 7 + src/lib/typings/http.d.ts | 27 + src/lib/typings/index.ts | 13 + src/lib/utilities/index.ts | 3 + src/lib/utilities/styling.ts | 6 + src/routes/(protected)/+layout.svelte | 19 + src/routes/(protected)/+layout.ts | 11 + src/routes/(protected)/home/+page.svelte | 70 + src/routes/(protected)/settings/+page.svelte | 1 + src/routes/+layout.ts | 2 + src/routes/+page.svelte | 124 +- src/routes/+page.ts | 17 + tailwind.config.ts | 91 +- 102 files changed, 8587 insertions(+), 4508 deletions(-) create mode 100644 components.json create mode 100644 src/lib/components/customs/app-sidebar.svelte create mode 100644 src/lib/components/customs/header.svelte create mode 100644 src/lib/components/customs/loading.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb-ellipsis.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb-item.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb-link.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb-list.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb-page.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb-separator.svelte create mode 100644 src/lib/components/ui/breadcrumb/breadcrumb.svelte create mode 100644 src/lib/components/ui/breadcrumb/index.ts create mode 100644 src/lib/components/ui/button/button.svelte create mode 100644 src/lib/components/ui/button/index.ts create mode 100644 src/lib/components/ui/card/card-content.svelte create mode 100644 src/lib/components/ui/card/card-description.svelte create mode 100644 src/lib/components/ui/card/card-footer.svelte create mode 100644 src/lib/components/ui/card/card-header.svelte create mode 100644 src/lib/components/ui/card/card-title.svelte create mode 100644 src/lib/components/ui/card/card.svelte create mode 100644 src/lib/components/ui/card/index.ts create mode 100644 src/lib/components/ui/form/form-button.svelte create mode 100644 src/lib/components/ui/form/form-description.svelte create mode 100644 src/lib/components/ui/form/form-element-field.svelte create mode 100644 src/lib/components/ui/form/form-field-errors.svelte create mode 100644 src/lib/components/ui/form/form-field.svelte create mode 100644 src/lib/components/ui/form/form-fieldset.svelte create mode 100644 src/lib/components/ui/form/form-label.svelte create mode 100644 src/lib/components/ui/form/form-legend.svelte create mode 100644 src/lib/components/ui/form/index.ts create mode 100644 src/lib/components/ui/input/index.ts create mode 100644 src/lib/components/ui/input/input-password.svelte create mode 100644 src/lib/components/ui/input/input.svelte create mode 100644 src/lib/components/ui/label/index.ts create mode 100644 src/lib/components/ui/label/label.svelte create mode 100644 src/lib/components/ui/separator/index.ts create mode 100644 src/lib/components/ui/separator/separator.svelte create mode 100644 src/lib/components/ui/sheet/index.ts create mode 100644 src/lib/components/ui/sheet/sheet-content.svelte create mode 100644 src/lib/components/ui/sheet/sheet-description.svelte create mode 100644 src/lib/components/ui/sheet/sheet-footer.svelte create mode 100644 src/lib/components/ui/sheet/sheet-header.svelte create mode 100644 src/lib/components/ui/sheet/sheet-overlay.svelte create mode 100644 src/lib/components/ui/sheet/sheet-title.svelte create mode 100644 src/lib/components/ui/sidebar/constants.ts create mode 100644 src/lib/components/ui/sidebar/context.svelte.ts create mode 100644 src/lib/components/ui/sidebar/index.ts create mode 100644 src/lib/components/ui/sidebar/sidebar-content.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-footer.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-group-action.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-group-content.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-group-label.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-group.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-header.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-input.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-inset.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-action.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-badge.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-button.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-item.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-skeleton.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-sub-button.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-sub-item.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu-sub.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-menu.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-provider.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-rail.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-separator.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar-trigger.svelte create mode 100644 src/lib/components/ui/sidebar/sidebar.svelte create mode 100644 src/lib/components/ui/skeleton/index.ts create mode 100644 src/lib/components/ui/skeleton/skeleton.svelte create mode 100644 src/lib/components/ui/sonner/index.ts create mode 100644 src/lib/components/ui/sonner/sonner.svelte create mode 100644 src/lib/components/ui/tooltip/index.ts create mode 100644 src/lib/components/ui/tooltip/tooltip-content.svelte create mode 100644 src/lib/constants/index.ts create mode 100644 src/lib/constants/mail-config.ts create mode 100644 src/lib/constants/navigations.ts create mode 100644 src/lib/hooks/auth.svelte.ts create mode 100644 src/lib/hooks/http.svelte.ts create mode 100644 src/lib/hooks/is-mobile.svelte.ts create mode 100644 src/lib/schemas/login.ts create mode 100644 src/lib/typings/common.d.ts create mode 100644 src/lib/typings/credential.d.ts create mode 100644 src/lib/typings/http.d.ts create mode 100644 src/lib/typings/index.ts create mode 100644 src/lib/utilities/index.ts create mode 100644 src/lib/utilities/styling.ts create mode 100644 src/routes/(protected)/+layout.svelte create mode 100644 src/routes/(protected)/+layout.ts create mode 100644 src/routes/(protected)/home/+page.svelte create mode 100644 src/routes/(protected)/settings/+page.svelte create mode 100644 src/routes/+layout.ts create mode 100644 src/routes/+page.ts base-commit: 75cf01a9e32273e97942c3fae90749a8b69e9821 -- Muhammad Rizki