public inbox for [email protected]
 help / color / mirror / Atom feed
From: Muhammad Rizki <[email protected]>
To: Ammar Faizi <[email protected]>
Cc: Muhammad Rizki <[email protected]>,
	Alviro Iskandar Setiawan <[email protected]>,
	Dwiky Rizky Ananditya <[email protected]>,
	GNU/Weeb Mailing List <[email protected]>
Subject: [PATCH RESEND v1 00/17] Refactor GNU/Weeb Mail Site
Date: Sun, 19 Jan 2025 08:11:17 +0700	[thread overview]
Message-ID: <[email protected]> (raw)

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

             reply	other threads:[~2025-01-19  1:12 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-19  1:11 Muhammad Rizki [this message]
2025-01-19  1:11 ` [PATCH v1 01/17] feat: initial front-end Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 02/17] feat(routes): configure page layout options Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 03/17] feat(fonts): add Google fonts Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 04/17] feat(components): add shadcn-svelte components Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 05/17] feat(deps): add `axios` as HTTP client Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 06/17] feat(deps): add `svelte-copy` dependency Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 07/17] feat(constants): add navigations and mail-config constant Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 08/17] feat(components): add loading spinner component Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 09/17] feat(components): add header component Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 10/17] feat: initial hooks, schemas, typings for the login functions Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 11/17] feat(components): add app-sidebar component Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 12/17] feat(routes): create initial settings page Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 13/17] feat(routes): add home page Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 14/17] feat(routes): add main layout for the protected routes Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 15/17] feat(routes): add login page Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 16/17] chore(.gitignore): add patch files ignore Muhammad Rizki
2025-01-19  1:11 ` [PATCH v1 17/17] chore: update README.md Muhammad Rizki
2025-01-19 19:53 ` [PATCH RESEND v1 00/17] Refactor GNU/Weeb Mail Site Ammar Faizi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox