Andrew Wallo 8 个月前
父节点
当前提交
1cc608a80b

+ 44
- 42
app/Filament/Company/Pages/Accounting/Transactions.php 查看文件

389
                     ->disabled(fn (Transaction $transaction): bool => $transaction->isUncategorized())
389
                     ->disabled(fn (Transaction $transaction): bool => $transaction->isUncategorized())
390
                     ->action(fn (Transaction $transaction) => $transaction->update(['reviewed' => ! $transaction->reviewed])),
390
                     ->action(fn (Transaction $transaction) => $transaction->update(['reviewed' => ! $transaction->reviewed])),
391
                 Tables\Actions\ActionGroup::make([
391
                 Tables\Actions\ActionGroup::make([
392
-                    Tables\Actions\EditAction::make('updateTransaction')
393
-                        ->label('Edit Transaction')
394
-                        ->modalHeading('Edit Transaction')
395
-                        ->modalWidth(MaxWidth::ThreeExtraLarge)
396
-                        ->form(fn (Form $form) => $this->transactionForm($form))
397
-                        ->visible(static fn (Transaction $transaction) => $transaction->type->isStandard()),
398
-                    Tables\Actions\EditAction::make('updateTransfer')
399
-                        ->label('Edit Transfer')
400
-                        ->modalHeading('Edit Transfer')
401
-                        ->modalWidth(MaxWidth::ThreeExtraLarge)
402
-                        ->form(fn (Form $form) => $this->transferForm($form))
403
-                        ->visible(static fn (Transaction $transaction) => $transaction->type->isTransfer()),
404
-                    Tables\Actions\EditAction::make('updateJournalTransaction')
405
-                        ->label('Edit Journal Transaction')
406
-                        ->modalHeading('Journal Entry')
407
-                        ->modalWidth(MaxWidth::Screen)
408
-                        ->form(fn (Form $form) => $this->journalTransactionForm($form))
409
-                        ->afterFormFilled(function (Transaction $transaction) {
410
-                            $debitAmounts = $transaction->journalEntries->sumDebits()->getAmount();
411
-                            $creditAmounts = $transaction->journalEntries->sumCredits()->getAmount();
412
-
413
-                            $this->setDebitAmount($debitAmounts);
414
-                            $this->setCreditAmount($creditAmounts);
415
-                        })
416
-                        ->modalSubmitAction(fn (Actions\StaticAction $action) => $action->disabled(! $this->isJournalEntryBalanced()))
417
-                        ->after(fn (Transaction $transaction) => $transaction->updateAmountIfBalanced())
418
-                        ->visible(static fn (Transaction $transaction) => $transaction->type->isJournal()),
392
+                    Tables\Actions\ActionGroup::make([
393
+                        Tables\Actions\EditAction::make('editTransaction')
394
+                            ->label('Edit Transaction')
395
+                            ->modalHeading('Edit Transaction')
396
+                            ->modalWidth(MaxWidth::ThreeExtraLarge)
397
+                            ->form(fn (Form $form) => $this->transactionForm($form))
398
+                            ->visible(static fn (Transaction $transaction) => $transaction->type->isStandard()),
399
+                        Tables\Actions\EditAction::make('editTransfer')
400
+                            ->label('Edit Transfer')
401
+                            ->modalHeading('Edit Transfer')
402
+                            ->modalWidth(MaxWidth::ThreeExtraLarge)
403
+                            ->form(fn (Form $form) => $this->transferForm($form))
404
+                            ->visible(static fn (Transaction $transaction) => $transaction->type->isTransfer()),
405
+                        Tables\Actions\EditAction::make('editJournalTransaction')
406
+                            ->label('Edit Journal Transaction')
407
+                            ->modalHeading('Journal Entry')
408
+                            ->modalWidth(MaxWidth::Screen)
409
+                            ->form(fn (Form $form) => $this->journalTransactionForm($form))
410
+                            ->afterFormFilled(function (Transaction $transaction) {
411
+                                $debitAmounts = $transaction->journalEntries->sumDebits()->getAmount();
412
+                                $creditAmounts = $transaction->journalEntries->sumCredits()->getAmount();
413
+
414
+                                $this->setDebitAmount($debitAmounts);
415
+                                $this->setCreditAmount($creditAmounts);
416
+                            })
417
+                            ->modalSubmitAction(fn (Actions\StaticAction $action) => $action->disabled(! $this->isJournalEntryBalanced()))
418
+                            ->after(fn (Transaction $transaction) => $transaction->updateAmountIfBalanced())
419
+                            ->visible(static fn (Transaction $transaction) => $transaction->type->isJournal()),
420
+                        Tables\Actions\ReplicateAction::make()
421
+                            ->excludeAttributes(['created_by', 'updated_by', 'created_at', 'updated_at'])
422
+                            ->modal(false)
423
+                            ->beforeReplicaSaved(static function (Transaction $replica) {
424
+                                $replica->description = '(Copy of) ' . $replica->description;
425
+                            })
426
+                            ->after(static function (Transaction $original, Transaction $replica) {
427
+                                $original->journalEntries->each(function (JournalEntry $entry) use ($replica) {
428
+                                    $entry->replicate([
429
+                                        'transaction_id',
430
+                                    ])->fill([
431
+                                        'transaction_id' => $replica->id,
432
+                                    ])->save();
433
+                                });
434
+                            }),
435
+                    ])->dropdown(false),
419
                     Tables\Actions\DeleteAction::make(),
436
                     Tables\Actions\DeleteAction::make(),
420
-                    Tables\Actions\ReplicateAction::make()
421
-                        ->excludeAttributes(['created_by', 'updated_by', 'created_at', 'updated_at'])
422
-                        ->modal(false)
423
-                        ->beforeReplicaSaved(static function (Transaction $replica) {
424
-                            $replica->description = '(Copy of) ' . $replica->description;
425
-                        })
426
-                        ->after(static function (Transaction $original, Transaction $replica) {
427
-                            $original->journalEntries->each(function (JournalEntry $entry) use ($replica) {
428
-                                $entry->replicate([
429
-                                    'transaction_id',
430
-                                ])->fill([
431
-                                    'transaction_id' => $replica->id,
432
-                                ])->save();
433
-                            });
434
-                        }),
435
                 ]),
437
                 ]),
436
             ])
438
             ])
437
             ->bulkActions([
439
             ->bulkActions([

+ 77
- 75
app/Filament/Company/Resources/Purchases/BillResource.php 查看文件

294
             ])
294
             ])
295
             ->actions([
295
             ->actions([
296
                 Tables\Actions\ActionGroup::make([
296
                 Tables\Actions\ActionGroup::make([
297
-                    Tables\Actions\EditAction::make(),
298
-                    Tables\Actions\ViewAction::make(),
299
-                    Tables\Actions\DeleteAction::make(),
300
-                    Bill::getReplicateAction(Tables\Actions\ReplicateAction::class),
301
-                    Tables\Actions\Action::make('recordPayment')
302
-                        ->label('Record Payment')
303
-                        ->stickyModalHeader()
304
-                        ->stickyModalFooter()
305
-                        ->modalFooterActionsAlignment(Alignment::End)
306
-                        ->modalWidth(MaxWidth::TwoExtraLarge)
307
-                        ->icon('heroicon-o-credit-card')
308
-                        ->visible(function (Bill $record) {
309
-                            return $record->canRecordPayment();
310
-                        })
311
-                        ->mountUsing(function (Bill $record, Form $form) {
312
-                            $form->fill([
313
-                                'posted_at' => now(),
314
-                                'amount' => $record->amount_due,
315
-                            ]);
316
-                        })
317
-                        ->databaseTransaction()
318
-                        ->successNotificationTitle('Payment Recorded')
319
-                        ->form([
320
-                            Forms\Components\DatePicker::make('posted_at')
321
-                                ->label('Date'),
322
-                            Forms\Components\TextInput::make('amount')
323
-                                ->label('Amount')
324
-                                ->required()
325
-                                ->money(fn (Bill $record) => $record->currency_code)
326
-                                ->live(onBlur: true)
327
-                                ->helperText(function (Bill $record, $state) {
328
-                                    $billCurrency = $record->currency_code;
329
-                                    if (! CurrencyConverter::isValidAmount($state, $billCurrency)) {
330
-                                        return null;
331
-                                    }
332
-
333
-                                    $amountDue = $record->getRawOriginal('amount_due');
334
-                                    $amount = CurrencyConverter::convertToCents($state, $billCurrency);
335
-
336
-                                    if ($amount <= 0) {
337
-                                        return 'Please enter a valid positive amount';
338
-                                    }
339
-
340
-                                    $newAmountDue = $amountDue - $amount;
341
-
342
-                                    return match (true) {
343
-                                        $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $billCurrency),
344
-                                        $newAmountDue === 0 => 'Bill will be fully paid',
345
-                                        default => 'Amount exceeds bill total by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $billCurrency),
346
-                                    };
347
-                                })
348
-                                ->rules([
349
-                                    static fn (Bill $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
350
-                                        if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
351
-                                            $fail('Please enter a valid amount');
297
+                    Tables\Actions\ActionGroup::make([
298
+                        Tables\Actions\EditAction::make(),
299
+                        Tables\Actions\ViewAction::make(),
300
+                        Bill::getReplicateAction(Tables\Actions\ReplicateAction::class),
301
+                        Tables\Actions\Action::make('recordPayment')
302
+                            ->label('Record Payment')
303
+                            ->stickyModalHeader()
304
+                            ->stickyModalFooter()
305
+                            ->modalFooterActionsAlignment(Alignment::End)
306
+                            ->modalWidth(MaxWidth::TwoExtraLarge)
307
+                            ->icon('heroicon-o-credit-card')
308
+                            ->visible(function (Bill $record) {
309
+                                return $record->canRecordPayment();
310
+                            })
311
+                            ->mountUsing(function (Bill $record, Form $form) {
312
+                                $form->fill([
313
+                                    'posted_at' => now(),
314
+                                    'amount' => $record->amount_due,
315
+                                ]);
316
+                            })
317
+                            ->databaseTransaction()
318
+                            ->successNotificationTitle('Payment Recorded')
319
+                            ->form([
320
+                                Forms\Components\DatePicker::make('posted_at')
321
+                                    ->label('Date'),
322
+                                Forms\Components\TextInput::make('amount')
323
+                                    ->label('Amount')
324
+                                    ->required()
325
+                                    ->money(fn (Bill $record) => $record->currency_code)
326
+                                    ->live(onBlur: true)
327
+                                    ->helperText(function (Bill $record, $state) {
328
+                                        $billCurrency = $record->currency_code;
329
+                                        if (! CurrencyConverter::isValidAmount($state, $billCurrency)) {
330
+                                            return null;
352
                                         }
331
                                         }
353
-                                    },
354
-                                ]),
355
-                            Forms\Components\Select::make('payment_method')
356
-                                ->label('Payment Method')
357
-                                ->required()
358
-                                ->options(PaymentMethod::class),
359
-                            Forms\Components\Select::make('bank_account_id')
360
-                                ->label('Account')
361
-                                ->required()
362
-                                ->options(BankAccount::query()
363
-                                    ->get()
364
-                                    ->pluck('account.name', 'id'))
365
-                                ->searchable(),
366
-                            Forms\Components\Textarea::make('notes')
367
-                                ->label('Notes'),
368
-                        ])
369
-                        ->action(function (Bill $record, Tables\Actions\Action $action, array $data) {
370
-                            $record->recordPayment($data);
371
 
332
 
372
-                            $action->success();
373
-                        }),
333
+                                        $amountDue = $record->getRawOriginal('amount_due');
334
+                                        $amount = CurrencyConverter::convertToCents($state, $billCurrency);
335
+
336
+                                        if ($amount <= 0) {
337
+                                            return 'Please enter a valid positive amount';
338
+                                        }
339
+
340
+                                        $newAmountDue = $amountDue - $amount;
341
+
342
+                                        return match (true) {
343
+                                            $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $billCurrency),
344
+                                            $newAmountDue === 0 => 'Bill will be fully paid',
345
+                                            default => 'Amount exceeds bill total by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $billCurrency),
346
+                                        };
347
+                                    })
348
+                                    ->rules([
349
+                                        static fn (Bill $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
350
+                                            if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
351
+                                                $fail('Please enter a valid amount');
352
+                                            }
353
+                                        },
354
+                                    ]),
355
+                                Forms\Components\Select::make('payment_method')
356
+                                    ->label('Payment Method')
357
+                                    ->required()
358
+                                    ->options(PaymentMethod::class),
359
+                                Forms\Components\Select::make('bank_account_id')
360
+                                    ->label('Account')
361
+                                    ->required()
362
+                                    ->options(BankAccount::query()
363
+                                        ->get()
364
+                                        ->pluck('account.name', 'id'))
365
+                                    ->searchable(),
366
+                                Forms\Components\Textarea::make('notes')
367
+                                    ->label('Notes'),
368
+                            ])
369
+                            ->action(function (Bill $record, Tables\Actions\Action $action, array $data) {
370
+                                $record->recordPayment($data);
371
+
372
+                                $action->success();
373
+                            }),
374
+                    ])->dropdown(false),
375
+                    Tables\Actions\DeleteAction::make(),
374
                 ]),
376
                 ]),
375
             ])
377
             ])
376
             ->bulkActions([
378
             ->bulkActions([

+ 6
- 2
app/Filament/Company/Resources/Purchases/BillResource/Pages/ViewBill.php 查看文件

25
     protected function getHeaderActions(): array
25
     protected function getHeaderActions(): array
26
     {
26
     {
27
         return [
27
         return [
28
+            Actions\EditAction::make()
29
+                ->label('Edit Bill')
30
+                ->outlined(),
28
             Actions\ActionGroup::make([
31
             Actions\ActionGroup::make([
29
-                Actions\EditAction::make(),
32
+                Actions\ActionGroup::make([
33
+                    Bill::getReplicateAction(),
34
+                ])->dropdown(false),
30
                 Actions\DeleteAction::make(),
35
                 Actions\DeleteAction::make(),
31
-                Bill::getReplicateAction(),
32
             ])
36
             ])
33
                 ->label('Actions')
37
                 ->label('Actions')
34
                 ->button()
38
                 ->button()

+ 5
- 2
app/Filament/Company/Resources/Purchases/VendorResource.php 查看文件

212
             ])
212
             ])
213
             ->actions([
213
             ->actions([
214
                 Tables\Actions\ActionGroup::make([
214
                 Tables\Actions\ActionGroup::make([
215
-                    Tables\Actions\EditAction::make(),
216
-                    Tables\Actions\ViewAction::make(),
215
+                    Tables\Actions\ActionGroup::make([
216
+                        Tables\Actions\EditAction::make(),
217
+                        Tables\Actions\ViewAction::make(),
218
+                    ])->dropdown(false),
219
+                    Tables\Actions\DeleteAction::make(),
217
                 ]),
220
                 ]),
218
             ])
221
             ])
219
             ->bulkActions([
222
             ->bulkActions([

+ 32
- 0
app/Filament/Company/Resources/Purchases/VendorResource/Pages/ViewVendor.php 查看文件

2
 
2
 
3
 namespace App\Filament\Company\Resources\Purchases\VendorResource\Pages;
3
 namespace App\Filament\Company\Resources\Purchases\VendorResource\Pages;
4
 
4
 
5
+use App\Filament\Company\Resources\Purchases\BillResource\Pages\CreateBill;
5
 use App\Filament\Company\Resources\Purchases\VendorResource;
6
 use App\Filament\Company\Resources\Purchases\VendorResource;
6
 use App\Filament\Company\Resources\Purchases\VendorResource\RelationManagers;
7
 use App\Filament\Company\Resources\Purchases\VendorResource\RelationManagers;
8
+use Filament\Actions\Action;
9
+use Filament\Actions\ActionGroup;
10
+use Filament\Actions\DeleteAction;
11
+use Filament\Actions\EditAction;
7
 use Filament\Infolists\Components\Section;
12
 use Filament\Infolists\Components\Section;
8
 use Filament\Infolists\Components\TextEntry;
13
 use Filament\Infolists\Components\TextEntry;
9
 use Filament\Infolists\Infolist;
14
 use Filament\Infolists\Infolist;
10
 use Filament\Resources\Pages\ViewRecord;
15
 use Filament\Resources\Pages\ViewRecord;
16
+use Filament\Support\Enums\IconPosition;
17
+use Filament\Support\Enums\IconSize;
11
 
18
 
12
 class ViewVendor extends ViewRecord
19
 class ViewVendor extends ViewRecord
13
 {
20
 {
25
         return $this->record->name;
32
         return $this->record->name;
26
     }
33
     }
27
 
34
 
35
+    protected function getHeaderActions(): array
36
+    {
37
+        return [
38
+            EditAction::make()
39
+                ->label('Edit Vendor')
40
+                ->outlined(),
41
+            ActionGroup::make([
42
+                ActionGroup::make([
43
+                    Action::make('newBill')
44
+                        ->label('New Bill')
45
+                        ->icon('heroicon-m-document-plus')
46
+                        ->url(CreateBill::getUrl(['vendor' => $this->record->getKey()])),
47
+                ])->dropdown(false),
48
+                DeleteAction::make(),
49
+            ])
50
+                ->label('Actions')
51
+                ->button()
52
+                ->outlined()
53
+                ->dropdownPlacement('bottom-end')
54
+                ->icon('heroicon-c-chevron-down')
55
+                ->iconSize(IconSize::Small)
56
+                ->iconPosition(IconPosition::After),
57
+        ];
58
+    }
59
+
28
     protected function getHeaderWidgets(): array
60
     protected function getHeaderWidgets(): array
29
     {
61
     {
30
         return [
62
         return [

+ 5
- 2
app/Filament/Company/Resources/Sales/ClientResource.php 查看文件

304
             ])
304
             ])
305
             ->actions([
305
             ->actions([
306
                 Tables\Actions\ActionGroup::make([
306
                 Tables\Actions\ActionGroup::make([
307
-                    Tables\Actions\EditAction::make(),
308
-                    Tables\Actions\ViewAction::make(),
307
+                    Tables\Actions\ActionGroup::make([
308
+                        Tables\Actions\EditAction::make(),
309
+                        Tables\Actions\ViewAction::make(),
310
+                    ])->dropdown(false),
311
+                    Tables\Actions\DeleteAction::make(),
309
                 ]),
312
                 ]),
310
             ])
313
             ])
311
             ->bulkActions([
314
             ->bulkActions([

+ 42
- 0
app/Filament/Company/Resources/Sales/ClientResource/Pages/ViewClient.php 查看文件

4
 
4
 
5
 use App\Filament\Company\Resources\Sales\ClientResource;
5
 use App\Filament\Company\Resources\Sales\ClientResource;
6
 use App\Filament\Company\Resources\Sales\ClientResource\RelationManagers;
6
 use App\Filament\Company\Resources\Sales\ClientResource\RelationManagers;
7
+use App\Filament\Company\Resources\Sales\EstimateResource\Pages\CreateEstimate;
8
+use App\Filament\Company\Resources\Sales\InvoiceResource\Pages\CreateInvoice;
9
+use App\Filament\Company\Resources\Sales\RecurringInvoiceResource\Pages\CreateRecurringInvoice;
10
+use Filament\Actions\Action;
11
+use Filament\Actions\ActionGroup;
12
+use Filament\Actions\DeleteAction;
13
+use Filament\Actions\EditAction;
7
 use Filament\Infolists\Components\Section;
14
 use Filament\Infolists\Components\Section;
8
 use Filament\Infolists\Components\TextEntry;
15
 use Filament\Infolists\Components\TextEntry;
9
 use Filament\Infolists\Infolist;
16
 use Filament\Infolists\Infolist;
10
 use Filament\Resources\Pages\ViewRecord;
17
 use Filament\Resources\Pages\ViewRecord;
18
+use Filament\Support\Enums\IconPosition;
19
+use Filament\Support\Enums\IconSize;
11
 use Illuminate\Contracts\Support\Htmlable;
20
 use Illuminate\Contracts\Support\Htmlable;
12
 
21
 
13
 class ViewClient extends ViewRecord
22
 class ViewClient extends ViewRecord
28
         return $this->record->name;
37
         return $this->record->name;
29
     }
38
     }
30
 
39
 
40
+    protected function getHeaderActions(): array
41
+    {
42
+        return [
43
+            EditAction::make()
44
+                ->label('Edit Client')
45
+                ->outlined(),
46
+            ActionGroup::make([
47
+                ActionGroup::make([
48
+                    Action::make('newInvoice')
49
+                        ->label('New Invoice')
50
+                        ->icon('heroicon-m-document-plus')
51
+                        ->url(CreateInvoice::getUrl(['client' => $this->record->getKey()])),
52
+                    Action::make('newEstimate')
53
+                        ->label('New Estimate')
54
+                        ->icon('heroicon-m-document-duplicate')
55
+                        ->url(CreateEstimate::getUrl(['client' => $this->record->getKey()])),
56
+                    Action::make('newRecurringInvoice')
57
+                        ->label('New Recurring Invoice')
58
+                        ->icon('heroicon-m-arrow-path')
59
+                        ->url(CreateRecurringInvoice::getUrl(['client' => $this->record->getKey()])),
60
+                ])->dropdown(false),
61
+                DeleteAction::make(),
62
+            ])
63
+                ->label('Actions')
64
+                ->button()
65
+                ->outlined()
66
+                ->dropdownPlacement('bottom-end')
67
+                ->icon('heroicon-c-chevron-down')
68
+                ->iconSize(IconSize::Small)
69
+                ->iconPosition(IconPosition::After),
70
+        ];
71
+    }
72
+
31
     protected function getHeaderWidgets(): array
73
     protected function getHeaderWidgets(): array
32
     {
74
     {
33
         return [
75
         return [

+ 10
- 8
app/Filament/Company/Resources/Sales/EstimateResource.php 查看文件

329
             ])
329
             ])
330
             ->actions([
330
             ->actions([
331
                 Tables\Actions\ActionGroup::make([
331
                 Tables\Actions\ActionGroup::make([
332
-                    Tables\Actions\EditAction::make(),
333
-                    Tables\Actions\ViewAction::make(),
332
+                    Tables\Actions\ActionGroup::make([
333
+                        Tables\Actions\EditAction::make(),
334
+                        Tables\Actions\ViewAction::make(),
335
+                        Estimate::getReplicateAction(Tables\Actions\ReplicateAction::class),
336
+                        Estimate::getApproveDraftAction(Tables\Actions\Action::class),
337
+                        Estimate::getMarkAsSentAction(Tables\Actions\Action::class),
338
+                        Estimate::getMarkAsAcceptedAction(Tables\Actions\Action::class),
339
+                        Estimate::getMarkAsDeclinedAction(Tables\Actions\Action::class),
340
+                        Estimate::getConvertToInvoiceAction(Tables\Actions\Action::class),
341
+                    ])->dropdown(false),
334
                     Tables\Actions\DeleteAction::make(),
342
                     Tables\Actions\DeleteAction::make(),
335
-                    Estimate::getReplicateAction(Tables\Actions\ReplicateAction::class),
336
-                    Estimate::getApproveDraftAction(Tables\Actions\Action::class),
337
-                    Estimate::getMarkAsSentAction(Tables\Actions\Action::class),
338
-                    Estimate::getMarkAsAcceptedAction(Tables\Actions\Action::class),
339
-                    Estimate::getMarkAsDeclinedAction(Tables\Actions\Action::class),
340
-                    Estimate::getConvertToInvoiceAction(Tables\Actions\Action::class),
341
                 ]),
343
                 ]),
342
             ])
344
             ])
343
             ->bulkActions([
345
             ->bulkActions([

+ 11
- 7
app/Filament/Company/Resources/Sales/EstimateResource/Pages/ViewEstimate.php 查看文件

34
     protected function getHeaderActions(): array
34
     protected function getHeaderActions(): array
35
     {
35
     {
36
         return [
36
         return [
37
+            Actions\EditAction::make()
38
+                ->label('Edit Estimate')
39
+                ->outlined(),
37
             Actions\ActionGroup::make([
40
             Actions\ActionGroup::make([
38
-                Actions\EditAction::make(),
41
+                Actions\ActionGroup::make([
42
+                    Estimate::getApproveDraftAction(),
43
+                    Estimate::getMarkAsSentAction(),
44
+                    Estimate::getMarkAsAcceptedAction(),
45
+                    Estimate::getMarkAsDeclinedAction(),
46
+                    Estimate::getReplicateAction(),
47
+                    Estimate::getConvertToInvoiceAction(),
48
+                ])->dropdown(false),
39
                 Actions\DeleteAction::make(),
49
                 Actions\DeleteAction::make(),
40
-                Estimate::getApproveDraftAction(),
41
-                Estimate::getMarkAsSentAction(),
42
-                Estimate::getMarkAsAcceptedAction(),
43
-                Estimate::getMarkAsDeclinedAction(),
44
-                Estimate::getReplicateAction(),
45
-                Estimate::getConvertToInvoiceAction(),
46
             ])
50
             ])
47
                 ->label('Actions')
51
                 ->label('Actions')
48
                 ->button()
52
                 ->button()

+ 86
- 84
app/Filament/Company/Resources/Sales/InvoiceResource.php 查看文件

395
             ])
395
             ])
396
             ->actions([
396
             ->actions([
397
                 Tables\Actions\ActionGroup::make([
397
                 Tables\Actions\ActionGroup::make([
398
-                    Tables\Actions\EditAction::make()
399
-                        ->url(static fn (Invoice $record) => Pages\EditInvoice::getUrl(['record' => $record])),
400
-                    Tables\Actions\ViewAction::make()
401
-                        ->url(static fn (Invoice $record) => Pages\ViewInvoice::getUrl(['record' => $record])),
402
-                    Tables\Actions\DeleteAction::make(),
403
-                    Invoice::getReplicateAction(Tables\Actions\ReplicateAction::class),
404
-                    Invoice::getApproveDraftAction(Tables\Actions\Action::class),
405
-                    Invoice::getMarkAsSentAction(Tables\Actions\Action::class),
406
-                    Tables\Actions\Action::make('recordPayment')
407
-                        ->label(fn (Invoice $record) => $record->status === InvoiceStatus::Overpaid ? 'Refund Overpayment' : 'Record Payment')
408
-                        ->stickyModalHeader()
409
-                        ->stickyModalFooter()
410
-                        ->modalFooterActionsAlignment(Alignment::End)
411
-                        ->modalWidth(MaxWidth::TwoExtraLarge)
412
-                        ->icon('heroicon-o-credit-card')
413
-                        ->visible(function (Invoice $record) {
414
-                            return $record->canRecordPayment();
415
-                        })
416
-                        ->mountUsing(function (Invoice $record, Form $form) {
417
-                            $form->fill([
418
-                                'posted_at' => now(),
419
-                                'amount' => $record->status === InvoiceStatus::Overpaid ? ltrim($record->amount_due, '-') : $record->amount_due,
420
-                            ]);
421
-                        })
422
-                        ->databaseTransaction()
423
-                        ->successNotificationTitle('Payment Recorded')
424
-                        ->form([
425
-                            Forms\Components\DatePicker::make('posted_at')
426
-                                ->label('Date'),
427
-                            Forms\Components\TextInput::make('amount')
428
-                                ->label('Amount')
429
-                                ->required()
430
-                                ->money(fn (Invoice $record) => $record->currency_code)
431
-                                ->live(onBlur: true)
432
-                                ->helperText(function (Invoice $record, $state) {
433
-                                    $invoiceCurrency = $record->currency_code;
434
-                                    if (! CurrencyConverter::isValidAmount($state, $invoiceCurrency)) {
435
-                                        return null;
436
-                                    }
437
-
438
-                                    $amountDue = $record->getRawOriginal('amount_due');
439
-
440
-                                    $amount = CurrencyConverter::convertToCents($state, $invoiceCurrency);
441
-
442
-                                    if ($amount <= 0) {
443
-                                        return 'Please enter a valid positive amount';
444
-                                    }
445
-
446
-                                    if ($record->status === InvoiceStatus::Overpaid) {
447
-                                        $newAmountDue = $amountDue + $amount;
448
-                                    } else {
449
-                                        $newAmountDue = $amountDue - $amount;
450
-                                    }
451
-
452
-                                    return match (true) {
453
-                                        $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $invoiceCurrency),
454
-                                        $newAmountDue === 0 => 'Invoice will be fully paid',
455
-                                        default => 'Invoice will be overpaid by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $invoiceCurrency),
456
-                                    };
457
-                                })
458
-                                ->rules([
459
-                                    static fn (Invoice $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
460
-                                        if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
461
-                                            $fail('Please enter a valid amount');
398
+                    Tables\Actions\ActionGroup::make([
399
+                        Tables\Actions\EditAction::make()
400
+                            ->url(static fn (Invoice $record) => Pages\EditInvoice::getUrl(['record' => $record])),
401
+                        Tables\Actions\ViewAction::make()
402
+                            ->url(static fn (Invoice $record) => Pages\ViewInvoice::getUrl(['record' => $record])),
403
+                        Invoice::getReplicateAction(Tables\Actions\ReplicateAction::class),
404
+                        Invoice::getApproveDraftAction(Tables\Actions\Action::class),
405
+                        Invoice::getMarkAsSentAction(Tables\Actions\Action::class),
406
+                        Tables\Actions\Action::make('recordPayment')
407
+                            ->label(fn (Invoice $record) => $record->status === InvoiceStatus::Overpaid ? 'Refund Overpayment' : 'Record Payment')
408
+                            ->stickyModalHeader()
409
+                            ->stickyModalFooter()
410
+                            ->modalFooterActionsAlignment(Alignment::End)
411
+                            ->modalWidth(MaxWidth::TwoExtraLarge)
412
+                            ->icon('heroicon-o-credit-card')
413
+                            ->visible(function (Invoice $record) {
414
+                                return $record->canRecordPayment();
415
+                            })
416
+                            ->mountUsing(function (Invoice $record, Form $form) {
417
+                                $form->fill([
418
+                                    'posted_at' => now(),
419
+                                    'amount' => $record->status === InvoiceStatus::Overpaid ? ltrim($record->amount_due, '-') : $record->amount_due,
420
+                                ]);
421
+                            })
422
+                            ->databaseTransaction()
423
+                            ->successNotificationTitle('Payment Recorded')
424
+                            ->form([
425
+                                Forms\Components\DatePicker::make('posted_at')
426
+                                    ->label('Date'),
427
+                                Forms\Components\TextInput::make('amount')
428
+                                    ->label('Amount')
429
+                                    ->required()
430
+                                    ->money(fn (Invoice $record) => $record->currency_code)
431
+                                    ->live(onBlur: true)
432
+                                    ->helperText(function (Invoice $record, $state) {
433
+                                        $invoiceCurrency = $record->currency_code;
434
+                                        if (! CurrencyConverter::isValidAmount($state, $invoiceCurrency)) {
435
+                                            return null;
462
                                         }
436
                                         }
463
-                                    },
464
-                                ]),
465
-                            Forms\Components\Select::make('payment_method')
466
-                                ->label('Payment Method')
467
-                                ->required()
468
-                                ->options(PaymentMethod::class),
469
-                            Forms\Components\Select::make('bank_account_id')
470
-                                ->label('Account')
471
-                                ->required()
472
-                                ->options(BankAccount::query()
473
-                                    ->get()
474
-                                    ->pluck('account.name', 'id'))
475
-                                ->searchable(),
476
-                            Forms\Components\Textarea::make('notes')
477
-                                ->label('Notes'),
478
-                        ])
479
-                        ->action(function (Invoice $record, Tables\Actions\Action $action, array $data) {
480
-                            $record->recordPayment($data);
481
 
437
 
482
-                            $action->success();
483
-                        }),
438
+                                        $amountDue = $record->getRawOriginal('amount_due');
439
+
440
+                                        $amount = CurrencyConverter::convertToCents($state, $invoiceCurrency);
441
+
442
+                                        if ($amount <= 0) {
443
+                                            return 'Please enter a valid positive amount';
444
+                                        }
445
+
446
+                                        if ($record->status === InvoiceStatus::Overpaid) {
447
+                                            $newAmountDue = $amountDue + $amount;
448
+                                        } else {
449
+                                            $newAmountDue = $amountDue - $amount;
450
+                                        }
451
+
452
+                                        return match (true) {
453
+                                            $newAmountDue > 0 => 'Amount due after payment will be ' . CurrencyConverter::formatCentsToMoney($newAmountDue, $invoiceCurrency),
454
+                                            $newAmountDue === 0 => 'Invoice will be fully paid',
455
+                                            default => 'Invoice will be overpaid by ' . CurrencyConverter::formatCentsToMoney(abs($newAmountDue), $invoiceCurrency),
456
+                                        };
457
+                                    })
458
+                                    ->rules([
459
+                                        static fn (Invoice $record): Closure => static function (string $attribute, $value, Closure $fail) use ($record) {
460
+                                            if (! CurrencyConverter::isValidAmount($value, $record->currency_code)) {
461
+                                                $fail('Please enter a valid amount');
462
+                                            }
463
+                                        },
464
+                                    ]),
465
+                                Forms\Components\Select::make('payment_method')
466
+                                    ->label('Payment Method')
467
+                                    ->required()
468
+                                    ->options(PaymentMethod::class),
469
+                                Forms\Components\Select::make('bank_account_id')
470
+                                    ->label('Account')
471
+                                    ->required()
472
+                                    ->options(BankAccount::query()
473
+                                        ->get()
474
+                                        ->pluck('account.name', 'id'))
475
+                                    ->searchable(),
476
+                                Forms\Components\Textarea::make('notes')
477
+                                    ->label('Notes'),
478
+                            ])
479
+                            ->action(function (Invoice $record, Tables\Actions\Action $action, array $data) {
480
+                                $record->recordPayment($data);
481
+
482
+                                $action->success();
483
+                            }),
484
+                    ])->dropdown(false),
485
+                    Tables\Actions\DeleteAction::make(),
484
                 ]),
486
                 ]),
485
             ])
487
             ])
486
             ->bulkActions([
488
             ->bulkActions([

+ 8
- 4
app/Filament/Company/Resources/Sales/InvoiceResource/Pages/ViewInvoice.php 查看文件

34
     protected function getHeaderActions(): array
34
     protected function getHeaderActions(): array
35
     {
35
     {
36
         return [
36
         return [
37
+            Actions\EditAction::make()
38
+                ->label('Edit Invoice')
39
+                ->outlined(),
37
             Actions\ActionGroup::make([
40
             Actions\ActionGroup::make([
38
-                Actions\EditAction::make(),
41
+                Actions\ActionGroup::make([
42
+                    Invoice::getApproveDraftAction(),
43
+                    Invoice::getMarkAsSentAction(),
44
+                    Invoice::getReplicateAction(),
45
+                ])->dropdown(false),
39
                 Actions\DeleteAction::make(),
46
                 Actions\DeleteAction::make(),
40
-                Invoice::getApproveDraftAction(),
41
-                Invoice::getMarkAsSentAction(),
42
-                Invoice::getReplicateAction(),
43
             ])
47
             ])
44
                 ->label('Actions')
48
                 ->label('Actions')
45
                 ->button()
49
                 ->button()

+ 5
- 3
app/Filament/Company/Resources/Sales/RecurringInvoiceResource.php 查看文件

325
             ])
325
             ])
326
             ->actions([
326
             ->actions([
327
                 Tables\Actions\ActionGroup::make([
327
                 Tables\Actions\ActionGroup::make([
328
-                    Tables\Actions\EditAction::make(),
329
-                    Tables\Actions\ViewAction::make(),
328
+                    Tables\Actions\ActionGroup::make([
329
+                        Tables\Actions\EditAction::make(),
330
+                        Tables\Actions\ViewAction::make(),
331
+                        RecurringInvoice::getUpdateScheduleAction(Tables\Actions\Action::class),
332
+                    ])->dropdown(false),
330
                     Tables\Actions\DeleteAction::make(),
333
                     Tables\Actions\DeleteAction::make(),
331
-                    RecurringInvoice::getUpdateScheduleAction(Tables\Actions\Action::class),
332
                 ]),
334
                 ]),
333
             ])
335
             ])
334
             ->bulkActions([
336
             ->bulkActions([

+ 7
- 3
app/Filament/Company/Resources/Sales/RecurringInvoiceResource/Pages/ViewRecurringInvoice.php 查看文件

34
     protected function getHeaderActions(): array
34
     protected function getHeaderActions(): array
35
     {
35
     {
36
         return [
36
         return [
37
+            Actions\EditAction::make()
38
+                ->label('Edit Recurring Invoice')
39
+                ->outlined(),
37
             Actions\ActionGroup::make([
40
             Actions\ActionGroup::make([
38
-                Actions\EditAction::make(),
41
+                Actions\ActionGroup::make([
42
+                    RecurringInvoice::getUpdateScheduleAction(),
43
+                    RecurringInvoice::getApproveDraftAction(),
44
+                ])->dropdown(false),
39
                 Actions\DeleteAction::make(),
45
                 Actions\DeleteAction::make(),
40
-                RecurringInvoice::getUpdateScheduleAction(),
41
-                RecurringInvoice::getApproveDraftAction(),
42
             ])
46
             ])
43
                 ->label('Actions')
47
                 ->label('Actions')
44
                 ->button()
48
                 ->button()

+ 5
- 5
app/Models/Accounting/Estimate.php 查看文件

263
     {
263
     {
264
         return $action::make('approveDraft')
264
         return $action::make('approveDraft')
265
             ->label('Approve')
265
             ->label('Approve')
266
-            ->icon('heroicon-o-check-circle')
266
+            ->icon('heroicon-m-check-circle')
267
             ->visible(function (self $record) {
267
             ->visible(function (self $record) {
268
                 return $record->canBeApproved();
268
                 return $record->canBeApproved();
269
             })
269
             })
280
     {
280
     {
281
         return $action::make('markAsSent')
281
         return $action::make('markAsSent')
282
             ->label('Mark as Sent')
282
             ->label('Mark as Sent')
283
-            ->icon('heroicon-o-paper-airplane')
283
+            ->icon('heroicon-m-paper-airplane')
284
             ->visible(static function (self $record) {
284
             ->visible(static function (self $record) {
285
                 return $record->canBeMarkedAsSent();
285
                 return $record->canBeMarkedAsSent();
286
             })
286
             })
351
     {
351
     {
352
         return $action::make('markAsAccepted')
352
         return $action::make('markAsAccepted')
353
             ->label('Mark as Accepted')
353
             ->label('Mark as Accepted')
354
-            ->icon('heroicon-o-check-badge')
354
+            ->icon('heroicon-m-check-badge')
355
             ->visible(static function (self $record) {
355
             ->visible(static function (self $record) {
356
                 return $record->canBeMarkedAsAccepted();
356
                 return $record->canBeMarkedAsAccepted();
357
             })
357
             })
378
     {
378
     {
379
         return $action::make('markAsDeclined')
379
         return $action::make('markAsDeclined')
380
             ->label('Mark as Declined')
380
             ->label('Mark as Declined')
381
-            ->icon('heroicon-o-x-circle')
381
+            ->icon('heroicon-m-x-circle')
382
             ->visible(static function (self $record) {
382
             ->visible(static function (self $record) {
383
                 return $record->canBeMarkedAsDeclined();
383
                 return $record->canBeMarkedAsDeclined();
384
             })
384
             })
407
     {
407
     {
408
         return $action::make('convertToInvoice')
408
         return $action::make('convertToInvoice')
409
             ->label('Convert to Invoice')
409
             ->label('Convert to Invoice')
410
-            ->icon('heroicon-o-arrow-right-on-rectangle')
410
+            ->icon('heroicon-m-arrow-right-on-rectangle')
411
             ->visible(static function (self $record) {
411
             ->visible(static function (self $record) {
412
                 return $record->canBeConverted();
412
                 return $record->canBeConverted();
413
             })
413
             })

+ 2
- 2
app/Models/Accounting/Invoice.php 查看文件

465
     {
465
     {
466
         return $action::make('approveDraft')
466
         return $action::make('approveDraft')
467
             ->label('Approve')
467
             ->label('Approve')
468
-            ->icon('heroicon-o-check-circle')
468
+            ->icon('heroicon-m-check-circle')
469
             ->visible(function (self $record) {
469
             ->visible(function (self $record) {
470
                 return $record->canBeApproved();
470
                 return $record->canBeApproved();
471
             })
471
             })
482
     {
482
     {
483
         return $action::make('markAsSent')
483
         return $action::make('markAsSent')
484
             ->label('Mark as Sent')
484
             ->label('Mark as Sent')
485
-            ->icon('heroicon-o-paper-airplane')
485
+            ->icon('heroicon-m-paper-airplane')
486
             ->visible(static function (self $record) {
486
             ->visible(static function (self $record) {
487
                 return $record->canBeMarkedAsSent();
487
                 return $record->canBeMarkedAsSent();
488
             })
488
             })

+ 1
- 1
app/Models/Accounting/RecurringInvoice.php 查看文件

383
     {
383
     {
384
         return $action::make('updateSchedule')
384
         return $action::make('updateSchedule')
385
             ->label(fn (self $record) => $record->hasSchedule() ? 'Update Schedule' : 'Set Schedule')
385
             ->label(fn (self $record) => $record->hasSchedule() ? 'Update Schedule' : 'Set Schedule')
386
-            ->icon('heroicon-o-calendar-date-range')
386
+            ->icon('heroicon-m-calendar-date-range')
387
             ->slideOver()
387
             ->slideOver()
388
             ->successNotificationTitle('Schedule Updated')
388
             ->successNotificationTitle('Schedule Updated')
389
             ->mountUsing(function (self $record, Form $form) {
389
             ->mountUsing(function (self $record, Form $form) {

+ 3
- 3
app/Services/ReportService.php 查看文件

263
             return [
263
             return [
264
                 'type' => 'transaction',
264
                 'type' => 'transaction',
265
                 'action' => match ($transaction->type) {
265
                 'action' => match ($transaction->type) {
266
-                    TransactionType::Journal => 'updateJournalTransaction',
267
-                    TransactionType::Transfer => 'updateTransfer',
268
-                    default => 'updateTransaction',
266
+                    TransactionType::Journal => 'editJournalTransaction',
267
+                    TransactionType::Transfer => 'editTransfer',
268
+                    default => 'editTransaction',
269
                 },
269
                 },
270
                 'id' => $transaction->id,
270
                 'id' => $transaction->id,
271
             ];
271
             ];

+ 103
- 101
composer.lock 查看文件

497
         },
497
         },
498
         {
498
         {
499
             "name": "aws/aws-sdk-php",
499
             "name": "aws/aws-sdk-php",
500
-            "version": "3.337.3",
500
+            "version": "3.338.2",
501
             "source": {
501
             "source": {
502
                 "type": "git",
502
                 "type": "git",
503
                 "url": "https://github.com/aws/aws-sdk-php.git",
503
                 "url": "https://github.com/aws/aws-sdk-php.git",
504
-                "reference": "06dfc8f76423b49aaa181debd25bbdc724c346d6"
504
+                "reference": "7a52364e053d74363f9976dfb4473bace5b7790e"
505
             },
505
             },
506
             "dist": {
506
             "dist": {
507
                 "type": "zip",
507
                 "type": "zip",
508
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/06dfc8f76423b49aaa181debd25bbdc724c346d6",
509
-                "reference": "06dfc8f76423b49aaa181debd25bbdc724c346d6",
508
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7a52364e053d74363f9976dfb4473bace5b7790e",
509
+                "reference": "7a52364e053d74363f9976dfb4473bace5b7790e",
510
                 "shasum": ""
510
                 "shasum": ""
511
             },
511
             },
512
             "require": {
512
             "require": {
514
                 "ext-json": "*",
514
                 "ext-json": "*",
515
                 "ext-pcre": "*",
515
                 "ext-pcre": "*",
516
                 "ext-simplexml": "*",
516
                 "ext-simplexml": "*",
517
-                "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
518
-                "guzzlehttp/promises": "^1.4.0 || ^2.0",
519
-                "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
520
-                "mtdowling/jmespath.php": "^2.6",
521
-                "php": ">=7.2.5",
522
-                "psr/http-message": "^1.0 || ^2.0"
517
+                "guzzlehttp/guzzle": "^7.4.5",
518
+                "guzzlehttp/promises": "^2.0",
519
+                "guzzlehttp/psr7": "^2.4.5",
520
+                "mtdowling/jmespath.php": "^2.8.0",
521
+                "php": ">=8.1",
522
+                "psr/http-message": "^2.0"
523
             },
523
             },
524
             "require-dev": {
524
             "require-dev": {
525
                 "andrewsville/php-token-reflection": "^1.4",
525
                 "andrewsville/php-token-reflection": "^1.4",
526
                 "aws/aws-php-sns-message-validator": "~1.0",
526
                 "aws/aws-php-sns-message-validator": "~1.0",
527
                 "behat/behat": "~3.0",
527
                 "behat/behat": "~3.0",
528
-                "composer/composer": "^1.10.22",
528
+                "composer/composer": "^2.7.8",
529
                 "dms/phpunit-arraysubset-asserts": "^0.4.0",
529
                 "dms/phpunit-arraysubset-asserts": "^0.4.0",
530
                 "doctrine/cache": "~1.4",
530
                 "doctrine/cache": "~1.4",
531
                 "ext-dom": "*",
531
                 "ext-dom": "*",
532
                 "ext-openssl": "*",
532
                 "ext-openssl": "*",
533
                 "ext-pcntl": "*",
533
                 "ext-pcntl": "*",
534
                 "ext-sockets": "*",
534
                 "ext-sockets": "*",
535
-                "nette/neon": "^2.3",
536
                 "paragonie/random_compat": ">= 2",
535
                 "paragonie/random_compat": ">= 2",
537
                 "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
536
                 "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
538
-                "psr/cache": "^1.0 || ^2.0 || ^3.0",
539
-                "psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
540
-                "sebastian/comparator": "^1.2.3 || ^4.0",
541
-                "yoast/phpunit-polyfills": "^1.0"
537
+                "psr/cache": "^2.0 || ^3.0",
538
+                "psr/simple-cache": "^2.0 || ^3.0",
539
+                "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0",
540
+                "symfony/filesystem": "^v6.4.0 || ^v7.1.0",
541
+                "yoast/phpunit-polyfills": "^2.0"
542
             },
542
             },
543
             "suggest": {
543
             "suggest": {
544
                 "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
544
                 "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
587
                 "sdk"
587
                 "sdk"
588
             ],
588
             ],
589
             "support": {
589
             "support": {
590
-                "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
590
+                "forum": "https://github.com/aws/aws-sdk-php/discussions",
591
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
591
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
592
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.337.3"
592
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.338.2"
593
             },
593
             },
594
-            "time": "2025-01-21T19:10:05+00:00"
594
+            "time": "2025-01-24T19:09:22+00:00"
595
         },
595
         },
596
         {
596
         {
597
             "name": "aws/aws-sdk-php-laravel",
597
             "name": "aws/aws-sdk-php-laravel",
1153
         },
1153
         },
1154
         {
1154
         {
1155
             "name": "danharrin/livewire-rate-limiting",
1155
             "name": "danharrin/livewire-rate-limiting",
1156
-            "version": "v2.0.0",
1156
+            "version": "v2.0.1",
1157
             "source": {
1157
             "source": {
1158
                 "type": "git",
1158
                 "type": "git",
1159
                 "url": "https://github.com/danharrin/livewire-rate-limiting.git",
1159
                 "url": "https://github.com/danharrin/livewire-rate-limiting.git",
1160
-                "reference": "0d9c1890174b3d1857dba6ce76de7c178fe20283"
1160
+                "reference": "18680be2b4d3d901d8e453560f77810145492b34"
1161
             },
1161
             },
1162
             "dist": {
1162
             "dist": {
1163
                 "type": "zip",
1163
                 "type": "zip",
1164
-                "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/0d9c1890174b3d1857dba6ce76de7c178fe20283",
1165
-                "reference": "0d9c1890174b3d1857dba6ce76de7c178fe20283",
1164
+                "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/18680be2b4d3d901d8e453560f77810145492b34",
1165
+                "reference": "18680be2b4d3d901d8e453560f77810145492b34",
1166
                 "shasum": ""
1166
                 "shasum": ""
1167
             },
1167
             },
1168
             "require": {
1168
             "require": {
1203
                     "type": "github"
1203
                     "type": "github"
1204
                 }
1204
                 }
1205
             ],
1205
             ],
1206
-            "time": "2024-11-24T16:57:47+00:00"
1206
+            "time": "2025-01-22T14:01:35+00:00"
1207
         },
1207
         },
1208
         {
1208
         {
1209
             "name": "dflydev/dot-access-data",
1209
             "name": "dflydev/dot-access-data",
1733
         },
1733
         },
1734
         {
1734
         {
1735
             "name": "filament/actions",
1735
             "name": "filament/actions",
1736
-            "version": "v3.2.133",
1736
+            "version": "v3.2.135",
1737
             "source": {
1737
             "source": {
1738
                 "type": "git",
1738
                 "type": "git",
1739
                 "url": "https://github.com/filamentphp/actions.git",
1739
                 "url": "https://github.com/filamentphp/actions.git",
1740
-                "reference": "33464f1583217b5eb12364b617b27abe5315eb88"
1740
+                "reference": "dee2ca6d11e0ea3efb1190eabf6e483dbe2320ff"
1741
             },
1741
             },
1742
             "dist": {
1742
             "dist": {
1743
                 "type": "zip",
1743
                 "type": "zip",
1744
-                "url": "https://api.github.com/repos/filamentphp/actions/zipball/33464f1583217b5eb12364b617b27abe5315eb88",
1745
-                "reference": "33464f1583217b5eb12364b617b27abe5315eb88",
1744
+                "url": "https://api.github.com/repos/filamentphp/actions/zipball/dee2ca6d11e0ea3efb1190eabf6e483dbe2320ff",
1745
+                "reference": "dee2ca6d11e0ea3efb1190eabf6e483dbe2320ff",
1746
                 "shasum": ""
1746
                 "shasum": ""
1747
             },
1747
             },
1748
             "require": {
1748
             "require": {
1782
                 "issues": "https://github.com/filamentphp/filament/issues",
1782
                 "issues": "https://github.com/filamentphp/filament/issues",
1783
                 "source": "https://github.com/filamentphp/filament"
1783
                 "source": "https://github.com/filamentphp/filament"
1784
             },
1784
             },
1785
-            "time": "2025-01-10T12:47:49+00:00"
1785
+            "time": "2025-01-24T09:27:43+00:00"
1786
         },
1786
         },
1787
         {
1787
         {
1788
             "name": "filament/filament",
1788
             "name": "filament/filament",
1789
-            "version": "v3.2.133",
1789
+            "version": "v3.2.135",
1790
             "source": {
1790
             "source": {
1791
                 "type": "git",
1791
                 "type": "git",
1792
                 "url": "https://github.com/filamentphp/panels.git",
1792
                 "url": "https://github.com/filamentphp/panels.git",
1793
-                "reference": "74550888c1c79761218aece3c339ca0e0cc260e8"
1793
+                "reference": "bee6e1fd7b51f7dbffd03bc277b220bcfb8c45bb"
1794
             },
1794
             },
1795
             "dist": {
1795
             "dist": {
1796
                 "type": "zip",
1796
                 "type": "zip",
1797
-                "url": "https://api.github.com/repos/filamentphp/panels/zipball/74550888c1c79761218aece3c339ca0e0cc260e8",
1798
-                "reference": "74550888c1c79761218aece3c339ca0e0cc260e8",
1797
+                "url": "https://api.github.com/repos/filamentphp/panels/zipball/bee6e1fd7b51f7dbffd03bc277b220bcfb8c45bb",
1798
+                "reference": "bee6e1fd7b51f7dbffd03bc277b220bcfb8c45bb",
1799
                 "shasum": ""
1799
                 "shasum": ""
1800
             },
1800
             },
1801
             "require": {
1801
             "require": {
1847
                 "issues": "https://github.com/filamentphp/filament/issues",
1847
                 "issues": "https://github.com/filamentphp/filament/issues",
1848
                 "source": "https://github.com/filamentphp/filament"
1848
                 "source": "https://github.com/filamentphp/filament"
1849
             },
1849
             },
1850
-            "time": "2025-01-10T12:48:32+00:00"
1850
+            "time": "2025-01-24T09:27:52+00:00"
1851
         },
1851
         },
1852
         {
1852
         {
1853
             "name": "filament/forms",
1853
             "name": "filament/forms",
1854
-            "version": "v3.2.133",
1854
+            "version": "v3.2.135",
1855
             "source": {
1855
             "source": {
1856
                 "type": "git",
1856
                 "type": "git",
1857
                 "url": "https://github.com/filamentphp/forms.git",
1857
                 "url": "https://github.com/filamentphp/forms.git",
1858
-                "reference": "20473c9eec7afa3ee618d2f86c7c449b3723d9fb"
1858
+                "reference": "e17618c921cd0300341a53d0eb2174c51e649565"
1859
             },
1859
             },
1860
             "dist": {
1860
             "dist": {
1861
                 "type": "zip",
1861
                 "type": "zip",
1862
-                "url": "https://api.github.com/repos/filamentphp/forms/zipball/20473c9eec7afa3ee618d2f86c7c449b3723d9fb",
1863
-                "reference": "20473c9eec7afa3ee618d2f86c7c449b3723d9fb",
1862
+                "url": "https://api.github.com/repos/filamentphp/forms/zipball/e17618c921cd0300341a53d0eb2174c51e649565",
1863
+                "reference": "e17618c921cd0300341a53d0eb2174c51e649565",
1864
                 "shasum": ""
1864
                 "shasum": ""
1865
             },
1865
             },
1866
             "require": {
1866
             "require": {
1903
                 "issues": "https://github.com/filamentphp/filament/issues",
1903
                 "issues": "https://github.com/filamentphp/filament/issues",
1904
                 "source": "https://github.com/filamentphp/filament"
1904
                 "source": "https://github.com/filamentphp/filament"
1905
             },
1905
             },
1906
-            "time": "2025-01-10T12:47:50+00:00"
1906
+            "time": "2025-01-24T09:27:50+00:00"
1907
         },
1907
         },
1908
         {
1908
         {
1909
             "name": "filament/infolists",
1909
             "name": "filament/infolists",
1910
-            "version": "v3.2.133",
1910
+            "version": "v3.2.135",
1911
             "source": {
1911
             "source": {
1912
                 "type": "git",
1912
                 "type": "git",
1913
                 "url": "https://github.com/filamentphp/infolists.git",
1913
                 "url": "https://github.com/filamentphp/infolists.git",
1914
-                "reference": "d3ee1eb508561f2b101c69cdb45c309539948d86"
1914
+                "reference": "3330966b87da7d2078b62556428c279a6e8ff17c"
1915
             },
1915
             },
1916
             "dist": {
1916
             "dist": {
1917
                 "type": "zip",
1917
                 "type": "zip",
1918
-                "url": "https://api.github.com/repos/filamentphp/infolists/zipball/d3ee1eb508561f2b101c69cdb45c309539948d86",
1919
-                "reference": "d3ee1eb508561f2b101c69cdb45c309539948d86",
1918
+                "url": "https://api.github.com/repos/filamentphp/infolists/zipball/3330966b87da7d2078b62556428c279a6e8ff17c",
1919
+                "reference": "3330966b87da7d2078b62556428c279a6e8ff17c",
1920
                 "shasum": ""
1920
                 "shasum": ""
1921
             },
1921
             },
1922
             "require": {
1922
             "require": {
1954
                 "issues": "https://github.com/filamentphp/filament/issues",
1954
                 "issues": "https://github.com/filamentphp/filament/issues",
1955
                 "source": "https://github.com/filamentphp/filament"
1955
                 "source": "https://github.com/filamentphp/filament"
1956
             },
1956
             },
1957
-            "time": "2025-01-10T12:48:11+00:00"
1957
+            "time": "2025-01-24T09:27:49+00:00"
1958
         },
1958
         },
1959
         {
1959
         {
1960
             "name": "filament/notifications",
1960
             "name": "filament/notifications",
1961
-            "version": "v3.2.133",
1961
+            "version": "v3.2.135",
1962
             "source": {
1962
             "source": {
1963
                 "type": "git",
1963
                 "type": "git",
1964
                 "url": "https://github.com/filamentphp/notifications.git",
1964
                 "url": "https://github.com/filamentphp/notifications.git",
1965
-                "reference": "16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64"
1965
+                "reference": "e864c50bc0b6e9eb46b5e3d93a672a66f80a0fbe"
1966
             },
1966
             },
1967
             "dist": {
1967
             "dist": {
1968
                 "type": "zip",
1968
                 "type": "zip",
1969
-                "url": "https://api.github.com/repos/filamentphp/notifications/zipball/16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64",
1970
-                "reference": "16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64",
1969
+                "url": "https://api.github.com/repos/filamentphp/notifications/zipball/e864c50bc0b6e9eb46b5e3d93a672a66f80a0fbe",
1970
+                "reference": "e864c50bc0b6e9eb46b5e3d93a672a66f80a0fbe",
1971
                 "shasum": ""
1971
                 "shasum": ""
1972
             },
1972
             },
1973
             "require": {
1973
             "require": {
2006
                 "issues": "https://github.com/filamentphp/filament/issues",
2006
                 "issues": "https://github.com/filamentphp/filament/issues",
2007
                 "source": "https://github.com/filamentphp/filament"
2007
                 "source": "https://github.com/filamentphp/filament"
2008
             },
2008
             },
2009
-            "time": "2025-01-10T12:48:23+00:00"
2009
+            "time": "2025-01-24T09:27:49+00:00"
2010
         },
2010
         },
2011
         {
2011
         {
2012
             "name": "filament/support",
2012
             "name": "filament/support",
2013
-            "version": "v3.2.133",
2013
+            "version": "v3.2.135",
2014
             "source": {
2014
             "source": {
2015
                 "type": "git",
2015
                 "type": "git",
2016
                 "url": "https://github.com/filamentphp/support.git",
2016
                 "url": "https://github.com/filamentphp/support.git",
2017
-                "reference": "38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee"
2017
+                "reference": "ca0ff1fa43d743e06de9c2f50ccea98e23785c7d"
2018
             },
2018
             },
2019
             "dist": {
2019
             "dist": {
2020
                 "type": "zip",
2020
                 "type": "zip",
2021
-                "url": "https://api.github.com/repos/filamentphp/support/zipball/38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee",
2022
-                "reference": "38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee",
2021
+                "url": "https://api.github.com/repos/filamentphp/support/zipball/ca0ff1fa43d743e06de9c2f50ccea98e23785c7d",
2022
+                "reference": "ca0ff1fa43d743e06de9c2f50ccea98e23785c7d",
2023
                 "shasum": ""
2023
                 "shasum": ""
2024
             },
2024
             },
2025
             "require": {
2025
             "require": {
2065
                 "issues": "https://github.com/filamentphp/filament/issues",
2065
                 "issues": "https://github.com/filamentphp/filament/issues",
2066
                 "source": "https://github.com/filamentphp/filament"
2066
                 "source": "https://github.com/filamentphp/filament"
2067
             },
2067
             },
2068
-            "time": "2025-01-10T12:48:52+00:00"
2068
+            "time": "2025-01-24T09:28:01+00:00"
2069
         },
2069
         },
2070
         {
2070
         {
2071
             "name": "filament/tables",
2071
             "name": "filament/tables",
2072
-            "version": "v3.2.133",
2072
+            "version": "v3.2.135",
2073
             "source": {
2073
             "source": {
2074
                 "type": "git",
2074
                 "type": "git",
2075
                 "url": "https://github.com/filamentphp/tables.git",
2075
                 "url": "https://github.com/filamentphp/tables.git",
2076
-                "reference": "6cbbea0bfd966ca2f26988c0fac4e02caebddf4a"
2076
+                "reference": "db63ab6fd7c2046dc9b1fc6fbd92df0a1aabb54e"
2077
             },
2077
             },
2078
             "dist": {
2078
             "dist": {
2079
                 "type": "zip",
2079
                 "type": "zip",
2080
-                "url": "https://api.github.com/repos/filamentphp/tables/zipball/6cbbea0bfd966ca2f26988c0fac4e02caebddf4a",
2081
-                "reference": "6cbbea0bfd966ca2f26988c0fac4e02caebddf4a",
2080
+                "url": "https://api.github.com/repos/filamentphp/tables/zipball/db63ab6fd7c2046dc9b1fc6fbd92df0a1aabb54e",
2081
+                "reference": "db63ab6fd7c2046dc9b1fc6fbd92df0a1aabb54e",
2082
                 "shasum": ""
2082
                 "shasum": ""
2083
             },
2083
             },
2084
             "require": {
2084
             "require": {
2117
                 "issues": "https://github.com/filamentphp/filament/issues",
2117
                 "issues": "https://github.com/filamentphp/filament/issues",
2118
                 "source": "https://github.com/filamentphp/filament"
2118
                 "source": "https://github.com/filamentphp/filament"
2119
             },
2119
             },
2120
-            "time": "2025-01-10T12:48:48+00:00"
2120
+            "time": "2025-01-24T09:28:02+00:00"
2121
         },
2121
         },
2122
         {
2122
         {
2123
             "name": "filament/widgets",
2123
             "name": "filament/widgets",
2124
-            "version": "v3.2.133",
2124
+            "version": "v3.2.135",
2125
             "source": {
2125
             "source": {
2126
                 "type": "git",
2126
                 "type": "git",
2127
                 "url": "https://github.com/filamentphp/widgets.git",
2127
                 "url": "https://github.com/filamentphp/widgets.git",
2165
         },
2165
         },
2166
         {
2166
         {
2167
             "name": "firebase/php-jwt",
2167
             "name": "firebase/php-jwt",
2168
-            "version": "v6.10.2",
2168
+            "version": "v6.11.0",
2169
             "source": {
2169
             "source": {
2170
                 "type": "git",
2170
                 "type": "git",
2171
                 "url": "https://github.com/firebase/php-jwt.git",
2171
                 "url": "https://github.com/firebase/php-jwt.git",
2172
-                "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b"
2172
+                "reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712"
2173
             },
2173
             },
2174
             "dist": {
2174
             "dist": {
2175
                 "type": "zip",
2175
                 "type": "zip",
2176
-                "url": "https://api.github.com/repos/firebase/php-jwt/zipball/30c19ed0f3264cb660ea496895cfb6ef7ee3653b",
2177
-                "reference": "30c19ed0f3264cb660ea496895cfb6ef7ee3653b",
2176
+                "url": "https://api.github.com/repos/firebase/php-jwt/zipball/8f718f4dfc9c5d5f0c994cdfd103921b43592712",
2177
+                "reference": "8f718f4dfc9c5d5f0c994cdfd103921b43592712",
2178
                 "shasum": ""
2178
                 "shasum": ""
2179
             },
2179
             },
2180
             "require": {
2180
             "require": {
2222
             ],
2222
             ],
2223
             "support": {
2223
             "support": {
2224
                 "issues": "https://github.com/firebase/php-jwt/issues",
2224
                 "issues": "https://github.com/firebase/php-jwt/issues",
2225
-                "source": "https://github.com/firebase/php-jwt/tree/v6.10.2"
2225
+                "source": "https://github.com/firebase/php-jwt/tree/v6.11.0"
2226
             },
2226
             },
2227
-            "time": "2024-11-24T11:22:49+00:00"
2227
+            "time": "2025-01-23T05:11:06+00:00"
2228
         },
2228
         },
2229
         {
2229
         {
2230
             "name": "fruitcake/php-cors",
2230
             "name": "fruitcake/php-cors",
3051
         },
3051
         },
3052
         {
3052
         {
3053
             "name": "laravel/framework",
3053
             "name": "laravel/framework",
3054
-            "version": "v11.39.0",
3054
+            "version": "v11.40.0",
3055
             "source": {
3055
             "source": {
3056
                 "type": "git",
3056
                 "type": "git",
3057
                 "url": "https://github.com/laravel/framework.git",
3057
                 "url": "https://github.com/laravel/framework.git",
3058
-                "reference": "996c96955f78e8a2b26a24c490a1721cfb14574f"
3058
+                "reference": "599a28196d284fee158cc10086fd56ac625ad7a3"
3059
             },
3059
             },
3060
             "dist": {
3060
             "dist": {
3061
                 "type": "zip",
3061
                 "type": "zip",
3062
-                "url": "https://api.github.com/repos/laravel/framework/zipball/996c96955f78e8a2b26a24c490a1721cfb14574f",
3063
-                "reference": "996c96955f78e8a2b26a24c490a1721cfb14574f",
3062
+                "url": "https://api.github.com/repos/laravel/framework/zipball/599a28196d284fee158cc10086fd56ac625ad7a3",
3063
+                "reference": "599a28196d284fee158cc10086fd56ac625ad7a3",
3064
                 "shasum": ""
3064
                 "shasum": ""
3065
             },
3065
             },
3066
             "require": {
3066
             "require": {
3086
                 "league/flysystem-local": "^3.25.1",
3086
                 "league/flysystem-local": "^3.25.1",
3087
                 "league/uri": "^7.5.1",
3087
                 "league/uri": "^7.5.1",
3088
                 "monolog/monolog": "^3.0",
3088
                 "monolog/monolog": "^3.0",
3089
-                "nesbot/carbon": "^2.72.2|^3.4",
3089
+                "nesbot/carbon": "^2.72.6|^3.8.4",
3090
                 "nunomaduro/termwind": "^2.0",
3090
                 "nunomaduro/termwind": "^2.0",
3091
                 "php": "^8.2",
3091
                 "php": "^8.2",
3092
                 "psr/container": "^1.1.1|^2.0.1",
3092
                 "psr/container": "^1.1.1|^2.0.1",
3161
                 "fakerphp/faker": "^1.24",
3161
                 "fakerphp/faker": "^1.24",
3162
                 "guzzlehttp/promises": "^2.0.3",
3162
                 "guzzlehttp/promises": "^2.0.3",
3163
                 "guzzlehttp/psr7": "^2.4",
3163
                 "guzzlehttp/psr7": "^2.4",
3164
+                "laravel/pint": "^1.18",
3164
                 "league/flysystem-aws-s3-v3": "^3.25.1",
3165
                 "league/flysystem-aws-s3-v3": "^3.25.1",
3165
                 "league/flysystem-ftp": "^3.25.1",
3166
                 "league/flysystem-ftp": "^3.25.1",
3166
                 "league/flysystem-path-prefixing": "^3.25.1",
3167
                 "league/flysystem-path-prefixing": "^3.25.1",
3261
                 "issues": "https://github.com/laravel/framework/issues",
3262
                 "issues": "https://github.com/laravel/framework/issues",
3262
                 "source": "https://github.com/laravel/framework"
3263
                 "source": "https://github.com/laravel/framework"
3263
             },
3264
             },
3264
-            "time": "2025-01-21T15:02:43+00:00"
3265
+            "time": "2025-01-24T16:17:42+00:00"
3265
         },
3266
         },
3266
         {
3267
         {
3267
             "name": "laravel/prompts",
3268
             "name": "laravel/prompts",
6491
         },
6492
         },
6492
         {
6493
         {
6493
             "name": "spatie/laravel-package-tools",
6494
             "name": "spatie/laravel-package-tools",
6494
-            "version": "1.18.2",
6495
+            "version": "1.18.3",
6495
             "source": {
6496
             "source": {
6496
                 "type": "git",
6497
                 "type": "git",
6497
                 "url": "https://github.com/spatie/laravel-package-tools.git",
6498
                 "url": "https://github.com/spatie/laravel-package-tools.git",
6498
-                "reference": "d41c44a7eab604c3eb0cad93210612d4c1429c20"
6499
+                "reference": "ba67eee37d86ed775dab7dad58a7cbaf9a6cfe78"
6499
             },
6500
             },
6500
             "dist": {
6501
             "dist": {
6501
                 "type": "zip",
6502
                 "type": "zip",
6502
-                "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d41c44a7eab604c3eb0cad93210612d4c1429c20",
6503
-                "reference": "d41c44a7eab604c3eb0cad93210612d4c1429c20",
6503
+                "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ba67eee37d86ed775dab7dad58a7cbaf9a6cfe78",
6504
+                "reference": "ba67eee37d86ed775dab7dad58a7cbaf9a6cfe78",
6504
                 "shasum": ""
6505
                 "shasum": ""
6505
             },
6506
             },
6506
             "require": {
6507
             "require": {
6539
             ],
6540
             ],
6540
             "support": {
6541
             "support": {
6541
                 "issues": "https://github.com/spatie/laravel-package-tools/issues",
6542
                 "issues": "https://github.com/spatie/laravel-package-tools/issues",
6542
-                "source": "https://github.com/spatie/laravel-package-tools/tree/1.18.2"
6543
+                "source": "https://github.com/spatie/laravel-package-tools/tree/1.18.3"
6543
             },
6544
             },
6544
             "funding": [
6545
             "funding": [
6545
                 {
6546
                 {
6547
                     "type": "github"
6548
                     "type": "github"
6548
                 }
6549
                 }
6549
             ],
6550
             ],
6550
-            "time": "2025-01-20T14:14:17+00:00"
6551
+            "time": "2025-01-22T08:51:18+00:00"
6551
         },
6552
         },
6552
         {
6553
         {
6553
             "name": "squirephp/model",
6554
             "name": "squirephp/model",
9983
         },
9984
         },
9984
         {
9985
         {
9985
             "name": "nunomaduro/collision",
9986
             "name": "nunomaduro/collision",
9986
-            "version": "v8.5.0",
9987
+            "version": "v8.6.1",
9987
             "source": {
9988
             "source": {
9988
                 "type": "git",
9989
                 "type": "git",
9989
                 "url": "https://github.com/nunomaduro/collision.git",
9990
                 "url": "https://github.com/nunomaduro/collision.git",
9990
-                "reference": "f5c101b929c958e849a633283adff296ed5f38f5"
9991
+                "reference": "86f003c132143d5a2ab214e19933946409e0cae7"
9991
             },
9992
             },
9992
             "dist": {
9993
             "dist": {
9993
                 "type": "zip",
9994
                 "type": "zip",
9994
-                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5",
9995
-                "reference": "f5c101b929c958e849a633283adff296ed5f38f5",
9995
+                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/86f003c132143d5a2ab214e19933946409e0cae7",
9996
+                "reference": "86f003c132143d5a2ab214e19933946409e0cae7",
9996
                 "shasum": ""
9997
                 "shasum": ""
9997
             },
9998
             },
9998
             "require": {
9999
             "require": {
9999
                 "filp/whoops": "^2.16.0",
10000
                 "filp/whoops": "^2.16.0",
10000
-                "nunomaduro/termwind": "^2.1.0",
10001
+                "nunomaduro/termwind": "^2.3.0",
10001
                 "php": "^8.2.0",
10002
                 "php": "^8.2.0",
10002
-                "symfony/console": "^7.1.5"
10003
+                "symfony/console": "^7.2.1"
10003
             },
10004
             },
10004
             "conflict": {
10005
             "conflict": {
10005
-                "laravel/framework": "<11.0.0 || >=12.0.0",
10006
-                "phpunit/phpunit": "<10.5.1 || >=12.0.0"
10006
+                "laravel/framework": "<11.39.1 || >=13.0.0",
10007
+                "phpunit/phpunit": "<11.5.3 || >=12.0.0"
10007
             },
10008
             },
10008
             "require-dev": {
10009
             "require-dev": {
10009
-                "larastan/larastan": "^2.9.8",
10010
-                "laravel/framework": "^11.28.0",
10011
-                "laravel/pint": "^1.18.1",
10012
-                "laravel/sail": "^1.36.0",
10013
-                "laravel/sanctum": "^4.0.3",
10010
+                "larastan/larastan": "^2.9.12",
10011
+                "laravel/framework": "^11.39.1",
10012
+                "laravel/pint": "^1.20.0",
10013
+                "laravel/sail": "^1.40.0",
10014
+                "laravel/sanctum": "^4.0.7",
10014
                 "laravel/tinker": "^2.10.0",
10015
                 "laravel/tinker": "^2.10.0",
10015
-                "orchestra/testbench-core": "^9.5.3",
10016
-                "pestphp/pest": "^2.36.0 || ^3.4.0",
10016
+                "orchestra/testbench-core": "^9.9.2",
10017
+                "pestphp/pest": "^3.7.3",
10017
                 "sebastian/environment": "^6.1.0 || ^7.2.0"
10018
                 "sebastian/environment": "^6.1.0 || ^7.2.0"
10018
             },
10019
             },
10019
             "type": "library",
10020
             "type": "library",
10051
                 "cli",
10052
                 "cli",
10052
                 "command-line",
10053
                 "command-line",
10053
                 "console",
10054
                 "console",
10055
+                "dev",
10054
                 "error",
10056
                 "error",
10055
                 "handling",
10057
                 "handling",
10056
                 "laravel",
10058
                 "laravel",
10076
                     "type": "patreon"
10078
                     "type": "patreon"
10077
                 }
10079
                 }
10078
             ],
10080
             ],
10079
-            "time": "2024-10-15T16:06:32+00:00"
10081
+            "time": "2025-01-23T13:41:43+00:00"
10080
         },
10082
         },
10081
         {
10083
         {
10082
             "name": "pestphp/pest",
10084
             "name": "pestphp/pest",
10083
-            "version": "v3.7.2",
10085
+            "version": "v3.7.4",
10084
             "source": {
10086
             "source": {
10085
                 "type": "git",
10087
                 "type": "git",
10086
                 "url": "https://github.com/pestphp/pest.git",
10088
                 "url": "https://github.com/pestphp/pest.git",
10087
-                "reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b"
10089
+                "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b"
10088
             },
10090
             },
10089
             "dist": {
10091
             "dist": {
10090
                 "type": "zip",
10092
                 "type": "zip",
10091
-                "url": "https://api.github.com/repos/pestphp/pest/zipball/709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b",
10092
-                "reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b",
10093
+                "url": "https://api.github.com/repos/pestphp/pest/zipball/4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b",
10094
+                "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b",
10093
                 "shasum": ""
10095
                 "shasum": ""
10094
             },
10096
             },
10095
             "require": {
10097
             "require": {
10096
                 "brianium/paratest": "^7.7.0",
10098
                 "brianium/paratest": "^7.7.0",
10097
-                "nunomaduro/collision": "^8.5.0",
10099
+                "nunomaduro/collision": "^8.6.1",
10098
                 "nunomaduro/termwind": "^2.3.0",
10100
                 "nunomaduro/termwind": "^2.3.0",
10099
                 "pestphp/pest-plugin": "^3.0.0",
10101
                 "pestphp/pest-plugin": "^3.0.0",
10100
                 "pestphp/pest-plugin-arch": "^3.0.0",
10102
                 "pestphp/pest-plugin-arch": "^3.0.0",
10176
             ],
10178
             ],
10177
             "support": {
10179
             "support": {
10178
                 "issues": "https://github.com/pestphp/pest/issues",
10180
                 "issues": "https://github.com/pestphp/pest/issues",
10179
-                "source": "https://github.com/pestphp/pest/tree/v3.7.2"
10181
+                "source": "https://github.com/pestphp/pest/tree/v3.7.4"
10180
             },
10182
             },
10181
             "funding": [
10183
             "funding": [
10182
                 {
10184
                 {
10188
                     "type": "github"
10190
                     "type": "github"
10189
                 }
10191
                 }
10190
             ],
10192
             ],
10191
-            "time": "2025-01-19T17:35:09+00:00"
10193
+            "time": "2025-01-23T14:03:29+00:00"
10192
         },
10194
         },
10193
         {
10195
         {
10194
             "name": "pestphp/pest-plugin",
10196
             "name": "pestphp/pest-plugin",

+ 82
- 82
package-lock.json 查看文件

575
             }
575
             }
576
         },
576
         },
577
         "node_modules/@rollup/rollup-android-arm-eabi": {
577
         "node_modules/@rollup/rollup-android-arm-eabi": {
578
-            "version": "4.31.0",
579
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz",
580
-            "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==",
578
+            "version": "4.32.0",
579
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz",
580
+            "integrity": "sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==",
581
             "cpu": [
581
             "cpu": [
582
                 "arm"
582
                 "arm"
583
             ],
583
             ],
589
             ]
589
             ]
590
         },
590
         },
591
         "node_modules/@rollup/rollup-android-arm64": {
591
         "node_modules/@rollup/rollup-android-arm64": {
592
-            "version": "4.31.0",
593
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz",
594
-            "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==",
592
+            "version": "4.32.0",
593
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.0.tgz",
594
+            "integrity": "sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==",
595
             "cpu": [
595
             "cpu": [
596
                 "arm64"
596
                 "arm64"
597
             ],
597
             ],
603
             ]
603
             ]
604
         },
604
         },
605
         "node_modules/@rollup/rollup-darwin-arm64": {
605
         "node_modules/@rollup/rollup-darwin-arm64": {
606
-            "version": "4.31.0",
607
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz",
608
-            "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==",
606
+            "version": "4.32.0",
607
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.0.tgz",
608
+            "integrity": "sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==",
609
             "cpu": [
609
             "cpu": [
610
                 "arm64"
610
                 "arm64"
611
             ],
611
             ],
617
             ]
617
             ]
618
         },
618
         },
619
         "node_modules/@rollup/rollup-darwin-x64": {
619
         "node_modules/@rollup/rollup-darwin-x64": {
620
-            "version": "4.31.0",
621
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz",
622
-            "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==",
620
+            "version": "4.32.0",
621
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.0.tgz",
622
+            "integrity": "sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==",
623
             "cpu": [
623
             "cpu": [
624
                 "x64"
624
                 "x64"
625
             ],
625
             ],
631
             ]
631
             ]
632
         },
632
         },
633
         "node_modules/@rollup/rollup-freebsd-arm64": {
633
         "node_modules/@rollup/rollup-freebsd-arm64": {
634
-            "version": "4.31.0",
635
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz",
636
-            "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==",
634
+            "version": "4.32.0",
635
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.0.tgz",
636
+            "integrity": "sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==",
637
             "cpu": [
637
             "cpu": [
638
                 "arm64"
638
                 "arm64"
639
             ],
639
             ],
645
             ]
645
             ]
646
         },
646
         },
647
         "node_modules/@rollup/rollup-freebsd-x64": {
647
         "node_modules/@rollup/rollup-freebsd-x64": {
648
-            "version": "4.31.0",
649
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz",
650
-            "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==",
648
+            "version": "4.32.0",
649
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.0.tgz",
650
+            "integrity": "sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==",
651
             "cpu": [
651
             "cpu": [
652
                 "x64"
652
                 "x64"
653
             ],
653
             ],
659
             ]
659
             ]
660
         },
660
         },
661
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
661
         "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
662
-            "version": "4.31.0",
663
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz",
664
-            "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==",
662
+            "version": "4.32.0",
663
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.0.tgz",
664
+            "integrity": "sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==",
665
             "cpu": [
665
             "cpu": [
666
                 "arm"
666
                 "arm"
667
             ],
667
             ],
673
             ]
673
             ]
674
         },
674
         },
675
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
675
         "node_modules/@rollup/rollup-linux-arm-musleabihf": {
676
-            "version": "4.31.0",
677
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz",
678
-            "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==",
676
+            "version": "4.32.0",
677
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.0.tgz",
678
+            "integrity": "sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==",
679
             "cpu": [
679
             "cpu": [
680
                 "arm"
680
                 "arm"
681
             ],
681
             ],
687
             ]
687
             ]
688
         },
688
         },
689
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
689
         "node_modules/@rollup/rollup-linux-arm64-gnu": {
690
-            "version": "4.31.0",
691
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz",
692
-            "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==",
690
+            "version": "4.32.0",
691
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.0.tgz",
692
+            "integrity": "sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==",
693
             "cpu": [
693
             "cpu": [
694
                 "arm64"
694
                 "arm64"
695
             ],
695
             ],
701
             ]
701
             ]
702
         },
702
         },
703
         "node_modules/@rollup/rollup-linux-arm64-musl": {
703
         "node_modules/@rollup/rollup-linux-arm64-musl": {
704
-            "version": "4.31.0",
705
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz",
706
-            "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==",
704
+            "version": "4.32.0",
705
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.0.tgz",
706
+            "integrity": "sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==",
707
             "cpu": [
707
             "cpu": [
708
                 "arm64"
708
                 "arm64"
709
             ],
709
             ],
715
             ]
715
             ]
716
         },
716
         },
717
         "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
717
         "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
718
-            "version": "4.31.0",
719
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz",
720
-            "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==",
718
+            "version": "4.32.0",
719
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.0.tgz",
720
+            "integrity": "sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==",
721
             "cpu": [
721
             "cpu": [
722
                 "loong64"
722
                 "loong64"
723
             ],
723
             ],
729
             ]
729
             ]
730
         },
730
         },
731
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
731
         "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
732
-            "version": "4.31.0",
733
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz",
734
-            "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==",
732
+            "version": "4.32.0",
733
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.0.tgz",
734
+            "integrity": "sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==",
735
             "cpu": [
735
             "cpu": [
736
                 "ppc64"
736
                 "ppc64"
737
             ],
737
             ],
743
             ]
743
             ]
744
         },
744
         },
745
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
745
         "node_modules/@rollup/rollup-linux-riscv64-gnu": {
746
-            "version": "4.31.0",
747
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz",
748
-            "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==",
746
+            "version": "4.32.0",
747
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.0.tgz",
748
+            "integrity": "sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==",
749
             "cpu": [
749
             "cpu": [
750
                 "riscv64"
750
                 "riscv64"
751
             ],
751
             ],
757
             ]
757
             ]
758
         },
758
         },
759
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
759
         "node_modules/@rollup/rollup-linux-s390x-gnu": {
760
-            "version": "4.31.0",
761
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz",
762
-            "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==",
760
+            "version": "4.32.0",
761
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.0.tgz",
762
+            "integrity": "sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==",
763
             "cpu": [
763
             "cpu": [
764
                 "s390x"
764
                 "s390x"
765
             ],
765
             ],
771
             ]
771
             ]
772
         },
772
         },
773
         "node_modules/@rollup/rollup-linux-x64-gnu": {
773
         "node_modules/@rollup/rollup-linux-x64-gnu": {
774
-            "version": "4.31.0",
775
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz",
776
-            "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==",
774
+            "version": "4.32.0",
775
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.0.tgz",
776
+            "integrity": "sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==",
777
             "cpu": [
777
             "cpu": [
778
                 "x64"
778
                 "x64"
779
             ],
779
             ],
785
             ]
785
             ]
786
         },
786
         },
787
         "node_modules/@rollup/rollup-linux-x64-musl": {
787
         "node_modules/@rollup/rollup-linux-x64-musl": {
788
-            "version": "4.31.0",
789
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz",
790
-            "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==",
788
+            "version": "4.32.0",
789
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.0.tgz",
790
+            "integrity": "sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==",
791
             "cpu": [
791
             "cpu": [
792
                 "x64"
792
                 "x64"
793
             ],
793
             ],
799
             ]
799
             ]
800
         },
800
         },
801
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
801
         "node_modules/@rollup/rollup-win32-arm64-msvc": {
802
-            "version": "4.31.0",
803
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz",
804
-            "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==",
802
+            "version": "4.32.0",
803
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.0.tgz",
804
+            "integrity": "sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==",
805
             "cpu": [
805
             "cpu": [
806
                 "arm64"
806
                 "arm64"
807
             ],
807
             ],
813
             ]
813
             ]
814
         },
814
         },
815
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
815
         "node_modules/@rollup/rollup-win32-ia32-msvc": {
816
-            "version": "4.31.0",
817
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz",
818
-            "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==",
816
+            "version": "4.32.0",
817
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.0.tgz",
818
+            "integrity": "sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==",
819
             "cpu": [
819
             "cpu": [
820
                 "ia32"
820
                 "ia32"
821
             ],
821
             ],
827
             ]
827
             ]
828
         },
828
         },
829
         "node_modules/@rollup/rollup-win32-x64-msvc": {
829
         "node_modules/@rollup/rollup-win32-x64-msvc": {
830
-            "version": "4.31.0",
831
-            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz",
832
-            "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==",
830
+            "version": "4.32.0",
831
+            "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.0.tgz",
832
+            "integrity": "sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==",
833
             "cpu": [
833
             "cpu": [
834
                 "x64"
834
                 "x64"
835
             ],
835
             ],
1235
             "license": "MIT"
1235
             "license": "MIT"
1236
         },
1236
         },
1237
         "node_modules/electron-to-chromium": {
1237
         "node_modules/electron-to-chromium": {
1238
-            "version": "1.5.84",
1239
-            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.84.tgz",
1240
-            "integrity": "sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==",
1238
+            "version": "1.5.88",
1239
+            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz",
1240
+            "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==",
1241
             "dev": true,
1241
             "dev": true,
1242
             "license": "ISC"
1242
             "license": "ISC"
1243
         },
1243
         },
2242
             }
2242
             }
2243
         },
2243
         },
2244
         "node_modules/rollup": {
2244
         "node_modules/rollup": {
2245
-            "version": "4.31.0",
2246
-            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz",
2247
-            "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==",
2245
+            "version": "4.32.0",
2246
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz",
2247
+            "integrity": "sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==",
2248
             "dev": true,
2248
             "dev": true,
2249
             "license": "MIT",
2249
             "license": "MIT",
2250
             "dependencies": {
2250
             "dependencies": {
2258
                 "npm": ">=8.0.0"
2258
                 "npm": ">=8.0.0"
2259
             },
2259
             },
2260
             "optionalDependencies": {
2260
             "optionalDependencies": {
2261
-                "@rollup/rollup-android-arm-eabi": "4.31.0",
2262
-                "@rollup/rollup-android-arm64": "4.31.0",
2263
-                "@rollup/rollup-darwin-arm64": "4.31.0",
2264
-                "@rollup/rollup-darwin-x64": "4.31.0",
2265
-                "@rollup/rollup-freebsd-arm64": "4.31.0",
2266
-                "@rollup/rollup-freebsd-x64": "4.31.0",
2267
-                "@rollup/rollup-linux-arm-gnueabihf": "4.31.0",
2268
-                "@rollup/rollup-linux-arm-musleabihf": "4.31.0",
2269
-                "@rollup/rollup-linux-arm64-gnu": "4.31.0",
2270
-                "@rollup/rollup-linux-arm64-musl": "4.31.0",
2271
-                "@rollup/rollup-linux-loongarch64-gnu": "4.31.0",
2272
-                "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0",
2273
-                "@rollup/rollup-linux-riscv64-gnu": "4.31.0",
2274
-                "@rollup/rollup-linux-s390x-gnu": "4.31.0",
2275
-                "@rollup/rollup-linux-x64-gnu": "4.31.0",
2276
-                "@rollup/rollup-linux-x64-musl": "4.31.0",
2277
-                "@rollup/rollup-win32-arm64-msvc": "4.31.0",
2278
-                "@rollup/rollup-win32-ia32-msvc": "4.31.0",
2279
-                "@rollup/rollup-win32-x64-msvc": "4.31.0",
2261
+                "@rollup/rollup-android-arm-eabi": "4.32.0",
2262
+                "@rollup/rollup-android-arm64": "4.32.0",
2263
+                "@rollup/rollup-darwin-arm64": "4.32.0",
2264
+                "@rollup/rollup-darwin-x64": "4.32.0",
2265
+                "@rollup/rollup-freebsd-arm64": "4.32.0",
2266
+                "@rollup/rollup-freebsd-x64": "4.32.0",
2267
+                "@rollup/rollup-linux-arm-gnueabihf": "4.32.0",
2268
+                "@rollup/rollup-linux-arm-musleabihf": "4.32.0",
2269
+                "@rollup/rollup-linux-arm64-gnu": "4.32.0",
2270
+                "@rollup/rollup-linux-arm64-musl": "4.32.0",
2271
+                "@rollup/rollup-linux-loongarch64-gnu": "4.32.0",
2272
+                "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0",
2273
+                "@rollup/rollup-linux-riscv64-gnu": "4.32.0",
2274
+                "@rollup/rollup-linux-s390x-gnu": "4.32.0",
2275
+                "@rollup/rollup-linux-x64-gnu": "4.32.0",
2276
+                "@rollup/rollup-linux-x64-musl": "4.32.0",
2277
+                "@rollup/rollup-win32-arm64-msvc": "4.32.0",
2278
+                "@rollup/rollup-win32-ia32-msvc": "4.32.0",
2279
+                "@rollup/rollup-win32-x64-msvc": "4.32.0",
2280
                 "fsevents": "~2.3.2"
2280
                 "fsevents": "~2.3.2"
2281
             }
2281
             }
2282
         },
2282
         },

+ 4
- 0
resources/css/filament/company/theme.css 查看文件

14
     @apply bg-platinum;
14
     @apply bg-platinum;
15
 }
15
 }
16
 
16
 
17
+.fi-dropdown-panel {
18
+    @apply divide-gray-200/80;
19
+}
20
+
17
 .fi-badge {
21
 .fi-badge {
18
     display: inline-flex;
22
     display: inline-flex;
19
 }
23
 }

+ 6
- 6
tests/Feature/Accounting/TransactionTest.php 查看文件

345
     $newDescription = 'Updated Description';
345
     $newDescription = 'Updated Description';
346
 
346
 
347
     livewire(Transactions::class)
347
     livewire(Transactions::class)
348
-        ->mountTableAction('updateTransaction', $transaction)
348
+        ->mountTableAction('editTransaction', $transaction)
349
         ->assertTableActionDataSet([
349
         ->assertTableActionDataSet([
350
             'type' => $transactionType->value,
350
             'type' => $transactionType->value,
351
             'description' => $transaction->description,
351
             'description' => $transaction->description,
377
         ->create();
377
         ->create();
378
 
378
 
379
     livewire(Transactions::class)
379
     livewire(Transactions::class)
380
-        ->assertTableActionHidden('updateTransfer', $transaction)
381
-        ->assertTableActionHidden('updateJournalTransaction', $transaction);
380
+        ->assertTableActionHidden('editTransfer', $transaction)
381
+        ->assertTableActionHidden('editJournalTransaction', $transaction);
382
 })->with([
382
 })->with([
383
     TransactionType::Deposit,
383
     TransactionType::Deposit,
384
     TransactionType::Withdrawal,
384
     TransactionType::Withdrawal,
394
     $newDescription = 'Updated Transfer Description';
394
     $newDescription = 'Updated Transfer Description';
395
 
395
 
396
     livewire(Transactions::class)
396
     livewire(Transactions::class)
397
-        ->mountTableAction('updateTransfer', $transaction)
397
+        ->mountTableAction('editTransfer', $transaction)
398
         ->assertTableActionDataSet([
398
         ->assertTableActionDataSet([
399
             'type' => TransactionType::Transfer->value,
399
             'type' => TransactionType::Transfer->value,
400
             'description' => $transaction->description,
400
             'description' => $transaction->description,
421
         ->create();
421
         ->create();
422
 
422
 
423
     livewire(Transactions::class)
423
     livewire(Transactions::class)
424
-        ->assertTableActionHidden('updateTransaction', $transaction)
425
-        ->assertTableActionHidden('updateJournalTransaction', $transaction);
424
+        ->assertTableActionHidden('editTransaction', $transaction)
425
+        ->assertTableActionHidden('editJournalTransaction', $transaction);
426
 });
426
 });
427
 
427
 
428
 it('replicates a transaction with correct journal entries', function () {
428
 it('replicates a transaction with correct journal entries', function () {

正在加载...
取消
保存