1114 Commits
Author SHA1 Message Date
RenHai Wen 7c072ce174 fix: fix rich editor file attachment test temporary uploads (#19697) 2026-04-14 09:32:33 +01:00
MaxandDan Harrin dafae5be8d Enhance search column expression for pgsql prefix (#19694)
* Enhance search column expression for pgsql prefix

Added support for Laravel table prefix in PostgreSQL.

Signed-off-by: Max <mstaack@users.noreply.github.com>

* Update helpers.php

* Update helpersTest.php

---------

Signed-off-by: Max <mstaack@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-04-13 22:30:04 +01:00
RenHai Wen 10bad7f846 fix: support grouped toolbar buttons in rich editor toolbar checks and modifications (#19695) 2026-04-13 22:24:52 +01:00
Dan Harrin 413e9a953b Refactor RichEditor further to allow hook overrides 2026-04-13 19:17:37 +01:00
RenHai Wen 08dd068675 fix: Prevent hidden builder fields from breaking repeaters (#19676)
* test: add test for saving builder block with repeater and hidden field

* fix: Prevent hidden builder fields from breaking repeaters
2026-04-13 10:08:16 +01:00
Omar AlnabrisandDan Harrin aa82febcd5 Fix avatar background color of ui-avatars provider (#19664)
* 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>
2026-04-13 10:03:18 +01:00
RenHai Wen 802fc5729a fix: update tests to expect data-id attribute on merge tag spans in toHtml output (#19682) 2026-04-12 14:03:36 +01:00
Dan Harrin 30cee2964b fix: Rich content merge tag text spacing (#19675) 2026-04-11 13:10:06 +01:00
Dan Harrin a0ebc37890 task: Easier HTML sanitizer extension (#19680) 2026-04-11 12:59:07 +01:00
RenHai Wen 57e37e2051 fix: prevent duplicate toolbar buttons when rich editor plugin enables already-present buttons (#19666)
* feat: implement applyEnableToolbarButtonsModification for dynamic button enabling

* fix: remove commented-out code for enabling toolbar buttons

* test: add tests for toolbar button duplication in RichEditor plugin

* fix: improve toolbar button detection logic in RichEditor plugin
2026-04-11 12:58:25 +01:00
Dan Harrin eec1e2c7af Update CodeEditorTest.php 2026-04-09 13:03:40 +01:00
Dan Harrin 3f5935f69a feature: Grouped custom rich editor blocks (#19653)
* feature: Grouped custom rich editor blocks

* screenshot

* Update RichContentAttribute.php
2026-04-08 08:55:33 +01:00
RenHai Wen 5c5c439273 Fix Rich Editor adding default link target and rel attributes (#19641)
* fix: Rich Editor adding default link target and rel attributes

* test: cover rich editor link attribute round-trips

* test: cover rich editor link attribute round-trips

* fix: remove unnecessary rel attribute from link action
2026-04-06 14:21:00 +01:00
ziming 9290555c62 Fix: Add null check for mounted action before rendering (#19642)
* Add null check for mounted action before rendering

Signed-off-by: ziming <ziming@users.noreply.github.com>

* chore: fix code style

---------

Signed-off-by: ziming <ziming@users.noreply.github.com>
2026-04-06 14:12:47 +01:00
Dan Harrin 8f17497e75 Add more tests 2026-04-04 21:36:50 +01:00
Alexander JensenandDan Harrin dd580292da [4.x] Fix last group summary (#19593)
* 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>
2026-04-03 15:56:59 +01:00
Craig AndersonandDan Harrin 669ae00934 Fix Summarizer Issue with BelongsToMany Pivot Fields (#19625)
* Allow Summarizer on BelongsToMany pivot columns

* Allow fields that begin with "pivot."

* Fix PHPStan error

* PHPStan fixes

* Add tests

* cleanup and fix edge cases

* Update Summarizer.php

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-04-03 15:26:08 +01:00
BenandDan Harrin 71ebff1c3e Fix dehydration drops shared statePath when a sibling Group is hidden (#19543)
* 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>
2026-04-03 15:25:42 +01:00
Alexander JensenandDan Harrin 7d3d3165d3 [4.x] Fix all-table summaries (#19592)
* Fix all-table summaries

* Avoid table wrapper if no page or all table summary

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-04-03 14:19:41 +01:00
Daniel Haaker c9b6ecd0fb fix: Preserve hint tooltip on single-arg hintIcon (#19626) 2026-04-03 14:11:23 +01:00
RenHai WenandDan Harrin c80dbf4f98 Fix dashboard route overwritten by home redirect when using tenant domain binding field (#19598)
* 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>
2026-04-02 15:13:48 +01:00
Chris JonesandDan Harrin 7e4b8a5b0e Fix dashboard route overwritten by home redirect when using tenant slug attribute (#19584)
* 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.

Fixes filamentphp/filament#19582

* update snapshots

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-03-30 10:12:39 +01:00
RenHai WenandDan Harrin 15c6354ac8 Fix dashboard route silently dropped on domain panels (#19562)
* 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>
2026-03-29 10:07:39 +01:00
Gideon AppohandDan Harrin 3685caa7a0 Fix FilamentTimezone not working as expected (#19568)
* 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>
2026-03-27 22:58:11 +00:00
Dan Harrin b7e6cf10a9 chore: Prevent app authentication code reuse in same time window (#19553)
* chore: Prevent TOTP reuse in same time window

* Update AppAuthentication.php
2026-03-23 13:35:17 +00:00
Dan Harrin b339564975 fix: Rich editor glitching when list items without child block nodes are clicked (#19534)
* fix: Rich editor glitching when list items without child block nodes are clicked

* Update RichEditorStateCast.php
2026-03-19 13:13:21 +00:00
Dan Harrin 20342aa700 Update RichEditorTest.php 2026-03-19 12:23:04 +00:00
Dan Harrin 2a67f4c6a4 feature: Laravel 13 support (#19514)
* feature: Laravel 13 support

* Swap VerifyCsrfToken out for PreventRequestForgery

* Replace capture directive

* Update TestCase.php

* Remove EloquentSerialize package
2026-03-17 19:37:33 +00:00
Dan Harrin 8916fe5c0d feature: Global search resource opt-in (#19513) 2026-03-17 17:22:29 +00:00
RenHai Wen d051c159d5 fix: pass item argument when calling query builder actions (#19493)
* fix: pass item argument when calling query builder actions

* fix: add browser test for query builder rule deletion

* fix: add browser test for query builder rule deletion

* fix: run filament:assets before browser test for query builder rule deletion
2026-03-13 11:42:41 +00:00
Dan Harrin 44205a1d2b fix: Strip characters for numeric input (#19454) 2026-03-08 20:12:39 +00:00
Dan Harrin f91c807393 fix: Cached configurable resources/pages (#19449) 2026-03-08 20:09:08 +00:00
RenHai Wen d30efb2fb3 fix: Escape URL in generate_href_html() output (#19428) 2026-03-05 16:27:40 +00:00
Dan Harrin 0fd67ee602 fix: Login with username (instead of email) (#19387) 2026-03-02 14:49:53 +01:00
Dan Harrin e3aef3418b Update RichEditorTest.php 2026-02-28 23:14:51 +01:00
0d12e3f5ab feat: add controls slot to callout component (#19263)
* Add support for callout control actions.

* Update documentation

* chore: fix code style

* cleanup

* screenshots

* better example

---------

Co-authored-by: gehrisandro <gehrisandro@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-28 23:13:41 +01:00
3a3db66ba3 feat: ability for RichEditor plugins to provide enabled/disabled toolbar buttons (#19260)
* WIP

* chore: fix code style

* Fix tests

* fix and clean up

---------

Co-authored-by: ralphjsmit <ralphjsmit@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-28 22:12:31 +00:00
e59be12127 Add deferred badge loading for tabs (#19336)
* Add deferred badge loading for tabs

Tab badges that rely on expensive queries (e.g. COUNT on large tables)
can now be loaded asynchronously after the initial page render using
`deferBadge()`. A loading indicator is shown in place of each deferred
badge until the values are fetched via a single renderless Livewire call.

* chore: fix code style

* chore: fix code style

* Revert "chore: fix code style"

This reverts commit e1fc507b88.

* fix and clean up

* Update Tabs.php

* chore: fix code style

* bugs

* docs

* Update tabs.blade.php

---------

Co-authored-by: oddvalue <oddvalue@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
Co-authored-by: danharrin <danharrin@users.noreply.github.com>
2026-02-28 23:09:49 +01:00
Dan Harrin 788ce251e0 feature: Additional rate limits by user ID / email (#19327)
* fix: Additional rate limits by user ID / email

* Hash emails

* prevent account lockouts
2026-02-28 19:14:47 +01:00
Dan Harrin 57c346a237 feature: Configurable resources (#19225)
* feature: Configurable resources/pages

* phpstan

* Update ResourceConfiguration.php

* Update Resource.php

* Update HasNavigation.php

* Update HasComponents.php

* cleanup

* generics

* phpstan

* Update HasComponents.php

* better exceptions

* docs
2026-02-28 19:12:39 +01:00
3d3833d3b1 feat: ability for RichEditor plugins to provide file attachment provider (#19187)
* WIP

* Update composer.lock

* WIP

* chore: fix code style

* fix perf and add better test

---------

Co-authored-by: ralphjsmit <ralphjsmit@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-28 19:11:50 +01:00
Ibrahim IsmailandDan Harrin faaa5cab16 Fix: Use fill() instead of rawState() when creating another inside CreateRecord (#19343)
* Refactor form state handling to use `fill` instead of `rawState`.

* fix

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-27 13:42:06 +00:00
Guilherme SaadeandDan Harrin a8a42ffb0c fix: Pass linkProtocols to PHP-side Tiptap Link mark in RichContentRenderer (#19337)
* fix: Pass `linkProtocols` to PHP-side Tiptap `Link` mark in `RichContentRenderer`

Standard protocols (`http`, `https`, `mailto`, `tel`, etc.) work by
default because they're hardcoded in tiptap-php's `Link` mark
`allowedProtocols`. However, custom protocols configured via
`->linkProtocols()` on the `RichEditor` (e.g., app deeplinks like
`myapp://`) only reached the JS-side Tiptap editor — tiptap-php was
never informed. This caused `RichEditorStateCast` to silently strip
links with custom protocols when parsing HTML from the database into
Tiptap JSON.

This fix passes the `RichEditor`'s `linkProtocols` through
`RichContentRenderer` to tiptap-php's `Link` mark as
`allowedProtocols`.

* fixes

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-27 12:50:46 +00:00
Dan Harrin 5c4462f5ba fix: Autofocus in tabs (#19306) 2026-02-19 22:38:05 +00:00
Dan Harrin 4415250dd2 fix: Validation hooks mutate value before dehydration (#19300)
* fix: Validation hooks mutate value before dehydration

* Update HasState.php
2026-02-19 11:23:16 +00:00
Martin Rohrlack 249404308d fix: add null check (#19292)
* Add null check

* update tests
2026-02-19 10:30:26 +00:00
Pjotr van der Horstandpjotrvdh 4cef47099a fix: drop down cannot be expanded with the keyboard (#19275)
* chore: fix code style

* fix: drop down cannot be expanded with the keyboard

---------

Co-authored-by: pjotrvdh <pjotrvdh@users.noreply.github.com>
2026-02-19 10:00:36 +00:00
Alexander JensenandDan Harrin a6d0236e21 [4.x] Add array record support for table grouping (#19253)
* Support array groups

* Support array groups in bulk actions

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-12 18:37:15 +00:00
Dan MasonandDan Harrin 58e92c2932 [4.x] Arguments resolution issue in testing (#19193)
* Add failing test replicating arguments resolution issue

* fix

* cleanup

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-05 09:15:08 +00:00
WEN RENHAIandDan Harrin b0de8ef154 fix: actionJs serialization in notification actions (#19199)
* fix: actionJs serialization in notification actions

* test: update notification snapshots for `alpineClickHandler`

* cleanup

* fix snapshots

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-02-04 15:36:41 +00:00