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_DBL_BLOCKED_OPENDNS, 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=1737249132; bh=yxJzCMKATucBNkUyzwZyCnIxrKE6f2/iw7tZseWRrTs=; 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=eMJEt1LFKD2hEWj8BSGlfjNj/4FdTCD9jmg4gOUItnv7Aiw44knuJWjlDNyiLH2CO WfhjyQmtE8mFxWzB2IvQeqMTOpS8s6uHOwRCtNUY49TLTiPyDf7Eol6UbnJ4VatWsA PPGf/hT5jOzemfg3bzYAOVfrM5tHTfR8AoL/n+xAMIesJ4Ci/DNAqLaSNhOTzctPjU 66r2730ECudwxe8wHlTM1fUSPhDD8zviejuMg1NerFTjNqgpR7hnR2gI3ECKlU1Vbt qadFiSjUzeWZ8cF0zBe/tccqFnCGkW0RCZoJLMI3lwSmsAaJypMpSbBr5i/5RJToci v+INBmkGzM81w== Received: from localhost.localdomain (unknown [101.128.125.239]) by server-vie001.gnuweeb.org (Postfix) with ESMTPSA id 73D2A2061C0B; Sun, 19 Jan 2025 01:12:11 +0000 (UTC) From: Muhammad Rizki To: Ammar Faizi Cc: Muhammad Rizki , Alviro Iskandar Setiawan , Dwiky Rizky Ananditya , GNU/Weeb Mailing List Subject: [PATCH RESEND v1 00/17] Refactor GNU/Weeb Mail Site Date: Sun, 19 Jan 2025 08:11:17 +0700 Message-ID: <20250119011136.1254-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! Muhammad Rizki (17): feat: initial front-end 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 chore: update README.md .gitignore | 33 +- .npmrc | 1 + .prettierignore | 4 + .prettierrc | 19 + README.md | 111 + components.json | 17 + eslint.config.js | 34 + package-lock.json | 5549 +++++++++++++++++ package.json | 53 + postcss.config.js | 6 + src/app.css | 114 + src/app.d.ts | 13 + src/app.html | 12 + 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/index.ts | 1 + 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.svelte | 7 + src/routes/+layout.ts | 2 + src/routes/+page.svelte | 122 + src/routes/+page.ts | 17 + static/favicon.png | Bin 0 -> 1571 bytes svelte.config.js | 24 + tailwind.config.ts | 99 + tsconfig.json | 19 + vite.config.ts | 6 + 115 files changed, 8831 insertions(+), 1 deletion(-) create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 README.md create mode 100644 components.json create mode 100644 eslint.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 src/app.css create mode 100644 src/app.d.ts create mode 100644 src/app.html 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/index.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.svelte create mode 100644 src/routes/+layout.ts create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/+page.ts create mode 100644 static/favicon.png create mode 100644 svelte.config.js create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts base-commit: 962ad60aacbd390e5df76bb9596336a143c45d97 -- Muhammad Rizki