diff --git a/backend/.editorconfig b/.editorconfig similarity index 100% rename from backend/.editorconfig rename to .editorconfig diff --git a/backend/.env.example b/.env.example similarity index 100% rename from backend/.env.example rename to .env.example diff --git a/backend/.gitattributes b/.gitattributes similarity index 100% rename from backend/.gitattributes rename to .gitattributes diff --git a/.gitignore b/.gitignore index a09c56d..be5cd4b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,24 @@ +/composer.lock +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/pail +/vendor +.env +.env.backup +.env.production +.phpactor.json +.phpunit.result.cache +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +/auth.json +/.fleet /.idea +/.nova +/.vscode +/.zed diff --git a/backend/Dockerfile b/Dockerfile similarity index 100% rename from backend/Dockerfile rename to Dockerfile diff --git a/backend/LICENSE.md b/LICENSE.md similarity index 100% rename from backend/LICENSE.md rename to LICENSE.md diff --git a/backend/README.md b/README.md similarity index 100% rename from backend/README.md rename to README.md diff --git a/backend/app/Console/Commands/GenerateSchedulesCommand.php b/app/Console/Commands/GenerateSchedulesCommand.php similarity index 100% rename from backend/app/Console/Commands/GenerateSchedulesCommand.php rename to app/Console/Commands/GenerateSchedulesCommand.php diff --git a/backend/app/Exceptions/CustomException.php b/app/Exceptions/CustomException.php similarity index 100% rename from backend/app/Exceptions/CustomException.php rename to app/Exceptions/CustomException.php diff --git a/backend/app/Http/Controllers/Api/ApiController.php b/app/Http/Controllers/Api/ApiController.php similarity index 100% rename from backend/app/Http/Controllers/Api/ApiController.php rename to app/Http/Controllers/Api/ApiController.php diff --git a/backend/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php similarity index 100% rename from backend/app/Http/Controllers/Controller.php rename to app/Http/Controllers/Controller.php diff --git a/backend/app/Http/Middleware/ForceJsonResponse.php b/app/Http/Middleware/ForceJsonResponse.php similarity index 63% rename from backend/app/Http/Middleware/ForceJsonResponse.php rename to app/Http/Middleware/ForceJsonResponse.php index 753249e..0de547b 100644 --- a/backend/app/Http/Middleware/ForceJsonResponse.php +++ b/app/Http/Middleware/ForceJsonResponse.php @@ -10,7 +10,10 @@ class ForceJsonResponse { public function handle(Request $request, Closure $next): Response { - $request->headers->set('Accept', 'application/json'); + // Only force JSON for API routes + if ($request->is('api/*')) { + $request->headers->set('Accept', 'application/json'); + } return $next($request); } diff --git a/backend/app/Http/Resources/MinimalScheduleResource.php b/app/Http/Resources/MinimalScheduleResource.php similarity index 100% rename from backend/app/Http/Resources/MinimalScheduleResource.php rename to app/Http/Resources/MinimalScheduleResource.php diff --git a/backend/app/Http/Resources/MinimalScheduledUserDishResource.php b/app/Http/Resources/MinimalScheduledUserDishResource.php similarity index 100% rename from backend/app/Http/Resources/MinimalScheduledUserDishResource.php rename to app/Http/Resources/MinimalScheduledUserDishResource.php diff --git a/backend/app/Http/Resources/ScheduledUserDishResource.php b/app/Http/Resources/ScheduledUserDishResource.php similarity index 100% rename from backend/app/Http/Resources/ScheduledUserDishResource.php rename to app/Http/Resources/ScheduledUserDishResource.php diff --git a/backend/app/Http/Resources/UserDishResource.php b/app/Http/Resources/UserDishResource.php similarity index 100% rename from backend/app/Http/Resources/UserDishResource.php rename to app/Http/Resources/UserDishResource.php diff --git a/backend/app/Http/Resources/UserResource.php b/app/Http/Resources/UserResource.php similarity index 100% rename from backend/app/Http/Resources/UserResource.php rename to app/Http/Resources/UserResource.php diff --git a/backend/app/Http/Resources/UserWithDishesResource.php b/app/Http/Resources/UserWithDishesResource.php similarity index 100% rename from backend/app/Http/Resources/UserWithDishesResource.php rename to app/Http/Resources/UserWithDishesResource.php diff --git a/backend/app/Http/Resources/UserWithUserDishesResource.php b/app/Http/Resources/UserWithUserDishesResource.php similarity index 100% rename from backend/app/Http/Resources/UserWithUserDishesResource.php rename to app/Http/Resources/UserWithUserDishesResource.php diff --git a/app/Livewire/Auth/Login.php b/app/Livewire/Auth/Login.php new file mode 100644 index 0000000..2fb1e50 --- /dev/null +++ b/app/Livewire/Auth/Login.php @@ -0,0 +1,36 @@ +validate(); + + if (Auth::attempt(['email' => $this->email, 'password' => $this->password], $this->remember)) { + session()->regenerate(); + return redirect()->intended(route('dashboard')); + } + + $this->addError('email', 'These credentials do not match our records.'); + } + + public function render() + { + return view('livewire.auth.login') + ->layout('layouts.guest'); + } +} \ No newline at end of file diff --git a/app/Livewire/Auth/Register.php b/app/Livewire/Auth/Register.php new file mode 100644 index 0000000..06ab32d --- /dev/null +++ b/app/Livewire/Auth/Register.php @@ -0,0 +1,59 @@ +count() === 1) { + $this->planner_id = $planners->first()->id; + } + } + + public function register() + { + $this->validate(); + + $user = User::create([ + 'name' => $this->name, + 'email' => $this->email, + 'password' => Hash::make($this->password), + 'planner_id' => $this->planner_id, + ]); + + Auth::login($user); + session()->regenerate(); + + return redirect()->route('dashboard'); + } + + public function render() + { + return view('livewire.auth.register', [ + 'planners' => \App\Models\Planner::all() + ])->layout('layouts.guest'); + } +} \ No newline at end of file diff --git a/app/Livewire/Dishes/DishesList.php b/app/Livewire/Dishes/DishesList.php new file mode 100644 index 0000000..7b947bc --- /dev/null +++ b/app/Livewire/Dishes/DishesList.php @@ -0,0 +1,122 @@ + 'required|string|max:255', + 'selectedUsers' => 'array', + ]; + + public function render() + { + $dishes = Dish::with('users') + ->orderBy('name') + ->paginate(10); + + $users = User::where('planner_id', auth()->user()->planner_id) + ->orderBy('name') + ->get(); + + return view('livewire.dishes.dishes-list', [ + 'dishes' => $dishes, + 'users' => $users + ]); + } + + public function create() + { + $this->reset(['name', 'selectedUsers']); + $this->resetValidation(); + $this->showCreateModal = true; + } + + public function store() + { + $this->validate(); + + $dish = Dish::create([ + 'name' => $this->name, + 'planner_id' => auth()->user()->planner_id, + ]); + + // Attach selected users + if (!empty($this->selectedUsers)) { + $dish->users()->attach($this->selectedUsers); + } + + $this->showCreateModal = false; + $this->reset(['name', 'selectedUsers']); + + session()->flash('success', 'Dish created successfully.'); + } + + public function edit(Dish $dish) + { + $this->editingDish = $dish; + $this->name = $dish->name; + $this->selectedUsers = $dish->users->pluck('id')->toArray(); + $this->resetValidation(); + $this->showEditModal = true; + } + + public function update() + { + $this->validate(); + + $this->editingDish->update([ + 'name' => $this->name, + ]); + + // Sync users + $this->editingDish->users()->sync($this->selectedUsers); + + $this->showEditModal = false; + $this->reset(['name', 'selectedUsers', 'editingDish']); + + session()->flash('success', 'Dish updated successfully.'); + } + + public function confirmDelete(Dish $dish) + { + $this->deletingDish = $dish; + $this->showDeleteModal = true; + } + + public function delete() + { + $this->deletingDish->users()->detach(); + $this->deletingDish->delete(); + $this->showDeleteModal = false; + $this->deletingDish = null; + + session()->flash('success', 'Dish deleted successfully.'); + } + + public function cancel() + { + $this->showCreateModal = false; + $this->showEditModal = false; + $this->showDeleteModal = false; + $this->reset(['name', 'selectedUsers', 'editingDish', 'deletingDish']); + } +} \ No newline at end of file diff --git a/app/Livewire/Schedule/ScheduleCalendar.php b/app/Livewire/Schedule/ScheduleCalendar.php new file mode 100644 index 0000000..249ae39 --- /dev/null +++ b/app/Livewire/Schedule/ScheduleCalendar.php @@ -0,0 +1,152 @@ +currentMonth = now()->month; + $this->currentYear = now()->year; + $this->generateCalendar(); + } + + protected $listeners = ['schedule-generated' => 'refreshCalendar']; + + public function render() + { + return view('livewire.schedule.schedule-calendar'); + } + + public function refreshCalendar() + { + $this->generateCalendar(); + } + + public function generateCalendar() + { + $this->calendarDays = []; + + // Get first day of the month and total days + $firstDay = Carbon::createFromDate($this->currentYear, $this->currentMonth, 1); + $daysInMonth = $firstDay->daysInMonth; + + // Generate 31 days for consistency with React version + for ($day = 1; $day <= 31; $day++) { + if ($day <= $daysInMonth) { + $date = Carbon::createFromDate($this->currentYear, $this->currentMonth, $day); + + // Get scheduled dishes for this date + $scheduledDishes = ScheduledUserDish::with(['user', 'dish']) + ->whereDate('date', $date->format('Y-m-d')) + ->get(); + + $this->calendarDays[] = [ + 'day' => $day, + 'date' => $date, + 'isToday' => $date->isToday(), + 'scheduledDishes' => $scheduledDishes, + 'isEmpty' => $scheduledDishes->isEmpty() + ]; + } else { + // Empty slot for days that don't exist in this month + $this->calendarDays[] = [ + 'day' => null, + 'date' => null, + 'isToday' => false, + 'scheduledDishes' => collect(), + 'isEmpty' => true + ]; + } + } + } + + public function previousMonth() + { + if ($this->currentMonth === 1) { + $this->currentMonth = 12; + $this->currentYear--; + } else { + $this->currentMonth--; + } + $this->generateCalendar(); + } + + public function nextMonth() + { + if ($this->currentMonth === 12) { + $this->currentMonth = 1; + $this->currentYear++; + } else { + $this->currentMonth++; + } + $this->generateCalendar(); + } + + + public function regenerateForUserDate($date, $userId) + { + $this->regenerateDate = $date; + $this->regenerateUserId = $userId; + $this->showRegenerateModal = true; + } + + public function confirmRegenerate() + { + try { + // Delete existing scheduled dish for this user on this date + ScheduledUserDish::whereDate('date', $this->regenerateDate) + ->where('user_id', $this->regenerateUserId) + ->delete(); + + // You could call a specific regeneration method here + // For now, we'll just delete and let the user generate again + + $this->showRegenerateModal = false; + $this->generateCalendar(); // Refresh calendar + + session()->flash('success', 'Schedule regenerated for the selected date!'); + } catch (\Exception $e) { + session()->flash('error', 'Error regenerating schedule: ' . $e->getMessage()); + } + } + + public function skipDay($date, $userId) + { + try { + // Mark this day as skipped or delete the assignment + ScheduledUserDish::whereDate('date', $date) + ->where('user_id', $userId) + ->delete(); + + $this->generateCalendar(); // Refresh calendar + + session()->flash('success', 'Day skipped successfully!'); + } catch (\Exception $e) { + session()->flash('error', 'Error skipping day: ' . $e->getMessage()); + } + } + + public function cancel() + { + $this->showRegenerateModal = false; + $this->regenerateDate = null; + $this->regenerateUserId = null; + } + + public function getMonthNameProperty() + { + return Carbon::createFromDate($this->currentYear, $this->currentMonth, 1)->format('F Y'); + } +} \ No newline at end of file diff --git a/app/Livewire/Schedule/ScheduleGenerator.php b/app/Livewire/Schedule/ScheduleGenerator.php new file mode 100644 index 0000000..9843bdf --- /dev/null +++ b/app/Livewire/Schedule/ScheduleGenerator.php @@ -0,0 +1,202 @@ +selectedMonth = now()->month; + $this->selectedYear = now()->year; + + // Select all users by default + $this->selectedUsers = User::where('planner_id', auth()->user()->planner_id) + ->pluck('id') + ->toArray(); + } + + public function render() + { + $users = User::where('planner_id', auth()->user()->planner_id) + ->orderBy('name') + ->get(); + + $months = [ + 1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', + 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', + 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December' + ]; + + $years = range(now()->year - 1, now()->year + 2); + + return view('livewire.schedule.schedule-generator', [ + 'users' => $users, + 'months' => $months, + 'years' => $years + ]); + } + + public function generate() + { + $this->validate([ + 'selectedUsers' => 'required|array|min:1', + 'selectedMonth' => 'required|integer|min:1|max:12', + 'selectedYear' => 'required|integer|min:2020|max:2030', + ]); + + $this->isGenerating = true; + + try { + $startDate = Carbon::createFromDate($this->selectedYear, $this->selectedMonth, 1); + $endDate = $startDate->copy()->endOfMonth(); + + // Clear existing schedule if requested + if ($this->clearExisting) { + ScheduledUserDish::whereBetween('date', [$startDate, $endDate]) + ->whereIn('user_id', $this->selectedUsers) + ->delete(); + } + + // Get all dishes assigned to selected users + $userDishes = []; + foreach ($this->selectedUsers as $userId) { + $user = User::find($userId); + $dishes = $user->dishes()->get(); + + if ($dishes->isNotEmpty()) { + $userDishes[$userId] = $dishes->toArray(); + } + } + + // Generate schedule for each day + $currentDate = $startDate->copy(); + while ($currentDate <= $endDate) { + foreach ($this->selectedUsers as $userId) { + // Skip if user already has a dish for this day + if (ScheduledUserDish::where('date', $currentDate->format('Y-m-d')) + ->where('user_id', $userId) + ->exists()) { + continue; + } + + // Get available dishes for this user + if (!isset($userDishes[$userId]) || empty($userDishes[$userId])) { + continue; + } + + $availableDishes = $userDishes[$userId]; + + // Simple random assignment (you can implement more complex logic here) + if (!empty($availableDishes)) { + $randomDish = $availableDishes[array_rand($availableDishes)]; + + ScheduledUserDish::create([ + 'user_id' => $userId, + 'dish_id' => $randomDish['id'], + 'date' => $currentDate->format('Y-m-d'), + 'planner_id' => auth()->user()->planner_id, + ]); + } + } + + $currentDate->addDay(); + } + + $this->isGenerating = false; + + // Emit event to refresh calendar + $this->dispatch('schedule-generated'); + + session()->flash('success', 'Schedule generated successfully for ' . + $this->getSelectedMonthName() . ' ' . $this->selectedYear); + + } catch (\Exception $e) { + $this->isGenerating = false; + session()->flash('error', 'Error generating schedule: ' . $e->getMessage()); + } + } + + public function regenerateForDate($date) + { + try { + // Clear existing assignments for this date + ScheduledUserDish::whereDate('date', $date) + ->whereIn('user_id', $this->selectedUsers) + ->delete(); + + // Regenerate for this specific date + $currentDate = Carbon::parse($date); + + foreach ($this->selectedUsers as $userId) { + $user = User::find($userId); + $dishes = $user->dishes()->get(); + + if ($dishes->isNotEmpty()) { + $randomDish = $dishes->random(); + + ScheduledUserDish::create([ + 'user_id' => $userId, + 'dish_id' => $randomDish->id, + 'date' => $currentDate->format('Y-m-d'), + 'planner_id' => auth()->user()->planner_id, + ]); + } + } + + $this->dispatch('schedule-generated'); + session()->flash('success', 'Schedule regenerated for ' . $currentDate->format('M d, Y')); + + } catch (\Exception $e) { + session()->flash('error', 'Error regenerating schedule: ' . $e->getMessage()); + } + } + + public function clearMonth() + { + try { + $startDate = Carbon::createFromDate($this->selectedYear, $this->selectedMonth, 1); + $endDate = $startDate->copy()->endOfMonth(); + + ScheduledUserDish::whereBetween('date', [$startDate, $endDate]) + ->whereIn('user_id', $this->selectedUsers) + ->delete(); + + $this->dispatch('schedule-generated'); + session()->flash('success', 'Schedule cleared for ' . + $this->getSelectedMonthName() . ' ' . $this->selectedYear); + + } catch (\Exception $e) { + session()->flash('error', 'Error clearing schedule: ' . $e->getMessage()); + } + } + + public function toggleAdvancedOptions() + { + $this->showAdvancedOptions = !$this->showAdvancedOptions; + } + + private function getSelectedMonthName() + { + $months = [ + 1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', + 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', + 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December' + ]; + + return $months[$this->selectedMonth]; + } +} \ No newline at end of file diff --git a/app/Livewire/Users/UsersList.php b/app/Livewire/Users/UsersList.php new file mode 100644 index 0000000..963be2c --- /dev/null +++ b/app/Livewire/Users/UsersList.php @@ -0,0 +1,136 @@ + 'required|string|max:255', + 'email' => 'required|email|unique:users,email', + 'password' => 'required|min:8|confirmed', + ]; + + public function render() + { + $users = User::where('planner_id', auth()->user()->planner_id) + ->orderBy('name') + ->paginate(10); + + return view('livewire.users.users-list', [ + 'users' => $users + ]); + } + + public function create() + { + $this->reset(['name', 'email', 'password', 'password_confirmation']); + $this->resetValidation(); + $this->showCreateModal = true; + } + + public function store() + { + $this->validate(); + + User::create([ + 'name' => $this->name, + 'email' => $this->email, + 'password' => bcrypt($this->password), + 'planner_id' => auth()->user()->planner_id, + ]); + + $this->showCreateModal = false; + $this->reset(['name', 'email', 'password', 'password_confirmation']); + + session()->flash('success', 'User created successfully.'); + } + + public function edit(User $user) + { + $this->editingUser = $user; + $this->name = $user->name; + $this->email = $user->email; + $this->password = ''; + $this->password_confirmation = ''; + $this->resetValidation(); + $this->showEditModal = true; + } + + public function update() + { + $rules = [ + 'name' => 'required|string|max:255', + 'email' => 'required|email|unique:users,email,' . $this->editingUser->id, + ]; + + if ($this->password) { + $rules['password'] = 'min:8|confirmed'; + } + + $this->validate($rules); + + $this->editingUser->update([ + 'name' => $this->name, + 'email' => $this->email, + ]); + + if ($this->password) { + $this->editingUser->update([ + 'password' => bcrypt($this->password) + ]); + } + + $this->showEditModal = false; + $this->reset(['name', 'email', 'password', 'password_confirmation', 'editingUser']); + + session()->flash('success', 'User updated successfully.'); + } + + public function confirmDelete(User $user) + { + $this->deletingUser = $user; + $this->showDeleteModal = true; + } + + public function delete() + { + if ($this->deletingUser->id === auth()->id()) { + session()->flash('error', 'You cannot delete your own account.'); + $this->showDeleteModal = false; + return; + } + + $this->deletingUser->delete(); + $this->showDeleteModal = false; + $this->deletingUser = null; + + session()->flash('success', 'User deleted successfully.'); + } + + public function cancel() + { + $this->showCreateModal = false; + $this->showEditModal = false; + $this->showDeleteModal = false; + $this->reset(['name', 'email', 'password', 'password_confirmation', 'editingUser', 'deletingUser']); + } +} \ No newline at end of file diff --git a/backend/app/Models/Dish.php b/app/Models/Dish.php similarity index 100% rename from backend/app/Models/Dish.php rename to app/Models/Dish.php diff --git a/backend/app/Models/MinimumRecurrence.php b/app/Models/MinimumRecurrence.php similarity index 100% rename from backend/app/Models/MinimumRecurrence.php rename to app/Models/MinimumRecurrence.php diff --git a/backend/app/Models/Planner.php b/app/Models/Planner.php similarity index 100% rename from backend/app/Models/Planner.php rename to app/Models/Planner.php diff --git a/backend/app/Models/Schedule.php b/app/Models/Schedule.php similarity index 100% rename from backend/app/Models/Schedule.php rename to app/Models/Schedule.php diff --git a/backend/app/Models/ScheduledUserDish.php b/app/Models/ScheduledUserDish.php similarity index 100% rename from backend/app/Models/ScheduledUserDish.php rename to app/Models/ScheduledUserDish.php diff --git a/backend/app/Models/Scopes/BelongsToPlanner.php b/app/Models/Scopes/BelongsToPlanner.php similarity index 100% rename from backend/app/Models/Scopes/BelongsToPlanner.php rename to app/Models/Scopes/BelongsToPlanner.php diff --git a/backend/app/Models/User.php b/app/Models/User.php similarity index 100% rename from backend/app/Models/User.php rename to app/Models/User.php diff --git a/backend/app/Models/UserDish.php b/app/Models/UserDish.php similarity index 100% rename from backend/app/Models/UserDish.php rename to app/Models/UserDish.php diff --git a/backend/app/Models/UserDishRecurrence.php b/app/Models/UserDishRecurrence.php similarity index 100% rename from backend/app/Models/UserDishRecurrence.php rename to app/Models/UserDishRecurrence.php diff --git a/backend/app/Models/WeeklyRecurrence.php b/app/Models/WeeklyRecurrence.php similarity index 100% rename from backend/app/Models/WeeklyRecurrence.php rename to app/Models/WeeklyRecurrence.php diff --git a/backend/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php similarity index 100% rename from backend/app/Providers/AppServiceProvider.php rename to app/Providers/AppServiceProvider.php diff --git a/backend/app/Services/OutputService.php b/app/Services/OutputService.php similarity index 100% rename from backend/app/Services/OutputService.php rename to app/Services/OutputService.php diff --git a/backend/app/WeekdaysEnum.php b/app/WeekdaysEnum.php similarity index 100% rename from backend/app/WeekdaysEnum.php rename to app/WeekdaysEnum.php diff --git a/backend/artisan b/artisan similarity index 100% rename from backend/artisan rename to artisan diff --git a/backend/.gitignore b/backend/.gitignore deleted file mode 100644 index db67d1f..0000000 --- a/backend/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/composer.lock -/.composer -/.phpunit.cache -/node_modules -/public/build -/public/hot -/public/storage -/storage/*.key -/storage/pail -/vendor -.env -.env.backup -.env.production -.phpactor.json -.phpunit.result.cache -Homestead.json -Homestead.yaml -npm-debug.log -yarn-error.log -/auth.json -/.fleet -/.idea -/.nova -/.vscode -/.zed diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml deleted file mode 100644 index c66c914..0000000 --- a/backend/docker-compose.yml +++ /dev/null @@ -1,54 +0,0 @@ -services: - backend: - build: - context: './vendor/laravel/sail/runtimes/8.4' - dockerfile: Dockerfile - args: - WWWGROUP: '${WWWGROUP}' - image: 'sail-8.4/app' - extra_hosts: - - 'host.docker.internal:host-gateway' - ports: - - '${APP_PORT:-80}:80' - - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' - environment: - WWWUSER: '${WWWUSER}' - LARAVEL_SAIL: 1 - XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' - XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' - IGNITION_LOCAL_SITES_PATH: '${PWD}' - volumes: - - '.:/var/www/html:Z' - networks: - - sail - depends_on: - - mysql - mysql: - image: 'docker.io/mysql/mysql-server:8.0' - ports: - - '${FORWARD_DB_PORT:-3306}:3306' - environment: - MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' - MYSQL_ROOT_HOST: '%' - MYSQL_DATABASE: '${DB_DATABASE}' - MYSQL_USER: '${DB_USERNAME}' - MYSQL_PASSWORD: '${DB_PASSWORD}' - MYSQL_ALLOW_EMPTY_PASSWORD: 1 - volumes: - - 'sail-mysql:/var/lib/mysql:Z' - networks: - - sail - healthcheck: - test: - - CMD - - mysqladmin - - ping - - '-p${DB_PASSWORD}' - retries: 3 - timeout: 5s -networks: - sail: - driver: bridge -volumes: - sail-mysql: - driver: local diff --git a/backend/package.json b/backend/package.json deleted file mode 100644 index 0d10472..0000000 --- a/backend/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "type": "module", - "scripts": { - "build": "vite build", - "dev": "vite" - }, - "devDependencies": { - "autoprefixer": "^10.4.20", - "axios": "^1.7.4", - "concurrently": "^9.0.1", - "laravel-vite-plugin": "^1.0", - "postcss": "^8.4.47", - "tailwindcss": "^3.4.13", - "vite": "^6.0" - } -} diff --git a/backend/resources/css/app.css b/backend/resources/css/app.css deleted file mode 100644 index b5c61c9..0000000 --- a/backend/resources/css/app.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/backend/resources/js/app.js b/backend/resources/js/app.js deleted file mode 100644 index e59d6a0..0000000 --- a/backend/resources/js/app.js +++ /dev/null @@ -1 +0,0 @@ -import './bootstrap'; diff --git a/backend/routes/web.php b/backend/routes/web.php deleted file mode 100644 index 86a06c5..0000000 --- a/backend/routes/web.php +++ /dev/null @@ -1,7 +0,0 @@ - 'App\\Livewire', + + /* + |--------------------------------------------------------------------------- + | View Path + |--------------------------------------------------------------------------- + | + | This value is used to specify where Livewire component Blade templates are + | stored when running file creation commands like `artisan make:livewire`. + | It is also used if you choose to omit a component's render() method. + | + */ + + 'view_path' => resource_path('views/livewire'), + + /* + |--------------------------------------------------------------------------- + | Layout + |--------------------------------------------------------------------------- + | The view that will be used as the layout when rendering a single component + | as an entire page via `Route::get('/post/create', CreatePost::class);`. + | In this case, the view returned by CreatePost will render into $slot. + | + */ + + 'layout' => 'components.layouts.app', + + /* + |--------------------------------------------------------------------------- + | Lazy Loading Placeholder + |--------------------------------------------------------------------------- + | Livewire allows you to lazy load components that would otherwise slow down + | the initial page load. Every component can have a custom placeholder or + | you can define the default placeholder view for all components below. + | + */ + + 'lazy_placeholder' => null, + + /* + |--------------------------------------------------------------------------- + | Temporary File Uploads + |--------------------------------------------------------------------------- + | + | Livewire handles file uploads by storing uploads in a temporary directory + | before the file is stored permanently. All file uploads are directed to + | a global endpoint for temporary storage. You may configure this below: + | + */ + + 'temporary_file_upload' => [ + 'disk' => null, // Example: 'local', 's3' | Default: 'default' + 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB) + 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp' + 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1' + 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs... + 'png', 'gif', 'bmp', 'svg', 'wav', 'mp4', + 'mov', 'avi', 'wmv', 'mp3', 'm4a', + 'jpg', 'jpeg', 'mpga', 'webp', 'wma', + ], + 'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated... + 'cleanup' => true, // Should cleanup temporary uploads older than 24 hrs... + ], + + /* + |--------------------------------------------------------------------------- + | Render On Redirect + |--------------------------------------------------------------------------- + | + | This value determines if Livewire will run a component's `render()` method + | after a redirect has been triggered using something like `redirect(...)` + | Setting this to true will render the view once more before redirecting + | + */ + + 'render_on_redirect' => false, + + /* + |--------------------------------------------------------------------------- + | Eloquent Model Binding + |--------------------------------------------------------------------------- + | + | Previous versions of Livewire supported binding directly to eloquent model + | properties using wire:model by default. However, this behavior has been + | deemed too "magical" and has therefore been put under a feature flag. + | + */ + + 'legacy_model_binding' => false, + + /* + |--------------------------------------------------------------------------- + | Auto-inject Frontend Assets + |--------------------------------------------------------------------------- + | + | By default, Livewire automatically injects its JavaScript and CSS into the + |
and of pages containing Livewire components. By disabling + | this behavior, you need to use @livewireStyles and @livewireScripts. + | + */ + + 'inject_assets' => true, + + /* + |--------------------------------------------------------------------------- + | Navigate (SPA mode) + |--------------------------------------------------------------------------- + | + | By adding `wire:navigate` to links in your Livewire application, Livewire + | will prevent the default link handling and instead request those pages + | via AJAX, creating an SPA-like effect. Configure this behavior here. + | + */ + + 'navigate' => [ + 'show_progress_bar' => true, + 'progress_bar_color' => '#2299dd', + ], + + /* + |--------------------------------------------------------------------------- + | HTML Morph Markers + |--------------------------------------------------------------------------- + | + | Livewire intelligently "morphs" existing HTML into the newly rendered HTML + | after each update. To make this process more reliable, Livewire injects + | "markers" into the rendered Blade surrounding @if, @class & @foreach. + | + */ + + 'inject_morph_markers' => true, + + /* + |--------------------------------------------------------------------------- + | Smart Wire Keys + |--------------------------------------------------------------------------- + | + | Livewire uses loops and keys used within loops to generate smart keys that + | are applied to nested components that don't have them. This makes using + | nested components more reliable by ensuring that they all have keys. + | + */ + + 'smart_wire_keys' => false, + + /* + |--------------------------------------------------------------------------- + | Pagination Theme + |--------------------------------------------------------------------------- + | + | When enabling Livewire's pagination feature by using the `WithPagination` + | trait, Livewire will use Tailwind templates to render pagination views + | on the page. If you want Bootstrap CSS, you can specify: "bootstrap" + | + */ + + 'pagination_theme' => 'tailwind', + + /* + |--------------------------------------------------------------------------- + | Release Token + |--------------------------------------------------------------------------- + | + | This token is stored client-side and sent along with each request to check + | a users session to see if a new release has invalidated it. If there is + | a mismatch it will throw an error and prompt for a browser refresh. + | + */ + + 'release_token' => 'a', +]; diff --git a/backend/config/logging.php b/config/logging.php similarity index 100% rename from backend/config/logging.php rename to config/logging.php diff --git a/backend/config/mail.php b/config/mail.php similarity index 100% rename from backend/config/mail.php rename to config/mail.php diff --git a/backend/config/queue.php b/config/queue.php similarity index 100% rename from backend/config/queue.php rename to config/queue.php diff --git a/backend/config/sanctum.php b/config/sanctum.php similarity index 100% rename from backend/config/sanctum.php rename to config/sanctum.php diff --git a/backend/config/services.php b/config/services.php similarity index 100% rename from backend/config/services.php rename to config/services.php diff --git a/backend/config/session.php b/config/session.php similarity index 100% rename from backend/config/session.php rename to config/session.php diff --git a/backend/database/.gitignore b/database/.gitignore similarity index 100% rename from backend/database/.gitignore rename to database/.gitignore diff --git a/backend/database/factories/DishFactory.php b/database/factories/DishFactory.php similarity index 100% rename from backend/database/factories/DishFactory.php rename to database/factories/DishFactory.php diff --git a/backend/database/factories/MinimumRecurrenceFactory.php b/database/factories/MinimumRecurrenceFactory.php similarity index 100% rename from backend/database/factories/MinimumRecurrenceFactory.php rename to database/factories/MinimumRecurrenceFactory.php diff --git a/backend/database/factories/PlannerFactory.php b/database/factories/PlannerFactory.php similarity index 100% rename from backend/database/factories/PlannerFactory.php rename to database/factories/PlannerFactory.php diff --git a/backend/database/factories/ScheduleFactory.php b/database/factories/ScheduleFactory.php similarity index 100% rename from backend/database/factories/ScheduleFactory.php rename to database/factories/ScheduleFactory.php diff --git a/backend/database/factories/ScheduledUserDishFactory.php b/database/factories/ScheduledUserDishFactory.php similarity index 100% rename from backend/database/factories/ScheduledUserDishFactory.php rename to database/factories/ScheduledUserDishFactory.php diff --git a/backend/database/factories/UserDishFactory.php b/database/factories/UserDishFactory.php similarity index 100% rename from backend/database/factories/UserDishFactory.php rename to database/factories/UserDishFactory.php diff --git a/backend/database/factories/UserDishRecurrenceFactory.php b/database/factories/UserDishRecurrenceFactory.php similarity index 100% rename from backend/database/factories/UserDishRecurrenceFactory.php rename to database/factories/UserDishRecurrenceFactory.php diff --git a/backend/database/factories/UserFactory.php b/database/factories/UserFactory.php similarity index 100% rename from backend/database/factories/UserFactory.php rename to database/factories/UserFactory.php diff --git a/backend/database/factories/WeeklyRecurrenceFactory.php b/database/factories/WeeklyRecurrenceFactory.php similarity index 100% rename from backend/database/factories/WeeklyRecurrenceFactory.php rename to database/factories/WeeklyRecurrenceFactory.php diff --git a/backend/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php similarity index 100% rename from backend/database/migrations/0001_01_01_000000_create_users_table.php rename to database/migrations/0001_01_01_000000_create_users_table.php diff --git a/backend/database/migrations/0001_01_01_000001_create_cache_table.php b/database/migrations/0001_01_01_000001_create_cache_table.php similarity index 100% rename from backend/database/migrations/0001_01_01_000001_create_cache_table.php rename to database/migrations/0001_01_01_000001_create_cache_table.php diff --git a/backend/database/migrations/0001_01_01_000002_create_jobs_table.php b/database/migrations/0001_01_01_000002_create_jobs_table.php similarity index 100% rename from backend/database/migrations/0001_01_01_000002_create_jobs_table.php rename to database/migrations/0001_01_01_000002_create_jobs_table.php diff --git a/backend/database/migrations/2025_01_18_004639_create_dishes_table.php b/database/migrations/2025_01_18_004639_create_dishes_table.php similarity index 100% rename from backend/database/migrations/2025_01_18_004639_create_dishes_table.php rename to database/migrations/2025_01_18_004639_create_dishes_table.php diff --git a/backend/database/migrations/2025_02_02_130855_user_dishes.php b/database/migrations/2025_02_02_130855_user_dishes.php similarity index 100% rename from backend/database/migrations/2025_02_02_130855_user_dishes.php rename to database/migrations/2025_02_02_130855_user_dishes.php diff --git a/backend/database/migrations/2025_02_08_231219_create_schedules_table.php b/database/migrations/2025_02_08_231219_create_schedules_table.php similarity index 100% rename from backend/database/migrations/2025_02_08_231219_create_schedules_table.php rename to database/migrations/2025_02_08_231219_create_schedules_table.php diff --git a/backend/database/migrations/2025_03_03_204906_recurrence_types.php b/database/migrations/2025_03_03_204906_recurrence_types.php similarity index 100% rename from backend/database/migrations/2025_03_03_204906_recurrence_types.php rename to database/migrations/2025_03_03_204906_recurrence_types.php diff --git a/backend/database/migrations/2025_04_19_001446_create_personal_access_tokens_table.php b/database/migrations/2025_04_19_001446_create_personal_access_tokens_table.php similarity index 100% rename from backend/database/migrations/2025_04_19_001446_create_personal_access_tokens_table.php rename to database/migrations/2025_04_19_001446_create_personal_access_tokens_table.php diff --git a/backend/database/migrations/2025_04_19_195152_create_sessions_table.php b/database/migrations/2025_04_19_195152_create_sessions_table.php similarity index 100% rename from backend/database/migrations/2025_04_19_195152_create_sessions_table.php rename to database/migrations/2025_04_19_195152_create_sessions_table.php diff --git a/backend/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php similarity index 100% rename from backend/database/seeders/DatabaseSeeder.php rename to database/seeders/DatabaseSeeder.php diff --git a/backend/database/seeders/DishesSeeder.php b/database/seeders/DishesSeeder.php similarity index 100% rename from backend/database/seeders/DishesSeeder.php rename to database/seeders/DishesSeeder.php diff --git a/backend/database/seeders/PlannersSeeder.php b/database/seeders/PlannersSeeder.php similarity index 100% rename from backend/database/seeders/PlannersSeeder.php rename to database/seeders/PlannersSeeder.php diff --git a/backend/database/seeders/ScheduleSeeder.php b/database/seeders/ScheduleSeeder.php similarity index 100% rename from backend/database/seeders/ScheduleSeeder.php rename to database/seeders/ScheduleSeeder.php diff --git a/backend/database/seeders/UsersSeeder.php b/database/seeders/UsersSeeder.php similarity index 100% rename from backend/database/seeders/UsersSeeder.php rename to database/seeders/UsersSeeder.php diff --git a/backend/docker-compose.override.yml b/docker-compose.override.yml similarity index 100% rename from backend/docker-compose.override.yml rename to docker-compose.override.yml diff --git a/docker-compose.yml b/docker-compose.yml index 25e63c3..f296bc9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,55 +1,52 @@ services: - web: - image: nginx:alpine - container_name: dishplanner-nginx - restart: unless-stopped - depends_on: - - backend - volumes: - - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro - command: /bin/sh -c "until nslookup backend. ; do sleep 2; done && nginx -g 'daemon off;'" - ports: - - "3000:80" - - backend: - image: jochent/dishplanner-backend:v0.2 - container_name: dishplanner-backend - restart: unless-stopped - environment: - DB_CONNECTION: mysql - DB_HOST: db - DB_PORT: 3306 - DB_DATABASE: dishplanner - DB_USERNAME: dishuser - DB_PASSWORD: dishpass - depends_on: - - db - ports: - - "8080:80" - - frontend: - image: jochent/dishplanner-frontend:v0.2 - container_name: dishplanner-frontend - restart: unless-stopped - depends_on: - - backend -# ports: -# - "3000:3000" - - db: - image: mysql:8.0 - container_name: dishplanner-db - restart: unless-stopped - environment: - MYSQL_ROOT_PASSWORD: rootpassword - MYSQL_DATABASE: dishplanner - MYSQL_USER: dishuser - MYSQL_PASSWORD: dishpass - volumes: - - db_data:/var/lib/mysql -volumes: - db_data: - + laravel.test: + build: + context: './vendor/laravel/sail/runtimes/8.4' + dockerfile: Dockerfile + args: + WWWGROUP: '${WWWGROUP}' + image: 'sail-8.4/app' + extra_hosts: + - 'host.docker.internal:host-gateway' + ports: + - '${APP_PORT:-80}:80' + - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' + environment: + WWWUSER: '${WWWUSER}' + LARAVEL_SAIL: 1 + XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' + XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' + IGNITION_LOCAL_SITES_PATH: '${PWD}' + volumes: + - '.:/var/www/html' + networks: + - sail + depends_on: + - mysql + mysql: + image: 'mysql/mysql-server:8.0' + ports: + - '${FORWARD_DB_PORT:-3306}:3306' + environment: + MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' + MYSQL_ROOT_HOST: '%' + MYSQL_DATABASE: '${DB_DATABASE}' + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + - 'sail-mysql:/var/lib/mysql' + networks: + - sail + healthcheck: + test: + - CMD + - mysqladmin + - ping + - '-p${DB_PASSWORD}' + retries: 3 + timeout: 5s networks: - default: - name: dishplanner-net + sail: + driver: bridge +volumes: + sail-mysql: + driver: local diff --git a/frontend/.dockerignore b/frontend-old/.dockerignore similarity index 100% rename from frontend/.dockerignore rename to frontend-old/.dockerignore diff --git a/frontend/.gitignore b/frontend-old/.gitignore similarity index 100% rename from frontend/.gitignore rename to frontend-old/.gitignore diff --git a/frontend/Dockerfile b/frontend-old/Dockerfile similarity index 100% rename from frontend/Dockerfile rename to frontend-old/Dockerfile diff --git a/frontend/README.md b/frontend-old/README.md similarity index 100% rename from frontend/README.md rename to frontend-old/README.md diff --git a/frontend/app/app.css b/frontend-old/app/app.css similarity index 100% rename from frontend/app/app.css rename to frontend-old/app/app.css diff --git a/frontend/app/components/Spinner.tsx b/frontend-old/app/components/Spinner.tsx similarity index 100% rename from frontend/app/components/Spinner.tsx rename to frontend-old/app/components/Spinner.tsx diff --git a/frontend/app/components/features/OnboardingBanner.tsx b/frontend-old/app/components/features/OnboardingBanner.tsx similarity index 100% rename from frontend/app/components/features/OnboardingBanner.tsx rename to frontend-old/app/components/features/OnboardingBanner.tsx diff --git a/frontend/app/components/features/auth/LoginForm.tsx b/frontend-old/app/components/features/auth/LoginForm.tsx similarity index 100% rename from frontend/app/components/features/auth/LoginForm.tsx rename to frontend-old/app/components/features/auth/LoginForm.tsx diff --git a/frontend/app/components/features/auth/RegisterForm.tsx b/frontend-old/app/components/features/auth/RegisterForm.tsx similarity index 100% rename from frontend/app/components/features/auth/RegisterForm.tsx rename to frontend-old/app/components/features/auth/RegisterForm.tsx diff --git a/frontend/app/components/features/dishes/AddUserToDishForm.tsx b/frontend-old/app/components/features/dishes/AddUserToDishForm.tsx similarity index 100% rename from frontend/app/components/features/dishes/AddUserToDishForm.tsx rename to frontend-old/app/components/features/dishes/AddUserToDishForm.tsx diff --git a/frontend/app/components/features/dishes/CreateDishForm.tsx b/frontend-old/app/components/features/dishes/CreateDishForm.tsx similarity index 100% rename from frontend/app/components/features/dishes/CreateDishForm.tsx rename to frontend-old/app/components/features/dishes/CreateDishForm.tsx diff --git a/frontend/app/components/features/dishes/Dish.tsx b/frontend-old/app/components/features/dishes/Dish.tsx similarity index 100% rename from frontend/app/components/features/dishes/Dish.tsx rename to frontend-old/app/components/features/dishes/Dish.tsx diff --git a/frontend/app/components/features/dishes/DishCard.tsx b/frontend-old/app/components/features/dishes/DishCard.tsx similarity index 100% rename from frontend/app/components/features/dishes/DishCard.tsx rename to frontend-old/app/components/features/dishes/DishCard.tsx diff --git a/frontend/app/components/features/dishes/EditDishForm.tsx b/frontend-old/app/components/features/dishes/EditDishForm.tsx similarity index 100% rename from frontend/app/components/features/dishes/EditDishForm.tsx rename to frontend-old/app/components/features/dishes/EditDishForm.tsx diff --git a/frontend/app/components/features/dishes/EditDishUserCardEditForm.tsx b/frontend-old/app/components/features/dishes/EditDishUserCardEditForm.tsx similarity index 100% rename from frontend/app/components/features/dishes/EditDishUserCardEditForm.tsx rename to frontend-old/app/components/features/dishes/EditDishUserCardEditForm.tsx diff --git a/frontend/app/components/features/dishes/RecurrenceLabels.tsx b/frontend-old/app/components/features/dishes/RecurrenceLabels.tsx similarity index 100% rename from frontend/app/components/features/dishes/RecurrenceLabels.tsx rename to frontend-old/app/components/features/dishes/RecurrenceLabels.tsx diff --git a/frontend/app/components/features/dishes/SyncUsersForm.tsx b/frontend-old/app/components/features/dishes/SyncUsersForm.tsx similarity index 100% rename from frontend/app/components/features/dishes/SyncUsersForm.tsx rename to frontend-old/app/components/features/dishes/SyncUsersForm.tsx diff --git a/frontend/app/components/features/dishes/UserDishCard.tsx b/frontend-old/app/components/features/dishes/UserDishCard.tsx similarity index 100% rename from frontend/app/components/features/dishes/UserDishCard.tsx rename to frontend-old/app/components/features/dishes/UserDishCard.tsx diff --git a/frontend/app/components/features/navbar/MobileDropdownMenu.tsx b/frontend-old/app/components/features/navbar/MobileDropdownMenu.tsx similarity index 100% rename from frontend/app/components/features/navbar/MobileDropdownMenu.tsx rename to frontend-old/app/components/features/navbar/MobileDropdownMenu.tsx diff --git a/frontend/app/components/features/schedule/HistoricalDishes.tsx b/frontend-old/app/components/features/schedule/HistoricalDishes.tsx similarity index 100% rename from frontend/app/components/features/schedule/HistoricalDishes.tsx rename to frontend-old/app/components/features/schedule/HistoricalDishes.tsx diff --git a/frontend/app/components/features/schedule/ScheduleCalendar.tsx b/frontend-old/app/components/features/schedule/ScheduleCalendar.tsx similarity index 100% rename from frontend/app/components/features/schedule/ScheduleCalendar.tsx rename to frontend-old/app/components/features/schedule/ScheduleCalendar.tsx diff --git a/frontend/app/components/features/schedule/ScheduleEditForm.tsx b/frontend-old/app/components/features/schedule/ScheduleEditForm.tsx similarity index 100% rename from frontend/app/components/features/schedule/ScheduleEditForm.tsx rename to frontend-old/app/components/features/schedule/ScheduleEditForm.tsx diff --git a/frontend/app/components/features/schedule/ScheduleRegenerateButton.tsx b/frontend-old/app/components/features/schedule/ScheduleRegenerateButton.tsx similarity index 100% rename from frontend/app/components/features/schedule/ScheduleRegenerateButton.tsx rename to frontend-old/app/components/features/schedule/ScheduleRegenerateButton.tsx diff --git a/frontend/app/components/features/schedule/ScheduleRegenerateForm.tsx b/frontend-old/app/components/features/schedule/ScheduleRegenerateForm.tsx similarity index 100% rename from frontend/app/components/features/schedule/ScheduleRegenerateForm.tsx rename to frontend-old/app/components/features/schedule/ScheduleRegenerateForm.tsx diff --git a/frontend/app/components/features/schedule/UpcomingDishes.tsx b/frontend-old/app/components/features/schedule/UpcomingDishes.tsx similarity index 100% rename from frontend/app/components/features/schedule/UpcomingDishes.tsx rename to frontend-old/app/components/features/schedule/UpcomingDishes.tsx diff --git a/frontend/app/components/features/schedule/UserDishEditCard.tsx b/frontend-old/app/components/features/schedule/UserDishEditCard.tsx similarity index 100% rename from frontend/app/components/features/schedule/UserDishEditCard.tsx rename to frontend-old/app/components/features/schedule/UserDishEditCard.tsx diff --git a/frontend/app/components/features/schedule/dayCard/DateBadge.tsx b/frontend-old/app/components/features/schedule/dayCard/DateBadge.tsx similarity index 100% rename from frontend/app/components/features/schedule/dayCard/DateBadge.tsx rename to frontend-old/app/components/features/schedule/dayCard/DateBadge.tsx diff --git a/frontend/app/components/features/schedule/dayCard/ScheduleDayCard.tsx b/frontend-old/app/components/features/schedule/dayCard/ScheduleDayCard.tsx similarity index 100% rename from frontend/app/components/features/schedule/dayCard/ScheduleDayCard.tsx rename to frontend-old/app/components/features/schedule/dayCard/ScheduleDayCard.tsx diff --git a/frontend/app/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx b/frontend-old/app/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx similarity index 100% rename from frontend/app/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx rename to frontend-old/app/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx diff --git a/frontend/app/components/features/users/EditUserForm.tsx b/frontend-old/app/components/features/users/EditUserForm.tsx similarity index 100% rename from frontend/app/components/features/users/EditUserForm.tsx rename to frontend-old/app/components/features/users/EditUserForm.tsx diff --git a/frontend/app/components/layout/AuthGuard.tsx b/frontend-old/app/components/layout/AuthGuard.tsx similarity index 100% rename from frontend/app/components/layout/AuthGuard.tsx rename to frontend-old/app/components/layout/AuthGuard.tsx diff --git a/frontend/app/components/layout/Card.tsx b/frontend-old/app/components/layout/Card.tsx similarity index 100% rename from frontend/app/components/layout/Card.tsx rename to frontend-old/app/components/layout/Card.tsx diff --git a/frontend/app/components/layout/NavBar.tsx b/frontend-old/app/components/layout/NavBar.tsx similarity index 100% rename from frontend/app/components/layout/NavBar.tsx rename to frontend-old/app/components/layout/NavBar.tsx diff --git a/frontend/app/components/pages/PrivatePage.tsx b/frontend-old/app/components/pages/PrivatePage.tsx similarity index 100% rename from frontend/app/components/pages/PrivatePage.tsx rename to frontend-old/app/components/pages/PrivatePage.tsx diff --git a/frontend/app/components/pages/PublicPage.tsx b/frontend-old/app/components/pages/PublicPage.tsx similarity index 100% rename from frontend/app/components/pages/PublicPage.tsx rename to frontend-old/app/components/pages/PublicPage.tsx diff --git a/frontend/app/components/ui/Alert.tsx b/frontend-old/app/components/ui/Alert.tsx similarity index 100% rename from frontend/app/components/ui/Alert.tsx rename to frontend-old/app/components/ui/Alert.tsx diff --git a/frontend/app/components/ui/Button.tsx b/frontend-old/app/components/ui/Button.tsx similarity index 100% rename from frontend/app/components/ui/Button.tsx rename to frontend-old/app/components/ui/Button.tsx diff --git a/frontend/app/components/ui/Buttons/OutlineButton.tsx b/frontend-old/app/components/ui/Buttons/OutlineButton.tsx similarity index 100% rename from frontend/app/components/ui/Buttons/OutlineButton.tsx rename to frontend-old/app/components/ui/Buttons/OutlineButton.tsx diff --git a/frontend/app/components/ui/Buttons/OutlineLinkButton.tsx b/frontend-old/app/components/ui/Buttons/OutlineLinkButton.tsx similarity index 100% rename from frontend/app/components/ui/Buttons/OutlineLinkButton.tsx rename to frontend-old/app/components/ui/Buttons/OutlineLinkButton.tsx diff --git a/frontend/app/components/ui/Buttons/SolidButton.tsx b/frontend-old/app/components/ui/Buttons/SolidButton.tsx similarity index 100% rename from frontend/app/components/ui/Buttons/SolidButton.tsx rename to frontend-old/app/components/ui/Buttons/SolidButton.tsx diff --git a/frontend/app/components/ui/Buttons/SolidLinkButton.tsx b/frontend-old/app/components/ui/Buttons/SolidLinkButton.tsx similarity index 100% rename from frontend/app/components/ui/Buttons/SolidLinkButton.tsx rename to frontend-old/app/components/ui/Buttons/SolidLinkButton.tsx diff --git a/frontend/app/components/ui/Description.tsx b/frontend-old/app/components/ui/Description.tsx similarity index 100% rename from frontend/app/components/ui/Description.tsx rename to frontend-old/app/components/ui/Description.tsx diff --git a/frontend/app/components/ui/Hr.tsx b/frontend-old/app/components/ui/Hr.tsx similarity index 100% rename from frontend/app/components/ui/Hr.tsx rename to frontend-old/app/components/ui/Hr.tsx diff --git a/frontend/app/components/ui/Label.tsx b/frontend-old/app/components/ui/Label.tsx similarity index 100% rename from frontend/app/components/ui/Label.tsx rename to frontend-old/app/components/ui/Label.tsx diff --git a/frontend/app/components/ui/Modal.tsx b/frontend-old/app/components/ui/Modal.tsx similarity index 100% rename from frontend/app/components/ui/Modal.tsx rename to frontend-old/app/components/ui/Modal.tsx diff --git a/frontend/app/components/ui/PageTitle.tsx b/frontend-old/app/components/ui/PageTitle.tsx similarity index 100% rename from frontend/app/components/ui/PageTitle.tsx rename to frontend-old/app/components/ui/PageTitle.tsx diff --git a/frontend/app/components/ui/RecurrenceInput.tsx b/frontend-old/app/components/ui/RecurrenceInput.tsx similarity index 100% rename from frontend/app/components/ui/RecurrenceInput.tsx rename to frontend-old/app/components/ui/RecurrenceInput.tsx diff --git a/frontend/app/components/ui/SectionTitle.tsx b/frontend-old/app/components/ui/SectionTitle.tsx similarity index 100% rename from frontend/app/components/ui/SectionTitle.tsx rename to frontend-old/app/components/ui/SectionTitle.tsx diff --git a/frontend/app/components/ui/Toggle.tsx b/frontend-old/app/components/ui/Toggle.tsx similarity index 100% rename from frontend/app/components/ui/Toggle.tsx rename to frontend-old/app/components/ui/Toggle.tsx diff --git a/frontend/app/context/AuthContext.tsx b/frontend-old/app/context/AuthContext.tsx similarity index 100% rename from frontend/app/context/AuthContext.tsx rename to frontend-old/app/context/AuthContext.tsx diff --git a/frontend/app/helpers/Date.ts b/frontend-old/app/helpers/Date.ts similarity index 100% rename from frontend/app/helpers/Date.ts rename to frontend-old/app/helpers/Date.ts diff --git a/frontend/app/hooks/useFetchDishes.ts b/frontend-old/app/hooks/useFetchDishes.ts similarity index 100% rename from frontend/app/hooks/useFetchDishes.ts rename to frontend-old/app/hooks/useFetchDishes.ts diff --git a/frontend/app/hooks/useFetchUsers.ts b/frontend-old/app/hooks/useFetchUsers.ts similarity index 100% rename from frontend/app/hooks/useFetchUsers.ts rename to frontend-old/app/hooks/useFetchUsers.ts diff --git a/frontend/app/hooks/useRoutes.ts b/frontend-old/app/hooks/useRoutes.ts similarity index 100% rename from frontend/app/hooks/useRoutes.ts rename to frontend-old/app/hooks/useRoutes.ts diff --git a/frontend/app/root.tsx b/frontend-old/app/root.tsx similarity index 100% rename from frontend/app/root.tsx rename to frontend-old/app/root.tsx diff --git a/frontend/app/routes.ts b/frontend-old/app/routes.ts similarity index 100% rename from frontend/app/routes.ts rename to frontend-old/app/routes.ts diff --git a/frontend/app/routes/dishes.$id.edit.tsx b/frontend-old/app/routes/dishes.$id.edit.tsx similarity index 100% rename from frontend/app/routes/dishes.$id.edit.tsx rename to frontend-old/app/routes/dishes.$id.edit.tsx diff --git a/frontend/app/routes/dishes.create.tsx b/frontend-old/app/routes/dishes.create.tsx similarity index 100% rename from frontend/app/routes/dishes.create.tsx rename to frontend-old/app/routes/dishes.create.tsx diff --git a/frontend/app/routes/dishes.tsx b/frontend-old/app/routes/dishes.tsx similarity index 100% rename from frontend/app/routes/dishes.tsx rename to frontend-old/app/routes/dishes.tsx diff --git a/frontend/app/routes/home.tsx b/frontend-old/app/routes/home.tsx similarity index 100% rename from frontend/app/routes/home.tsx rename to frontend-old/app/routes/home.tsx diff --git a/frontend/app/routes/schedule.$date.edit.tsx b/frontend-old/app/routes/schedule.$date.edit.tsx similarity index 100% rename from frontend/app/routes/schedule.$date.edit.tsx rename to frontend-old/app/routes/schedule.$date.edit.tsx diff --git a/frontend/app/routes/scheduled-user-dishes.history.tsx b/frontend-old/app/routes/scheduled-user-dishes.history.tsx similarity index 100% rename from frontend/app/routes/scheduled-user-dishes.history.tsx rename to frontend-old/app/routes/scheduled-user-dishes.history.tsx diff --git a/frontend/app/routes/users.$id.edit.tsx b/frontend-old/app/routes/users.$id.edit.tsx similarity index 100% rename from frontend/app/routes/users.$id.edit.tsx rename to frontend-old/app/routes/users.$id.edit.tsx diff --git a/frontend/app/routes/users.create.tsx b/frontend-old/app/routes/users.create.tsx similarity index 100% rename from frontend/app/routes/users.create.tsx rename to frontend-old/app/routes/users.create.tsx diff --git a/frontend/app/routes/users.tsx b/frontend-old/app/routes/users.tsx similarity index 100% rename from frontend/app/routes/users.tsx rename to frontend-old/app/routes/users.tsx diff --git a/frontend/app/styles/base/globals.css b/frontend-old/app/styles/base/globals.css similarity index 100% rename from frontend/app/styles/base/globals.css rename to frontend-old/app/styles/base/globals.css diff --git a/frontend/app/styles/components/buttons.css b/frontend-old/app/styles/components/buttons.css similarity index 100% rename from frontend/app/styles/components/buttons.css rename to frontend-old/app/styles/components/buttons.css diff --git a/frontend/app/styles/components/select.css b/frontend-old/app/styles/components/select.css similarity index 100% rename from frontend/app/styles/components/select.css rename to frontend-old/app/styles/components/select.css diff --git a/frontend/app/styles/main.css b/frontend-old/app/styles/main.css similarity index 100% rename from frontend/app/styles/main.css rename to frontend-old/app/styles/main.css diff --git a/frontend/app/styles/theme/borders.css b/frontend-old/app/styles/theme/borders.css similarity index 100% rename from frontend/app/styles/theme/borders.css rename to frontend-old/app/styles/theme/borders.css diff --git a/frontend/app/styles/theme/colors.css b/frontend-old/app/styles/theme/colors.css similarity index 100% rename from frontend/app/styles/theme/colors.css rename to frontend-old/app/styles/theme/colors.css diff --git a/frontend/app/styles/theme/colors/background.css b/frontend-old/app/styles/theme/colors/background.css similarity index 100% rename from frontend/app/styles/theme/colors/background.css rename to frontend-old/app/styles/theme/colors/background.css diff --git a/frontend/app/styles/theme/colors/border.css b/frontend-old/app/styles/theme/colors/border.css similarity index 100% rename from frontend/app/styles/theme/colors/border.css rename to frontend-old/app/styles/theme/colors/border.css diff --git a/frontend/app/styles/theme/colors/root.css b/frontend-old/app/styles/theme/colors/root.css similarity index 100% rename from frontend/app/styles/theme/colors/root.css rename to frontend-old/app/styles/theme/colors/root.css diff --git a/frontend/app/styles/theme/colors/text.css b/frontend-old/app/styles/theme/colors/text.css similarity index 100% rename from frontend/app/styles/theme/colors/text.css rename to frontend-old/app/styles/theme/colors/text.css diff --git a/frontend/app/styles/theme/fonts.css b/frontend-old/app/styles/theme/fonts.css similarity index 100% rename from frontend/app/styles/theme/fonts.css rename to frontend-old/app/styles/theme/fonts.css diff --git a/frontend/app/types/DishType.ts b/frontend-old/app/types/DishType.ts similarity index 100% rename from frontend/app/types/DishType.ts rename to frontend-old/app/types/DishType.ts diff --git a/frontend/app/types/RecurrenceType.ts b/frontend-old/app/types/RecurrenceType.ts similarity index 100% rename from frontend/app/types/RecurrenceType.ts rename to frontend-old/app/types/RecurrenceType.ts diff --git a/frontend/app/types/ScheduleType.ts b/frontend-old/app/types/ScheduleType.ts similarity index 100% rename from frontend/app/types/ScheduleType.ts rename to frontend-old/app/types/ScheduleType.ts diff --git a/frontend/app/types/ScheduledUserDishType.ts b/frontend-old/app/types/ScheduledUserDishType.ts similarity index 100% rename from frontend/app/types/ScheduledUserDishType.ts rename to frontend-old/app/types/ScheduledUserDishType.ts diff --git a/frontend/app/types/UserDishType.ts b/frontend-old/app/types/UserDishType.ts similarity index 100% rename from frontend/app/types/UserDishType.ts rename to frontend-old/app/types/UserDishType.ts diff --git a/frontend/app/types/UserDishWithoutUserType.ts b/frontend-old/app/types/UserDishWithoutUserType.ts similarity index 100% rename from frontend/app/types/UserDishWithoutUserType.ts rename to frontend-old/app/types/UserDishWithoutUserType.ts diff --git a/frontend/app/types/UserType.ts b/frontend-old/app/types/UserType.ts similarity index 100% rename from frontend/app/types/UserType.ts rename to frontend-old/app/types/UserType.ts diff --git a/frontend/app/utils/api/apiRequest.ts b/frontend-old/app/utils/api/apiRequest.ts similarity index 100% rename from frontend/app/utils/api/apiRequest.ts rename to frontend-old/app/utils/api/apiRequest.ts diff --git a/frontend/app/utils/api/auth.ts b/frontend-old/app/utils/api/auth.ts similarity index 100% rename from frontend/app/utils/api/auth.ts rename to frontend-old/app/utils/api/auth.ts diff --git a/frontend/app/utils/api/dishApi.ts b/frontend-old/app/utils/api/dishApi.ts similarity index 100% rename from frontend/app/utils/api/dishApi.ts rename to frontend-old/app/utils/api/dishApi.ts diff --git a/frontend/app/utils/api/scheduleApi.ts b/frontend-old/app/utils/api/scheduleApi.ts similarity index 100% rename from frontend/app/utils/api/scheduleApi.ts rename to frontend-old/app/utils/api/scheduleApi.ts diff --git a/frontend/app/utils/api/scheduledUserDishesApi.ts b/frontend-old/app/utils/api/scheduledUserDishesApi.ts similarity index 100% rename from frontend/app/utils/api/scheduledUserDishesApi.ts rename to frontend-old/app/utils/api/scheduledUserDishesApi.ts diff --git a/frontend/app/utils/api/userDishApi.ts b/frontend-old/app/utils/api/userDishApi.ts similarity index 100% rename from frontend/app/utils/api/userDishApi.ts rename to frontend-old/app/utils/api/userDishApi.ts diff --git a/frontend/app/utils/api/usersApi.ts b/frontend-old/app/utils/api/usersApi.ts similarity index 100% rename from frontend/app/utils/api/usersApi.ts rename to frontend-old/app/utils/api/usersApi.ts diff --git a/frontend/app/utils/dateBuilder.ts b/frontend-old/app/utils/dateBuilder.ts similarity index 100% rename from frontend/app/utils/dateBuilder.ts rename to frontend-old/app/utils/dateBuilder.ts diff --git a/frontend/app/utils/scheduleBuilder.ts b/frontend-old/app/utils/scheduleBuilder.ts similarity index 100% rename from frontend/app/utils/scheduleBuilder.ts rename to frontend-old/app/utils/scheduleBuilder.ts diff --git a/frontend/app/welcome/logo-dark.svg b/frontend-old/app/welcome/logo-dark.svg similarity index 100% rename from frontend/app/welcome/logo-dark.svg rename to frontend-old/app/welcome/logo-dark.svg diff --git a/frontend/app/welcome/logo-light.svg b/frontend-old/app/welcome/logo-light.svg similarity index 100% rename from frontend/app/welcome/logo-light.svg rename to frontend-old/app/welcome/logo-light.svg diff --git a/frontend/app/welcome/welcome.tsx b/frontend-old/app/welcome/welcome.tsx similarity index 100% rename from frontend/app/welcome/welcome.tsx rename to frontend-old/app/welcome/welcome.tsx diff --git a/frontend/archive/.dockerignore b/frontend-old/archive/.dockerignore similarity index 100% rename from frontend/archive/.dockerignore rename to frontend-old/archive/.dockerignore diff --git a/frontend/archive/.env.local.example b/frontend-old/archive/.env.local.example similarity index 100% rename from frontend/archive/.env.local.example rename to frontend-old/archive/.env.local.example diff --git a/frontend/archive/.gitignore b/frontend-old/archive/.gitignore similarity index 100% rename from frontend/archive/.gitignore rename to frontend-old/archive/.gitignore diff --git a/frontend/archive/README.md b/frontend-old/archive/README.md similarity index 100% rename from frontend/archive/README.md rename to frontend-old/archive/README.md diff --git a/frontend/archive/bin/update.sh b/frontend-old/archive/bin/update.sh similarity index 100% rename from frontend/archive/bin/update.sh rename to frontend-old/archive/bin/update.sh diff --git a/frontend/archive/build_and_push.sh b/frontend-old/archive/build_and_push.sh similarity index 100% rename from frontend/archive/build_and_push.sh rename to frontend-old/archive/build_and_push.sh diff --git a/frontend/archive/eslint.config.mjs b/frontend-old/archive/eslint.config.mjs similarity index 100% rename from frontend/archive/eslint.config.mjs rename to frontend-old/archive/eslint.config.mjs diff --git a/frontend/archive/next.config.ts b/frontend-old/archive/next.config.ts similarity index 100% rename from frontend/archive/next.config.ts rename to frontend-old/archive/next.config.ts diff --git a/frontend/archive/package.json b/frontend-old/archive/package.json similarity index 100% rename from frontend/archive/package.json rename to frontend-old/archive/package.json diff --git a/frontend/archive/postcss.config.mjs b/frontend-old/archive/postcss.config.mjs similarity index 100% rename from frontend/archive/postcss.config.mjs rename to frontend-old/archive/postcss.config.mjs diff --git a/frontend/archive/public/dish-planner.webp b/frontend-old/archive/public/dish-planner.webp similarity index 100% rename from frontend/archive/public/dish-planner.webp rename to frontend-old/archive/public/dish-planner.webp diff --git a/frontend/archive/public/file.svg b/frontend-old/archive/public/file.svg similarity index 100% rename from frontend/archive/public/file.svg rename to frontend-old/archive/public/file.svg diff --git a/frontend/archive/public/globe.svg b/frontend-old/archive/public/globe.svg similarity index 100% rename from frontend/archive/public/globe.svg rename to frontend-old/archive/public/globe.svg diff --git a/frontend/archive/public/next.svg b/frontend-old/archive/public/next.svg similarity index 100% rename from frontend/archive/public/next.svg rename to frontend-old/archive/public/next.svg diff --git a/frontend/archive/public/vercel.svg b/frontend-old/archive/public/vercel.svg similarity index 100% rename from frontend/archive/public/vercel.svg rename to frontend-old/archive/public/vercel.svg diff --git a/frontend/archive/public/window.svg b/frontend-old/archive/public/window.svg similarity index 100% rename from frontend/archive/public/window.svg rename to frontend-old/archive/public/window.svg diff --git a/frontend/archive/src/app/dishes/[id]/delete/page.tsx b/frontend-old/archive/src/app/dishes/[id]/delete/page.tsx similarity index 100% rename from frontend/archive/src/app/dishes/[id]/delete/page.tsx rename to frontend-old/archive/src/app/dishes/[id]/delete/page.tsx diff --git a/frontend/archive/src/app/dishes/[id]/edit/page.tsx b/frontend-old/archive/src/app/dishes/[id]/edit/page.tsx similarity index 100% rename from frontend/archive/src/app/dishes/[id]/edit/page.tsx rename to frontend-old/archive/src/app/dishes/[id]/edit/page.tsx diff --git a/frontend/archive/src/app/dishes/create/page.tsx b/frontend-old/archive/src/app/dishes/create/page.tsx similarity index 100% rename from frontend/archive/src/app/dishes/create/page.tsx rename to frontend-old/archive/src/app/dishes/create/page.tsx diff --git a/frontend/archive/src/app/dishes/page.tsx b/frontend-old/archive/src/app/dishes/page.tsx similarity index 100% rename from frontend/archive/src/app/dishes/page.tsx rename to frontend-old/archive/src/app/dishes/page.tsx diff --git a/frontend/archive/src/app/favicon.ico b/frontend-old/archive/src/app/favicon.ico similarity index 100% rename from frontend/archive/src/app/favicon.ico rename to frontend-old/archive/src/app/favicon.ico diff --git a/frontend/archive/src/app/layout.tsx b/frontend-old/archive/src/app/layout.tsx similarity index 100% rename from frontend/archive/src/app/layout.tsx rename to frontend-old/archive/src/app/layout.tsx diff --git a/frontend/archive/src/app/login/page.tsx b/frontend-old/archive/src/app/login/page.tsx similarity index 100% rename from frontend/archive/src/app/login/page.tsx rename to frontend-old/archive/src/app/login/page.tsx diff --git a/frontend/archive/src/app/page.tsx b/frontend-old/archive/src/app/page.tsx similarity index 100% rename from frontend/archive/src/app/page.tsx rename to frontend-old/archive/src/app/page.tsx diff --git a/frontend/archive/src/app/register/page.tsx b/frontend-old/archive/src/app/register/page.tsx similarity index 100% rename from frontend/archive/src/app/register/page.tsx rename to frontend-old/archive/src/app/register/page.tsx diff --git a/frontend/archive/src/app/schedule/[date]/edit/page.tsx b/frontend-old/archive/src/app/schedule/[date]/edit/page.tsx similarity index 100% rename from frontend/archive/src/app/schedule/[date]/edit/page.tsx rename to frontend-old/archive/src/app/schedule/[date]/edit/page.tsx diff --git a/frontend/archive/src/app/scheduled-user-dishes/history/page.tsx b/frontend-old/archive/src/app/scheduled-user-dishes/history/page.tsx similarity index 100% rename from frontend/archive/src/app/scheduled-user-dishes/history/page.tsx rename to frontend-old/archive/src/app/scheduled-user-dishes/history/page.tsx diff --git a/frontend/archive/src/app/users/[id]/edit/page.tsx b/frontend-old/archive/src/app/users/[id]/edit/page.tsx similarity index 100% rename from frontend/archive/src/app/users/[id]/edit/page.tsx rename to frontend-old/archive/src/app/users/[id]/edit/page.tsx diff --git a/frontend/archive/src/app/users/create/page.tsx b/frontend-old/archive/src/app/users/create/page.tsx similarity index 100% rename from frontend/archive/src/app/users/create/page.tsx rename to frontend-old/archive/src/app/users/create/page.tsx diff --git a/frontend/archive/src/app/users/page.tsx b/frontend-old/archive/src/app/users/page.tsx similarity index 100% rename from frontend/archive/src/app/users/page.tsx rename to frontend-old/archive/src/app/users/page.tsx diff --git a/frontend/archive/src/components/Spinner.tsx b/frontend-old/archive/src/components/Spinner.tsx similarity index 100% rename from frontend/archive/src/components/Spinner.tsx rename to frontend-old/archive/src/components/Spinner.tsx diff --git a/frontend/archive/src/components/features/OnboardingBanner.tsx b/frontend-old/archive/src/components/features/OnboardingBanner.tsx similarity index 100% rename from frontend/archive/src/components/features/OnboardingBanner.tsx rename to frontend-old/archive/src/components/features/OnboardingBanner.tsx diff --git a/frontend/archive/src/components/features/auth/LoginForm.tsx b/frontend-old/archive/src/components/features/auth/LoginForm.tsx similarity index 100% rename from frontend/archive/src/components/features/auth/LoginForm.tsx rename to frontend-old/archive/src/components/features/auth/LoginForm.tsx diff --git a/frontend/archive/src/components/features/auth/RegistrationForm.tsx b/frontend-old/archive/src/components/features/auth/RegistrationForm.tsx similarity index 100% rename from frontend/archive/src/components/features/auth/RegistrationForm.tsx rename to frontend-old/archive/src/components/features/auth/RegistrationForm.tsx diff --git a/frontend/archive/src/components/features/dishes/AddUserToDishForm.tsx b/frontend-old/archive/src/components/features/dishes/AddUserToDishForm.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/AddUserToDishForm.tsx rename to frontend-old/archive/src/components/features/dishes/AddUserToDishForm.tsx diff --git a/frontend/archive/src/components/features/dishes/CreateDishForm.tsx b/frontend-old/archive/src/components/features/dishes/CreateDishForm.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/CreateDishForm.tsx rename to frontend-old/archive/src/components/features/dishes/CreateDishForm.tsx diff --git a/frontend/archive/src/components/features/dishes/Dish.tsx b/frontend-old/archive/src/components/features/dishes/Dish.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/Dish.tsx rename to frontend-old/archive/src/components/features/dishes/Dish.tsx diff --git a/frontend/archive/src/components/features/dishes/DishCard.tsx b/frontend-old/archive/src/components/features/dishes/DishCard.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/DishCard.tsx rename to frontend-old/archive/src/components/features/dishes/DishCard.tsx diff --git a/frontend/archive/src/components/features/dishes/EditDishForm.tsx b/frontend-old/archive/src/components/features/dishes/EditDishForm.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/EditDishForm.tsx rename to frontend-old/archive/src/components/features/dishes/EditDishForm.tsx diff --git a/frontend/archive/src/components/features/dishes/EditDishUserCardEditForm.tsx b/frontend-old/archive/src/components/features/dishes/EditDishUserCardEditForm.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/EditDishUserCardEditForm.tsx rename to frontend-old/archive/src/components/features/dishes/EditDishUserCardEditForm.tsx diff --git a/frontend/archive/src/components/features/dishes/RecurrenceLabels.tsx b/frontend-old/archive/src/components/features/dishes/RecurrenceLabels.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/RecurrenceLabels.tsx rename to frontend-old/archive/src/components/features/dishes/RecurrenceLabels.tsx diff --git a/frontend/archive/src/components/features/dishes/SyncUsersForm.tsx b/frontend-old/archive/src/components/features/dishes/SyncUsersForm.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/SyncUsersForm.tsx rename to frontend-old/archive/src/components/features/dishes/SyncUsersForm.tsx diff --git a/frontend/archive/src/components/features/dishes/UserDishCard.tsx b/frontend-old/archive/src/components/features/dishes/UserDishCard.tsx similarity index 100% rename from frontend/archive/src/components/features/dishes/UserDishCard.tsx rename to frontend-old/archive/src/components/features/dishes/UserDishCard.tsx diff --git a/frontend/archive/src/components/features/navbar/MobileDropdownMenu.tsx b/frontend-old/archive/src/components/features/navbar/MobileDropdownMenu.tsx similarity index 100% rename from frontend/archive/src/components/features/navbar/MobileDropdownMenu.tsx rename to frontend-old/archive/src/components/features/navbar/MobileDropdownMenu.tsx diff --git a/frontend/archive/src/components/features/schedule/HistoricalDishes.tsx b/frontend-old/archive/src/components/features/schedule/HistoricalDishes.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/HistoricalDishes.tsx rename to frontend-old/archive/src/components/features/schedule/HistoricalDishes.tsx diff --git a/frontend/archive/src/components/features/schedule/ScheduleCalendar.tsx b/frontend-old/archive/src/components/features/schedule/ScheduleCalendar.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/ScheduleCalendar.tsx rename to frontend-old/archive/src/components/features/schedule/ScheduleCalendar.tsx diff --git a/frontend/archive/src/components/features/schedule/ScheduleEditForm.tsx b/frontend-old/archive/src/components/features/schedule/ScheduleEditForm.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/ScheduleEditForm.tsx rename to frontend-old/archive/src/components/features/schedule/ScheduleEditForm.tsx diff --git a/frontend/archive/src/components/features/schedule/ScheduleRegenerateButton.tsx b/frontend-old/archive/src/components/features/schedule/ScheduleRegenerateButton.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/ScheduleRegenerateButton.tsx rename to frontend-old/archive/src/components/features/schedule/ScheduleRegenerateButton.tsx diff --git a/frontend/archive/src/components/features/schedule/ScheduleRegenerateForm.tsx b/frontend-old/archive/src/components/features/schedule/ScheduleRegenerateForm.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/ScheduleRegenerateForm.tsx rename to frontend-old/archive/src/components/features/schedule/ScheduleRegenerateForm.tsx diff --git a/frontend/archive/src/components/features/schedule/UpcomingDishes.tsx b/frontend-old/archive/src/components/features/schedule/UpcomingDishes.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/UpcomingDishes.tsx rename to frontend-old/archive/src/components/features/schedule/UpcomingDishes.tsx diff --git a/frontend/archive/src/components/features/schedule/UserDishEditCard.tsx b/frontend-old/archive/src/components/features/schedule/UserDishEditCard.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/UserDishEditCard.tsx rename to frontend-old/archive/src/components/features/schedule/UserDishEditCard.tsx diff --git a/frontend/archive/src/components/features/schedule/dayCard/DateBadge.tsx b/frontend-old/archive/src/components/features/schedule/dayCard/DateBadge.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/dayCard/DateBadge.tsx rename to frontend-old/archive/src/components/features/schedule/dayCard/DateBadge.tsx diff --git a/frontend/archive/src/components/features/schedule/dayCard/ScheduleDayCard.tsx b/frontend-old/archive/src/components/features/schedule/dayCard/ScheduleDayCard.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/dayCard/ScheduleDayCard.tsx rename to frontend-old/archive/src/components/features/schedule/dayCard/ScheduleDayCard.tsx diff --git a/frontend/archive/src/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx b/frontend-old/archive/src/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx similarity index 100% rename from frontend/archive/src/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx rename to frontend-old/archive/src/components/features/schedule/dayCard/ScheduleDayCardUserDish.tsx diff --git a/frontend/archive/src/components/features/users/EditUserForm.tsx b/frontend-old/archive/src/components/features/users/EditUserForm.tsx similarity index 100% rename from frontend/archive/src/components/features/users/EditUserForm.tsx rename to frontend-old/archive/src/components/features/users/EditUserForm.tsx diff --git a/frontend/archive/src/components/layout/AuthGuard.tsx b/frontend-old/archive/src/components/layout/AuthGuard.tsx similarity index 100% rename from frontend/archive/src/components/layout/AuthGuard.tsx rename to frontend-old/archive/src/components/layout/AuthGuard.tsx diff --git a/frontend/archive/src/components/layout/Card.tsx b/frontend-old/archive/src/components/layout/Card.tsx similarity index 100% rename from frontend/archive/src/components/layout/Card.tsx rename to frontend-old/archive/src/components/layout/Card.tsx diff --git a/frontend/archive/src/components/layout/NavBar.tsx b/frontend-old/archive/src/components/layout/NavBar.tsx similarity index 100% rename from frontend/archive/src/components/layout/NavBar.tsx rename to frontend-old/archive/src/components/layout/NavBar.tsx diff --git a/frontend/archive/src/components/ui/Alert.tsx b/frontend-old/archive/src/components/ui/Alert.tsx similarity index 100% rename from frontend/archive/src/components/ui/Alert.tsx rename to frontend-old/archive/src/components/ui/Alert.tsx diff --git a/frontend/archive/src/components/ui/Button.tsx b/frontend-old/archive/src/components/ui/Button.tsx similarity index 100% rename from frontend/archive/src/components/ui/Button.tsx rename to frontend-old/archive/src/components/ui/Button.tsx diff --git a/frontend/archive/src/components/ui/Buttons/OutlineButton.tsx b/frontend-old/archive/src/components/ui/Buttons/OutlineButton.tsx similarity index 100% rename from frontend/archive/src/components/ui/Buttons/OutlineButton.tsx rename to frontend-old/archive/src/components/ui/Buttons/OutlineButton.tsx diff --git a/frontend/archive/src/components/ui/Buttons/OutlineLinkButton.tsx b/frontend-old/archive/src/components/ui/Buttons/OutlineLinkButton.tsx similarity index 100% rename from frontend/archive/src/components/ui/Buttons/OutlineLinkButton.tsx rename to frontend-old/archive/src/components/ui/Buttons/OutlineLinkButton.tsx diff --git a/frontend/archive/src/components/ui/Buttons/SolidButton.tsx b/frontend-old/archive/src/components/ui/Buttons/SolidButton.tsx similarity index 100% rename from frontend/archive/src/components/ui/Buttons/SolidButton.tsx rename to frontend-old/archive/src/components/ui/Buttons/SolidButton.tsx diff --git a/frontend/archive/src/components/ui/Buttons/SolidLinkButton.tsx b/frontend-old/archive/src/components/ui/Buttons/SolidLinkButton.tsx similarity index 100% rename from frontend/archive/src/components/ui/Buttons/SolidLinkButton.tsx rename to frontend-old/archive/src/components/ui/Buttons/SolidLinkButton.tsx diff --git a/frontend/archive/src/components/ui/Description.tsx b/frontend-old/archive/src/components/ui/Description.tsx similarity index 100% rename from frontend/archive/src/components/ui/Description.tsx rename to frontend-old/archive/src/components/ui/Description.tsx diff --git a/frontend/archive/src/components/ui/Hr.tsx b/frontend-old/archive/src/components/ui/Hr.tsx similarity index 100% rename from frontend/archive/src/components/ui/Hr.tsx rename to frontend-old/archive/src/components/ui/Hr.tsx diff --git a/frontend/archive/src/components/ui/Label.tsx b/frontend-old/archive/src/components/ui/Label.tsx similarity index 100% rename from frontend/archive/src/components/ui/Label.tsx rename to frontend-old/archive/src/components/ui/Label.tsx diff --git a/frontend/archive/src/components/ui/Modal.tsx b/frontend-old/archive/src/components/ui/Modal.tsx similarity index 100% rename from frontend/archive/src/components/ui/Modal.tsx rename to frontend-old/archive/src/components/ui/Modal.tsx diff --git a/frontend/archive/src/components/ui/PageTitle.tsx b/frontend-old/archive/src/components/ui/PageTitle.tsx similarity index 100% rename from frontend/archive/src/components/ui/PageTitle.tsx rename to frontend-old/archive/src/components/ui/PageTitle.tsx diff --git a/frontend/archive/src/components/ui/RecurrenceInput.tsx b/frontend-old/archive/src/components/ui/RecurrenceInput.tsx similarity index 100% rename from frontend/archive/src/components/ui/RecurrenceInput.tsx rename to frontend-old/archive/src/components/ui/RecurrenceInput.tsx diff --git a/frontend/archive/src/components/ui/SectionTitle.tsx b/frontend-old/archive/src/components/ui/SectionTitle.tsx similarity index 100% rename from frontend/archive/src/components/ui/SectionTitle.tsx rename to frontend-old/archive/src/components/ui/SectionTitle.tsx diff --git a/frontend/archive/src/components/ui/Toggle.tsx b/frontend-old/archive/src/components/ui/Toggle.tsx similarity index 100% rename from frontend/archive/src/components/ui/Toggle.tsx rename to frontend-old/archive/src/components/ui/Toggle.tsx diff --git a/frontend/archive/src/context/AuthContext.tsx b/frontend-old/archive/src/context/AuthContext.tsx similarity index 100% rename from frontend/archive/src/context/AuthContext.tsx rename to frontend-old/archive/src/context/AuthContext.tsx diff --git a/frontend/archive/src/helpers/Date.ts b/frontend-old/archive/src/helpers/Date.ts similarity index 100% rename from frontend/archive/src/helpers/Date.ts rename to frontend-old/archive/src/helpers/Date.ts diff --git a/frontend/archive/src/hooks/useFetchDishes.ts b/frontend-old/archive/src/hooks/useFetchDishes.ts similarity index 100% rename from frontend/archive/src/hooks/useFetchDishes.ts rename to frontend-old/archive/src/hooks/useFetchDishes.ts diff --git a/frontend/archive/src/hooks/useFetchUsers.ts b/frontend-old/archive/src/hooks/useFetchUsers.ts similarity index 100% rename from frontend/archive/src/hooks/useFetchUsers.ts rename to frontend-old/archive/src/hooks/useFetchUsers.ts diff --git a/frontend/archive/src/hooks/useRoutes.ts b/frontend-old/archive/src/hooks/useRoutes.ts similarity index 100% rename from frontend/archive/src/hooks/useRoutes.ts rename to frontend-old/archive/src/hooks/useRoutes.ts diff --git a/frontend/archive/src/styles/base/globals.css b/frontend-old/archive/src/styles/base/globals.css similarity index 100% rename from frontend/archive/src/styles/base/globals.css rename to frontend-old/archive/src/styles/base/globals.css diff --git a/frontend/archive/src/styles/components/buttons.css b/frontend-old/archive/src/styles/components/buttons.css similarity index 100% rename from frontend/archive/src/styles/components/buttons.css rename to frontend-old/archive/src/styles/components/buttons.css diff --git a/frontend/archive/src/styles/components/select.css b/frontend-old/archive/src/styles/components/select.css similarity index 100% rename from frontend/archive/src/styles/components/select.css rename to frontend-old/archive/src/styles/components/select.css diff --git a/frontend/archive/src/styles/main.css b/frontend-old/archive/src/styles/main.css similarity index 100% rename from frontend/archive/src/styles/main.css rename to frontend-old/archive/src/styles/main.css diff --git a/frontend/archive/src/styles/theme/borders.css b/frontend-old/archive/src/styles/theme/borders.css similarity index 100% rename from frontend/archive/src/styles/theme/borders.css rename to frontend-old/archive/src/styles/theme/borders.css diff --git a/frontend/archive/src/styles/theme/colors.css b/frontend-old/archive/src/styles/theme/colors.css similarity index 100% rename from frontend/archive/src/styles/theme/colors.css rename to frontend-old/archive/src/styles/theme/colors.css diff --git a/frontend/archive/src/styles/theme/colors/background.css b/frontend-old/archive/src/styles/theme/colors/background.css similarity index 100% rename from frontend/archive/src/styles/theme/colors/background.css rename to frontend-old/archive/src/styles/theme/colors/background.css diff --git a/frontend/archive/src/styles/theme/colors/border.css b/frontend-old/archive/src/styles/theme/colors/border.css similarity index 100% rename from frontend/archive/src/styles/theme/colors/border.css rename to frontend-old/archive/src/styles/theme/colors/border.css diff --git a/frontend/archive/src/styles/theme/colors/root.css b/frontend-old/archive/src/styles/theme/colors/root.css similarity index 100% rename from frontend/archive/src/styles/theme/colors/root.css rename to frontend-old/archive/src/styles/theme/colors/root.css diff --git a/frontend/archive/src/styles/theme/colors/text.css b/frontend-old/archive/src/styles/theme/colors/text.css similarity index 100% rename from frontend/archive/src/styles/theme/colors/text.css rename to frontend-old/archive/src/styles/theme/colors/text.css diff --git a/frontend/archive/src/styles/theme/fonts.css b/frontend-old/archive/src/styles/theme/fonts.css similarity index 100% rename from frontend/archive/src/styles/theme/fonts.css rename to frontend-old/archive/src/styles/theme/fonts.css diff --git a/frontend/archive/src/types/DishType.ts b/frontend-old/archive/src/types/DishType.ts similarity index 100% rename from frontend/archive/src/types/DishType.ts rename to frontend-old/archive/src/types/DishType.ts diff --git a/frontend/archive/src/types/ScheduleType.ts b/frontend-old/archive/src/types/ScheduleType.ts similarity index 100% rename from frontend/archive/src/types/ScheduleType.ts rename to frontend-old/archive/src/types/ScheduleType.ts diff --git a/frontend/archive/src/types/ScheduledUserDishType.ts b/frontend-old/archive/src/types/ScheduledUserDishType.ts similarity index 100% rename from frontend/archive/src/types/ScheduledUserDishType.ts rename to frontend-old/archive/src/types/ScheduledUserDishType.ts diff --git a/frontend/archive/src/types/UserDishType.ts b/frontend-old/archive/src/types/UserDishType.ts similarity index 100% rename from frontend/archive/src/types/UserDishType.ts rename to frontend-old/archive/src/types/UserDishType.ts diff --git a/frontend/archive/src/types/UserType.ts b/frontend-old/archive/src/types/UserType.ts similarity index 100% rename from frontend/archive/src/types/UserType.ts rename to frontend-old/archive/src/types/UserType.ts diff --git a/frontend/archive/src/utils/api/apiRequest.ts b/frontend-old/archive/src/utils/api/apiRequest.ts similarity index 100% rename from frontend/archive/src/utils/api/apiRequest.ts rename to frontend-old/archive/src/utils/api/apiRequest.ts diff --git a/frontend/archive/src/utils/api/auth.ts b/frontend-old/archive/src/utils/api/auth.ts similarity index 100% rename from frontend/archive/src/utils/api/auth.ts rename to frontend-old/archive/src/utils/api/auth.ts diff --git a/frontend/archive/src/utils/api/dishApi.ts b/frontend-old/archive/src/utils/api/dishApi.ts similarity index 100% rename from frontend/archive/src/utils/api/dishApi.ts rename to frontend-old/archive/src/utils/api/dishApi.ts diff --git a/frontend/archive/src/utils/api/scheduleApi.ts b/frontend-old/archive/src/utils/api/scheduleApi.ts similarity index 100% rename from frontend/archive/src/utils/api/scheduleApi.ts rename to frontend-old/archive/src/utils/api/scheduleApi.ts diff --git a/frontend/archive/src/utils/api/scheduledUserDishesApi.ts b/frontend-old/archive/src/utils/api/scheduledUserDishesApi.ts similarity index 100% rename from frontend/archive/src/utils/api/scheduledUserDishesApi.ts rename to frontend-old/archive/src/utils/api/scheduledUserDishesApi.ts diff --git a/frontend/archive/src/utils/api/userDishApi.ts b/frontend-old/archive/src/utils/api/userDishApi.ts similarity index 100% rename from frontend/archive/src/utils/api/userDishApi.ts rename to frontend-old/archive/src/utils/api/userDishApi.ts diff --git a/frontend/archive/src/utils/api/usersApi.ts b/frontend-old/archive/src/utils/api/usersApi.ts similarity index 100% rename from frontend/archive/src/utils/api/usersApi.ts rename to frontend-old/archive/src/utils/api/usersApi.ts diff --git a/frontend/archive/src/utils/dateBuilder.ts b/frontend-old/archive/src/utils/dateBuilder.ts similarity index 100% rename from frontend/archive/src/utils/dateBuilder.ts rename to frontend-old/archive/src/utils/dateBuilder.ts diff --git a/frontend/archive/src/utils/scheduleBuilder.ts b/frontend-old/archive/src/utils/scheduleBuilder.ts similarity index 100% rename from frontend/archive/src/utils/scheduleBuilder.ts rename to frontend-old/archive/src/utils/scheduleBuilder.ts diff --git a/frontend/archive/tailwind.config.ts b/frontend-old/archive/tailwind.config.ts similarity index 100% rename from frontend/archive/tailwind.config.ts rename to frontend-old/archive/tailwind.config.ts diff --git a/frontend/archive/tsconfig.json b/frontend-old/archive/tsconfig.json similarity index 100% rename from frontend/archive/tsconfig.json rename to frontend-old/archive/tsconfig.json diff --git a/frontend/package-lock.json b/frontend-old/package-lock.json similarity index 100% rename from frontend/package-lock.json rename to frontend-old/package-lock.json diff --git a/frontend/package.json b/frontend-old/package.json similarity index 100% rename from frontend/package.json rename to frontend-old/package.json diff --git a/frontend/public/favicon.ico b/frontend-old/public/favicon.ico similarity index 100% rename from frontend/public/favicon.ico rename to frontend-old/public/favicon.ico diff --git a/frontend/react-router.config.ts b/frontend-old/react-router.config.ts similarity index 100% rename from frontend/react-router.config.ts rename to frontend-old/react-router.config.ts diff --git a/frontend/tsconfig.json b/frontend-old/tsconfig.json similarity index 100% rename from frontend/tsconfig.json rename to frontend-old/tsconfig.json diff --git a/frontend/vite.config.ts b/frontend-old/vite.config.ts similarity index 100% rename from frontend/vite.config.ts rename to frontend-old/vite.config.ts diff --git a/frontend/archive/.env.production b/frontend/archive/.env.production deleted file mode 100644 index 2fbb406..0000000 --- a/frontend/archive/.env.production +++ /dev/null @@ -1,2 +0,0 @@ -#NEXT_PUBLIC_API_URL=http://192.168.178.177:9000 -#NODE_ENV=local \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e8eac3c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3040 @@ +{ + "name": "backend", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "alpinejs": "^3.15.3" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.3", + "autoprefixer": "^10.4.23", + "axios": "^1.7.4", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^1.3.0", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.19", + "vite": "^6.4.1" + } + }, + "node_modules/@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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz", + "integrity": "sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.53" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz", + "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.26", + "entities": "^7.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz", + "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-core": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz", + "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.26", + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz", + "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz", + "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz", + "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz", + "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/runtime-core": "3.5.26", + "@vue/shared": "3.5.26", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz", + "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "vue": "3.5.26" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz", + "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/alpinejs": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.3.tgz", + "integrity": "sha512-fSI6F5213FdpMC4IWaup92KhuH3jBX0VVqajRJ6cOTCy1cL6888KyXdGO+seAAkn+g6fnrxBqQEx6gRpQ5EZoQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "~3.1.1" + } + }, + "node_modules/alpinejs/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==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.1.5" + } + }, + "node_modules/alpinejs/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==", + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=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, + "license": "MIT" + }, + "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, + "license": "ISC", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "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.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", + "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001761", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz", + "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "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, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "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, + "license": "MIT", + "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, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz", + "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "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.8" + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.3.0.tgz", + "integrity": "sha512-P5qyG56YbYxM8OuYmK2OkhcKe0AksNVJUjq9LUZ5tOekU9fBn9LujYyctI4t9XoLjuMvHJXXpCoPntY1oKltuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "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, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "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, + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", + "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" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "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, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "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, + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vue": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", + "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-sfc": "3.5.26", + "@vue/runtime-dom": "3.5.26", + "@vue/server-renderer": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..7b6cec3 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "private": true, + "type": "module", + "scripts": { + "build": "vite build", + "dev": "vite" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.3", + "autoprefixer": "^10.4.23", + "axios": "^1.7.4", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^1.3.0", + "postcss": "^8.5.6", + "tailwindcss": "^3.4.19", + "vite": "^6.4.1" + }, + "dependencies": { + "alpinejs": "^3.15.3" + } +} diff --git a/backend/phpunit.xml b/phpunit.xml similarity index 100% rename from backend/phpunit.xml rename to phpunit.xml diff --git a/backend/postcss.config.js b/postcss.config.js similarity index 100% rename from backend/postcss.config.js rename to postcss.config.js diff --git a/backend/public/.htaccess b/public/.htaccess similarity index 100% rename from backend/public/.htaccess rename to public/.htaccess diff --git a/backend/public/favicon.ico b/public/favicon.ico similarity index 100% rename from backend/public/favicon.ico rename to public/favicon.ico diff --git a/backend/public/index.php b/public/index.php similarity index 100% rename from backend/public/index.php rename to public/index.php diff --git a/backend/public/robots.txt b/public/robots.txt similarity index 100% rename from backend/public/robots.txt rename to public/robots.txt diff --git a/resources/css/app.css b/resources/css/app.css new file mode 100644 index 0000000..6665f1e --- /dev/null +++ b/resources/css/app.css @@ -0,0 +1,96 @@ +@import url('https://fonts.googleapis.com/css2?family=Syncopate:wght@400;700&family=Space+Grotesk:wght@300..700&display=swap'); + +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + /* Primary Colors */ + --color-primary: #ED1F79; + --color-rose-500: #ED1F79; + + /* Secondary Colors */ + --color-secondary: #7776BC; + --color-deluge-500: #7776BC; + + /* Accent Colors */ + --color-accent-blue: #85C7F2; + --color-malibu-500: #85C7F2; + + /* Gray Scale */ + --color-gray-100: #9AA2B3; + --color-gray-200: #7A8093; + --color-gray-300: #5D637A; + --color-gray-400: #444760; + --color-gray-500: #2B2C41; + --color-gray-600: #24263C; + --color-gray-700: #1D1E36; + --color-gray-800: #131427; + --color-gray-900: #0A0B1C; + + /* Semantic Colors */ + --color-success: #21FA90; + --color-warning: #FF6B35; + --color-danger: #E71D36; +} + +body { + background-color: var(--color-gray-600); + color: var(--color-gray-100); +} + +/* Custom Font Size Classes */ +.font-size-12 { font-size: 12px; } +.font-size-14 { font-size: 14px; } +.font-size-16 { font-size: 16px; } +.font-size-18 { font-size: 18px; } +.font-size-20 { font-size: 20px; } +.font-size-24 { font-size: 24px; } +.font-size-32 { font-size: 32px; } +.font-size-48 { font-size: 48px; } + +/* Font Weight Classes */ +.font-weight-100 { font-weight: 100; } +.font-weight-200 { font-weight: 200; } +.font-weight-300 { font-weight: 300; } +.font-weight-400 { font-weight: 400; } +.font-weight-500 { font-weight: 500; } +.font-weight-600 { font-weight: 600; } +.font-weight-700 { font-weight: 700; } +.font-weight-800 { font-weight: 800; } +.font-weight-900 { font-weight: 900; } + +/* Button Styles */ +.button-primary-solid { + background-color: var(--color-primary); + color: white; + padding: 0.5rem 1rem; + border-radius: 0.25rem; +} + +.button-primary-solid:hover { + background-color: var(--color-secondary); +} + +.button-primary-outline { + background-color: transparent; + color: var(--color-primary); + border: 2px solid var(--color-primary); + padding: 0.5rem 1rem; + border-radius: 0.25rem; +} + +.button-accent-solid { + background-color: var(--color-accent-blue); + color: var(--color-gray-900); + padding: 0.5rem 1rem; + border-radius: 0.25rem; +} + +.button-accent-outline { + background-color: transparent; + color: var(--color-accent-blue); + border: 2px solid var(--color-accent-blue); + padding: 0.5rem 1rem; + border-radius: 0.25rem; +} diff --git a/resources/js/app.js b/resources/js/app.js new file mode 100644 index 0000000..61d5fa1 --- /dev/null +++ b/resources/js/app.js @@ -0,0 +1,5 @@ +import './bootstrap'; +import Alpine from 'alpinejs'; + +window.Alpine = Alpine; +Alpine.start(); diff --git a/backend/resources/js/bootstrap.js b/resources/js/bootstrap.js similarity index 100% rename from backend/resources/js/bootstrap.js rename to resources/js/bootstrap.js diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php new file mode 100644 index 0000000..6558d77 --- /dev/null +++ b/resources/views/dashboard.blade.php @@ -0,0 +1,24 @@ +No dishes found.
++ Are you sure you want to delete {{ $deletingDish->name }}? This action cannot be undone. +
+ ++ This will clear the selected day and allow for regeneration. Continue? +
+ ++ Future features: Recurrence patterns, dish rotation rules, dietary restrictions, etc. +
+{{ $user->email }}
+No users found.
++ Are you sure you want to delete {{ $deletingUser->name }}? This action cannot be undone. +
+ +