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 v1 00/16] Refactor GNU/Weeb Mail Site
Date: Sun, 19 Jan 2025 07:38:53 +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!

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

             reply	other threads:[~2025-01-19  0:39 UTC|newest]

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

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