diff --git a/app/Actions/Jetstream/DeleteUser.php b/app/Actions/Jetstream/DeleteUser.php
deleted file mode 100644
index 20882a0..0000000
--- a/app/Actions/Jetstream/DeleteUser.php
+++ /dev/null
@@ -1,21 +0,0 @@
-deleteProfilePhoto();
- $user->tokens->each->delete();
- $user->delete();
- }
-}
diff --git a/app/Http/Controllers/ApiTokenController.php b/app/Http/Controllers/ApiTokenController.php
new file mode 100644
index 0000000..d53e826
--- /dev/null
+++ b/app/Http/Controllers/ApiTokenController.php
@@ -0,0 +1,24 @@
+ $request,
+ 'user' => $request->user(),
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php
new file mode 100644
index 0000000..e69de29
diff --git a/app/Http/Controllers/ConnectedAccountController.php b/app/Http/Controllers/ConnectedAccountController.php
index 892a31b..b352402 100644
--- a/app/Http/Controllers/ConnectedAccountController.php
+++ b/app/Http/Controllers/ConnectedAccountController.php
@@ -124,7 +124,7 @@ class ConnectedAccountController extends Controller
'title' => __('Your :provider account has been connected.', ['provider' => config("services.{$connected_account->provider}.name")]),
'description' => null,
'css' => 'alert-success',
- 'icon' => Blade::render(" "),
+ 'icon' => Blade::render(" "),
'position' => 'toast-top toast-end',
'timeout' => '5000',
],
diff --git a/app/Http/Controllers/PrivacyPolicyController.php b/app/Http/Controllers/PrivacyPolicyController.php
new file mode 100644
index 0000000..00d75de
--- /dev/null
+++ b/app/Http/Controllers/PrivacyPolicyController.php
@@ -0,0 +1,29 @@
+localizedMarkdownPath('policy.md');
+
+ return view('policy', [
+ 'policy' => Str::markdown(file_get_contents($policyFile)),
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/TermsOfServiceController.php b/app/Http/Controllers/TermsOfServiceController.php
new file mode 100644
index 0000000..d3e3e0c
--- /dev/null
+++ b/app/Http/Controllers/TermsOfServiceController.php
@@ -0,0 +1,29 @@
+localizedMarkdownPath('terms.md');
+
+ return view('terms', [
+ 'terms' => Str::markdown(file_get_contents($termsFile)),
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/UserProfileController.php b/app/Http/Controllers/UserProfileController.php
new file mode 100644
index 0000000..ed1c92a
--- /dev/null
+++ b/app/Http/Controllers/UserProfileController.php
@@ -0,0 +1,24 @@
+ $request,
+ 'user' => $request->user(),
+ ]);
+ }
+}
diff --git a/app/Livewire/Datatables/HoldingsTable.php b/app/Livewire/Datatables/HoldingsTable.php
new file mode 100644
index 0000000..ce58c94
--- /dev/null
+++ b/app/Livewire/Datatables/HoldingsTable.php
@@ -0,0 +1,169 @@
+portfolio($this->portfolio->id)
+ ->with(['market_data'])
+ ->withCount(['transactions as num_transactions' => function ($query) {
+ return $query->whereRaw('transactions.symbol = holdings.symbol');
+ }])
+ ->withPerformance();
+ }
+
+ public function configure(): void
+ {
+ $this->hiddenColumns = ['name', 'average_cost_basis', 'market_value', 'fifty_two_week_low', 'fifty_two_week_high'];
+
+ $this->setTableWrapperAttributes([
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'overflow-scroll'
+ ]);
+ $this->setTableAttributes([
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'table',
+ ]);
+ $this->setTheadAttributes([
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ ]);
+ $this->setThAttributes(function(Column $column) {
+
+ $attributes = [
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'text-xs font-medium whitespace-nowrap uppercase tracking-wider text-nowrap'
+ ];
+
+ if (in_array($column->getField(), $this->hiddenColumns)) {
+ $attributes['class'] = $attributes['class'] . ' hidden md:table-cell';
+ }
+
+ return $attributes;
+ });
+ $this->setThSortButtonAttributes(fn() => [
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ 'class' => 'cursor-pointer'
+ ]);
+ $this->setTbodyAttributes([
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ ]);
+ $this->setTrAttributes(fn() => [
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ 'class' => 'cursor-pointer hover:bg-neutral/25'
+ ]);
+ $this->setTdAttributes(function(Column $column) {
+
+ $attributes = [
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'text-nowrap'
+ ];
+
+ if (in_array($column->getField(), $this->hiddenColumns)) {
+ $attributes['class'] = $attributes['class'] . ' hidden md:table-cell';
+ }
+
+ return $attributes;
+ });
+
+ $this->setDefaultSort('symbol', 'asc');
+
+ $this->setToolsDisabled();
+ $this->setFooterDisabled();
+ $this->setPaginationDisabled();
+ $this->setDisplayPaginationDetailsDisabled();
+
+ $this->setPrimaryKey('id');
+
+ $this->setTableRowUrl(function($row) {
+ return route('holding.show', ['portfolio' => $row->portfolio_id, 'symbol' => $row->symbol]);
+
+ })->setTableRowUrlTarget(function($row) {
+
+ return 'navigate';
+ });
+ }
+
+ public function columns(): array
+ {
+ return [
+ Column::make(__('Symbol'), 'symbol')
+ ->sortable(),
+ Column::make(__('Name'), 'market_data.name')
+ ->sortable(),
+ Column::make(__('Quantity'), 'quantity')
+ ->sortable(),
+ Column::make(__('Average Cost Basis'), 'average_cost_basis')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('Total Cost Basis'), 'total_cost_basis')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('Market Value'), 'market_data.market_value')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('Total Market Value'))
+ ->sortable(fn (Builder $query, string $direction) => $query->orderBy('total_market_value', $direction))
+ ->label(fn ($row) => Number::currency($row->total_market_value ?? 0, $row->market_data->currency)),
+ Column::make(__('Market Gain/Loss'))
+ ->html()
+ ->label(fn($row) => Number::currency($row->market_gain_dollars ?? 0, $row->market_data->currency) . view('components.ui.gain-loss-arrow-badge', [
+ 'costBasis' => $row->average_cost_basis,
+ 'marketValue' => $row->market_data->market_value,
+ 'small' => true,
+ ]))
+ ->sortable(fn (Builder $query, string $direction) => $query->orderBy('market_gain_dollars', $direction)),
+ Column::make(__('Realized Gain/Loss'), 'realized_gain_dollars')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) )
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('Dividends Earned'), 'dividends_earned')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('52 week low'), 'market_data.fifty_two_week_low')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('52 week high'), 'market_data.fifty_two_week_high')
+ ->sortable()
+ ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data->currency) ),
+ Column::make(__('Number of Transactions'))
+ ->sortable(fn (Builder $query, string $direction) => $query->orderBy('num_transactions', $direction))
+ ->label(fn ($row) => $row->num_transactions),
+ Column::make(__('Last Refreshed'), 'market_data.updated_at')
+ ->sortable()
+ ->format(fn($value) => \Carbon\Carbon::parse($value)->diffForHumans() )
+ ];
+ }
+}
diff --git a/app/Livewire/Datatables/TransactionsTable.php b/app/Livewire/Datatables/TransactionsTable.php
new file mode 100644
index 0000000..3c394e1
--- /dev/null
+++ b/app/Livewire/Datatables/TransactionsTable.php
@@ -0,0 +1,157 @@
+with(['portfolio', 'market_data'])
+ ->myTransactions()
+ ->addSelect(['portfolio_id', 'transaction_type', 'split'])
+ ->selectRaw('
+ CASE
+ WHEN transaction_type = \'SELL\'
+ THEN COALESCE(transactions.sale_price - transactions.cost_basis, 0)
+ ELSE COALESCE(market_data.market_value - transactions.cost_basis, 0)
+ END AS gain_dollars');
+ }
+
+ public function configure(): void
+ {
+ $this->hiddenColumns = ['name', 'cost_basis', 'gain_dollars'];
+
+ $this->setTableWrapperAttributes([
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'overflow-scroll'
+ ]);
+ $this->setTableAttributes([
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'table',
+ ]);
+ $this->setTheadAttributes([
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ ]);
+ $this->setThAttributes(function(Column $column) {
+
+ $attributes = [
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'text-xs font-medium whitespace-nowrap uppercase tracking-wider text-nowrap'
+ ];
+
+ if (in_array($column->getField(), $this->hiddenColumns)) {
+ $attributes['class'] = $attributes['class'] . ' hidden md:table-cell';
+ }
+
+ return $attributes;
+ });
+ $this->setThSortButtonAttributes(fn() => [
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ 'class' => 'cursor-pointer'
+ ]);
+ $this->setTbodyAttributes([
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ ]);
+ $this->setTrAttributes(fn() => [
+ 'default' => false,
+ 'default-styling' => true,
+ 'default-colors' => false,
+ 'class' => 'cursor-pointer hover:bg-neutral/25'
+ ]);
+ $this->setTdAttributes(function(Column $column) {
+
+ $attributes = [
+ 'default' => false,
+ 'default-styling' => false,
+ 'default-colors' => false,
+ 'class' => 'text-nowrap'
+ ];
+
+ if (in_array($column->getField(), $this->hiddenColumns)) {
+ $attributes['class'] = $attributes['class'] . ' hidden md:table-cell';
+ }
+
+ return $attributes;
+ });
+
+ $this->setDefaultSort('date', 'desc');
+
+ $this->setPerPageAccepted([10, 15, 20]);
+ $this->setPerPage(15);
+ $this->setSearchDisabled();
+ $this->setColumnSelectDisabled();
+ $this->setPerPageVisibilityDisabled();
+ $this->setFooterDisabled();
+
+ $this->setPrimaryKey('id');
+
+ $this->setTableRowUrl(function($row) {
+ return route('holding.show', ['portfolio' => $row->portfolio_id, 'symbol' => $row->symbol]);
+
+ })->setTableRowUrlTarget(function($row) {
+
+ return 'navigate';
+ });
+ }
+
+ public function columns(): array
+ {
+ return [
+
+ Column::make(__('Date'), 'date')
+ ->sortable()
+ ->format(fn($value) => \Carbon\Carbon::parse($value)->format('M d, Y') ),
+ Column::make(__('Portfolio'), 'portfolio.title')
+ ->sortable(),
+ Column::make(__('Symbol'), 'symbol')
+ ->sortable(),
+ Column::make(__('Name'), 'market_data.name')
+ ->sortable(),
+ Column::make(__('Type'), 'transaction_type')
+ ->label(fn($row) => view('components.ui.badge', [
+ 'value' => $row->split ? 'SPLIT'
+ : ($row->reinvested_dividend
+ ? 'REINVEST'
+ : $row->transaction_type),
+ 'class' => ($row->transaction_type == 'BUY'
+ ? 'badge-success'
+ : 'badge-error') . ' badge-sm mr-3',
+ ]))
+ ->sortable(fn (Builder $query, string $direction) => $query->orderBy('transaction_type', $direction)),
+ Column::make(__('Quantity'), 'quantity')
+ ->sortable(),
+ Column::make(__('Cost Basis'), 'cost_basis')
+ ->sortable(fn (Builder $query, string $direction) => $query->orderBy('cost_basis', $direction))
+ ->label(fn ($row) => Number::currency($row->cost_basis ?? 0, $row->market_data->currency)),
+ Column::make(__('Gain/Loss'), 'gain_dollars')
+ ->sortable(fn (Builder $query, string $direction) => $query->orderBy('gain_dollars', $direction))
+ ->label(fn ($row) => Number::currency($row->gain_dollars ?? 0, $row->market_data->currency)),
+ ];
+ }
+}
diff --git a/app/Models/User.php b/app/Models/User.php
index 85ab87d..f2f0092 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Traits\HasConnectedAccounts;
+use App\Traits\HasProfilePhoto;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -12,7 +13,6 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Arr;
use Laravel\Fortify\TwoFactorAuthenticatable;
-use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens;
use Staudenmeir\EloquentHasManyDeep\HasManyDeep;
use Staudenmeir\EloquentHasManyDeep\HasRelationships;
diff --git a/app/Providers/FortifyServiceProvider.php b/app/Providers/FortifyServiceProvider.php
index b292191..ae97148 100644
--- a/app/Providers/FortifyServiceProvider.php
+++ b/app/Providers/FortifyServiceProvider.php
@@ -30,6 +30,7 @@ class FortifyServiceProvider extends ServiceProvider
*/
public function boot(): void
{
+ Fortify::viewPrefix('auth.');
Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
diff --git a/app/Providers/JetstreamServiceProvider.php b/app/Providers/JetstreamServiceProvider.php
deleted file mode 100644
index 838b0ce..0000000
--- a/app/Providers/JetstreamServiceProvider.php
+++ /dev/null
@@ -1,55 +0,0 @@
-configurePermissions();
-
- Jetstream::deleteUsersUsing(DeleteUser::class);
- }
-
- /**
- * Configure the permissions that are available within the application.
- */
- protected function configurePermissions(): void
- {
- Jetstream::defaultApiTokenPermissions([
- // 'portfolio:read',
- // 'portfolio:write',
- // 'holding:read',
- // 'holding:write',
- // 'transaction:read',
- // 'transaction:write',
- ]);
-
- Jetstream::permissions([
- // 'Read Portfolios' => 'portfolio:read',
- // 'Create Portfolios' => 'portfolio:write',
- // 'Read Holdings' => 'holding:read',
- // 'Update Holdings' => 'holding:write',
- // 'Read Transactions' => 'transaction:read',
- // 'Create Transactions' => 'transaction:write',
- ]);
- }
-}
diff --git a/app/Providers/VoltServiceProvider.php b/app/Providers/VoltServiceProvider.php
index dd92d72..3fcf35c 100644
--- a/app/Providers/VoltServiceProvider.php
+++ b/app/Providers/VoltServiceProvider.php
@@ -4,8 +4,8 @@ declare(strict_types=1);
namespace App\Providers;
-use Illuminate\Support\ServiceProvider;
use Livewire\Volt\Volt;
+use Illuminate\Support\ServiceProvider;
class VoltServiceProvider extends ServiceProvider
{
@@ -21,14 +21,16 @@ class VoltServiceProvider extends ServiceProvider
* Bootstrap services.
*/
public function boot(): void
- {
+ {
Volt::mount([
// config('livewire.view_path', resource_path('views/livewire')),
resource_path('views/components'),
resource_path('views/profile'),
+ resource_path('views/api'),
resource_path('views/holding'),
resource_path('views/transaction'),
resource_path('views/portfolio'),
+ resource_path('views/import-export'),
resource_path('views/auth'),
]);
}
diff --git a/app/Traits/ConfirmsPasswords.php b/app/Traits/ConfirmsPasswords.php
new file mode 100644
index 0000000..3864beb
--- /dev/null
+++ b/app/Traits/ConfirmsPasswords.php
@@ -0,0 +1,115 @@
+resetErrorBag();
+
+ if ($this->passwordIsConfirmed()) {
+ return $this->dispatch('password-confirmed',
+ id: $confirmableId,
+ );
+ }
+
+ $this->confirmingPassword = true;
+ $this->confirmableId = $confirmableId;
+ $this->confirmablePassword = '';
+
+ $this->dispatch('confirming-password');
+ }
+
+ /**
+ * Stop confirming the user's password.
+ *
+ * @return void
+ */
+ public function stopConfirmingPassword()
+ {
+ $this->confirmingPassword = false;
+ $this->confirmableId = null;
+ $this->confirmablePassword = '';
+ }
+
+ /**
+ * Confirm the user's password.
+ *
+ * @return void
+ */
+ public function confirmPassword()
+ {
+ if (! app(ConfirmPassword::class)(app(StatefulGuard::class), Auth::user(), $this->confirmablePassword)) {
+ throw ValidationException::withMessages([
+ 'confirmable_password' => [__('This password does not match our records.')],
+ ]);
+ }
+
+ session(['auth.password_confirmed_at' => time()]);
+
+ $this->dispatch('password-confirmed',
+ id: $this->confirmableId,
+ );
+
+ $this->stopConfirmingPassword();
+ }
+
+ /**
+ * Ensure that the user's password has been recently confirmed.
+ *
+ * @param int|null $maximumSecondsSinceConfirmation
+ * @return void
+ */
+ protected function ensurePasswordIsConfirmed($maximumSecondsSinceConfirmation = null)
+ {
+ $maximumSecondsSinceConfirmation = $maximumSecondsSinceConfirmation ?: config('auth.password_timeout', 900);
+
+ $this->passwordIsConfirmed($maximumSecondsSinceConfirmation) ? null : abort(403);
+ }
+
+ /**
+ * Determine if the user's password has been recently confirmed.
+ *
+ * @param int|null $maximumSecondsSinceConfirmation
+ * @return bool
+ */
+ protected function passwordIsConfirmed($maximumSecondsSinceConfirmation = null)
+ {
+ $maximumSecondsSinceConfirmation = $maximumSecondsSinceConfirmation ?: config('auth.password_timeout', 900);
+
+ return (time() - session('auth.password_confirmed_at', 0)) < $maximumSecondsSinceConfirmation;
+ }
+}
\ No newline at end of file
diff --git a/app/Traits/HasLocalizedMarkdown.php b/app/Traits/HasLocalizedMarkdown.php
new file mode 100644
index 0000000..beee306
--- /dev/null
+++ b/app/Traits/HasLocalizedMarkdown.php
@@ -0,0 +1,22 @@
+getLocale().'$1', $name);
+
+ return Arr::first([
+ resource_path('markdown/'.$localName),
+ resource_path('markdown/'.$name),
+ ], function ($path) {
+ return file_exists($path);
+ });
+ }
+}
diff --git a/app/Traits/HasProfilePhoto.php b/app/Traits/HasProfilePhoto.php
new file mode 100644
index 0000000..3f6b6ad
--- /dev/null
+++ b/app/Traits/HasProfilePhoto.php
@@ -0,0 +1,77 @@
+profile_photo_path, function ($previous) use ($photo, $storagePath) {
+ $this->forceFill([
+ 'profile_photo_path' => $photo->storePublicly(
+ $storagePath, ['disk' => 'public']
+ ),
+ ])->save();
+
+ if ($previous) {
+ Storage::disk('public')->delete($previous);
+ }
+ });
+ }
+
+ /**
+ * Delete the user's profile photo.
+ *
+ * @return void
+ */
+ public function deleteProfilePhoto()
+ {
+ if (is_null($this->profile_photo_path)) {
+ return;
+ }
+
+ Storage::disk('public')->delete($this->profile_photo_path);
+
+ $this->forceFill([
+ 'profile_photo_path' => null,
+ ])->save();
+ }
+
+ /**
+ * Get the URL to the user's profile photo.
+ */
+ protected function profilePhotoUrl(): Attribute
+ {
+ return Attribute::get(function (): string {
+ return $this->profile_photo_path
+ ? Storage::disk('public')->url($this->profile_photo_path)
+ : $this->defaultProfilePhotoUrl();
+ });
+ }
+
+ /**
+ * Get the default profile photo URL if no profile photo has been uploaded.
+ *
+ * @return string
+ */
+ protected function defaultProfilePhotoUrl()
+ {
+ $name = trim(collect(explode(' ', $this->name))->map(function ($segment) {
+ return mb_substr($segment, 0, 1);
+ })->join(' '));
+
+ return 'https://ui-avatars.com/api/?name='.urlencode($name).'&color=7F9CF5&background=EBF4FF';
+ }
+}
diff --git a/app/Traits/Toast.php b/app/Traits/Toast.php
new file mode 100644
index 0000000..5db1313
--- /dev/null
+++ b/app/Traits/Toast.php
@@ -0,0 +1,88 @@
+ $type,
+ 'title' => $title,
+ 'description' => $description,
+ 'position' => $position,
+ 'icon' => Blade::render(" "),
+ 'css' => $css,
+ 'timeout' => $timeout,
+ ];
+
+ $this->js('toast('.json_encode(['toast' => $toast]).')');
+
+ // session()->flash('ib.toast.title', $title);
+ // session()->flash('ib.toast.description', $description);
+
+ if ($redirectTo) {
+ return $this->redirect($redirectTo, navigate: true);
+ }
+ }
+
+ public function success(
+ string $title,
+ ?string $description = null,
+ ?string $position = null,
+ string $icon = 'o-check-circle',
+ string $css = 'alert-success',
+ int $timeout = 3000,
+ ?string $redirectTo = null
+ ) {
+ return $this->toast('success', $title, $description, $position, $icon, $css, $timeout, $redirectTo);
+ }
+
+ public function warning(
+ string $title,
+ ?string $description = null,
+ ?string $position = null,
+ string $icon = 'o-exclamation-triangle',
+ string $css = 'alert-warning',
+ int $timeout = 3000,
+ ?string $redirectTo = null
+ ) {
+ return $this->toast('warning', $title, $description, $position, $icon, $css, $timeout, $redirectTo);
+ }
+
+ public function error(
+ string $title,
+ ?string $description = null,
+ ?string $position = null,
+ string $icon = 'o-x-circle',
+ string $css = 'alert-error',
+ int $timeout = 3000,
+ ?string $redirectTo = null
+ ) {
+ return $this->toast('error', $title, $description, $position, $icon, $css, $timeout, $redirectTo);
+ }
+
+ public function info(
+ string $title,
+ ?string $description = null,
+ ?string $position = null,
+ string $icon = 'o-information-circle',
+ string $css = 'alert-info',
+ int $timeout = 3000,
+ ?string $redirectTo = null
+ ) {
+ return $this->toast('info', $title, $description, $position, $icon, $css, $timeout, $redirectTo);
+ }
+}
diff --git a/app/View/Components/AppLayout.php b/app/View/Components/AppLayout.php
deleted file mode 100644
index 6249c73..0000000
--- a/app/View/Components/AppLayout.php
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- @livewire('partials.side-bar')
-
-
-
-
-
- {{ $slot }}
-
-
-
-
- @if(session('toast'))
-
- @endif
-
-
-
-
-
- HTML;
- }
-}
diff --git a/app/View/Components/GuestLayout.php b/app/View/Components/GuestLayout.php
deleted file mode 100644
index 8900375..0000000
--- a/app/View/Components/GuestLayout.php
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- {{ $slot }}
-
-
-
-
-
- HTML;
- }
-}
diff --git a/app/View/Components/MainLayout.php b/app/View/Components/MainLayout.php
deleted file mode 100644
index a8c1452..0000000
--- a/app/View/Components/MainLayout.php
+++ /dev/null
@@ -1,25 +0,0 @@
-=8.1",
- "psr/http-message": "^2.0"
+ "psr/http-message": "^1.0 || ^2.0"
},
"require-dev": {
"andrewsville/php-token-reflection": "^1.4",
@@ -153,9 +153,9 @@
"support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.356.7"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.356.20"
},
- "time": "2025-08-28T18:14:39+00:00"
+ "time": "2025-09-17T18:23:32+00:00"
},
{
"name": "bacon/bacon-qr-code",
@@ -363,25 +363,25 @@
},
{
"name": "brick/math",
- "version": "0.12.3",
+ "version": "0.14.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba"
+ "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba",
- "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba",
+ "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2",
+ "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2",
"shasum": ""
},
"require": {
- "php": "^8.1"
+ "php": "^8.2"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^10.1",
- "vimeo/psalm": "6.8.8"
+ "phpstan/phpstan": "2.1.22",
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"autoload": {
@@ -411,7 +411,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.12.3"
+ "source": "https://github.com/brick/math/tree/0.14.0"
},
"funding": [
{
@@ -419,7 +419,7 @@
"type": "github"
}
],
- "time": "2025-02-28T13:11:00+00:00"
+ "time": "2025-08-29T12:40:03+00:00"
},
{
"name": "carbonphp/carbon-doctrine-types",
@@ -648,16 +648,16 @@
},
{
"name": "dasprid/enum",
- "version": "1.0.6",
+ "version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
- "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90"
+ "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90",
- "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90",
+ "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
+ "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
"shasum": ""
},
"require": {
@@ -692,9 +692,9 @@
],
"support": {
"issues": "https://github.com/DASPRiD/Enum/issues",
- "source": "https://github.com/DASPRiD/Enum/tree/1.0.6"
+ "source": "https://github.com/DASPRiD/Enum/tree/1.0.7"
},
- "time": "2024-08-09T14:30:48+00:00"
+ "time": "2025-09-16T12:23:56+00:00"
},
{
"name": "dflydev/dot-access-data",
@@ -1876,255 +1876,18 @@
"description": "Laravel SDK for interacting with the Frankfurter currency exchange API",
"time": "2025-08-29T02:39:41+00:00"
},
- {
- "name": "jfcherng/php-color-output",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/jfcherng/php-color-output.git",
- "reference": "6c7bf16686cc6a291647fcb87491640a2d5edd20"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jfcherng/php-color-output/zipball/6c7bf16686cc6a291647fcb87491640a2d5edd20",
- "reference": "6c7bf16686cc6a291647fcb87491640a2d5edd20",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.19",
- "liip/rmt": "^1.6",
- "phan/phan": "^2 || ^3 || ^4",
- "phpunit/phpunit": ">=7 <10",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Jfcherng\\Utility\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jack Cherng",
- "email": "jfcherng@gmail.com"
- }
- ],
- "description": "Make your PHP command-line application colorful.",
- "keywords": [
- "ansi-colors",
- "color",
- "command-line",
- "str-color"
- ],
- "support": {
- "issues": "https://github.com/jfcherng/php-color-output/issues",
- "source": "https://github.com/jfcherng/php-color-output/tree/3.0.0"
- },
- "funding": [
- {
- "url": "https://www.paypal.me/jfcherng/5usd",
- "type": "custom"
- }
- ],
- "time": "2021-05-27T02:45:54+00:00"
- },
- {
- "name": "jfcherng/php-diff",
- "version": "6.16.2",
- "source": {
- "type": "git",
- "url": "https://github.com/jfcherng/php-diff.git",
- "reference": "7f46bcfc582e81769237d0b3f6b8a548efe8799d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jfcherng/php-diff/zipball/7f46bcfc582e81769237d0b3f6b8a548efe8799d",
- "reference": "7f46bcfc582e81769237d0b3f6b8a548efe8799d",
- "shasum": ""
- },
- "require": {
- "jfcherng/php-color-output": "^3",
- "jfcherng/php-mb-string": "^1.4.6 || ^2",
- "jfcherng/php-sequence-matcher": "^3.2.10 || ^4",
- "php": ">=7.4"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.51",
- "liip/rmt": "^1.6",
- "phan/phan": "^5",
- "phpunit/phpunit": "^9",
- "squizlabs/php_codesniffer": "^3.6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Jfcherng\\Diff\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jack Cherng",
- "email": "jfcherng@gmail.com"
- },
- {
- "name": "Chris Boulton",
- "email": "chris.boulton@interspire.com"
- }
- ],
- "description": "A comprehensive library for generating differences between two strings in multiple formats (unified, side by side HTML etc).",
- "keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
- ],
- "support": {
- "issues": "https://github.com/jfcherng/php-diff/issues",
- "source": "https://github.com/jfcherng/php-diff/tree/6.16.2"
- },
- "funding": [
- {
- "url": "https://www.paypal.me/jfcherng/5usd",
- "type": "custom"
- }
- ],
- "time": "2024-03-10T17:40:29+00:00"
- },
- {
- "name": "jfcherng/php-mb-string",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/jfcherng/php-mb-string.git",
- "reference": "8407bfefde47849c9e7c9594e6de2ac85a0f845d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jfcherng/php-mb-string/zipball/8407bfefde47849c9e7c9594e6de2ac85a0f845d",
- "reference": "8407bfefde47849c9e7c9594e6de2ac85a0f845d",
- "shasum": ""
- },
- "require": {
- "ext-iconv": "*",
- "php": ">=8.1"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3",
- "phan/phan": "^5",
- "phpunit/phpunit": "^9 || ^10"
- },
- "suggest": {
- "ext-iconv": "Either \"ext-iconv\" or \"ext-mbstring\" is requried.",
- "ext-mbstring": "Either \"ext-iconv\" or \"ext-mbstring\" is requried."
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Jfcherng\\Utility\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jack Cherng",
- "email": "jfcherng@gmail.com"
- }
- ],
- "description": "A high performance multibytes sting implementation for frequently reading/writing operations.",
- "support": {
- "issues": "https://github.com/jfcherng/php-mb-string/issues",
- "source": "https://github.com/jfcherng/php-mb-string/tree/2.0.1"
- },
- "funding": [
- {
- "url": "https://www.paypal.me/jfcherng/5usd",
- "type": "custom"
- }
- ],
- "time": "2023-04-17T14:23:16+00:00"
- },
- {
- "name": "jfcherng/php-sequence-matcher",
- "version": "4.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/jfcherng/php-sequence-matcher.git",
- "reference": "d2038ac29627340a7458609072a8ba355e80ec5b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jfcherng/php-sequence-matcher/zipball/d2038ac29627340a7458609072a8ba355e80ec5b",
- "reference": "d2038ac29627340a7458609072a8ba355e80ec5b",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3",
- "phan/phan": "^5",
- "phpunit/phpunit": "^9 || ^10",
- "squizlabs/php_codesniffer": "^3.7"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Jfcherng\\Diff\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jack Cherng",
- "email": "jfcherng@gmail.com"
- },
- {
- "name": "Chris Boulton",
- "email": "chris.boulton@interspire.com"
- }
- ],
- "description": "A longest sequence matcher. The logic is primarily based on the Python difflib package.",
- "support": {
- "issues": "https://github.com/jfcherng/php-sequence-matcher/issues",
- "source": "https://github.com/jfcherng/php-sequence-matcher/tree/4.0.3"
- },
- "funding": [
- {
- "url": "https://www.paypal.me/jfcherng/5usd",
- "type": "custom"
- }
- ],
- "time": "2023-05-21T07:57:08+00:00"
- },
{
"name": "laravel/fortify",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/fortify.git",
- "reference": "7f334449341219633acf40993461585ae5178d14"
+ "reference": "005f4d535ae671312d267d942b964807fc0ef6f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/fortify/zipball/7f334449341219633acf40993461585ae5178d14",
- "reference": "7f334449341219633acf40993461585ae5178d14",
+ "url": "https://api.github.com/repos/laravel/fortify/zipball/005f4d535ae671312d267d942b964807fc0ef6f8",
+ "reference": "005f4d535ae671312d267d942b964807fc0ef6f8",
"shasum": ""
},
"require": {
@@ -2176,24 +1939,24 @@
"issues": "https://github.com/laravel/fortify/issues",
"source": "https://github.com/laravel/fortify"
},
- "time": "2025-08-14T21:50:18+00:00"
+ "time": "2025-08-29T20:15:47+00:00"
},
{
"name": "laravel/framework",
- "version": "v11.45.2",
+ "version": "v12.29.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "d134bf11e2208c0c5bd488cf19e612ca176b820a"
+ "reference": "a9e4c73086f5ba38383e9c1d74b84fe46aac730b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/d134bf11e2208c0c5bd488cf19e612ca176b820a",
- "reference": "d134bf11e2208c0c5bd488cf19e612ca176b820a",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/a9e4c73086f5ba38383e9c1d74b84fe46aac730b",
+ "reference": "a9e4c73086f5ba38383e9c1d74b84fe46aac730b",
"shasum": ""
},
"require": {
- "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
+ "brick/math": "^0.11|^0.12|^0.13|^0.14",
"composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5",
"dragonmantank/cron-expression": "^3.4",
@@ -2208,32 +1971,35 @@
"fruitcake/php-cors": "^1.3",
"guzzlehttp/guzzle": "^7.8.2",
"guzzlehttp/uri-template": "^1.0",
- "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0",
+ "laravel/prompts": "^0.3.0",
"laravel/serializable-closure": "^1.3|^2.0",
"league/commonmark": "^2.7",
"league/flysystem": "^3.25.1",
"league/flysystem-local": "^3.25.1",
"league/uri": "^7.5.1",
"monolog/monolog": "^3.0",
- "nesbot/carbon": "^2.72.6|^3.8.4",
+ "nesbot/carbon": "^3.8.4",
"nunomaduro/termwind": "^2.0",
+ "phiki/phiki": "v2.0.0",
"php": "^8.2",
"psr/container": "^1.1.1|^2.0.1",
"psr/log": "^1.0|^2.0|^3.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
"ramsey/uuid": "^4.7",
- "symfony/console": "^7.0.3",
- "symfony/error-handler": "^7.0.3",
- "symfony/finder": "^7.0.3",
+ "symfony/console": "^7.2.0",
+ "symfony/error-handler": "^7.2.0",
+ "symfony/finder": "^7.2.0",
"symfony/http-foundation": "^7.2.0",
- "symfony/http-kernel": "^7.0.3",
- "symfony/mailer": "^7.0.3",
- "symfony/mime": "^7.0.3",
- "symfony/polyfill-php83": "^1.31",
- "symfony/process": "^7.0.3",
- "symfony/routing": "^7.0.3",
- "symfony/uid": "^7.0.3",
- "symfony/var-dumper": "^7.0.3",
+ "symfony/http-kernel": "^7.2.0",
+ "symfony/mailer": "^7.2.0",
+ "symfony/mime": "^7.2.0",
+ "symfony/polyfill-php83": "^1.33",
+ "symfony/polyfill-php84": "^1.33",
+ "symfony/polyfill-php85": "^1.33",
+ "symfony/process": "^7.2.0",
+ "symfony/routing": "^7.2.0",
+ "symfony/uid": "^7.2.0",
+ "symfony/var-dumper": "^7.2.0",
"tijsverkoyen/css-to-inline-styles": "^2.2.5",
"vlucas/phpdotenv": "^5.6.1",
"voku/portable-ascii": "^2.0.2"
@@ -2265,6 +2031,7 @@
"illuminate/filesystem": "self.version",
"illuminate/hashing": "self.version",
"illuminate/http": "self.version",
+ "illuminate/json-schema": "self.version",
"illuminate/log": "self.version",
"illuminate/macroable": "self.version",
"illuminate/mail": "self.version",
@@ -2297,17 +2064,18 @@
"league/flysystem-read-only": "^3.25.1",
"league/flysystem-sftp-v3": "^3.25.1",
"mockery/mockery": "^1.6.10",
- "orchestra/testbench-core": "^9.16.0",
- "pda/pheanstalk": "^5.0.6",
+ "opis/json-schema": "^2.4.1",
+ "orchestra/testbench-core": "^10.6.5",
+ "pda/pheanstalk": "^5.0.6|^7.0.0",
"php-http/discovery": "^1.15",
"phpstan/phpstan": "^2.0",
- "phpunit/phpunit": "^10.5.35|^11.3.6|^12.0.1",
- "predis/predis": "^2.3",
+ "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1",
+ "predis/predis": "^2.3|^3.0",
"resend/resend-php": "^0.10.0",
- "symfony/cache": "^7.0.3",
- "symfony/http-client": "^7.0.3",
- "symfony/psr-http-message-bridge": "^7.0.3",
- "symfony/translation": "^7.0.3"
+ "symfony/cache": "^7.2.0",
+ "symfony/http-client": "^7.2.0",
+ "symfony/psr-http-message-bridge": "^7.2.0",
+ "symfony/translation": "^7.2.0"
},
"suggest": {
"ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
@@ -2322,7 +2090,7 @@
"ext-pdo": "Required to use all database features.",
"ext-posix": "Required to use all features of the queue worker.",
"ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).",
- "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).",
"filp/whoops": "Required for friendly error pages in development (^2.14.3).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
"league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).",
@@ -2333,22 +2101,22 @@
"mockery/mockery": "Required to use mocking (^1.6).",
"pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).",
"php-http/discovery": "Required to use PSR-7 bridging features (^1.15).",
- "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.3.6|^12.0.1).",
- "predis/predis": "Required to use the predis connector (^2.3).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).",
+ "predis/predis": "Required to use the predis connector (^2.3|^3.0).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
"resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^7.0).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).",
- "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).",
- "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).",
- "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)."
+ "symfony/cache": "Required to PSR-6 cache bridge (^7.2).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "11.x-dev"
+ "dev-master": "12.x-dev"
}
},
"autoload": {
@@ -2391,74 +2159,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2025-08-13T20:28:00+00:00"
- },
- {
- "name": "laravel/jetstream",
- "version": "v5.3.8",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/jetstream.git",
- "reference": "5720f0c0a81ad4bc44602d45c2d5ce55f8c7fe24"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/jetstream/zipball/5720f0c0a81ad4bc44602d45c2d5ce55f8c7fe24",
- "reference": "5720f0c0a81ad4bc44602d45c2d5ce55f8c7fe24",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "illuminate/console": "^11.0|^12.0",
- "illuminate/support": "^11.0|^12.0",
- "laravel/fortify": "^1.20",
- "mobiledetect/mobiledetectlib": "^4.8.08",
- "php": "^8.2.0",
- "symfony/console": "^7.0"
- },
- "require-dev": {
- "inertiajs/inertia-laravel": "^2.0",
- "laravel/sanctum": "^4.0",
- "livewire/livewire": "^3.3",
- "mockery/mockery": "^1.0",
- "orchestra/testbench": "^9.0|^10.0",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Laravel\\Jetstream\\JetstreamServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Jetstream\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "Tailwind scaffolding for the Laravel framework.",
- "keywords": [
- "auth",
- "laravel",
- "tailwind"
- ],
- "support": {
- "issues": "https://github.com/laravel/jetstream/issues",
- "source": "https://github.com/laravel/jetstream"
- },
- "time": "2025-07-18T18:49:50+00:00"
+ "time": "2025-09-16T14:15:03+00:00"
},
{
"name": "laravel/prompts",
@@ -3878,71 +3579,6 @@
},
"time": "2022-12-02T22:17:43+00:00"
},
- {
- "name": "mobiledetect/mobiledetectlib",
- "version": "4.8.09",
- "source": {
- "type": "git",
- "url": "https://github.com/serbanghita/Mobile-Detect.git",
- "reference": "a06fe2e546a06bb8c2639d6823d5250b2efb3209"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/a06fe2e546a06bb8c2639d6823d5250b2efb3209",
- "reference": "a06fe2e546a06bb8c2639d6823d5250b2efb3209",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0",
- "psr/cache": "^3.0",
- "psr/simple-cache": "^3"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^v3.65.0",
- "phpbench/phpbench": "^1.2",
- "phpstan/phpstan": "^1.12.x-dev",
- "phpunit/phpunit": "^9.6.18",
- "squizlabs/php_codesniffer": "^3.11.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Detection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Serban Ghita",
- "email": "serbanghita@gmail.com",
- "homepage": "http://mobiledetect.net",
- "role": "Developer"
- }
- ],
- "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
- "homepage": "https://github.com/serbanghita/Mobile-Detect",
- "keywords": [
- "detect mobile devices",
- "mobile",
- "mobile detect",
- "mobile detector",
- "php mobile detect"
- ],
- "support": {
- "issues": "https://github.com/serbanghita/Mobile-Detect/issues",
- "source": "https://github.com/serbanghita/Mobile-Detect/tree/4.8.09"
- },
- "funding": [
- {
- "url": "https://github.com/serbanghita",
- "type": "github"
- }
- ],
- "time": "2024-12-10T15:32:06+00:00"
- },
{
"name": "monolog/monolog",
"version": "3.9.0",
@@ -4114,16 +3750,16 @@
},
{
"name": "nesbot/carbon",
- "version": "3.10.2",
+ "version": "3.10.3",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
- "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24"
+ "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24",
- "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f",
+ "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f",
"shasum": ""
},
"require": {
@@ -4141,13 +3777,13 @@
"require-dev": {
"doctrine/dbal": "^3.6.3 || ^4.0",
"doctrine/orm": "^2.15.2 || ^3.0",
- "friendsofphp/php-cs-fixer": "^3.75.0",
+ "friendsofphp/php-cs-fixer": "^v3.87.1",
"kylekatarnls/multi-tester": "^2.5.3",
"phpmd/phpmd": "^2.15.0",
"phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^2.1.17",
- "phpunit/phpunit": "^10.5.46",
- "squizlabs/php_codesniffer": "^3.13.0"
+ "phpstan/phpstan": "^2.1.22",
+ "phpunit/phpunit": "^10.5.53",
+ "squizlabs/php_codesniffer": "^3.13.4"
},
"bin": [
"bin/carbon"
@@ -4215,7 +3851,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-02T09:36:06+00:00"
+ "time": "2025-09-06T13:39:36+00:00"
},
{
"name": "nette/schema",
@@ -4721,6 +4357,77 @@
},
"time": "2020-10-15T08:29:30+00:00"
},
+ {
+ "name": "phiki/phiki",
+ "version": "v2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phikiphp/phiki.git",
+ "reference": "461f6dd7e91dc3a95463b42f549ac7d0aab4702f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phikiphp/phiki/zipball/461f6dd7e91dc3a95463b42f549ac7d0aab4702f",
+ "reference": "461f6dd7e91dc3a95463b42f549ac7d0aab4702f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "league/commonmark": "^2.5.3",
+ "php": "^8.2",
+ "psr/simple-cache": "^3.0"
+ },
+ "require-dev": {
+ "illuminate/support": "^11.45",
+ "laravel/pint": "^1.18.1",
+ "orchestra/testbench": "^9.15",
+ "pestphp/pest": "^3.5.1",
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^2.0",
+ "symfony/var-dumper": "^7.1.6"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Phiki\\Adapters\\Laravel\\PhikiServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Phiki\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ryan Chandler",
+ "email": "support@ryangjchandler.co.uk",
+ "homepage": "https://ryangjchandler.co.uk",
+ "role": "Developer"
+ }
+ ],
+ "description": "Syntax highlighting using TextMate grammars in PHP.",
+ "support": {
+ "issues": "https://github.com/phikiphp/phiki/issues",
+ "source": "https://github.com/phikiphp/phiki/tree/v2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/ryangjchandler",
+ "type": "github"
+ },
+ {
+ "url": "https://buymeacoffee.com/ryangjchandler",
+ "type": "other"
+ }
+ ],
+ "time": "2025-08-28T18:20:27+00:00"
+ },
{
"name": "php-http/discovery",
"version": "1.20.0",
@@ -5922,20 +5629,20 @@
},
{
"name": "ramsey/uuid",
- "version": "4.9.0",
+ "version": "4.9.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0"
+ "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0",
- "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440",
+ "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -5994,48 +5701,52 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.9.0"
+ "source": "https://github.com/ramsey/uuid/tree/4.9.1"
},
- "time": "2025-06-25T14:20:11+00:00"
+ "time": "2025-09-04T20:59:21+00:00"
},
{
- "name": "robsontenorio/mary",
- "version": "1.41.8",
+ "name": "rappasoft/laravel-livewire-tables",
+ "version": "v3.7.3",
"source": {
"type": "git",
- "url": "https://github.com/robsontenorio/mary.git",
- "reference": "364708bbed8a954bb9072957cc7cbcd8b3301c09"
+ "url": "https://github.com/rappasoft/laravel-livewire-tables.git",
+ "reference": "74beb4c2672e024000d41ecad8a17b4ab8c934bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/robsontenorio/mary/zipball/364708bbed8a954bb9072957cc7cbcd8b3301c09",
- "reference": "364708bbed8a954bb9072957cc7cbcd8b3301c09",
+ "url": "https://api.github.com/repos/rappasoft/laravel-livewire-tables/zipball/74beb4c2672e024000d41ecad8a17b4ab8c934bd",
+ "reference": "74beb4c2672e024000d41ecad8a17b4ab8c934bd",
"shasum": ""
},
"require": {
- "blade-ui-kit/blade-heroicons": "^2.3",
- "illuminate/support": "^10.0|^11.0",
- "jfcherng/php-diff": "^6.15",
- "laravel/prompts": "^0|^1"
+ "blade-ui-kit/blade-heroicons": "^2.1",
+ "illuminate/contracts": "^10.0|^11.0|^12.0",
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "livewire/livewire": "^3.0|dev-main",
+ "php": "^8.1|^8.2|^8.3|^8.4"
},
"require-dev": {
- "orchestra/testbench": "^8.21",
- "phpunit/phpunit": "^10.5"
+ "brianium/paratest": "^5.0|^6.0|^7.0|^8.0|^9.0",
+ "ext-sqlite3": "*",
+ "larastan/larastan": "^2.6|^3.0",
+ "laravel/pint": "^1.10",
+ "monolog/monolog": "*",
+ "nunomaduro/collision": "^6.0|^7.0|^8.0|^9.0",
+ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
+ "phpunit/phpunit": "^9.0|^10.0|^11.0|^12.0"
},
"type": "library",
"extra": {
"laravel": {
- "aliases": {
- "Mary": "Mary\\Facades\\Mary"
- },
"providers": [
- "Mary\\MaryServiceProvider"
+ "Rappasoft\\LaravelLivewireTables\\LaravelLivewireTablesServiceProvider"
]
}
},
"autoload": {
"psr-4": {
- "Mary\\": "src/"
+ "Rappasoft\\LaravelLivewireTables\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6044,46 +5755,36 @@
],
"authors": [
{
- "name": "Robson Tenório",
- "email": "rrtenorio@gmail.com",
- "homepage": "https://github.com/robsontenorio"
+ "name": "Anthony Rappa",
+ "email": "rappa819@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Joe McElwee",
+ "email": "joe@lowerrocklabs.com",
+ "role": "Developer"
}
],
- "description": "Laravel Blade UI Components for Livewire 3",
- "homepage": "https://mary-ui.com",
+ "description": "A dynamic table component for Laravel Livewire",
+ "homepage": "https://github.com/rappasoft/laravel-livewire-tables",
"keywords": [
- "DaisyUI",
- "alpinejs",
- "blade",
- "blade ui components",
- "components",
+ "datatables",
"laravel",
"livewire",
- "livewire 3",
- "livewire components",
- "livewire packages",
- "livewire ui",
- "livewire ui components",
- "livewire-components",
- "livewire-packages",
- "tailwind",
- "tallstack",
- "tallstack components",
- "tallstack ui",
- "tallstackui",
- "ui"
+ "rappasoft",
+ "tables"
],
"support": {
- "issues": "https://github.com/robsontenorio/mary/issues",
- "source": "https://github.com/robsontenorio/mary/tree/1.41.8"
+ "issues": "https://github.com/rappasoft/laravel-livewire-tables/issues",
+ "source": "https://github.com/rappasoft/laravel-livewire-tables/tree/v3.7.3"
},
"funding": [
{
- "url": "https://github.com/robsontenorio",
+ "url": "https://github.com/rappasoft",
"type": "github"
}
],
- "time": "2025-02-03T22:09:17+00:00"
+ "time": "2025-05-03T02:24:46+00:00"
},
{
"name": "scheb/yahoo-finance-api",
@@ -6205,34 +5906,34 @@
},
{
"name": "staudenmeir/eloquent-has-many-deep",
- "version": "v1.20.7",
+ "version": "v1.21.1",
"source": {
"type": "git",
"url": "https://github.com/staudenmeir/eloquent-has-many-deep.git",
- "reference": "52155a1ac051e0c451f329937e591f9b892f05e2"
+ "reference": "7810607379cef2e18accc75ee09903070178255d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/52155a1ac051e0c451f329937e591f9b892f05e2",
- "reference": "52155a1ac051e0c451f329937e591f9b892f05e2",
+ "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/7810607379cef2e18accc75ee09903070178255d",
+ "reference": "7810607379cef2e18accc75ee09903070178255d",
"shasum": ""
},
"require": {
- "illuminate/database": "^11.0",
+ "illuminate/database": "^12.0",
"php": "^8.2",
- "staudenmeir/eloquent-has-many-deep-contracts": "^1.2"
+ "staudenmeir/eloquent-has-many-deep-contracts": "^1.3"
},
"require-dev": {
"awobaz/compoships": "^2.3",
"barryvdh/laravel-ide-helper": "^3.0",
- "korridor/laravel-has-many-merged": "^1.1",
+ "korridor/laravel-has-many-merged": "^1.2",
"larastan/larastan": "^3.0",
- "laravel/framework": "^11.0",
+ "laravel/framework": "^12.0",
"mockery/mockery": "^1.6",
- "orchestra/testbench-core": "^9.5",
+ "orchestra/testbench-core": "^10.0",
"phpunit/phpunit": "^11.0",
- "staudenmeir/eloquent-json-relations": "^1.11",
- "staudenmeir/laravel-adjacency-list": "^1.21"
+ "staudenmeir/eloquent-json-relations": "^1.14",
+ "staudenmeir/laravel-adjacency-list": "^1.24"
},
"type": "library",
"extra": {
@@ -6260,7 +5961,7 @@
"description": "Laravel Eloquent HasManyThrough relationships with unlimited levels",
"support": {
"issues": "https://github.com/staudenmeir/eloquent-has-many-deep/issues",
- "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.20.7"
+ "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.21.1"
},
"funding": [
{
@@ -6268,24 +5969,24 @@
"type": "custom"
}
],
- "time": "2025-02-16T14:39:47+00:00"
+ "time": "2025-06-29T13:53:15+00:00"
},
{
"name": "staudenmeir/eloquent-has-many-deep-contracts",
- "version": "v1.2.1",
+ "version": "v1.3",
"source": {
"type": "git",
"url": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts.git",
- "reference": "3ad76c6eeda60042f262d113bf471dcce584d88b"
+ "reference": "37ce351e4db919b3af606bc8ca0e62e2e4939cde"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep-contracts/zipball/3ad76c6eeda60042f262d113bf471dcce584d88b",
- "reference": "3ad76c6eeda60042f262d113bf471dcce584d88b",
+ "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep-contracts/zipball/37ce351e4db919b3af606bc8ca0e62e2e4939cde",
+ "reference": "37ce351e4db919b3af606bc8ca0e62e2e4939cde",
"shasum": ""
},
"require": {
- "illuminate/database": "^11.0",
+ "illuminate/database": "^12.0",
"php": "^8.2"
},
"type": "library",
@@ -6307,9 +6008,9 @@
"description": "Contracts for staudenmeir/eloquent-has-many-deep",
"support": {
"issues": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts/issues",
- "source": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts/tree/v1.2.1"
+ "source": "https://github.com/staudenmeir/eloquent-has-many-deep-contracts/tree/v1.3"
},
- "time": "2024-09-25T18:24:22+00:00"
+ "time": "2025-02-15T17:11:01+00:00"
},
{
"name": "symfony/cache",
@@ -6565,16 +6266,16 @@
},
{
"name": "symfony/console",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "5f360ebc65c55265a74d23d7fe27f957870158a1"
+ "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/5f360ebc65c55265a74d23d7fe27f957870158a1",
- "reference": "5f360ebc65c55265a74d23d7fe27f957870158a1",
+ "url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
+ "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"shasum": ""
},
"require": {
@@ -6639,7 +6340,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.3.2"
+ "source": "https://github.com/symfony/console/tree/v7.3.3"
},
"funding": [
{
@@ -6659,7 +6360,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-30T17:13:41+00:00"
+ "time": "2025-08-25T06:35:40+00:00"
},
{
"name": "symfony/css-selector",
@@ -6876,16 +6577,16 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v7.3.0",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "497f73ac996a598c92409b44ac43b6690c4f666d"
+ "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d",
- "reference": "497f73ac996a598c92409b44ac43b6690c4f666d",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191",
+ "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191",
"shasum": ""
},
"require": {
@@ -6936,7 +6637,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3"
},
"funding": [
{
@@ -6947,12 +6648,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2025-04-22T09:11:45+00:00"
+ "time": "2025-08-13T11:49:31+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -7100,16 +6805,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6"
+ "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6877c122b3a6cc3695849622720054f6e6fa5fa6",
- "reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7475561ec27020196c49bb7c4f178d33d7d3dc00",
+ "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00",
"shasum": ""
},
"require": {
@@ -7159,7 +6864,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v7.3.2"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.3.3"
},
"funding": [
{
@@ -7179,20 +6884,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-10T08:47:49+00:00"
+ "time": "2025-08-20T08:04:18+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c"
+ "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6ecc895559ec0097e221ed2fd5eb44d5fede083c",
- "reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/72c304de37e1a1cec6d5d12b81187ebd4850a17b",
+ "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b",
"shasum": ""
},
"require": {
@@ -7277,7 +6982,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v7.3.2"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.3.3"
},
"funding": [
{
@@ -7297,20 +7002,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-31T10:45:04+00:00"
+ "time": "2025-08-29T08:23:45+00:00"
},
{
"name": "symfony/mailer",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b"
+ "reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/d43e84d9522345f96ad6283d5dfccc8c1cfc299b",
- "reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/a32f3f45f1990db8c4341d5122a7d3a381c7e575",
+ "reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575",
"shasum": ""
},
"require": {
@@ -7361,7 +7066,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v7.3.2"
+ "source": "https://github.com/symfony/mailer/tree/v7.3.3"
},
"funding": [
{
@@ -7381,7 +7086,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T11:36:08+00:00"
+ "time": "2025-08-13T11:49:31+00:00"
},
{
"name": "symfony/mime",
@@ -8057,6 +7762,166 @@
],
"time": "2025-07-08T02:45:35+00:00"
},
+ {
+ "name": "symfony/polyfill-php84",
+ "version": "v1.33.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php84.git",
+ "reference": "d8ced4d875142b6a7426000426b8abc631d6b191"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191",
+ "reference": "d8ced4d875142b6a7426000426b8abc631d6b191",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php84\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-06-24T13:30:11+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php85",
+ "version": "v1.33.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php85.git",
+ "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91",
+ "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php85\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-06-23T16:12:55+00:00"
+ },
{
"name": "symfony/polyfill-uuid",
"version": "v1.33.0",
@@ -8142,16 +8007,16 @@
},
{
"name": "symfony/process",
- "version": "v7.3.0",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af"
+ "reference": "32241012d521e2e8a9d713adb0812bb773b907f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
- "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
+ "url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1",
+ "reference": "32241012d521e2e8a9d713adb0812bb773b907f1",
"shasum": ""
},
"require": {
@@ -8183,7 +8048,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.3.0"
+ "source": "https://github.com/symfony/process/tree/v7.3.3"
},
"funding": [
{
@@ -8194,12 +8059,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2025-04-17T09:11:12+00:00"
+ "time": "2025-08-18T09:42:54+00:00"
},
{
"name": "symfony/routing",
@@ -8371,16 +8240,16 @@
},
{
"name": "symfony/string",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "42f505aff654e62ac7ac2ce21033818297ca89ca"
+ "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca",
- "reference": "42f505aff654e62ac7ac2ce21033818297ca89ca",
+ "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
+ "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"shasum": ""
},
"require": {
@@ -8438,7 +8307,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.3.2"
+ "source": "https://github.com/symfony/string/tree/v7.3.3"
},
"funding": [
{
@@ -8458,20 +8327,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-10T08:47:49+00:00"
+ "time": "2025-08-25T06:35:40+00:00"
},
{
"name": "symfony/translation",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "81b48f4daa96272efcce9c7a6c4b58e629df3c90"
+ "reference": "e0837b4cbcef63c754d89a4806575cada743a38d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/81b48f4daa96272efcce9c7a6c4b58e629df3c90",
- "reference": "81b48f4daa96272efcce9c7a6c4b58e629df3c90",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/e0837b4cbcef63c754d89a4806575cada743a38d",
+ "reference": "e0837b4cbcef63c754d89a4806575cada743a38d",
"shasum": ""
},
"require": {
@@ -8538,7 +8407,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v7.3.2"
+ "source": "https://github.com/symfony/translation/tree/v7.3.3"
},
"funding": [
{
@@ -8558,7 +8427,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-30T17:31:46+00:00"
+ "time": "2025-08-01T21:02:37+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -8714,16 +8583,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "53205bea27450dc5c65377518b3275e126d45e75"
+ "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/53205bea27450dc5c65377518b3275e126d45e75",
- "reference": "53205bea27450dc5c65377518b3275e126d45e75",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
+ "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
"shasum": ""
},
"require": {
@@ -8777,7 +8646,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.3.2"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.3.3"
},
"funding": [
{
@@ -8797,20 +8666,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-29T20:02:46+00:00"
+ "time": "2025-08-13T11:49:31+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "05b3e90654c097817325d6abd284f7938b05f467"
+ "reference": "d4dfcd2a822cbedd7612eb6fbd260e46f87b7137"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/05b3e90654c097817325d6abd284f7938b05f467",
- "reference": "05b3e90654c097817325d6abd284f7938b05f467",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d4dfcd2a822cbedd7612eb6fbd260e46f87b7137",
+ "reference": "d4dfcd2a822cbedd7612eb6fbd260e46f87b7137",
"shasum": ""
},
"require": {
@@ -8858,7 +8727,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v7.3.2"
+ "source": "https://github.com/symfony/var-exporter/tree/v7.3.3"
},
"funding": [
{
@@ -8878,7 +8747,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-10T08:47:49+00:00"
+ "time": "2025-08-18T13:10:53+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -8937,20 +8806,20 @@
},
{
"name": "tschucki/alphavantage-laravel",
- "version": "0.0.3",
+ "version": "0.0.4",
"source": {
"type": "git",
"url": "https://github.com/Tschucki/alphavantage-laravel.git",
- "reference": "6c8ba403bdaf77f959eb13e8ca583b081fd81054"
+ "reference": "30f17ed6419b4437823f9367113e84f2c346fd57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Tschucki/alphavantage-laravel/zipball/6c8ba403bdaf77f959eb13e8ca583b081fd81054",
- "reference": "6c8ba403bdaf77f959eb13e8ca583b081fd81054",
+ "url": "https://api.github.com/repos/Tschucki/alphavantage-laravel/zipball/30f17ed6419b4437823f9367113e84f2c346fd57",
+ "reference": "30f17ed6419b4437823f9367113e84f2c346fd57",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^10.0||^11.0",
+ "illuminate/contracts": "^10.0||^11.0||^12.0",
"php": "^8.2",
"spatie/laravel-package-tools": "^1.16"
},
@@ -9004,7 +8873,7 @@
],
"support": {
"issues": "https://github.com/Tschucki/alphavantage-laravel/issues",
- "source": "https://github.com/Tschucki/alphavantage-laravel/tree/0.0.3"
+ "source": "https://github.com/Tschucki/alphavantage-laravel/tree/0.0.4"
},
"funding": [
{
@@ -9012,7 +8881,7 @@
"type": "github"
}
],
- "time": "2025-02-05T00:58:45+00:00"
+ "time": "2025-09-15T08:38:01+00:00"
},
{
"name": "vlucas/phpdotenv",
@@ -9419,16 +9288,16 @@
},
{
"name": "laravel/pint",
- "version": "v1.24.0",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
- "reference": "0345f3b05f136801af8c339f9d16ef29e6b4df8a"
+ "reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/0345f3b05f136801af8c339f9d16ef29e6b4df8a",
- "reference": "0345f3b05f136801af8c339f9d16ef29e6b4df8a",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96",
+ "reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96",
"shasum": ""
},
"require": {
@@ -9439,9 +9308,9 @@
"php": "^8.2.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.82.2",
- "illuminate/view": "^11.45.1",
- "larastan/larastan": "^3.5.0",
+ "friendsofphp/php-cs-fixer": "^3.87.2",
+ "illuminate/view": "^11.46.0",
+ "larastan/larastan": "^3.7.1",
"laravel-zero/framework": "^11.45.0",
"mockery/mockery": "^1.6.12",
"nunomaduro/termwind": "^2.3.1",
@@ -9452,9 +9321,6 @@
],
"type": "project",
"autoload": {
- "files": [
- "overrides/Runner/Parallel/ProcessFactory.php"
- ],
"psr-4": {
"App\\": "app/",
"Database\\Seeders\\": "database/seeders/",
@@ -9484,7 +9350,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
- "time": "2025-07-10T18:09:32+00:00"
+ "time": "2025-09-17T01:36:44+00:00"
},
{
"name": "laravel/sail",
@@ -10246,16 +10112,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "11.5.35",
+ "version": "11.5.39",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "d341ee94ee5007b286fc7907b383aae6b5b3cc91"
+ "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d341ee94ee5007b286fc7907b383aae6b5b3cc91",
- "reference": "d341ee94ee5007b286fc7907b383aae6b5b3cc91",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ad5597f79d8489d2870073ac0bc0dd0ad1fa9931",
+ "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931",
"shasum": ""
},
"require": {
@@ -10327,7 +10193,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.35"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.39"
},
"funding": [
{
@@ -10351,7 +10217,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-28T05:13:54+00:00"
+ "time": "2025-09-14T06:20:41+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -11381,16 +11247,16 @@
},
{
"name": "symfony/yaml",
- "version": "v7.3.2",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "b8d7d868da9eb0919e99c8830431ea087d6aae30"
+ "reference": "d4f4a66866fe2451f61296924767280ab5732d9d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/b8d7d868da9eb0919e99c8830431ea087d6aae30",
- "reference": "b8d7d868da9eb0919e99c8830431ea087d6aae30",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/d4f4a66866fe2451f61296924767280ab5732d9d",
+ "reference": "d4f4a66866fe2451f61296924767280ab5732d9d",
"shasum": ""
},
"require": {
@@ -11433,7 +11299,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.3.2"
+ "source": "https://github.com/symfony/yaml/tree/v7.3.3"
},
"funding": [
{
@@ -11453,7 +11319,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-10T08:47:49+00:00"
+ "time": "2025-08-27T11:34:33+00:00"
},
{
"name": "theseer/tokenizer",
@@ -11518,6 +11384,7 @@
"platform": {
"php": "^8.3",
"ext-gd": "*",
+ "ext-json": "*",
"ext-mbstring": "*",
"ext-zip": "*"
},
diff --git a/config/jetstream.php b/config/jetstream.php
deleted file mode 100644
index 30203dd..0000000
--- a/config/jetstream.php
+++ /dev/null
@@ -1,81 +0,0 @@
- 'livewire',
-
- /*
- |--------------------------------------------------------------------------
- | Jetstream Route Middleware
- |--------------------------------------------------------------------------
- |
- | Here you may specify which middleware Jetstream will assign to the routes
- | that it registers with the application. When necessary, you may modify
- | these middleware; however, this default value is usually sufficient.
- |
- */
-
- 'middleware' => ['web'],
-
- 'auth_session' => AuthenticateSession::class,
-
- /*
- |--------------------------------------------------------------------------
- | Jetstream Guard
- |--------------------------------------------------------------------------
- |
- | Here you may specify the authentication guard Jetstream will use while
- | authenticating users. This value should correspond with one of your
- | guards that is already present in your "auth" configuration file.
- |
- */
-
- 'guard' => 'sanctum',
-
- /*
- |--------------------------------------------------------------------------
- | Features
- |--------------------------------------------------------------------------
- |
- | Some of Jetstream's features are optional. You may disable the features
- | by removing them from this array. You're free to only remove some of
- | these features or you can even remove all of these if you need to.
- |
- */
-
- 'features' => [
- Features::profilePhotos(),
- Features::api(),
- Features::accountDeletion(),
- ],
-
- /*
- |--------------------------------------------------------------------------
- | Profile Photo Disk
- |--------------------------------------------------------------------------
- |
- | This configuration value determines the default disk that will be used
- | when storing profile photos for your application's users. Typically
- | this will be the "public" disk but you may adjust this if needed.
- |
- */
-
- 'profile_photo_disk' => env('JETSTREAM_PROFILE_PHOTO_DISK', 'public'),
-
-];
diff --git a/config/livewire-tables.php b/config/livewire-tables.php
new file mode 100644
index 0000000..3dd4067
--- /dev/null
+++ b/config/livewire-tables.php
@@ -0,0 +1,24 @@
+ 'tailwind',
+
+ /**
+ * Enable or Disable automatic injection of core assets
+ */
+ 'inject_core_assets_enabled' => false,
+
+ /**
+ * Enable or Disable automatic injection of third-party assets
+ */
+ 'inject_third_party_assets_enabled' => false,
+
+ /**
+ * Enable Blade Directives (Not required if automatically injecting or using bundler approaches)
+ */
+ 'enable_blade_directives ' => false,
+
+];
\ No newline at end of file
diff --git a/config/mary.php b/config/mary.php
deleted file mode 100644
index f4f7554..0000000
--- a/config/mary.php
+++ /dev/null
@@ -1,46 +0,0 @@
- ''
- *
- *
- *
- * prefix => 'mary-'
- *
- *
- */
- 'prefix' => '',
-
- /**
- * Default route prefix.
- *
- * Some maryUI components make network request to its internal routes.
- *
- * route_prefix => ''
- * - Spotlight: '/mary/spotlight'
- * - Editor: '/mary/upload'
- * - ...
- *
- * route_prefix => 'my-components'
- * - Spotlight: '/my-components/mary/spotlight'
- * - Editor: '/my-components/mary/upload'
- * - ...
- */
- 'route_prefix' => '',
-
- /**
- * Components settings
- */
- 'components' => [
- 'spotlight' => [
- 'class' => 'App\Support\Spotlight',
- ],
- ],
-];
diff --git a/lang/en.json b/lang/en.json
index a73c43b..dc2a5b2 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -15,6 +15,7 @@
"Cancel": "Cancel",
"Save": "Save",
"Close": "Close",
+ "Dismiss": "Dismiss",
"or": "or",
"and": "and",
"Yes": "Yes",
@@ -28,21 +29,14 @@
"Permanently delete your account.": "Permanently delete your account.",
"Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.": "Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.",
"Are you sure you want to delete your account? Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Are you sure you want to delete your account? Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.",
- "Browser Sessions": "Browser Sessions",
- "Manage and log out your active sessions on other browsers and devices.": "Manage and log out your active sessions on other browsers and devices.",
- "If necessary, you may log out of all of your other browser sessions across all of your devices. Some of your recent sessions are listed below; however, this list may not be exhaustive. If you feel your account has been compromised, you should also update your password.": "If necessary, you may log out of all of your other browser sessions across all of your devices. Some of your recent sessions are listed below; however, this list may not be exhaustive. If you feel your account has been compromised, you should also update your password.",
- "This device": "This device",
- "Last active": "Last active",
- "Log Out Other Browser Sessions": "Log Out Other Browser Sessions",
- "Please enter your password to confirm you would like to log out of your other browser sessions across all of your devices.": "Please enter your password to confirm you would like to log out of your other browser sessions across all of your devices.",
"Two Factor Authentication": "Two Factor Authentication",
"Add additional security to your account using two factor authentication.": "Add additional security to your account using two factor authentication.",
"Finish enabling two factor authentication.": "Finish enabling two factor authentication.",
"You have enabled two factor authentication.": "You have enabled two factor authentication.",
"You have not enabled two factor authentication.": "You have not enabled two factor authentication.",
- "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone\\'s Google Authenticator application.": "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone\\'s Google Authenticator application.",
- "To finish enabling two factor authentication, scan the following QR code using your phone\\'s authenticator application or enter the setup key and provide the generated OTP code.": "To finish enabling two factor authentication, scan the following QR code using your phone\\'s authenticator application or enter the setup key and provide the generated OTP code.",
- "Two factor authentication is now enabled. Scan the following QR code using your phone\\'s authenticator application or enter the setup key.": "Two factor authentication is now enabled. Scan the following QR code using your phone\\'s authenticator application or enter the setup key.",
+ "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone's Google Authenticator application.": "When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone's Google Authenticator application.",
+ "To finish enabling two factor authentication, scan the following QR code using your phone's authenticator application or enter the setup key and provide the generated OTP code.": "To finish enabling two factor authentication, scan the following QR code using your phone's authenticator application or enter the setup key and provide the generated OTP code.",
+ "Two factor authentication is now enabled. Scan the following QR code using your phone's authenticator application or enter the setup key.": "Two factor authentication is now enabled. Scan the following QR code using your phone's authenticator application or enter the setup key.",
"Setup Key": "Setup Key",
"Store these recovery codes in a secure password manager. They can be used to recover access to your account if your two factor authentication device is lost.": "Store these recovery codes in a secure password manager. They can be used to recover access to your account if your two factor authentication device is lost.",
"Regenerate Recovery Codes": "Regenerate Recovery Codes",
@@ -57,7 +51,7 @@
"Your :provider account has been connected.": "Your :provider account has been connected.",
"Account already exists. Check your email to connect your :provider account.": "Account already exists. Check your email to connect your :provider account.",
"Could not login using :provider. Try again later.": "Could not login using :provider. Try again later.",
- "Update your account\\'s profile information and email address.": "Update your account\\'s profile information and email address.",
+ "Update your account's profile information and email address.": "Update your account's profile information and email address.",
"Photo": "Photo",
"Select A New Photo": "Select A New Photo",
"Remove Photo": "Remove Photo",
@@ -68,7 +62,9 @@
"Last used": "Last used",
"Delete": "Delete",
"API Token": "API Token",
- "Please copy your new API token. For your security, it won\\'t be shown again.": "Please copy your new API token. For your security, it won\\'t be shown again.",
+ "Please copy your new API token. For your security, it won't be shown again.": "Please copy your new API token. For your security, it won't be shown again.",
+ "Copy to clipboard": "Copy to clipboard",
+ "Successfully copied!": "Successfully copied!",
"API Token Permissions": "API Token Permissions",
"API tokens allow third-party services to authenticate with Investbrain on your behalf.": "API tokens allow third-party services to authenticate with Investbrain on your behalf.",
"Delete API Token": "Delete API Token",
@@ -96,7 +92,7 @@
"Recovery Code": "Recovery Code",
"Use a recovery code": "Use a recovery code",
"Use an authentication code": "Use an authentication code",
- "Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn\\'t receive the email, we will gladly send you another.": "Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn\\'t receive the email, we will gladly send you another.",
+ "Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another.": "Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn't receive the email, we will gladly send you another.",
"A new verification link has been sent to the email address you provided in your profile settings.": "A new verification link has been sent to the email address you provided in your profile settings.",
"Resend Verification Email": "Resend Verification Email",
"Edit Profile": "Edit Profile",
@@ -114,8 +110,9 @@
"The provided password does not match your current password.": "The provided password does not match your current password.",
"Documentation": "Documentation",
- "We\\'re open source!": "We\\'re open source!",
+ "We're open source!": "We're open source!",
"Toggle Theme": "Toggle Theme",
+ "Toggle Sidebar": "Toggle Sidebar",
"Dashboard": "Dashboard",
"Gain/Loss": "Gain/Loss",
@@ -333,7 +330,7 @@
"passwords.sent": "We have emailed your password reset link.",
"passwords.throttled": "Please wait before retrying.",
"passwords.token": "This password reset token is invalid.",
- "passwords.user": "We can\\'t find a user with that email address.",
+ "passwords.user": "We can't find a user with that email address.",
"pagination.previous": "« Previous",
"pagination.next": "Next »",
diff --git a/lang/es.json b/lang/es.json
index 3236b6e..82616cf 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -15,6 +15,7 @@
"Cancel": "Cancelar",
"Save": "Guardar",
"Close": "Cerrar",
+ "Dismiss": "Despedir",
"or": "o",
"and": "y",
"Yes": "SÃ",
@@ -28,13 +29,6 @@
"Permanently delete your account.": "Elimina tu cuenta de forma permanente.",
"Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.": "Una vez que tu cuenta sea eliminada, todos sus recursos y datos serán eliminados de forma permanente. Antes de eliminar tu cuenta, descarga cualquier dato o información que desees conservar.",
"Are you sure you want to delete your account? Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "¿Estás seguro de que deseas eliminar tu cuenta? Una vez que tu cuenta sea eliminada, todos sus recursos y datos serán eliminados de forma permanente. Introduce tu contraseña para confirmar que deseas eliminar tu cuenta de forma permanente.",
- "Browser Sessions": "Sesiones del Navegador",
- "Manage and log out your active sessions on other browsers and devices.": "Gestiona y cierra sesión en tus sesiones activas en otros navegadores y dispositivos.",
- "If necessary, you may log out of all of your other browser sessions across all of your devices. Some of your recent sessions are listed below; however, this list may not be exhaustive. If you feel your account has been compromised, you should also update your password.": "Si es necesario, puedes cerrar sesión en todas tus otras sesiones del navegador en todos tus dispositivos. Algunas de tus sesiones recientes se enumeran a continuación; sin embargo, esta lista puede no ser exhaustiva. Si sientes que tu cuenta ha sido comprometida, también deberÃas actualizar tu contraseña.",
- "This device": "Este dispositivo",
- "Last active": "Última actividad",
- "Log Out Other Browser Sessions": "Cerrar Sesión en Otras Sesiones del Navegador",
- "Please enter your password to confirm you would like to log out of your other browser sessions across all of your devices.": "Introduce tu contraseña para confirmar que deseas cerrar sesión en tus otras sesiones del navegador en todos tus dispositivos.",
"Two Factor Authentication": "Autenticación de Dos Factores",
"Add additional security to your account using two factor authentication.": "Añade seguridad adicional a tu cuenta utilizando autenticación de dos factores.",
"Finish enabling two factor authentication.": "Finaliza la activación de la autenticación de dos factores.",
@@ -69,6 +63,8 @@
"Delete": "Eliminar",
"API Token": "Token API",
"Please copy your new API token. For your security, it won't be shown again.": "Por favor, copia tu nuevo token API. Por seguridad, no se mostrará nuevamente.",
+ "Copy to clipboard": "Copiar al portapapeles",
+ "Successfully copied!": "Copiado con éxito!",
"API Token Permissions": "Permisos del Token API",
"API tokens allow third-party services to authenticate with Investbrain on your behalf.": "Los tokens API permiten que servicios de terceros se autentiquen con Investbrain en tu nombre.",
"Delete API Token": "Eliminar Token API",
@@ -116,6 +112,7 @@
"Documentation": "Documentación",
"We're open source!": "¡Somos de código abierto!",
"Toggle Theme": "Cambiar Tema",
+ "Toggle Sidebar": "Alternar Navegación Lateral",
"Dashboard": "Tablero",
"Gain/Loss": "Ganancia/Pérdida",
diff --git a/package-lock.json b/package-lock.json
index 28e8147..ba01f4b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,33 +5,47 @@
"packages": {
"": {
"dependencies": {
+ "@alpinejs/focus": "^3.15.0",
+ "@alpinejs/persist": "^3.14.9",
+ "@alpinejs/resize": "^3.14.9",
+ "alpinejs": "^3.14.9",
"apexcharts": "^3.51.0"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.7",
"@tailwindcss/typography": "^0.5.10",
+ "@tailwindcss/vite": "^4.1.13",
"autoprefixer": "^10.4.19",
"axios": "^1.7.4",
- "daisyui": "^4.12.10",
+ "daisyui": "^5.1.14",
"laravel-vite-plugin": "^1.0",
"postcss": "^8.4.40",
- "tailwindcss": "^3.4.7",
+ "tailwindcss": "^4.1.13",
"vite": "^5.4"
}
},
- "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,
+ "node_modules/@alpinejs/focus": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@alpinejs/focus/-/focus-3.15.0.tgz",
+ "integrity": "sha512-Cm9vop09oNFw7T9SEBcfijrTdSN1aBNHK3cN4mB52eKvi9z5pa+xcyN+6S3FmZ44MR/u81JXa6hi5CjX1iy6dA==",
"license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "dependencies": {
+ "focus-trap": "^6.9.4",
+ "tabbable": "^5.3.3"
}
},
+ "node_modules/@alpinejs/persist": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@alpinejs/persist/-/persist-3.15.0.tgz",
+ "integrity": "sha512-SmW1DWn9FRflfPqZZtpTq+2uXDq/ohbSiKmYg6HXX1UxQnsaSkTT0HT72SQcbqOC3WmIUF28CberBnwiWoqmpw==",
+ "license": "MIT"
+ },
+ "node_modules/@alpinejs/resize": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/@alpinejs/resize/-/resize-3.15.0.tgz",
+ "integrity": "sha512-c/9PnQtsJ6iTeMnSaxgX3DDCjZX38WSOFlZd1OLm1iqngfwteYWxzSjMI4IqLxb7vmKAtrofAVs+sxt5IBOCBg==",
+ "license": "MIT"
+ },
"node_modules/@esbuild/aix-ppc64": {
"version": "0.21.5",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
@@ -423,22 +437,17 @@
"node": ">=12"
}
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "node_modules/@isaacs/fs-minipass": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
"dev": true,
"license": "ISC",
"dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ "minipass": "^7.0.4"
},
"engines": {
- "node": ">=12"
+ "node": ">=18.0.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
@@ -456,6 +465,17 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@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",
@@ -477,9 +497,9 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "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"
},
@@ -494,55 +514,6 @@
"@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/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.32.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz",
@@ -822,6 +793,278 @@
"tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1"
}
},
+ "node_modules/@tailwindcss/node": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.13.tgz",
+ "integrity": "sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.4",
+ "enhanced-resolve": "^5.18.3",
+ "jiti": "^2.5.1",
+ "lightningcss": "1.30.1",
+ "magic-string": "^0.30.18",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.1.13"
+ }
+ },
+ "node_modules/@tailwindcss/node/node_modules/jiti": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.0.tgz",
+ "integrity": "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.13.tgz",
+ "integrity": "sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^2.0.4",
+ "tar": "^7.4.3"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.1.13",
+ "@tailwindcss/oxide-darwin-arm64": "4.1.13",
+ "@tailwindcss/oxide-darwin-x64": "4.1.13",
+ "@tailwindcss/oxide-freebsd-x64": "4.1.13",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.13",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.1.13",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.1.13",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.1.13",
+ "@tailwindcss/oxide-linux-x64-musl": "4.1.13",
+ "@tailwindcss/oxide-wasm32-wasi": "4.1.13",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.1.13",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.1.13"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.13.tgz",
+ "integrity": "sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.13.tgz",
+ "integrity": "sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.13.tgz",
+ "integrity": "sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.13.tgz",
+ "integrity": "sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.13.tgz",
+ "integrity": "sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.13.tgz",
+ "integrity": "sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.13.tgz",
+ "integrity": "sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.13.tgz",
+ "integrity": "sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.13.tgz",
+ "integrity": "sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.13.tgz",
+ "integrity": "sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.4.5",
+ "@emnapi/runtime": "^1.4.5",
+ "@emnapi/wasi-threads": "^1.0.4",
+ "@napi-rs/wasm-runtime": "^0.2.12",
+ "@tybys/wasm-util": "^0.10.0",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz",
+ "integrity": "sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.13.tgz",
+ "integrity": "sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/@tailwindcss/typography": {
"version": "0.5.16",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz",
@@ -838,6 +1081,21 @@
"tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
}
},
+ "node_modules/@tailwindcss/vite": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.13.tgz",
+ "integrity": "sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tailwindcss/node": "4.1.13",
+ "@tailwindcss/oxide": "4.1.13",
+ "tailwindcss": "4.1.13"
+ },
+ "peerDependencies": {
+ "vite": "^5.2.0 || ^6 || ^7"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -845,57 +1103,34 @@
"dev": true,
"license": "MIT"
},
+ "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/@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/@yr/monotone-cubic-spline": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz",
"integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==",
"license": "MIT"
},
- "node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "dev": true,
+ "node_modules/alpinejs": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.15.0.tgz",
+ "integrity": "sha512-lpokA5okCF1BKh10LG8YjqhfpxyHBk4gE7boIgVHltJzYoM7O9nK3M7VlntLEJGsVmu7U/RzUWajmHREGT38Eg==",
"license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "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"
+ "@vue/reactivity": "~3.1.1"
}
},
"node_modules/apexcharts": {
@@ -913,13 +1148,6 @@
"svg.select.js": "^3.0.1"
}
},
- "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",
@@ -977,49 +1205,6 @@
"proxy-from-env": "^1.1.0"
}
},
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true,
- "license": "MIT"
- },
- "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/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "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.24.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
@@ -1053,16 +1238,6 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001695",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz",
@@ -1084,64 +1259,16 @@
],
"license": "CC-BY-4.0"
},
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "node_modules/chownr": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
"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"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
+ "node": ">=18"
}
},
- "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/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",
@@ -1155,42 +1282,6 @@
"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/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/css-selector-tokenizer": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz",
- "integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "fastparse": "^1.1.2"
- }
- },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -1204,34 +1295,14 @@
"node": ">=4"
}
},
- "node_modules/culori": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/culori/-/culori-3.3.0.tgz",
- "integrity": "sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
"node_modules/daisyui": {
- "version": "4.12.23",
- "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.12.23.tgz",
- "integrity": "sha512-EM38duvxutJ5PD65lO/AFMpcw+9qEy6XAZrTpzp7WyaPeO/l+F/Qiq0ECHHmFNcFXh5aVoALY4MGrrxtCiaQCQ==",
+ "version": "5.1.14",
+ "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.1.14.tgz",
+ "integrity": "sha512-c9Op7tB8vLzzazFaLeyFsmmVMLrU8sYo1sHuStBGTbaAzLVxrulelGQBROo/lS2ZxWm/CnCb9NWdKbTL+MaKFA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "css-selector-tokenizer": "^0.8",
- "culori": "^3",
- "picocolors": "^1",
- "postcss-js": "^4"
- },
- "engines": {
- "node": ">=16.9.0"
- },
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/daisyui"
+ "url": "https://github.com/saadeghi/daisyui?sponsor=1"
}
},
"node_modules/delayed-stream": {
@@ -1244,26 +1315,15 @@
"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==",
+ "node_modules/detect-libc": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.0.tgz",
+ "integrity": "sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==",
"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/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true,
- "license": "MIT"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/electron-to-chromium": {
"version": "1.5.88",
@@ -1272,12 +1332,19 @@
"dev": true,
"license": "ISC"
},
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.3",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
+ "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
},
"node_modules/esbuild": {
"version": "0.21.5",
@@ -1328,64 +1395,13 @@
"node": ">=6"
}
},
- "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,
+ "node_modules/focus-trap": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-6.9.4.tgz",
+ "integrity": "sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==",
"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/fastparse": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
- "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/fastq": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz",
- "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==",
- "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"
+ "tabbable": "^5.3.3"
}
},
"node_modules/follow-redirects": {
@@ -1409,23 +1425,6 @@
}
}
},
- "node_modules/foreground-child": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
- "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/form-data": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
@@ -1470,168 +1469,13 @@
"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/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "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/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true,
"license": "ISC"
},
- "node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.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.2.0",
"resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.2.0.tgz",
@@ -1652,25 +1496,244 @@
"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==",
+ "node_modules/lightningcss": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
+ "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
"dev": true,
- "license": "MIT",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
"engines": {
- "node": ">=14"
+ "node": ">= 12.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/antonk52"
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-darwin-arm64": "1.30.1",
+ "lightningcss-darwin-x64": "1.30.1",
+ "lightningcss-freebsd-x64": "1.30.1",
+ "lightningcss-linux-arm-gnueabihf": "1.30.1",
+ "lightningcss-linux-arm64-gnu": "1.30.1",
+ "lightningcss-linux-arm64-musl": "1.30.1",
+ "lightningcss-linux-x64-gnu": "1.30.1",
+ "lightningcss-linux-x64-musl": "1.30.1",
+ "lightningcss-win32-arm64-msvc": "1.30.1",
+ "lightningcss-win32-x64-msvc": "1.30.1"
}
},
- "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==",
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz",
+ "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz",
+ "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz",
+ "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz",
+ "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz",
+ "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
+ "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz",
+ "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz",
+ "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz",
+ "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
+ "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
},
"node_modules/lodash.castarray": {
"version": "4.4.0",
@@ -1693,35 +1756,14 @@
"dev": true,
"license": "MIT"
},
- "node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "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==",
+ "node_modules/magic-string": {
+ "version": "0.30.19",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
+ "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/mime-db": {
@@ -1757,22 +1799,6 @@
"mini-svg-data-uri": "cli.js"
}
},
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/minipass": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
@@ -1783,16 +1809,17 @@
"node": ">=16 || 14 >=14.17"
}
},
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "node_modules/minizlib": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
}
},
"node_modules/nanoid": {
@@ -1821,16 +1848,6 @@
"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/normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
@@ -1841,67 +1858,6 @@
"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/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "dev": true,
- "license": "BlueOak-1.0.0"
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "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/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -1922,26 +1878,6 @@
"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.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/postcss": {
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz",
@@ -1971,120 +1907,6 @@
"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.0.1",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
- "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.0.0",
- "yaml": "^2.3.4"
- },
- "engines": {
- "node": ">= 14"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "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-nested/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-selector-parser": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
@@ -2113,82 +1935,6 @@
"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/resolve": {
- "version": "1.22.10",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
- "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.16.0",
- "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.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
"node_modules/rollup": {
"version": "4.32.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz",
@@ -2228,66 +1974,6 @@
"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/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -2298,146 +1984,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "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/string-width-cjs/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/string-width-cjs/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/string-width-cjs/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/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "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/strip-ansi-cjs/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/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "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/svg.draggable.js": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz",
@@ -2529,101 +2075,50 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/tabbable": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz",
+ "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==",
+ "license": "MIT"
+ },
"node_modules/tailwindcss": {
- "version": "3.4.17",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
- "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.13.tgz",
+ "integrity": "sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tapable": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz",
+ "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==",
"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.6",
- "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",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
+ "engines": {
+ "node": ">=6"
},
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/tar": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.4.tgz",
+ "integrity": "sha512-O1z7ajPkjTgEgmTGz0v9X4eqeEXTDREPTO77pVC1Nbs86feBU1Zhdg+edzavPmYW1olxkwsqA2v4uOw6E8LeDg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.1.0",
+ "yallist": "^5.0.0"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
}
},
- "node_modules/tailwindcss/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/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/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/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/update-browserslist-db": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
@@ -2733,131 +2228,14 @@
"picomatch": "^2.3.1"
}
},
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/yallist": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
+ "license": "BlueOak-1.0.0",
"engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/yaml": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
- "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
+ "node": ">=18"
}
}
}
diff --git a/package.json b/package.json
index 89d882a..4e36d67 100644
--- a/package.json
+++ b/package.json
@@ -8,15 +8,20 @@
"devDependencies": {
"@tailwindcss/forms": "^0.5.7",
"@tailwindcss/typography": "^0.5.10",
+ "@tailwindcss/vite": "^4.1.13",
"autoprefixer": "^10.4.19",
"axios": "^1.7.4",
- "daisyui": "^4.12.10",
+ "daisyui": "^5.1.14",
"laravel-vite-plugin": "^1.0",
"postcss": "^8.4.40",
- "tailwindcss": "^3.4.7",
+ "tailwindcss": "^4.1.13",
"vite": "^5.4"
},
"dependencies": {
+ "@alpinejs/focus": "^3.15.0",
+ "@alpinejs/persist": "^3.14.9",
+ "@alpinejs/resize": "^3.14.9",
+ "alpinejs": "^3.14.9",
"apexcharts": "^3.51.0"
}
}
diff --git a/postcss.config.js b/postcss.config.js
deleted file mode 100644
index 49c0612..0000000
--- a/postcss.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-};
diff --git a/public/images/noise.svg b/public/images/noise.svg
new file mode 100644
index 0000000..5074771
--- /dev/null
+++ b/public/images/noise.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/css/app.css b/resources/css/app.css
index 1189590..1646194 100644
--- a/resources/css/app.css
+++ b/resources/css/app.css
@@ -1,11 +1,129 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+@import url("https://fonts.bunny.net/css?family=Inter:400,500,600&display=swap");
-[x-cloak] {
- display: none;
+@import "tailwindcss";
+@plugin "@tailwindcss/typography";
+
+@theme {
+ --font-sans: "Inter", sans-serif;
}
+@plugin "daisyui" {
+ themes: light, dark --default --prefersdark;
+}
+
+@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
+
+@plugin "daisyui/theme" {
+ name: "dark";
+ default: true;
+ prefersdark: true;
+ color-scheme: dark;
+
+ --animation-input: 0.15s;
+
+ --radius-selector: 0.15rem;
+ --radius-field: 0.25rem;
+ --radius-box: 0.5rem;
+
+ --size-selector: 0.25rem;
+ --size-field: 0.25rem;
+
+ --color-primary: "#78716c";
+ --color-primary-content: "#e3e1e0";
+ --color-secondary: "#7a7a7a";
+ --color-secondary-content: "#d1d1d5";
+ --color-accent: "#8c9ae3";
+ --color-accent-content: "#d3d4dd";
+ --color-neutral: "#302f3c";
+ --color-neutral-content: "#d1d1d5";
+ --color-base-100: "#20202A";
+ --color-base-200: "#1a1a23";
+ --color-base-300: "#15151c";
+ --color-base-content: "#cecdd0";
+ --color-info: "#1e40af";
+ --color-info-content: "#ced9f2";
+ --color-success: "#166534";
+ --color-success-content: "#d1dfd3";
+ --color-warning: "#a16207";
+ --color-warning-content: "#eddfd1";
+ --color-error: "#991b1b";
+ --color-error-content: "#efd3cf";
+ --depth: 0;
+ --noise: 0;
+}
+@plugin "daisyui/theme" {
+ name: "light";
+ prefersdark: false;
+ color-scheme: light;
+
+ --animation-input: 0.15s;
+
+ --radius-selector: 0.15rem;
+ --radius-field: 0.25rem;
+ --radius-box: 0.5rem;
+
+ --size-selector: 0.25rem;
+ --size-field: 0.25rem;
+
+ --color-primary: "#d6d3d1";
+ --color-primary-content: "#101010";
+ --color-secondary: "#9ca3af";
+ --color-secondary-content: "#090a0b";
+ --color-accent: "#525783";
+ --color-accent-content: "#110c16";
+ --color-neutral: "#6b7280";
+ --color-neutral-content: "#e0e1e4";
+ --color-base-100: "oklch(100% 0 0)";
+ --color-base-200: "oklch(97.466% 0.011 259.822)";
+ --color-base-300: "oklch(0.95 0.016 244.89)";
+ --color-base-content: "#161616";
+ --color-info: "#60a5fa";
+ --color-info-content: "#030a15";
+ --color-success: "#10b981";
+ --color-success-content: "#000d06";
+ --color-warning: "#fb923c";
+ --color-warning-content: "#150801";
+ --color-error: "#ef4444";
+ --color-error-content: "#140202";
+ --depth: 0;
+ --noise: 0;
+}
+
+@source "../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php";
+@source "../../storage/framework/views/*.php";
+@source "../**/*.blade.php";
+
+/* Tool tip for apex charts */
+[data-theme=dark] .apexcharts-tooltip-title {
+ background: #292933 !important;
+ border-bottom: 1px solid #393939 !important;
+}
+[data-theme=dark] .apexcharts-tooltip {
+ background: #20202A !important;
+ border-color: #393939 !important;
+}
+
+/* Wiggle animation */
+@keyframes wiggle {
+ 10%, 90% {
+ transform: translate3d(-1px, 0, 0);
+ }
+ 20%, 80% {
+ transform: translate3d(2px, 0, 0);
+ }
+ 30%, 50%, 70% {
+ transform: translate3d(-4px, 0, 0);
+ }
+ 40%, 60% {
+ transform: translate3d(4px, 0, 0);
+ }
+}
+
+.wiggle {
+ animation: wiggle 0.5s cubic-bezier(.36,.07,.19,.97) both;
+}
+
+/* AI chat styles */
.ai-chat ul, .ai-chat ol, .ai-chat ol li > ul {
margin-left: 1.1rem;
}
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
index 47d6892..5912c75 100644
--- a/resources/js/bootstrap.js
+++ b/resources/js/bootstrap.js
@@ -1,6 +1,8 @@
import ApexCharts from 'apexcharts'
window.ApexCharts = ApexCharts;
+import '../../vendor/rappasoft/laravel-livewire-tables/resources/imports/laravel-livewire-tables.js';
+
import axios from 'axios';
window.axios = axios;
diff --git a/resources/views/api/api-token-manager.blade.php b/resources/views/api/api-token-manager.blade.php
index 340f23a..3bcd40d 100644
--- a/resources/views/api/api-token-manager.blade.php
+++ b/resources/views/api/api-token-manager.blade.php
@@ -1,5 +1,195 @@
-
-
+ '',
+ 'permissions' => [],
+ ];
+
+ /**
+ * Indicates if the plain text token is being displayed to the user.
+ *
+ * @var bool
+ */
+ public $displayingToken = false;
+
+ /**
+ * The plain text token value.
+ *
+ * @var string|null
+ */
+ public $plainTextToken;
+
+ /**
+ * Indicates if the user is currently managing an API token's permissions.
+ *
+ * @var bool
+ */
+ public $managingApiTokenPermissions = false;
+
+ /**
+ * The token that is currently having its permissions managed.
+ *
+ * @var \Laravel\Sanctum\PersonalAccessToken|null
+ */
+ public $managingPermissionsFor;
+
+ /**
+ * The update API token form state.
+ *
+ * @var array
+ */
+ public $updateApiTokenForm = [
+ 'permissions' => [],
+ ];
+
+ /**
+ * Indicates if the application is confirming if an API token should be deleted.
+ *
+ * @var bool
+ */
+ public $confirmingApiTokenDeletion = false;
+
+ /**
+ * The ID of the API token being deleted.
+ *
+ * @var int
+ */
+ public $apiTokenIdBeingDeleted;
+
+ /**
+ * Mount the component.
+ *
+ * @return void
+ */
+ public function mount()
+ {
+ //
+ }
+
+ /**
+ * Create a new API token.
+ *
+ * @return void
+ */
+ public function createApiToken()
+ {
+ $this->resetErrorBag();
+
+ Validator::make([
+ 'name' => $this->createApiTokenForm['name'],
+ ], [
+ 'name' => ['required', 'string', 'max:255'],
+ ])->validateWithBag('createApiToken');
+
+ $this->displayTokenValue($this->user->createToken(
+ $this->createApiTokenForm['name']
+ ));
+
+ $this->createApiTokenForm['name'] = '';
+
+ $this->dispatch('created');
+ }
+
+ /**
+ * Display the token value to the user.
+ *
+ * @param \Laravel\Sanctum\NewAccessToken $token
+ * @return void
+ */
+ protected function displayTokenValue($token)
+ {
+ $this->displayingToken = true;
+
+ $this->plainTextToken = explode('|', $token->plainTextToken, 2)[1];
+ }
+
+ /**
+ * Allow the given token's permissions to be managed.
+ *
+ * @param int $tokenId
+ * @return void
+ */
+ public function manageApiTokenPermissions($tokenId)
+ {
+ $this->managingApiTokenPermissions = true;
+
+ $this->managingPermissionsFor = $this->user->tokens()->where(
+ 'id', $tokenId
+ )->firstOrFail();
+
+ $this->updateApiTokenForm['permissions'] = $this->managingPermissionsFor->abilities;
+ }
+
+ /**
+ * Update the API token's permissions.
+ *
+ * @return void
+ */
+ public function updateApiToken()
+ {
+ $this->managingPermissionsFor->forceFill([
+ 'abilities' => [],
+ ])->save();
+
+ $this->managingApiTokenPermissions = false;
+ }
+
+ /**
+ * Confirm that the given API token should be deleted.
+ *
+ * @param int $tokenId
+ * @return void
+ */
+ public function confirmApiTokenDeletion($tokenId)
+ {
+ $this->confirmingApiTokenDeletion = true;
+
+ $this->apiTokenIdBeingDeleted = $tokenId;
+ }
+
+ /**
+ * Delete the API token.
+ *
+ * @return void
+ */
+ public function deleteApiToken()
+ {
+ $this->user->tokens()->where('id', $this->apiTokenIdBeingDeleted)->first()->delete();
+
+ $this->user->load('tokens');
+
+ $this->confirmingApiTokenDeletion = false;
+
+ $this->managingPermissionsFor = null;
+ }
+
+ /**
+ * Get the current user of the application.
+ *
+ * @return mixed
+ */
+ public function getUserProperty()
+ {
+ return Auth::user();
+ }
+}; ?>
+
+
+ {{-- Generate API Token --}}
{{ __('Create API Token') }}
@@ -10,13 +200,13 @@
-
+ {{-- Token Name --}}
-
+
-
- @if (Laravel\Jetstream\Jetstream::hasPermissions())
+ {{-- Token Permissions --}}
+ @if (false)
@@ -25,15 +215,63 @@
- @foreach (Laravel\Jetstream\Jetstream::$permissions as $label => $permission)
+ @foreach ([] as $label => $permission)
-
+
{{ $label }}
@endforeach
@endif
+
+ {{-- Token Value Modal --}}
+
+
+
+
+ {{ __('Please copy your new API token. For your security, it won\'t be shown again.') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ __('Close') }}
+
+
+
+
+
@@ -41,16 +279,16 @@
{{ __('Created.') }}
-
+
{{ __('Create') }}
-
+
@if ($this->user->tokens->isNotEmpty())
-
+
-
+ {{-- Manage API Tokens --}}
@@ -61,12 +299,12 @@
{{ __('You may delete any of your existing tokens if they are no longer needed.') }}
-
+ {{-- API Token List --}}
@foreach ($this->user->tokens->sortBy('name') as $token)
-
+
{{ $token->name }}
@@ -77,7 +315,7 @@
@endif
- @if (Laravel\Jetstream\Jetstream::hasPermissions())
+ @if (false)
{{ __('Permissions') }}
@@ -95,42 +333,17 @@
@endif
-
-
-
- {{ __('API Token') }}
-
-
-
-
- {{ __('Please copy your new API token. For your security, it won\'t be shown again.') }}
-
-
- $refs.plaintextToken.select(), 250)"
- />
-
-
-
-
- {{ __('Close') }}
-
-
-
-
-
-
+ {{-- API Token Permissions Modal --}}
+
{{ __('API Token Permissions') }}
- @foreach (Laravel\Jetstream\Jetstream::$permissions as $label => $permission)
+ @foreach ([] as $label => $permission)
-
+
{{ $label }}
@endforeach
@@ -138,18 +351,18 @@
-
+
{{ __('Cancel') }}
-
+
-
+
{{ __('Save') }}
-
+
-
+
-
-
+ {{-- Delete Token Confirmation Modal --}}
+
{{ __('Delete API Token') }}
@@ -159,13 +372,13 @@
-
+
{{ __('Cancel') }}
-
+
-
+
{{ __('Delete') }}
-
+
-
+
diff --git a/resources/views/api/index.blade.php b/resources/views/api/index.blade.php
index 5f6be47..f320049 100644
--- a/resources/views/api/index.blade.php
+++ b/resources/views/api/index.blade.php
@@ -1,13 +1,7 @@
-
-
-
- {{ __('API Tokens') }}
-
-
+
-
-
- @livewire('api.api-token-manager')
-
+
+ @livewire('api-token-manager')
-
+
+
diff --git a/resources/views/auth/confirm-password.blade.php b/resources/views/auth/confirm-password.blade.php
index 8b313c6..00b6784 100644
--- a/resources/views/auth/confirm-password.blade.php
+++ b/resources/views/auth/confirm-password.blade.php
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -10,20 +10,20 @@
{{ __('This is a secure area of the application. Please confirm your password before continuing.') }}
-
+
-
-
+
+
diff --git a/resources/views/auth/forgot-password.blade.php b/resources/views/auth/forgot-password.blade.php
index 37629cf..76ac936 100644
--- a/resources/views/auth/forgot-password.blade.php
+++ b/resources/views/auth/forgot-password.blade.php
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -11,26 +11,26 @@
@session('status')
-
+
{{ $value }}
-
+
@endsession
-
+
-
-
+
+
diff --git a/resources/views/auth/invited-onboarding-form.blade.php b/resources/views/auth/invited-onboarding-form.blade.php
index 2fa4a38..36394d7 100644
--- a/resources/views/auth/invited-onboarding-form.blade.php
+++ b/resources/views/auth/invited-onboarding-form.blade.php
@@ -6,10 +6,11 @@ use Illuminate\Support\Facades\Auth;
use Livewire\Attributes\Rule;
use Livewire\Volt\Component;
-new class extends Component {
-
+new class extends Component
+{
// props
public Portfolio $portfolio;
+
public User $user;
#[Rule('required|string')]
@@ -41,30 +42,29 @@ new class extends Component {
return redirect(route('portfolio.show', ['portfolio' => $this->portfolio->id]));
}
-
}; ?>
-
+
-
+
-
+
-
+
{{ __('Get Started') }}
-
+
\ No newline at end of file
diff --git a/resources/views/auth/invited-onboarding.blade.php b/resources/views/auth/invited-onboarding.blade.php
index 86e54b1..980b2c6 100644
--- a/resources/views/auth/invited-onboarding.blade.php
+++ b/resources/views/auth/invited-onboarding.blade.php
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -14,5 +14,5 @@
'user' => $user,
])
-
-
+
+
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php
index a655d26..685a772 100644
--- a/resources/views/auth/login.blade.php
+++ b/resources/views/auth/login.blade.php
@@ -1,17 +1,17 @@
-
-
+
+
-
+
-
+
@session('status')
-
+
{{ $value }}
-
+
@endsession
-
-
+
+
diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php
index 7cbd049..eaf3548 100644
--- a/resources/views/auth/register.blade.php
+++ b/resources/views/auth/register.blade.php
@@ -1,41 +1,41 @@
-
-
+
+
-
+
-
+
-
+
+
diff --git a/resources/views/auth/verify-email.blade.php b/resources/views/auth/verify-email.blade.php
index d80fe3f..ccf21a3 100644
--- a/resources/views/auth/verify-email.blade.php
+++ b/resources/views/auth/verify-email.blade.php
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -11,9 +11,9 @@
@if (session('status') == 'verification-link-sent')
-
+
{{ __('A new verification link has been sent to the email address you provided in your profile settings.') }}
-
+
@endif
@@ -21,9 +21,9 @@
@csrf
-
- {{ __('Resend Verification Email') }}
-
+
+
+
@@ -43,5 +43,5 @@
-
-
+
+
diff --git a/resources/views/components/application-logo.blade.php b/resources/views/components/application-logo.blade.php
deleted file mode 100644
index ffcc790..0000000
--- a/resources/views/components/application-logo.blade.php
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
- Investbrain
-
\ No newline at end of file
diff --git a/resources/views/components/authentication-card.blade.php b/resources/views/components/authentication-card.blade.php
deleted file mode 100644
index 3495a09..0000000
--- a/resources/views/components/authentication-card.blade.php
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- {{ $logo }}
-
-
-
- {{ $slot }}
-
-
diff --git a/resources/views/components/dialog-modal.blade.php b/resources/views/components/dialog-modal.blade.php
deleted file mode 100644
index 0d06a43..0000000
--- a/resources/views/components/dialog-modal.blade.php
+++ /dev/null
@@ -1,17 +0,0 @@
-@props(['id' => null, 'maxWidth' => null])
-
-
-
-
- {{ $title }}
-
-
-
- {{ $content }}
-
-
-
-
- {{ $footer }}
-
-
diff --git a/resources/views/components/forms/action-section.blade.php b/resources/views/components/forms/action-section.blade.php
index c060586..c70e0c5 100644
--- a/resources/views/components/forms/action-section.blade.php
+++ b/resources/views/components/forms/action-section.blade.php
@@ -5,7 +5,7 @@
-
diff --git a/resources/views/components/forms/confirms-password.blade.php b/resources/views/components/forms/confirms-password.blade.php
index aa28f5a..c366e30 100644
--- a/resources/views/components/forms/confirms-password.blade.php
+++ b/resources/views/components/forms/confirms-password.blade.php
@@ -15,7 +15,7 @@
@once
-
+
{{ $title }}
@@ -25,7 +25,7 @@
-
-
+
{{ __('Cancel') }}
-
+
-
+
{{ $button }}
-
+
-
+
@endonce
diff --git a/resources/views/components/forms/form-section.blade.php b/resources/views/components/forms/form-section.blade.php
index a0efc67..6a9a0c7 100644
--- a/resources/views/components/forms/form-section.blade.php
+++ b/resources/views/components/forms/form-section.blade.php
@@ -8,14 +8,14 @@
-
+
@if (isset($actions))
-
+
{{ $actions }}
@endif
diff --git a/resources/views/components/gain-loss-arrow-badge.blade.php b/resources/views/components/gain-loss-arrow-badge.blade.php
deleted file mode 100644
index 591419c..0000000
--- a/resources/views/components/gain-loss-arrow-badge.blade.php
+++ /dev/null
@@ -1,27 +0,0 @@
-
- @php
- if (isset($percent)) {
-
- $isUp = $percent > 0;
-
- } else {
-
- $isUp = $costBasis <= $marketValue;
- $percent = $costBasis ? (($marketValue - $costBasis) / $costBasis) * 100 : 0;
- }
-
- @endphp
-
- @if(!empty($percent))
-
-
-
- {!! $isUp ? '▲' :'▼' !!}
- {{ Number::percentage(
- $percent,
- $percent < 1 ? 2 : 0
- ) }}
-
-
-
- @endif
\ No newline at end of file
diff --git a/resources/views/components/glyph-only-logo.blade.php b/resources/views/components/glyph-only-logo.blade.php
deleted file mode 100644
index b4f8063..0000000
--- a/resources/views/components/glyph-only-logo.blade.php
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- merge(['class' => 'text-primary']) }} d="M553.875,632.571L567.884,627.131C567.884,627.131 588.94,642.044 611.341,650.542C660.03,669.007 666.181,693.68 670.67,711.697C671.541,715.201 672.368,718.512 673.431,721.293C679.103,736.17 685.326,746.904 694.882,758.003L737.893,737.748C730.866,729.455 721.087,714.1 721.273,693.007C721.419,676.837 731.456,663.936 740.313,652.55C749.261,641.048 756.99,631.115 754.689,619.792C754.428,618.501 750.205,606.681 683.457,589.378C664.971,584.588 632.955,577.931 632.955,577.931C632.955,577.931 635.967,564.803 636.504,564.91C650.287,567.669 668.765,571.64 687.293,576.443C757.295,594.586 767.837,608.754 769.682,617.83C773.076,634.571 762.843,647.722 752.948,660.444C744.551,671.243 736.616,681.44 736.507,693.555C736.275,719.609 754.703,734.781 754.889,734.933L762.945,741.43L691.292,775.182L687.22,770.803C674.012,756.601 666.101,743.826 659.014,725.231C657.68,721.736 656.764,718.071 655.801,714.191C651.633,697.476 641.744,677.506 600.566,661.887C573.409,651.585 553.875,632.571 553.875,632.571Z"/>
- merge(['class' => 'text-primary']) }} d="M469.894,617.03C491.9,625.608 537.785,632.498 578.066,616.912C606.757,605.811 625.69,585.647 634.343,556.967L635.932,544.895L650.678,549.582L650.547,550.556L649.213,560.348C639.567,592.821 617.208,616.664 584.546,629.301C557.593,639.728 525.875,641.415 498.98,637.874C484.116,635.917 475.069,632.909 464.77,628.35L469.894,617.03Z"/>
- merge(['class' => 'text-primary']) }} d="M756.363,647.659C766.597,652.226 735.904,647.812 749.88,647.831C752.018,647.834 754.181,647.777 756.363,647.659ZM756.363,647.659L759.121,630.608C776.312,645.1 814.041,614.388 822.007,607.977C847.271,587.646 859.429,573.432 865.582,531.56L857.892,525.97L871.854,519.291L871.902,520.701L871.646,533.167C868.374,581.138 854.724,595.681 826.924,619.726C805.922,637.888 779.998,646.378 756.363,647.659Z"/>
- merge(['class' => 'text-primary']) }} d="M278.425,160.523C277.934,160.447 277.438,160.37 276.948,160.286C277.44,160.359 277.93,160.439 278.425,160.523Z"/>
- merge(['class' => 'text-primary']) }} d="M56.427,281.384L53.276,278.254C53.915,253.987 64.477,230.809 81.468,211.975C77.818,216.38 74.378,221.228 71.199,226.564C59.438,246.327 55.735,264.917 56.427,281.384ZM125.55,179.848C146.913,170.054 171.349,165.376 196.488,168.027C196.773,169.34 196.992,170.047 196.992,170.047L196.819,170.025C194.125,169.67 160.165,165.575 125.55,179.848ZM876.465,148.788C875.253,140.191 872.604,131.249 868.55,122.317C872.79,131.336 875.507,140.302 876.465,148.788ZM636.968,67.078C632.455,59.767 626.37,52.471 618.591,45.74C627.058,52.458 633.412,59.75 636.968,67.078ZM830.233,73.639C814.235,60.456 794.248,49.212 770.413,41.637C761.569,38.826 752.892,36.944 744.475,35.836C730.805,34.037 717.803,34.272 705.832,35.868C719.737,33.548 733.39,33.475 746.563,35.21C778.577,39.424 807.696,54.337 830.233,73.639Z"/>
- merge(['class' => 'text-primary']) }} d="M546.485,261.415C546.455,261.429 546.424,261.444 546.394,261.458C546.389,261.461 546.389,261.461 546.385,261.46L546.485,261.415ZM546.485,261.415C547.832,260.79 549.176,260.186 550.513,259.608L546.485,261.415Z"/>
- merge(['class' => 'text-primary']) }} d="M951.448,338.201C967.066,346.748 978.94,360.259 984.357,371.461C991.028,385.267 1009.88,464.746 938.38,509.182C874.197,549.074 824.465,524.364 805.506,511.387C784.609,543.131 735.375,571.199 677.333,565.042C620.575,558.985 591.016,530.312 576.286,507.76C561.52,528.554 541.685,537.599 526.615,541.516C511.159,545.534 494.383,545.742 479.342,542.424C490.897,565.908 498.729,604.571 467.806,641.145C445.634,667.37 414.398,675.189 392.099,677.128C370.311,679.025 349.702,675.811 337.482,671.143C324.069,682.794 288.704,704.331 243.88,698.43C233.085,697.009 221.742,694 210.023,688.874C158.439,666.305 147.126,623.344 154.77,594.547C111.783,593.541 77.23,581.082 51.934,557.44C20.86,528.397 4.976,481.26 9.445,431.35C14.204,378.198 55.606,354.896 74.754,346.889C60.508,328.89 30.467,280.339 64.437,223.27C98.829,165.496 163.458,161.805 188.094,162.668C186.255,144.263 189.011,101.243 245.926,69.359C313.249,31.644 373.035,54.386 397.781,70.781C414.353,45.661 452.387,10.329 510.461,7.925C585.849,4.8 622.364,35.827 637.949,55.854C660.603,36.887 713.288,16.387 772.778,35.297C839.209,56.412 875.616,104.13 883.278,143.714C947.161,162.729 985.435,206.49 988.544,264.393C990.859,307.537 971.373,327.501 951.448,338.201ZM929.36,498.056C991.957,459.153 975.932,387.913 970.382,376.422C965.636,366.6 951.481,350.075 931.943,344.8L911.518,339.288L930.807,332.122C953.179,323.814 975.727,309.291 973.33,264.596C971.652,233.374 956.575,177.653 874.439,155.23L869.539,153.891L868.907,149.406C863.81,113.255 830.649,67.872 768.052,47.976C704.505,27.778 653.597,58.332 643.204,71.132L636.222,79.733L630.312,70.164C620.597,54.426 589.582,18.173 511.669,21.398C440.094,24.362 408.415,81.914 407.103,84.363L402.557,92.834L394.883,85.976C379.908,72.608 321.954,42.965 254.369,80.828C189.472,117.183 204.179,167.969 204.337,168.478L207.359,178.33L196.014,176.705C192.739,176.258 115.819,166.267 77.965,229.863C39.999,293.638 91.82,344.913 92.351,345.421L100.424,353.227L89.31,356.328C86.907,357.008 29.915,373.837 24.63,432.853C20.503,478.949 34.782,522.122 62.831,548.336C87.022,570.947 121.342,581.965 164.831,581.071L176.905,580.826L172.295,590.588C161.421,613.62 167.914,655.605 216.409,676.818C274.503,702.221 322.493,666.638 329.535,658.577L333.699,653.813L339.597,657.183C352.785,664.72 419.879,674.98 455.506,632.841C490.702,591.211 468.011,546.744 456.297,533.124L432.423,505.365L466.09,523.416C481.09,531.455 502.99,533.478 521.89,528.564C536.577,524.747 556.747,514.997 569.395,490.245L576.355,476.635L583.311,490.646C593.267,510.709 618.898,545.364 678.656,551.649C737.765,557.918 782.891,523.943 796.055,497.816L800.455,489.081L808.318,496.037C816.887,503.614 862.973,539.314 929.36,498.056Z"/>
- merge(['class' => 'text-primary']) }} d="M164.45,581.093C168.821,580.604 195.946,573.542 211.278,553.997C221.78,540.606 224.635,523.998 219.76,504.639C219.76,504.639 247.605,532.462 221.626,564.658C202.884,586.185 171.934,594.399 165.717,594.554L164.791,581.073C164.703,581.077 164.591,581.078 164.45,581.093ZM164.45,581.093C164.448,581.093 164.447,581.094 164.445,581.094C164.447,581.094 164.448,581.093 164.45,581.093Z"/>
- merge(['class' => 'text-primary']) }} d="M213.575,553.555C222.582,551.317 231.34,551.047 239.325,552.226C255.233,554.572 268.058,562.655 273.619,572.298C273.619,572.298 245.37,554.286 218.136,566.552L213.575,553.555Z"/>
- merge(['class' => 'text-primary']) }} d="M310.41,312.188C362.408,280.533 430.339,286.541 475.605,326.802L464.987,336.16C425.111,300.696 365.213,295.443 319.316,323.38C275.107,350.295 256.595,417.442 280.48,464.26C307.052,516.356 357.867,539.991 394.332,536.42C394.332,536.42 358.776,552.43 324.184,531.648C299.807,517 279.907,495.504 266.63,469.474C239.543,416.376 259.999,342.877 310.41,312.188Z"/>
- merge(['class' => 'text-primary']) }} d="M330.494,520.536C338.379,526.429 342.731,534.458 344.7,543.023C348.021,570.08 326.463,580.957 326.463,580.957C333.323,569.603 338.064,541.076 322.267,529.275L330.494,520.536Z"/>
- merge(['class' => 'text-primary']) }} d="M170.498,451.168C205.064,437.661 243.653,440.477 276.359,458.882L268.492,470.196C240.229,454.292 206.893,451.865 177.027,463.541C153.301,472.81 139.19,488.122 137.509,498.456C137.509,498.456 134.627,468.393 170.498,451.168Z"/>
- merge(['class' => 'text-primary']) }} d="M122.051,418.399C124.266,425.291 153.678,451.572 184.056,447.87L186.251,459.326C180.771,459.993 175.279,459.883 169.892,459.174C162.413,458.189 155.13,456.047 148.357,453.205C119.151,440.422 122.051,418.399 122.051,418.399Z"/>
- merge(['class' => 'text-primary']) }} d="M83.89,343.578C93.152,340.443 119.954,335.902 149.393,342.543C189.622,353.407 200.664,388.305 200.664,388.305C157.717,337.275 90.386,355.973 89.732,356.197L83.89,343.578Z"/>
- merge(['class' => 'text-primary']) }} d="M403.057,462.599C412.109,479.736 430.231,504.115 465.183,522.924L466.14,523.442L458.465,534.863L457.586,534.391C419.225,513.745 399.276,486.879 389.295,467.98C380.508,451.336 378.406,434.828 379.826,419.97C384.383,385.186 414.727,373.954 414.727,373.954C402.573,387.065 383.727,425.985 403.057,462.599Z"/>
- merge(['class' => 'text-primary']) }} d="M322.397,408.686C322.397,408.686 360.323,391.713 392.009,422.14L382.306,429.591C369.382,416.512 339.485,407.613 322.397,408.686Z"/>
- merge(['class' => 'text-primary']) }} d="M690.853,274.028C735.995,311.348 753.013,373.417 740.587,407.967C734.08,426.056 723.599,439.419 712.073,449.263C685.57,471.905 649.16,462.799 649.16,462.799C651.515,462.516 707.46,455.197 726.054,403.494C736.835,373.524 720.838,316.972 680.654,283.744C656.633,263.884 614.846,244.873 552.154,267.086C489.758,289.191 475.391,326.522 474.322,353.951C472.725,395.045 499.768,434.915 514.438,442.054C514.438,442.054 481.579,436.735 467.588,400.693C461.928,385.953 458.458,369.521 459.1,353.048C460.315,321.737 476.396,279.231 546.1,254.536C616.21,229.702 663.52,251.425 690.853,274.028Z"/>
- merge(['class' => 'text-primary']) }} d="M574.041,405.452C577.929,399.868 582.591,394.925 588.017,390.626C622.566,366.135 666.154,382.688 666.154,382.688C627.495,382.845 600.885,392.975 587.077,412.802C566.225,442.734 580.371,485.117 583.223,490.479L569.482,495.902C565.551,488.513 549.669,440.434 574.041,405.452Z"/>
- merge(['class' => 'text-primary']) }} d="M586.976,325.57C586.976,325.57 612.868,328.978 618.672,355.583C621.052,372.019 615.594,386.416 603.3,396.116L594.44,387.377C606.107,378.168 607.013,365.603 605.724,356.686C603.595,342.023 594.518,329.351 586.976,325.57Z"/>
- merge(['class' => 'text-primary']) }} d="M708.183,440.658C738.696,458.976 721.687,492.93 721.687,492.93C725.772,471.083 707.178,453.368 701.816,450.565L708.183,440.658Z"/>
- merge(['class' => 'text-primary']) }} d="M793.227,434.541L805.895,427.418C827.426,456.566 813.55,497.025 809.929,503.784L796.126,497.678C798.539,493.179 810.551,457.997 793.227,434.541Z"/>
- merge(['class' => 'text-primary']) }} d="M843.106,432.778C872.723,432.517 895.844,420.562 906.531,399.983C906.531,399.983 907.929,428.423 880.172,440.043C869.358,444.009 857.092,446.148 843.754,446.269C837.448,446.323 831.171,445.926 825.002,445.114C790.398,440.559 759.118,422.884 743.733,398.136C712.965,348.644 746.651,293.716 782.802,273.093C802.223,262.012 823.22,255.668 842.44,254.262C876.032,253.772 883.4,276.414 883.4,276.414C864.944,262.029 824.51,265.578 791.345,284.501C760.84,301.905 731.064,350.173 757.023,391.933C772.169,416.297 807.583,433.1 843.106,432.778Z"/>
- merge(['class' => 'text-primary']) }} d="M901.023,427.592C919.082,437.647 914.375,459.502 914.375,459.502C914.382,455.074 911.352,449.929 905.845,445.02C898.256,438.251 889.946,435.226 888.088,435.21C888.281,435.213 882.328,424.936 882.328,424.936C886.457,422.572 892.743,423.469 901.023,427.592Z"/>
- merge(['class' => 'text-primary']) }} d="M841.501,320.927C869.016,346.791 923.886,334.774 930.727,332.154L937.161,344.56C930.833,346.984 903.788,353.308 876.093,349.661C844.437,342.756 841.501,320.927 841.501,320.927Z"/>
- merge(['class' => 'text-primary']) }} d="M856.8,381.78C856.8,381.78 854.677,356.846 873.976,346.331C881.356,342.487 889.96,339.571 899.7,338.12L902.276,349.522C873.542,353.801 859.967,372.495 856.8,381.78Z"/>
- merge(['class' => 'text-primary']) }} d="M609.849,376.237C641.704,348.782 649.339,320.22 649.339,320.22C651.29,328.519 647.387,350.181 634.449,367.575C629.624,374.059 623.544,379.948 616.045,384.331L609.849,376.237Z"/>
- merge(['class' => 'text-primary']) }} d="M834.92,234.947C840.865,227.575 848.327,221.775 857.035,217.633C881.755,204.76 908.313,222.518 908.313,222.518C888.901,219.963 862.264,221.245 845.624,241.87L834.92,234.947Z"/>
- merge(['class' => 'text-primary']) }} d="M831.928,192.93C831.928,192.93 855.516,211.969 848.036,239.116C840.815,259.861 823.515,271.361 810.178,275.615L804.608,262.904C806.453,262.317 849.598,247.868 831.928,192.93Z"/>
- merge(['class' => 'text-primary']) }} d="M730.919,99.579C730.919,99.579 763.085,113.201 772.811,151.075C776.7,170.409 776.278,191.455 771.605,214.455C761.626,263.558 702.305,281.445 679.251,280.632L679.359,267.156C693.228,267.644 747.798,255.006 756.611,211.647C765.902,165.932 757.739,130.323 730.919,99.579Z"/>
- merge(['class' => 'text-primary']) }} d="M762.546,160.453C800.164,134.33 864.452,138.777 878.343,142.312L874.583,155.268C864.309,152.659 804.878,148.468 772.188,171.172L762.546,160.453Z"/>
- merge(['class' => 'text-primary']) }} d="M630.258,70.076L643.679,64.083C644.1,64.79 673.076,114.431 662.623,161.021C654.783,197.124 613.774,203.603 613.774,203.603C683.262,160.803 630.799,70.977 630.258,70.076Z"/>
- merge(['class' => 'text-primary']) }} d="M659.485,165.881C663.907,186.681 682.077,207.853 695.622,213.847C695.622,213.847 651.903,202.29 646.659,167.659L659.485,165.881Z"/>
- merge(['class' => 'text-primary']) }} d="M539.576,186.699C541.122,210.599 554.444,240.07 576.078,247.622L570.893,260.15C542.825,250.352 526.242,215.953 524.367,187.035C523.494,173.554 526.287,151.23 536.041,131.967C553.129,100.656 581.582,110.001 581.582,110.001C548.902,118.029 538.098,163.918 539.576,186.699Z"/>
- merge(['class' => 'text-primary']) }} d="M493.292,103.391C493.292,103.391 525.2,108.011 535.526,135.513C538.424,143.235 540.253,152.053 540.204,161.981L527.145,161.553C527.336,122.786 493.632,103.579 493.292,103.391Z"/>
- merge(['class' => 'text-primary']) }} d="M276.948,160.286C277.399,160.303 311.64,161.895 336.502,187.86C344.788,196.516 352.036,207.878 356.639,222.792C374.898,281.945 349.413,306.144 319.144,323.482C309.497,329.013 295.604,330.674 280.619,328.701C269.215,327.2 257.176,323.595 245.876,317.989C231.133,310.674 218.952,300.706 209.701,288.689C189.323,255.458 204.276,225.968 204.276,225.968C204.379,274.859 234.842,297.268 252.991,306.273C276.57,317.97 300.259,318.002 310.581,312.087C335.503,297.81 358.45,279.395 341.951,225.95C326.56,176.089 276.948,160.286 276.948,160.286Z"/>
- merge(['class' => 'text-primary']) }} d="M351.881,137.831C351.881,137.831 334.475,159.829 340.948,195.549L328.057,197.016C320.399,154.765 351.881,137.831 351.881,137.831Z"/>
- merge(['class' => 'text-primary']) }} d="M153.949,295.541C153.949,295.541 171.351,271.232 201.075,276.773C207.935,278.053 215.116,280.367 222.406,284.126L216.118,294.07C184.328,277.698 154.249,295.363 153.949,295.541Z"/>
- merge(['class' => 'text-primary']) }} d="M197.109,163.312C203.351,163.568 225.129,169.866 245.94,182.735C292.963,211.559 273.952,244.742 273.952,244.742C272.306,198.284 202.893,177.207 196.827,176.78L197.109,163.312Z"/>
- merge(['class' => 'text-primary']) }} d="M405.259,76.415C409.176,79.606 443.528,109.023 443.781,158.317C444.017,204.496 406.987,221.615 406.987,221.615C407.205,221.492 428.805,207.829 428.547,157.937C428.324,114.494 398.54,88.97 395.144,86.2L405.259,76.415Z"/>
- merge(['class' => 'text-primary']) }} d="M442.447,165.707C445.65,183.47 472.051,205.798 482.678,207.829C482.678,207.829 438.374,205.199 429.554,167.162L442.447,165.707Z"/>
- merge(['class' => 'text-primary']) }} d="M528.269,208.508L543.276,206.633C543.59,208.225 550.613,245.979 521.528,275.478C495.28,302.101 458.033,314.248 418.869,309.091C417.654,308.932 416.445,308.757 415.226,308.561C378.701,302.768 354.675,288.29 347.06,276.512L360.223,270.105C364.706,277.043 384.206,290.018 417.431,295.288C452.627,300.856 486.324,290.348 509.913,266.423C534.272,241.715 528.331,208.838 528.269,208.508Z"/>
- merge(['class' => 'text-primary']) }} d="M346.454,612.287C346.454,612.287 364.459,630.137 350.49,655.895C346.095,662.684 342.024,666.615 341.627,666.989L330.334,657.619C330.525,657.439 349.385,639.196 346.454,612.287Z"/>
- merge(['class' => 'text-primary']) }} d="M746.169,21.499C756.017,22.795 765.878,25.001 775.478,28.052C846.582,50.652 881.597,100.292 890.828,137.976C955.354,158.86 994.038,204.652 997.236,264.281C999.012,297.296 988.628,322.18 966.359,338.423C979.244,347.991 988.032,359.715 992.343,368.627C996.839,377.939 1002.72,402.821 999.332,429.929C996.187,455.119 983.953,490.419 943.534,515.538C921.02,529.53 898.079,537.216 875.214,538.444C874.524,557.481 866.669,577.821 852.635,596.528C833.067,622.623 803.096,642.513 769.991,651.49C766.899,656.306 763.357,660.861 760.17,664.955C752.191,675.212 745.299,684.072 745.21,693.867C745.015,715.994 760.064,728.832 760.639,729.311L768.69,735.812C770.809,737.518 771.894,740.002 771.599,742.476C771.308,744.951 769.679,747.105 767.227,748.26L695.574,782.012C693.919,782.79 692.07,783.039 690.288,782.805C688.153,782.524 686.117,781.546 684.646,779.964L680.573,775.585C666.603,760.562 658.245,747.077 650.775,727.481C649.287,723.582 648.322,719.717 647.301,715.615C643.246,699.342 639.415,683.975 602.531,669.984C582.529,662.395 566.583,652.959 555.043,641.893C536.815,644.647 517.346,644.794 498.397,642.299C492.15,641.477 486.064,640.365 480.225,638.984C478.528,641.351 476.724,643.657 474.834,645.894C450.844,674.272 417.216,682.715 393.226,684.799C381.934,685.782 370.071,685.527 358.921,684.059C351.917,683.137 345.364,681.766 339.649,680.041C319.088,696.008 283.075,711.345 242.877,706.053C230.564,704.432 218.283,700.97 206.372,695.761C181.07,684.694 162.338,667.791 152.203,646.89C145.306,632.663 142.634,616.673 144.507,601.785C139.806,601.472 135.2,601.017 130.725,600.428C96.286,595.894 67.686,583.183 45.707,562.646C12.903,531.987 -3.897,482.581 0.767,430.49C5.257,380.339 40.511,354.902 62.285,343.855C46.313,320.624 24.457,273.681 56.708,219.503C89.53,164.361 147.812,155.406 179.02,154.885C179.027,132.85 187.435,92.873 241.101,62.81C273.272,44.788 306.984,37.939 341.311,42.462C365.525,45.65 384.1,53.896 395.041,59.951C402.448,50.197 414.871,36.551 433.253,24.573C456.287,9.566 482.031,1.374 509.768,0.225C523.796,-0.356 537.288,0.189 549.873,1.846C595.648,7.874 623.192,27.2 639.177,44.655C661.749,29.219 700.506,15.487 746.169,21.499ZM745.165,29.122C697.38,22.831 657.024,39.885 637.949,55.854C625.287,39.581 598.795,16.044 548.865,9.469C537.348,7.953 524.59,7.339 510.461,7.925C452.387,10.329 414.353,45.661 397.781,70.781C385.798,62.844 365.594,53.414 340.307,50.085C313.364,46.538 280.651,49.905 245.926,69.359C189.011,101.247 186.254,144.267 188.094,162.668C163.458,161.805 98.829,165.496 64.437,223.27C30.466,280.339 60.508,328.89 74.754,346.889C55.606,354.896 14.204,378.198 9.445,431.35C4.976,481.26 20.86,528.397 51.934,557.44C72.538,576.699 99.287,588.534 131.729,592.805C139.117,593.778 146.795,594.358 154.77,594.547C147.126,623.344 158.439,666.305 210.023,688.874C221.738,693.999 233.085,697.009 243.88,698.43C288.704,704.331 324.069,682.794 337.482,671.143C343.311,673.373 351.058,675.269 359.925,676.436C369.639,677.715 380.709,678.122 392.095,677.127C414.398,675.189 445.634,667.37 467.806,641.145C470.947,637.429 473.669,633.693 476.048,629.954C483.187,631.956 491.044,633.576 499.401,634.676C517.749,637.092 538.341,637.065 558.132,633.497C566.971,643.025 581.569,653.745 605.736,662.914C646.914,678.533 651.633,697.476 655.797,714.19C656.764,718.071 657.68,721.736 659.01,725.23C666.101,743.826 674.012,756.601 687.22,770.803L691.292,775.182L762.945,741.43L754.889,734.933C754.703,734.781 736.275,719.609 736.507,693.555C736.616,681.44 744.547,671.243 752.948,660.444C756.865,655.411 760.818,650.309 763.97,644.946C800.832,635.856 828.982,613.927 845.338,592.12C860.499,571.901 867.745,550.109 866.404,530.89C873.884,531.027 881.855,530.414 890.261,528.779C905.055,525.902 921.196,519.861 938.38,509.182C1009.87,464.746 991.028,385.267 984.357,371.461C978.94,360.259 967.066,346.748 951.448,338.201C971.373,327.501 990.859,307.537 988.544,264.393C985.435,206.49 947.161,162.729 883.274,143.713C875.616,104.13 839.209,56.412 772.778,35.297C763.372,32.308 754.136,30.303 745.165,29.122Z"/>
-
- Investbrain
-
-
-
diff --git a/resources/views/components/ib-alpine-modal.blade.php b/resources/views/components/ib-alpine-modal.blade.php
deleted file mode 100644
index a987240..0000000
--- a/resources/views/components/ib-alpine-modal.blade.php
+++ /dev/null
@@ -1,55 +0,0 @@
-@props([
- 'key' => 'modal',
- 'showClose' => true,
- 'closeOnEscape' => true,
- 'title' => null,
- 'subtitle' => null,
- 'persistent' => false
-])
-
-
- @teleport('body')
-
-
-
-
-
-
merge(['class' => 'relative transform overflow-hidden rounded-md ext-left shadow-xl w-full sm:w-2/3 lg:w-1/3 m-2 sm:m-0']) }}
- x-show="open"
- x-cloak
- >
- @if ($showClose)
-
- @endif
-
- {{ $slot }}
-
-
-
-
-
- @endteleport
-
\ No newline at end of file
diff --git a/resources/views/components/ib-card.blade.php b/resources/views/components/ib-card.blade.php
deleted file mode 100644
index 05c7131..0000000
--- a/resources/views/components/ib-card.blade.php
+++ /dev/null
@@ -1,10 +0,0 @@
-@props(['title' => ''])
-
-
merge(['class' => 'bg-slate-100 dark:bg-base-200 rounded-lg']) }}
->
-
- {{ $title }}
-
- {{ $slot }}
-
\ No newline at end of file
diff --git a/resources/views/components/ib-drawer.blade.php b/resources/views/components/ib-drawer.blade.php
deleted file mode 100644
index 1c75b6e..0000000
--- a/resources/views/components/ib-drawer.blade.php
+++ /dev/null
@@ -1,47 +0,0 @@
-@props([
- 'key' => 'drawer',
- 'showClose' => true,
- 'closeOnEscape' => true,
- 'title' => null,
- 'subtitle' => null
-])
-
-
-
-
-
-
merge(['class' => 'min-h-screen w-full md:w-3/4 xl:w-3/5 rounded-none px-8 transition overflow-y-scroll']) }}
- >
- @if($title)
-
- {!! strip_tags($title) !!}
-
- @endif
-
- @if($subtitle)
-
- {!! strip_tags($subtitle) !!}
-
- @endif
-
- @if ($showClose)
-
- @endif
-
- {{ $slot }}
-
-
-
\ No newline at end of file
diff --git a/resources/views/components/ib-livewire-modal.blade.php b/resources/views/components/ib-livewire-modal.blade.php
deleted file mode 100644
index 1262513..0000000
--- a/resources/views/components/ib-livewire-modal.blade.php
+++ /dev/null
@@ -1,51 +0,0 @@
-@props([
- 'showClose' => true,
- 'closeOnEscape' => true,
- 'title' => null,
- 'subtitle' => null,
- 'persistent' => false
-])
-
-
- @teleport('body')
-
except('wire:model')->class(["modal"]) }}
- x-data="{open: @entangle($attributes->wire('model')).live }"
- :class="{'modal-open !animate-none': open}"
- :open="open"
- @if($closeOnEscape)
- @keydown.escape.window = "$wire.{{ $attributes->wire('model')->value() }} = false"
- @endif
- >
- merge(['class' => 'modal-box relative transform overflow-hidden rounded-md ext-left shadow-xl w-full sm:w-2/3 lg:w-1/3 m-2 sm:m-0']) }}
- >
- @if ($showClose)
- wire('model')->value() }} = false"
- />
- @endif
-
- {{ $slot }}
-
-
-
-
-
- @endteleport
-
\ No newline at end of file
diff --git a/resources/views/components/ib-skeleton-loader.blade.php b/resources/views/components/ib-skeleton-loader.blade.php
deleted file mode 100644
index de612c9..0000000
--- a/resources/views/components/ib-skeleton-loader.blade.php
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
Loading...
-
diff --git a/resources/views/components/layouts/app.blade.php b/resources/views/components/layouts/app.blade.php
new file mode 100644
index 0000000..4683276
--- /dev/null
+++ b/resources/views/components/layouts/app.blade.php
@@ -0,0 +1,28 @@
+
+
+
+ @include('components.partials.head')
+
+
+
+
+ @livewire('partials.nav-bar')
+
+ @livewire('partials.side-bar')
+
+
+ {{ $slot }}
+
+
+ @if(session('toast'))
+
+ @endif
+
+
+ @livewireScripts
+
+
\ No newline at end of file
diff --git a/resources/views/components/layouts/guest.blade.php b/resources/views/components/layouts/guest.blade.php
new file mode 100644
index 0000000..94ddffd
--- /dev/null
+++ b/resources/views/components/layouts/guest.blade.php
@@ -0,0 +1,17 @@
+
+
+
+ @include('components.partials.head')
+
+
+
+
+
+
+
+ {{ $slot }}
+
+
+ @livewireScripts
+
+
\ No newline at end of file
diff --git a/resources/views/components/partials/head.blade.php b/resources/views/components/partials/head.blade.php
new file mode 100644
index 0000000..682b122
--- /dev/null
+++ b/resources/views/components/partials/head.blade.php
@@ -0,0 +1,10 @@
+
+
+
+
+
+
{{ config('app.name', 'Investbrain') }}
+
+@vite(['resources/css/app.css', 'resources/js/app.js'])
+
+@livewireStyles
\ No newline at end of file
diff --git a/resources/views/components/partials/main.blade.php b/resources/views/components/partials/main.blade.php
deleted file mode 100644
index ce09591..0000000
--- a/resources/views/components/partials/main.blade.php
+++ /dev/null
@@ -1,64 +0,0 @@
-@props([
- 'sidebar' => null,
- 'content' => null,
- 'footer' => null,
- 'fullWidth' => false,
- 'withNav' => false,
- 'collapseText' => 'Collapse',
- 'collapseIcon' => 'o-bars-3-bottom-right',
- 'collapsible' => false,
- 'url' => route('mary.toogle-sidebar', absolute: false),
-])
-
-
-
-
-
-{{-- FOOTER --}}
-@if($footer)
-
attributes->class(["mx-auto w-full", "max-w-screen-2xl" => !$fullWidth ]) }}>
- {{ $footer }}
-
-@endif
\ No newline at end of file
diff --git a/resources/views/components/partials/nav-bar.blade.php b/resources/views/components/partials/nav-bar.blade.php
index 1e23454..9db6dad 100644
--- a/resources/views/components/partials/nav-bar.blade.php
+++ b/resources/views/components/partials/nav-bar.blade.php
@@ -18,34 +18,31 @@ new class extends Component
// methods
}; ?>
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
-
-
+
+
+
+
-
+
@lang('Click or press :key to search', ['key' => '/ '])
@@ -54,35 +51,41 @@ new class extends Component
-
+
+
+
-
-
+
-
-
-
+
+
-
-
\ No newline at end of file
+
+
+
diff --git a/resources/views/components/partials/side-bar.blade.php b/resources/views/components/partials/side-bar.blade.php
index 2a1dac2..35eb482 100644
--- a/resources/views/components/partials/side-bar.blade.php
+++ b/resources/views/components/partials/side-bar.blade.php
@@ -19,76 +19,97 @@ new class extends Component
}; ?>
-