* fix: resolve method shadowing by using backing properties in Notification class
* clean up
* Update ActionGroup.php
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* fix: prevent duplicate notifications when Livewire events are batched
Fixes#16662
When a child component fires both a notification and a Livewire event,
the dehydrate hook runs for every component being dehydrated. Previously,
each component checked session()->get() (non-destructive) and dispatched
'notificationsSent', causing duplicate notifications.
This change uses session()->pull() (destructive read) to atomically
claim notifications on first dehydrate, and passes the notification data
directly with the dispatch event. This prevents subsequent component
dehydrations from seeing the same session data.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Do not allow notifications to leave the server
* Update Notification.php
Signed-off-by: Dan Harrin <git@danharrin.com>
---------
Signed-off-by: Dan Harrin <git@danharrin.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
* fix: avatar background color of ui-avatars provider
* fix: add `format=png`
* cleanup and fix display issue with png
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* feat: add missing Khmer translations for the view record page and chart widget.
* chore: update the missing Khmer language translations for multi-factor authentication and form components
* feat: make RichEditor text color labels translatable
Use Laravel's translation system for TextColor default labels instead of
hardcoded English names via Str::ucwords(). Add color name translations
for EN and FR locales.
* fix: fallback to auto-generated label when text color translation is missing
* cleanup
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* Fix last group summary
* fix cursor pagination and add negative test
* Update PostsTableWithCursorPagination.php
* Update SummaryTest.php
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* Failing test for Repeater: dehydration drops shared statePath when a sibling Group is hidden
* Fix Repeater: dehydration drops shared statePath when a sibling Group is hidden
* cleanup
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* Fix dashboard route overwritten by home redirect when using tenant domain binding field
* Update web.php
* Update web.php
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* Fix dashboard route overwritten by home redirect when using tenant slug attribute
`Route::getLastGroupPrefix()` returns the raw group prefix including
binding syntax (e.g. `admin/{tenant:slug}`), but Laravel's
`RouteCollection` indexes routes by the normalized URI without binding
syntax (e.g. `admin/{tenant}`). The `isset()` check on line 182 fails
due to this key mismatch when a tenant slug attribute is configured,
causing the home redirect to be created at `/` and overwrite the
Dashboard route.
The fix strips binding syntax from the root URI before looking it up
in the route collection.
Fixesfilamentphp/filament#19582
* update snapshots
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* fix: prevent registering home route when a page owns the root path
* Make check less dependent on page `getRoutePath()`
* Update HasRoutes.php
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* Fix FilamentTimezone not working as expected
* Update and rename tests/src/Support/FilamentTimezoneTest.php to tests/src/Support/Facades/FilamentTimezoneTest.php
Signed-off-by: Dan Harrin <git@danharrin.com>
---------
Signed-off-by: Dan Harrin <git@danharrin.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
* vendor: inline filepond-plugin-media-preview and remove npm dependency
* fix: update media preview plugin import and add mediaPreviewHeight option
* fix: change mediaPreviewHeight option type from string to int
* fix: audio preview not displaying after vendoring media preview plugin
* fix: video preview height and audio preview regression in vendored media preview plugin