From 83bf91d84b3ccb73d7984da48f08e5316e51afee Mon Sep 17 00:00:00 2001 From: Gunawan19621 Date: Mon, 28 Aug 2023 23:52:25 +0700 Subject: [PATCH] kedua --- .../Auth/AuthenticatedSessionController.php | 48 + .../Auth/ConfirmablePasswordController.php | 41 + ...mailVerificationNotificationController.php | 25 + .../EmailVerificationPromptController.php | 22 + .../Auth/NewPasswordController.php | 61 + .../Controllers/Auth/PasswordController.php | 29 + .../Auth/PasswordResetLinkController.php | 44 + .../Auth/RegisteredUserController.php | 51 + .../Auth/VerifyEmailController.php | 28 + app/Http/Controllers/PeminjamanController.php | 13 + app/Http/Controllers/PengadaanController.php | 13 + .../Controllers/PengembalianController.php | 13 + app/Http/Controllers/ProfileController.php | 80 + .../Controllers/SettingPlatformController.php | 13 + app/Http/Controllers/TransaksiController.php | 13 + app/Http/Middleware/Authenticate.php | 10 +- app/Http/Requests/Auth/LoginRequest.php | 85 + app/Http/Requests/ProfileUpdateRequest.php | 23 + app/Models/User.php | 6 +- app/Providers/RouteServiceProvider.php | 2 +- app/View/Components/AppLayout.php | 17 + app/View/Components/GuestLayout.php | 17 + composer.json | 1 + composer.lock | 64 +- package-lock.json | 2873 +++++++++++++++++ package.json | 5 + postcss.config.js | 6 + public/assets/img/default-profile.png | Bin 0 -> 99425 bytes resources/css/app.css | 3 + resources/js/app.js | 6 + .../views/auth/confirm-password.blade.php | 27 + .../views/auth/forgot-password.blade.php | 25 + resources/views/auth/login.blade.php | 47 + resources/views/auth/register.blade.php | 52 + resources/views/auth/reset-password.blade.php | 39 + resources/views/auth/verify-email.blade.php | 31 + .../components/application-logo.blade.php | 3 + .../components/auth-session-status.blade.php | 7 + .../views/components/danger-button.blade.php | 3 + .../views/components/dropdown-link.blade.php | 1 + resources/views/components/dropdown.blade.php | 43 + .../views/components/input-error.blade.php | 9 + .../views/components/input-label.blade.php | 5 + resources/views/components/modal.blade.php | 77 + resources/views/components/nav-link.blade.php | 11 + .../views/components/primary-button.blade.php | 3 + .../components/responsive-nav-link.blade.php | 11 + .../components/secondary-button.blade.php | 3 + .../views/components/text-input.blade.php | 3 + resources/views/dashboard.blade.php | 17 + resources/views/dashboard/index.blade.php | 6 +- resources/views/layouts/app.blade.php | 36 + resources/views/layouts/guest.blade.php | 30 + resources/views/layouts/link.blade.php | 6 +- resources/views/layouts/main.blade.php | 27 +- resources/views/layouts/navbar.blade.php | 8 +- resources/views/layouts/navigation.blade.php | 108 + resources/views/layouts/script.blade.php | 3 + resources/views/layouts/sidebar.blade.php | 12 +- resources/views/profil/profil.blade.php | 143 +- resources/views/profil/setting.blade.php | 36 + resources/views/profile/edit.blade.php | 29 + .../partials/delete-user-form.blade.php | 55 + .../partials/update-password-form.blade.php | 48 + .../update-profile-information-form.blade.php | 62 + resources/views/welcome.blade.php | 2 +- routes/auth.php | 59 + routes/web.php | 72 +- tailwind.config.js | 21 + tests/Feature/Auth/AuthenticationTest.php | 45 + tests/Feature/Auth/EmailVerificationTest.php | 65 + .../Feature/Auth/PasswordConfirmationTest.php | 44 + tests/Feature/Auth/PasswordResetTest.php | 71 + tests/Feature/Auth/PasswordUpdateTest.php | 51 + tests/Feature/Auth/RegistrationTest.php | 32 + tests/Feature/ProfileTest.php | 99 + vite.config.js | 5 +- 77 files changed, 5136 insertions(+), 68 deletions(-) create mode 100644 app/Http/Controllers/Auth/AuthenticatedSessionController.php create mode 100644 app/Http/Controllers/Auth/ConfirmablePasswordController.php create mode 100644 app/Http/Controllers/Auth/EmailVerificationNotificationController.php create mode 100644 app/Http/Controllers/Auth/EmailVerificationPromptController.php create mode 100644 app/Http/Controllers/Auth/NewPasswordController.php create mode 100644 app/Http/Controllers/Auth/PasswordController.php create mode 100644 app/Http/Controllers/Auth/PasswordResetLinkController.php create mode 100644 app/Http/Controllers/Auth/RegisteredUserController.php create mode 100644 app/Http/Controllers/Auth/VerifyEmailController.php create mode 100644 app/Http/Controllers/PeminjamanController.php create mode 100644 app/Http/Controllers/PengadaanController.php create mode 100644 app/Http/Controllers/PengembalianController.php create mode 100644 app/Http/Controllers/ProfileController.php create mode 100644 app/Http/Controllers/SettingPlatformController.php create mode 100644 app/Http/Controllers/TransaksiController.php create mode 100644 app/Http/Requests/Auth/LoginRequest.php create mode 100644 app/Http/Requests/ProfileUpdateRequest.php create mode 100644 app/View/Components/AppLayout.php create mode 100644 app/View/Components/GuestLayout.php create mode 100644 package-lock.json create mode 100644 postcss.config.js create mode 100644 public/assets/img/default-profile.png create mode 100644 resources/views/auth/confirm-password.blade.php create mode 100644 resources/views/auth/forgot-password.blade.php create mode 100644 resources/views/auth/login.blade.php create mode 100644 resources/views/auth/register.blade.php create mode 100644 resources/views/auth/reset-password.blade.php create mode 100644 resources/views/auth/verify-email.blade.php create mode 100644 resources/views/components/application-logo.blade.php create mode 100644 resources/views/components/auth-session-status.blade.php create mode 100644 resources/views/components/danger-button.blade.php create mode 100644 resources/views/components/dropdown-link.blade.php create mode 100644 resources/views/components/dropdown.blade.php create mode 100644 resources/views/components/input-error.blade.php create mode 100644 resources/views/components/input-label.blade.php create mode 100644 resources/views/components/modal.blade.php create mode 100644 resources/views/components/nav-link.blade.php create mode 100644 resources/views/components/primary-button.blade.php create mode 100644 resources/views/components/responsive-nav-link.blade.php create mode 100644 resources/views/components/secondary-button.blade.php create mode 100644 resources/views/components/text-input.blade.php create mode 100644 resources/views/dashboard.blade.php create mode 100644 resources/views/layouts/app.blade.php create mode 100644 resources/views/layouts/guest.blade.php create mode 100644 resources/views/layouts/navigation.blade.php create mode 100644 resources/views/profil/setting.blade.php create mode 100644 resources/views/profile/edit.blade.php create mode 100644 resources/views/profile/partials/delete-user-form.blade.php create mode 100644 resources/views/profile/partials/update-password-form.blade.php create mode 100644 resources/views/profile/partials/update-profile-information-form.blade.php create mode 100644 routes/auth.php create mode 100644 tailwind.config.js create mode 100644 tests/Feature/Auth/AuthenticationTest.php create mode 100644 tests/Feature/Auth/EmailVerificationTest.php create mode 100644 tests/Feature/Auth/PasswordConfirmationTest.php create mode 100644 tests/Feature/Auth/PasswordResetTest.php create mode 100644 tests/Feature/Auth/PasswordUpdateTest.php create mode 100644 tests/Feature/Auth/RegistrationTest.php create mode 100644 tests/Feature/ProfileTest.php diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php new file mode 100644 index 0000000..494a106 --- /dev/null +++ b/app/Http/Controllers/Auth/AuthenticatedSessionController.php @@ -0,0 +1,48 @@ +authenticate(); + + $request->session()->regenerate(); + + return redirect()->intended(RouteServiceProvider::HOME); + } + + /** + * Destroy an authenticated session. + */ + public function destroy(Request $request): RedirectResponse + { + Auth::guard('web')->logout(); + + $request->session()->invalidate(); + + $request->session()->regenerateToken(); + + return redirect('/'); + } +} diff --git a/app/Http/Controllers/Auth/ConfirmablePasswordController.php b/app/Http/Controllers/Auth/ConfirmablePasswordController.php new file mode 100644 index 0000000..523ddda --- /dev/null +++ b/app/Http/Controllers/Auth/ConfirmablePasswordController.php @@ -0,0 +1,41 @@ +validate([ + 'email' => $request->user()->email, + 'password' => $request->password, + ])) { + throw ValidationException::withMessages([ + 'password' => __('auth.password'), + ]); + } + + $request->session()->put('auth.password_confirmed_at', time()); + + return redirect()->intended(RouteServiceProvider::HOME); + } +} diff --git a/app/Http/Controllers/Auth/EmailVerificationNotificationController.php b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php new file mode 100644 index 0000000..96ba772 --- /dev/null +++ b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php @@ -0,0 +1,25 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(RouteServiceProvider::HOME); + } + + $request->user()->sendEmailVerificationNotification(); + + return back()->with('status', 'verification-link-sent'); + } +} diff --git a/app/Http/Controllers/Auth/EmailVerificationPromptController.php b/app/Http/Controllers/Auth/EmailVerificationPromptController.php new file mode 100644 index 0000000..186eb97 --- /dev/null +++ b/app/Http/Controllers/Auth/EmailVerificationPromptController.php @@ -0,0 +1,22 @@ +user()->hasVerifiedEmail() + ? redirect()->intended(RouteServiceProvider::HOME) + : view('auth.verify-email'); + } +} diff --git a/app/Http/Controllers/Auth/NewPasswordController.php b/app/Http/Controllers/Auth/NewPasswordController.php new file mode 100644 index 0000000..f1e2814 --- /dev/null +++ b/app/Http/Controllers/Auth/NewPasswordController.php @@ -0,0 +1,61 @@ + $request]); + } + + /** + * Handle an incoming new password request. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function store(Request $request): RedirectResponse + { + $request->validate([ + 'token' => ['required'], + 'email' => ['required', 'email'], + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]); + + // Here we will attempt to reset the user's password. If it is successful we + // will update the password on an actual user model and persist it to the + // database. Otherwise we will parse the error and return the response. + $status = Password::reset( + $request->only('email', 'password', 'password_confirmation', 'token'), + function ($user) use ($request) { + $user->forceFill([ + 'password' => Hash::make($request->password), + 'remember_token' => Str::random(60), + ])->save(); + + event(new PasswordReset($user)); + } + ); + + // If the password was successfully reset, we will redirect the user back to + // the application's home authenticated view. If there is an error we can + // redirect them back to where they came from with their error message. + return $status == Password::PASSWORD_RESET + ? redirect()->route('login')->with('status', __($status)) + : back()->withInput($request->only('email')) + ->withErrors(['email' => __($status)]); + } +} diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php new file mode 100644 index 0000000..6916409 --- /dev/null +++ b/app/Http/Controllers/Auth/PasswordController.php @@ -0,0 +1,29 @@ +validateWithBag('updatePassword', [ + 'current_password' => ['required', 'current_password'], + 'password' => ['required', Password::defaults(), 'confirmed'], + ]); + + $request->user()->update([ + 'password' => Hash::make($validated['password']), + ]); + + return back()->with('status', 'password-updated'); + } +} diff --git a/app/Http/Controllers/Auth/PasswordResetLinkController.php b/app/Http/Controllers/Auth/PasswordResetLinkController.php new file mode 100644 index 0000000..ce813a6 --- /dev/null +++ b/app/Http/Controllers/Auth/PasswordResetLinkController.php @@ -0,0 +1,44 @@ +validate([ + 'email' => ['required', 'email'], + ]); + + // We will send the password reset link to this user. Once we have attempted + // to send the link, we will examine the response then see the message we + // need to show to the user. Finally, we'll send out a proper response. + $status = Password::sendResetLink( + $request->only('email') + ); + + return $status == Password::RESET_LINK_SENT + ? back()->with('status', __($status)) + : back()->withInput($request->only('email')) + ->withErrors(['email' => __($status)]); + } +} diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php new file mode 100644 index 0000000..5313f35 --- /dev/null +++ b/app/Http/Controllers/Auth/RegisteredUserController.php @@ -0,0 +1,51 @@ +validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class], + 'password' => ['required', 'confirmed', Rules\Password::defaults()], + ]); + + $user = User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => Hash::make($request->password), + ]); + + event(new Registered($user)); + + Auth::login($user); + + return redirect(RouteServiceProvider::HOME); + } +} diff --git a/app/Http/Controllers/Auth/VerifyEmailController.php b/app/Http/Controllers/Auth/VerifyEmailController.php new file mode 100644 index 0000000..ea87940 --- /dev/null +++ b/app/Http/Controllers/Auth/VerifyEmailController.php @@ -0,0 +1,28 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); + } + + if ($request->user()->markEmailAsVerified()) { + event(new Verified($request->user())); + } + + return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); + } +} diff --git a/app/Http/Controllers/PeminjamanController.php b/app/Http/Controllers/PeminjamanController.php new file mode 100644 index 0000000..a058e25 --- /dev/null +++ b/app/Http/Controllers/PeminjamanController.php @@ -0,0 +1,13 @@ + $request->user(), + ]); + } + + // Halaman edit profile + public function edit() + { + return view('profil.profil'); + } + + //Proses update Profile Photo + public function updatePhoto(Request $request) + { + // dd('okr'); + $user = User::find(auth()->user()->id); + if ($request->hasFile('foto')) { + // Mengunggah file foto profil + $file = $request->file('foto'); + $foto = $file->store('profile-fotos'); + $user->update(['foto' => $foto]); + } + + // Logika lain yang diperlukan setelah update foto profil + return redirect()->back()->with('success', 'Foto profil berhasil diperbarui.'); + } + + //Proses update Profile Informasi + public function update(ProfileUpdateRequest $request): RedirectResponse + { + $request->user()->fill($request->validated()); + + if ($request->user()->isDirty('email')) { + $request->user()->email_verified_at = null; + } + + $request->user()->save(); + + return Redirect::back()->with('status', 'profile-updated'); + } + + /** + * Delete the user's account. + */ + public function destroy(Request $request): RedirectResponse + { + $request->validateWithBag('userDeletion', [ + 'password' => ['required', 'current_password'], + ]); + + $user = $request->user(); + + Auth::logout(); + + $user->delete(); + + $request->session()->invalidate(); + $request->session()->regenerateToken(); + + return Redirect::to('/'); + } +} diff --git a/app/Http/Controllers/SettingPlatformController.php b/app/Http/Controllers/SettingPlatformController.php new file mode 100644 index 0000000..dbaa639 --- /dev/null +++ b/app/Http/Controllers/SettingPlatformController.php @@ -0,0 +1,13 @@ +expectsJson() ? null : route('login'); + // } + protected function redirectTo($request) { - return $request->expectsJson() ? null : route('login'); + if (!$request->expectsJson()) { + return route('login'); // Ganti 'login' dengan nama rute halaman login Anda + } } } diff --git a/app/Http/Requests/Auth/LoginRequest.php b/app/Http/Requests/Auth/LoginRequest.php new file mode 100644 index 0000000..7a19bc0 --- /dev/null +++ b/app/Http/Requests/Auth/LoginRequest.php @@ -0,0 +1,85 @@ + + */ + public function rules(): array + { + return [ + 'email' => ['required', 'string', 'email'], + 'password' => ['required', 'string'], + ]; + } + + /** + * Attempt to authenticate the request's credentials. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function authenticate(): void + { + $this->ensureIsNotRateLimited(); + + if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) { + RateLimiter::hit($this->throttleKey()); + + throw ValidationException::withMessages([ + 'email' => trans('auth.failed'), + ]); + } + + RateLimiter::clear($this->throttleKey()); + } + + /** + * Ensure the login request is not rate limited. + * + * @throws \Illuminate\Validation\ValidationException + */ + public function ensureIsNotRateLimited(): void + { + if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) { + return; + } + + event(new Lockout($this)); + + $seconds = RateLimiter::availableIn($this->throttleKey()); + + throw ValidationException::withMessages([ + 'email' => trans('auth.throttle', [ + 'seconds' => $seconds, + 'minutes' => ceil($seconds / 60), + ]), + ]); + } + + /** + * Get the rate limiting throttle key for the request. + */ + public function throttleKey(): string + { + return Str::transliterate(Str::lower($this->input('email')).'|'.$this->ip()); + } +} diff --git a/app/Http/Requests/ProfileUpdateRequest.php b/app/Http/Requests/ProfileUpdateRequest.php new file mode 100644 index 0000000..327ce6f --- /dev/null +++ b/app/Http/Requests/ProfileUpdateRequest.php @@ -0,0 +1,23 @@ + + */ + public function rules(): array + { + return [ + 'name' => ['string', 'max:255'], + 'email' => ['email', 'max:255', Rule::unique(User::class)->ignore($this->user()->id)], + ]; + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 4d7f70f..3d5ab16 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -17,11 +17,7 @@ class User extends Authenticatable * * @var array */ - protected $fillable = [ - 'name', - 'email', - 'password', - ]; + protected $guarded = ['id']; /** * The attributes that should be hidden for serialization. diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 1cf5f15..025e874 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider * * @var string */ - public const HOME = '/home'; + public const HOME = '/dashboard'; /** * Define your route model bindings, pattern filters, and other route configuration. diff --git a/app/View/Components/AppLayout.php b/app/View/Components/AppLayout.php new file mode 100644 index 0000000..de0d46f --- /dev/null +++ b/app/View/Components/AppLayout.php @@ -0,0 +1,17 @@ +=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.5.tgz", + "integrity": "sha512-03sXK1DcPt44GZ0Yg6AcAfQln89IKdbE79g2OwoKqBm1ukaadLO2AH3EiB3mXHeQnxa3tzm7eE0x7INXSjbuug==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz", + "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==", + "dev": true, + "dependencies": { + "@vue/shared": "3.1.5" + } + }, + "node_modules/@vue/shared": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz", + "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==", + "dev": true + }, + "node_modules/alpinejs": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.12.3.tgz", + "integrity": "sha512-fLz2dfYQ3xCk7Ip8LiIpV2W+9brUyex2TAE7Z0BCvZdUDklJE+n+a8gCgLWzfZ0GzZNZu7HUP8Z0z6Xbm6fsSA==", + "dev": true, + "dependencies": { + "@vue/reactivity": "~3.1.1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.500", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz", + "integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.1.tgz", + "integrity": "sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz", + "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.0.tgz", + "integrity": "sha512-6VjLI+azBpeK6rWBiKcb/En5GnTdYpL0U4zS8gXYvb2/VSq4mlau5H3NWpSktUDBMM1b97LLgICx5zevi8IY0w==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.0.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", + "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz", + "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + }, + "peerDependencies": { + "vite": "^2 || ^3 || ^4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + } + }, + "dependencies": { + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "dev": true, + "optional": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@tailwindcss/forms": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.5.tgz", + "integrity": "sha512-03sXK1DcPt44GZ0Yg6AcAfQln89IKdbE79g2OwoKqBm1ukaadLO2AH3EiB3mXHeQnxa3tzm7eE0x7INXSjbuug==", + "dev": true, + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, + "@vue/reactivity": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz", + "integrity": "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==", + "dev": true, + "requires": { + "@vue/shared": "3.1.5" + } + }, + "@vue/shared": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz", + "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==", + "dev": true + }, + "alpinejs": { + "version": "3.12.3", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.12.3.tgz", + "integrity": "sha512-fLz2dfYQ3xCk7Ip8LiIpV2W+9brUyex2TAE7Z0BCvZdUDklJE+n+a8gCgLWzfZ0GzZNZu7HUP8Z0z6Xbm6fsSA==", + "dev": true, + "requires": { + "@vue/reactivity": "~3.1.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "dev": true, + "requires": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + } + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.500", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz", + "integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A==", + "dev": true + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.1.tgz", + "integrity": "sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jiti": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz", + "integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==", + "dev": true + }, + "laravel-vite-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.0.tgz", + "integrity": "sha512-6VjLI+azBpeK6rWBiKcb/En5GnTdYpL0U4zS8gXYvb2/VSq4mlau5H3NWpSktUDBMM1b97LLgICx5zevi8IY0w==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.0.5" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "postcss": { + "version": "8.4.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", + "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + } + }, + "postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.11" + } + }, + "postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rollup": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "requires": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "vite-plugin-full-reload": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz", + "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 0e6480f..37c91af 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,13 @@ "build": "vite build" }, "devDependencies": { + "@tailwindcss/forms": "^0.5.2", + "alpinejs": "^3.4.2", + "autoprefixer": "^10.4.2", "axios": "^1.1.2", "laravel-vite-plugin": "^0.8.0", + "postcss": "^8.4.6", + "tailwindcss": "^3.1.0", "vite": "^4.0.0" } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..49c0612 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/assets/img/default-profile.png b/public/assets/img/default-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..36ab28181a3ca571611396e2da500247cc72a4d4 GIT binary patch literal 99425 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

79`Q)vtuxzrvCIkOFwYVD$z3iu=!yvQLo5g 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 IC7Y1{2ZnME4*&oF literal 0 HcmV?d00001 diff --git a/resources/css/app.css b/resources/css/app.css index e69de29..b5c61c9 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/resources/js/app.js b/resources/js/app.js index e59d6a0..a8093be 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1 +1,7 @@ import './bootstrap'; + +import Alpine from 'alpinejs'; + +window.Alpine = Alpine; + +Alpine.start(); diff --git a/resources/views/auth/confirm-password.blade.php b/resources/views/auth/confirm-password.blade.php new file mode 100644 index 0000000..3cbbe08 --- /dev/null +++ b/resources/views/auth/confirm-password.blade.php @@ -0,0 +1,27 @@ + +

+ {{ __('This is a secure area of the application. Please confirm your password before continuing.') }} +
+ +
+ @csrf + + +
+ + + + + +
+ +
+ + {{ __('Confirm') }} + +
+
+ diff --git a/resources/views/auth/forgot-password.blade.php b/resources/views/auth/forgot-password.blade.php new file mode 100644 index 0000000..3c70788 --- /dev/null +++ b/resources/views/auth/forgot-password.blade.php @@ -0,0 +1,25 @@ + +
+ {{ __('Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.') }} +
+ + + + +
+ @csrf + + +
+ + + +
+ +
+ + {{ __('Email Password Reset Link') }} + +
+
+
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php new file mode 100644 index 0000000..94d3856 --- /dev/null +++ b/resources/views/auth/login.blade.php @@ -0,0 +1,47 @@ + + + + +
+ diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php new file mode 100644 index 0000000..759792b --- /dev/null +++ b/resources/views/auth/register.blade.php @@ -0,0 +1,52 @@ + +
+ @csrf + + +
+ + + +
+ + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ +
+ + {{ __('Already registered?') }} + + + + {{ __('Register') }} + +
+
+
diff --git a/resources/views/auth/reset-password.blade.php b/resources/views/auth/reset-password.blade.php new file mode 100644 index 0000000..a6494cc --- /dev/null +++ b/resources/views/auth/reset-password.blade.php @@ -0,0 +1,39 @@ + +
+ @csrf + + + + + +
+ + + +
+ + +
+ + + +
+ + +
+ + + + + +
+ +
+ + {{ __('Reset Password') }} + +
+
+
diff --git a/resources/views/auth/verify-email.blade.php b/resources/views/auth/verify-email.blade.php new file mode 100644 index 0000000..4e4222f --- /dev/null +++ b/resources/views/auth/verify-email.blade.php @@ -0,0 +1,31 @@ + +
+ {{ __('Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.') }} +
+ + @if (session('status') == 'verification-link-sent') +
+ {{ __('A new verification link has been sent to the email address you provided during registration.') }} +
+ @endif + +
+
+ @csrf + +
+ + {{ __('Resend Verification Email') }} + +
+
+ +
+ @csrf + + +
+
+
diff --git a/resources/views/components/application-logo.blade.php b/resources/views/components/application-logo.blade.php new file mode 100644 index 0000000..46579cf --- /dev/null +++ b/resources/views/components/application-logo.blade.php @@ -0,0 +1,3 @@ + + + diff --git a/resources/views/components/auth-session-status.blade.php b/resources/views/components/auth-session-status.blade.php new file mode 100644 index 0000000..a39bc7d --- /dev/null +++ b/resources/views/components/auth-session-status.blade.php @@ -0,0 +1,7 @@ +@props(['status']) + +@if ($status) +
merge(['class' => 'font-medium text-sm text-green-600 dark:text-green-400']) }}> + {{ $status }} +
+@endif diff --git a/resources/views/components/danger-button.blade.php b/resources/views/components/danger-button.blade.php new file mode 100644 index 0000000..d7417b2 --- /dev/null +++ b/resources/views/components/danger-button.blade.php @@ -0,0 +1,3 @@ + diff --git a/resources/views/components/dropdown-link.blade.php b/resources/views/components/dropdown-link.blade.php new file mode 100644 index 0000000..6b54bfb --- /dev/null +++ b/resources/views/components/dropdown-link.blade.php @@ -0,0 +1 @@ +merge(['class' => 'block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-none focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out']) }}>{{ $slot }} diff --git a/resources/views/components/dropdown.blade.php b/resources/views/components/dropdown.blade.php new file mode 100644 index 0000000..ff24198 --- /dev/null +++ b/resources/views/components/dropdown.blade.php @@ -0,0 +1,43 @@ +@props(['align' => 'right', 'width' => '48', 'contentClasses' => 'py-1 bg-white dark:bg-gray-700']) + +@php +switch ($align) { + case 'left': + $alignmentClasses = 'origin-top-left left-0'; + break; + case 'top': + $alignmentClasses = 'origin-top'; + break; + case 'right': + default: + $alignmentClasses = 'origin-top-right right-0'; + break; +} + +switch ($width) { + case '48': + $width = 'w-48'; + break; +} +@endphp + +
+
+ {{ $trigger }} +
+ + +
diff --git a/resources/views/components/input-error.blade.php b/resources/views/components/input-error.blade.php new file mode 100644 index 0000000..ad95f6b --- /dev/null +++ b/resources/views/components/input-error.blade.php @@ -0,0 +1,9 @@ +@props(['messages']) + +@if ($messages) +
    merge(['class' => 'text-sm text-red-600 dark:text-red-400 space-y-1']) }}> + @foreach ((array) $messages as $message) +
  • {{ $message }}
  • + @endforeach +
+@endif diff --git a/resources/views/components/input-label.blade.php b/resources/views/components/input-label.blade.php new file mode 100644 index 0000000..e93b059 --- /dev/null +++ b/resources/views/components/input-label.blade.php @@ -0,0 +1,5 @@ +@props(['value']) + + diff --git a/resources/views/components/modal.blade.php b/resources/views/components/modal.blade.php new file mode 100644 index 0000000..4271d97 --- /dev/null +++ b/resources/views/components/modal.blade.php @@ -0,0 +1,77 @@ +@props([ + 'name', + 'show' => false, + 'maxWidth' => '2xl' +]) + +@php +$maxWidth = [ + 'sm' => 'sm:max-w-sm', + 'md' => 'sm:max-w-md', + 'lg' => 'sm:max-w-lg', + 'xl' => 'sm:max-w-xl', + '2xl' => 'sm:max-w-2xl', +][$maxWidth]; +@endphp + +
+
+
+
+ +
+ {{ $slot }} +
+
diff --git a/resources/views/components/nav-link.blade.php b/resources/views/components/nav-link.blade.php new file mode 100644 index 0000000..37bad55 --- /dev/null +++ b/resources/views/components/nav-link.blade.php @@ -0,0 +1,11 @@ +@props(['active']) + +@php +$classes = ($active ?? false) + ? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 dark:border-indigo-600 text-sm font-medium leading-5 text-gray-900 dark:text-gray-100 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out' + : 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300 dark:hover:border-gray-700 focus:outline-none focus:text-gray-700 dark:focus:text-gray-300 focus:border-gray-300 dark:focus:border-gray-700 transition duration-150 ease-in-out'; +@endphp + +merge(['class' => $classes]) }}> + {{ $slot }} + diff --git a/resources/views/components/primary-button.blade.php b/resources/views/components/primary-button.blade.php new file mode 100644 index 0000000..99bf389 --- /dev/null +++ b/resources/views/components/primary-button.blade.php @@ -0,0 +1,3 @@ + diff --git a/resources/views/components/responsive-nav-link.blade.php b/resources/views/components/responsive-nav-link.blade.php new file mode 100644 index 0000000..1148d9a --- /dev/null +++ b/resources/views/components/responsive-nav-link.blade.php @@ -0,0 +1,11 @@ +@props(['active']) + +@php +$classes = ($active ?? false) + ? 'block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 dark:border-indigo-600 text-left text-base font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-900/50 focus:outline-none focus:text-indigo-800 dark:focus:text-indigo-200 focus:bg-indigo-100 dark:focus:bg-indigo-900 focus:border-indigo-700 dark:focus:border-indigo-300 transition duration-150 ease-in-out' + : 'block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600 focus:outline-none focus:text-gray-800 dark:focus:text-gray-200 focus:bg-gray-50 dark:focus:bg-gray-700 focus:border-gray-300 dark:focus:border-gray-600 transition duration-150 ease-in-out'; +@endphp + +merge(['class' => $classes]) }}> + {{ $slot }} + diff --git a/resources/views/components/secondary-button.blade.php b/resources/views/components/secondary-button.blade.php new file mode 100644 index 0000000..fa1c549 --- /dev/null +++ b/resources/views/components/secondary-button.blade.php @@ -0,0 +1,3 @@ + diff --git a/resources/views/components/text-input.blade.php b/resources/views/components/text-input.blade.php new file mode 100644 index 0000000..7779a13 --- /dev/null +++ b/resources/views/components/text-input.blade.php @@ -0,0 +1,3 @@ +@props(['disabled' => false]) + +merge(['class' => 'border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-sm']) !!}> diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php new file mode 100644 index 0000000..4024c64 --- /dev/null +++ b/resources/views/dashboard.blade.php @@ -0,0 +1,17 @@ + + +

+ {{ __('Dashboard') }} +

+
+ +
+
+
+
+ {{ __("You're logged in!") }} +
+
+
+
+
diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php index 7d600ca..02ec657 100644 --- a/resources/views/dashboard/index.blade.php +++ b/resources/views/dashboard/index.blade.php @@ -1,8 +1,6 @@ @extends('layouts.main') @section('title', 'Dashboard') @section('content') - {{-- - {{-- --}} @endsection diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php new file mode 100644 index 0000000..9069c10 --- /dev/null +++ b/resources/views/layouts/app.blade.php @@ -0,0 +1,36 @@ + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + @vite(['resources/css/app.css', 'resources/js/app.js']) + + +
+ @include('layouts.navigation') + + + @if (isset($header)) +
+
+ {{ $header }} +
+
+ @endif + + +
+ {{ $slot }} +
+
+ + diff --git a/resources/views/layouts/guest.blade.php b/resources/views/layouts/guest.blade.php new file mode 100644 index 0000000..4b369b6 --- /dev/null +++ b/resources/views/layouts/guest.blade.php @@ -0,0 +1,30 @@ + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + @vite(['resources/css/app.css', 'resources/js/app.js']) + + +
+ + +
+ {{ $slot }} +
+
+ + diff --git a/resources/views/layouts/link.blade.php b/resources/views/layouts/link.blade.php index 19a54b3..f8b9fed 100644 --- a/resources/views/layouts/link.blade.php +++ b/resources/views/layouts/link.blade.php @@ -1,8 +1,8 @@ - + +{{-- --}} diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php index 3f2466b..4e1899d 100644 --- a/resources/views/layouts/main.blade.php +++ b/resources/views/layouts/main.blade.php @@ -63,21 +63,42 @@ @include('layouts.script') + + + + diff --git a/resources/views/layouts/navbar.blade.php b/resources/views/layouts/navbar.blade.php index 6f03143..b584d9d 100644 --- a/resources/views/layouts/navbar.blade.php +++ b/resources/views/layouts/navbar.blade.php @@ -170,16 +170,16 @@ @@ -22,17 +22,17 @@ @@ -47,12 +47,12 @@ diff --git a/resources/views/profil/profil.blade.php b/resources/views/profil/profil.blade.php index c429ae9..7d30f1f 100644 --- a/resources/views/profil/profil.blade.php +++ b/resources/views/profil/profil.blade.php @@ -1,5 +1,146 @@ @extends('layouts.main') @section('title', 'Profil') @section('content') -

Halaman Profil

+
+
+
+
+ +
+ + @error('name') +
{{ $message }}
+ @enderror +
+ + +
+ + @error('email') +
{{ $message }}
+ @enderror +
+ + +
+ + @error('phone') +
{{ $message }}
+ @enderror +
+
+
+ {{--
+ {{ auth()->user()->name }}
+ + --}} +
+ @if (auth()->user()->foto === null) + {{ auth()->user()->name }}
+ @else + {{ auth()->user()->name }}
+ @endif + {{-- + --}} +
+
+ @csrf +
+ +
+ + Hapus +
+
+ {{-- +
--}} +
+
+
+ + + @error('tgl_lahir') +
{{ $message }}
+ @enderror +
+ + +
+ + @error('jenis_kelamin') +
{{ $message }}
+ @enderror +
+ + +
+ + @error('agama') +
{{ $message }}
+ @enderror +
+ + +
+ + @error('alamat') +
{{ $message }}
+ @enderror +
+ +
+
+ + +
+
+
+
+ + + @endsection diff --git a/resources/views/profil/setting.blade.php b/resources/views/profil/setting.blade.php new file mode 100644 index 0000000..b994747 --- /dev/null +++ b/resources/views/profil/setting.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.main') +@section('title', 'Setting Akun') +@section('content') +
+
+ @include('profile.partials.update-profile-information-form') +
+
+
+
+ @include('profile.partials.update-password-form') +
+
+ +
+
+ {{--
+
+ @include('profile.partials.update-profile-information-form') +
+
--}} + + {{--
+
+ @include('profile.partials.update-password-form') +
+
--}} + +
+
+ @include('profile.partials.delete-user-form') +
+
+
+
+@endsection diff --git a/resources/views/profile/edit.blade.php b/resources/views/profile/edit.blade.php new file mode 100644 index 0000000..4578150 --- /dev/null +++ b/resources/views/profile/edit.blade.php @@ -0,0 +1,29 @@ + + +

+ {{ __('Profile') }} +

+
+ + {{--
+
+
+
+ @include('profile.partials.update-profile-information-form') +
+
+ +
+
+ @include('profile.partials.update-password-form') +
+
+ +
+
+ @include('profile.partials.delete-user-form') +
+
+
+
--}} +
diff --git a/resources/views/profile/partials/delete-user-form.blade.php b/resources/views/profile/partials/delete-user-form.blade.php new file mode 100644 index 0000000..87d31b5 --- /dev/null +++ b/resources/views/profile/partials/delete-user-form.blade.php @@ -0,0 +1,55 @@ +
+
+

+ {{ __('Delete Account') }} +

+ +

+ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.') }} +

+
+ + {{ __('Delete Account') }} + + +
+ @csrf + @method('delete') + +

+ {{ __('Are you sure you want to delete your account?') }} +

+ +

+ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.') }} +

+ +
+ + + + + +
+ +
+ + {{ __('Cancel') }} + + + + {{ __('Delete Account') }} + +
+
+
+
diff --git a/resources/views/profile/partials/update-password-form.blade.php b/resources/views/profile/partials/update-password-form.blade.php new file mode 100644 index 0000000..a66e1ac --- /dev/null +++ b/resources/views/profile/partials/update-password-form.blade.php @@ -0,0 +1,48 @@ +
+
+

+ {{ __('Update Password') }} +

+ +

+ {{ __('Ensure your account is using a long, random password to stay secure.') }} +

+
+ +
+ @csrf + @method('put') + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ {{ __('Save') }} + + @if (session('status') === 'password-updated') +

{{ __('Saved.') }}

+ @endif +
+
+
diff --git a/resources/views/profile/partials/update-profile-information-form.blade.php b/resources/views/profile/partials/update-profile-information-form.blade.php new file mode 100644 index 0000000..b2b5c11 --- /dev/null +++ b/resources/views/profile/partials/update-profile-information-form.blade.php @@ -0,0 +1,62 @@ +
+
+

+ {{ __('Informasi Akun') }} +

+ +

+ {{ __('Perbarui informasi nama profil dan alamat email akun Anda.') }} +

+
+ +
+ @csrf +
+ +
+ @csrf + @method('patch') + +
+ + + +
+ +
+ + + + + @if ($user instanceof \Illuminate\Contracts\Auth\MustVerifyEmail && !$user->hasVerifiedEmail()) +
+

+ {{ __('Your email address is unverified.') }} + + +

+ + @if (session('status') === 'verification-link-sent') +

+ {{ __('A new verification link has been sent to your email address.') }} +

+ @endif +
+ @endif +
+ +
+ {{ __('Save') }} + + @if (session('status') === 'profile-updated') +

{{ __('Saved.') }}

+ @endif +
+
+
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index 638ec96..d23b99e 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -20,7 +20,7 @@ @if (Route::has('login'))
@auth - Home + Dashboard @else Log in diff --git a/routes/auth.php b/routes/auth.php new file mode 100644 index 0000000..3926ecf --- /dev/null +++ b/routes/auth.php @@ -0,0 +1,59 @@ +group(function () { + Route::get('register', [RegisteredUserController::class, 'create']) + ->name('register'); + + Route::post('register', [RegisteredUserController::class, 'store']); + + Route::get('login', [AuthenticatedSessionController::class, 'create']) + ->name('login'); + + Route::post('login', [AuthenticatedSessionController::class, 'store']); + + Route::get('forgot-password', [PasswordResetLinkController::class, 'create']) + ->name('password.request'); + + Route::post('forgot-password', [PasswordResetLinkController::class, 'store']) + ->name('password.email'); + + Route::get('reset-password/{token}', [NewPasswordController::class, 'create']) + ->name('password.reset'); + + Route::post('reset-password', [NewPasswordController::class, 'store']) + ->name('password.store'); +}); + +Route::middleware('auth')->group(function () { + Route::get('verify-email', EmailVerificationPromptController::class) + ->name('verification.notice'); + + Route::get('verify-email/{id}/{hash}', VerifyEmailController::class) + ->middleware(['signed', 'throttle:6,1']) + ->name('verification.verify'); + + Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store']) + ->middleware('throttle:6,1') + ->name('verification.send'); + + Route::get('confirm-password', [ConfirmablePasswordController::class, 'show']) + ->name('password.confirm'); + + Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']); + + Route::put('password', [PasswordController::class, 'update'])->name('password.update'); + + Route::post('logout', [AuthenticatedSessionController::class, 'destroy']) + ->name('logout'); +}); diff --git a/routes/web.php b/routes/web.php index 673c384..84db265 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,11 @@ middleware(['auth', 'verified'])->name('dashboard'); +// Route::get('/dashboard2', function () { +// return view('dashboard.index'); +// })->middleware(['auth', 'verified'])->name('dashboard'); -Route::get('/transaksi', function () { - return view('dashboard.transaksi'); +Route::middleware('auth')->group(function () { + Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); + Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); + Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy'); + Route::post('/profile-update', [ProfileController::class, 'updatePhoto'])->name('profile-update'); + Route::get('/setting', [ProfileController::class, 'setting'])->name('profile.setting'); }); -Route::get('/peminjaman', function () { - return view('dashboard.peminjaman'); -}); +Route::group(['prefix' => 'dashboard'], function () { + //Halaman dashboard + Route::middleware('auth')->get('', function () { + return view('dashboard.index'); + }); -Route::get('/pengembalian', function () { - return view('dashboard.pengembalian'); -}); + //Halaman Transaksi + Route::middleware('auth')->resource('/transaksi', TransaksiController::class); -Route::get('/pengadaan', function () { - return view('addons.pengadaan'); -}); + //Halaman Peminjaman + Route::middleware('auth')->resource('/peminjaman', PeminjamanController::class); -Route::get('/pengadaan', function () { - return view('addons.pengadaan'); -}); + //Halaman Pengembalian + Route::middleware('auth')->resource('/pengembalian', PengembalianController::class); -Route::get('/settingPlatform', function () { - return view('addons.settingPlatform'); -}); + //Halaman Pengadaan + Route::middleware('auth')->resource('/pengadaan', PengadaanController::class); -Route::get('/profil', function () { - return view('profil.profil'); + //Halaman Setting Platform + Route::middleware('auth')->resource('/settingPlatform', SettingPlatformController::class); }); + +require __DIR__ . '/auth.php'; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..c29eb1a --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,21 @@ +import defaultTheme from 'tailwindcss/defaultTheme'; +import forms from '@tailwindcss/forms'; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php', + './storage/framework/views/*.php', + './resources/views/**/*.blade.php', + ], + + theme: { + extend: { + fontFamily: { + sans: ['Figtree', ...defaultTheme.fontFamily.sans], + }, + }, + }, + + plugins: [forms], +}; diff --git a/tests/Feature/Auth/AuthenticationTest.php b/tests/Feature/Auth/AuthenticationTest.php new file mode 100644 index 0000000..2d0eeed --- /dev/null +++ b/tests/Feature/Auth/AuthenticationTest.php @@ -0,0 +1,45 @@ +get('/login'); + + $response->assertStatus(200); + } + + public function test_users_can_authenticate_using_the_login_screen(): void + { + $user = User::factory()->create(); + + $response = $this->post('/login', [ + 'email' => $user->email, + 'password' => 'password', + ]); + + $this->assertAuthenticated(); + $response->assertRedirect(RouteServiceProvider::HOME); + } + + public function test_users_can_not_authenticate_with_invalid_password(): void + { + $user = User::factory()->create(); + + $this->post('/login', [ + 'email' => $user->email, + 'password' => 'wrong-password', + ]); + + $this->assertGuest(); + } +} diff --git a/tests/Feature/Auth/EmailVerificationTest.php b/tests/Feature/Auth/EmailVerificationTest.php new file mode 100644 index 0000000..ba19d9c --- /dev/null +++ b/tests/Feature/Auth/EmailVerificationTest.php @@ -0,0 +1,65 @@ +create([ + 'email_verified_at' => null, + ]); + + $response = $this->actingAs($user)->get('/verify-email'); + + $response->assertStatus(200); + } + + public function test_email_can_be_verified(): void + { + $user = User::factory()->create([ + 'email_verified_at' => null, + ]); + + Event::fake(); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1($user->email)] + ); + + $response = $this->actingAs($user)->get($verificationUrl); + + Event::assertDispatched(Verified::class); + $this->assertTrue($user->fresh()->hasVerifiedEmail()); + $response->assertRedirect(RouteServiceProvider::HOME.'?verified=1'); + } + + public function test_email_is_not_verified_with_invalid_hash(): void + { + $user = User::factory()->create([ + 'email_verified_at' => null, + ]); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1('wrong-email')] + ); + + $this->actingAs($user)->get($verificationUrl); + + $this->assertFalse($user->fresh()->hasVerifiedEmail()); + } +} diff --git a/tests/Feature/Auth/PasswordConfirmationTest.php b/tests/Feature/Auth/PasswordConfirmationTest.php new file mode 100644 index 0000000..ff85721 --- /dev/null +++ b/tests/Feature/Auth/PasswordConfirmationTest.php @@ -0,0 +1,44 @@ +create(); + + $response = $this->actingAs($user)->get('/confirm-password'); + + $response->assertStatus(200); + } + + public function test_password_can_be_confirmed(): void + { + $user = User::factory()->create(); + + $response = $this->actingAs($user)->post('/confirm-password', [ + 'password' => 'password', + ]); + + $response->assertRedirect(); + $response->assertSessionHasNoErrors(); + } + + public function test_password_is_not_confirmed_with_invalid_password(): void + { + $user = User::factory()->create(); + + $response = $this->actingAs($user)->post('/confirm-password', [ + 'password' => 'wrong-password', + ]); + + $response->assertSessionHasErrors(); + } +} diff --git a/tests/Feature/Auth/PasswordResetTest.php b/tests/Feature/Auth/PasswordResetTest.php new file mode 100644 index 0000000..4a26065 --- /dev/null +++ b/tests/Feature/Auth/PasswordResetTest.php @@ -0,0 +1,71 @@ +get('/forgot-password'); + + $response->assertStatus(200); + } + + public function test_reset_password_link_can_be_requested(): void + { + Notification::fake(); + + $user = User::factory()->create(); + + $this->post('/forgot-password', ['email' => $user->email]); + + Notification::assertSentTo($user, ResetPassword::class); + } + + public function test_reset_password_screen_can_be_rendered(): void + { + Notification::fake(); + + $user = User::factory()->create(); + + $this->post('/forgot-password', ['email' => $user->email]); + + Notification::assertSentTo($user, ResetPassword::class, function ($notification) { + $response = $this->get('/reset-password/'.$notification->token); + + $response->assertStatus(200); + + return true; + }); + } + + public function test_password_can_be_reset_with_valid_token(): void + { + Notification::fake(); + + $user = User::factory()->create(); + + $this->post('/forgot-password', ['email' => $user->email]); + + Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) { + $response = $this->post('/reset-password', [ + 'token' => $notification->token, + 'email' => $user->email, + 'password' => 'password', + 'password_confirmation' => 'password', + ]); + + $response->assertSessionHasNoErrors(); + + return true; + }); + } +} diff --git a/tests/Feature/Auth/PasswordUpdateTest.php b/tests/Feature/Auth/PasswordUpdateTest.php new file mode 100644 index 0000000..ca28c6c --- /dev/null +++ b/tests/Feature/Auth/PasswordUpdateTest.php @@ -0,0 +1,51 @@ +create(); + + $response = $this + ->actingAs($user) + ->from('/profile') + ->put('/password', [ + 'current_password' => 'password', + 'password' => 'new-password', + 'password_confirmation' => 'new-password', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/profile'); + + $this->assertTrue(Hash::check('new-password', $user->refresh()->password)); + } + + public function test_correct_password_must_be_provided_to_update_password(): void + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->from('/profile') + ->put('/password', [ + 'current_password' => 'wrong-password', + 'password' => 'new-password', + 'password_confirmation' => 'new-password', + ]); + + $response + ->assertSessionHasErrorsIn('updatePassword', 'current_password') + ->assertRedirect('/profile'); + } +} diff --git a/tests/Feature/Auth/RegistrationTest.php b/tests/Feature/Auth/RegistrationTest.php new file mode 100644 index 0000000..30829b1 --- /dev/null +++ b/tests/Feature/Auth/RegistrationTest.php @@ -0,0 +1,32 @@ +get('/register'); + + $response->assertStatus(200); + } + + public function test_new_users_can_register(): void + { + $response = $this->post('/register', [ + 'name' => 'Test User', + 'email' => 'test@example.com', + 'password' => 'password', + 'password_confirmation' => 'password', + ]); + + $this->assertAuthenticated(); + $response->assertRedirect(RouteServiceProvider::HOME); + } +} diff --git a/tests/Feature/ProfileTest.php b/tests/Feature/ProfileTest.php new file mode 100644 index 0000000..252fdcc --- /dev/null +++ b/tests/Feature/ProfileTest.php @@ -0,0 +1,99 @@ +create(); + + $response = $this + ->actingAs($user) + ->get('/profile'); + + $response->assertOk(); + } + + public function test_profile_information_can_be_updated(): void + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->patch('/profile', [ + 'name' => 'Test User', + 'email' => 'test@example.com', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/profile'); + + $user->refresh(); + + $this->assertSame('Test User', $user->name); + $this->assertSame('test@example.com', $user->email); + $this->assertNull($user->email_verified_at); + } + + public function test_email_verification_status_is_unchanged_when_the_email_address_is_unchanged(): void + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->patch('/profile', [ + 'name' => 'Test User', + 'email' => $user->email, + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/profile'); + + $this->assertNotNull($user->refresh()->email_verified_at); + } + + public function test_user_can_delete_their_account(): void + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->delete('/profile', [ + 'password' => 'password', + ]); + + $response + ->assertSessionHasNoErrors() + ->assertRedirect('/'); + + $this->assertGuest(); + $this->assertNull($user->fresh()); + } + + public function test_correct_password_must_be_provided_to_delete_account(): void + { + $user = User::factory()->create(); + + $response = $this + ->actingAs($user) + ->from('/profile') + ->delete('/profile', [ + 'password' => 'wrong-password', + ]); + + $response + ->assertSessionHasErrorsIn('userDeletion', 'password') + ->assertRedirect('/profile'); + + $this->assertNotNull($user->fresh()); + } +} diff --git a/vite.config.js b/vite.config.js index 421b569..89f26f5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -4,7 +4,10 @@ import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ - input: ['resources/css/app.css', 'resources/js/app.js'], + input: [ + 'resources/css/app.css', + 'resources/js/app.js', + ], refresh: true, }), ],
+ @csrf + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ +
+ +
+