Commit Graph
24287 Commits
Author SHA1 Message Date
Dan Harrin 74f318bac4 Correct Input binding contracts and cover native state boundaries 2026-09-23 02:09:48 +00:00
Dan Harrin 8841bf5625 Add native Support Input adapters for React Vue and Svelte 2026-09-23 01:49:50 +00:00
Dan Harrin 33a640bd7b Add React, Vue and Svelte input wrapper adapters 2026-09-23 01:01:52 +00:00
Dan Harrin 87d895edf0 fix: forward native loading attributes in Vue Icon 2026-09-23 00:35:22 +00:00
Dan Harrin eb6867c624 Add JavaScript support Icon adapters and parity coverage 2026-09-23 00:15:54 +00:00
Dan Harrin 0f61c258b6 Add native Radio primitives for React, Vue and Svelte 2026-09-22 23:24:51 +00:00
Dan Harrin aae373b904 Update Vue checkbox model before consumer change handlers 2026-09-22 23:00:55 +00:00
Dan Harrin 76f0a66275 Add native Checkbox primitives for React, Vue and Svelte 2026-09-22 22:42:45 +00:00
Dan Harrin 02e19d9950 Add React, Vue, and Svelte loading indicators 2026-09-22 22:00:43 +00:00
Dan Harrin 67c7543b91 Tighten Fieldset React props and verify child preservation 2026-09-22 19:58:26 +00:00
Dan Harrin c50b3967f8 Add React Vue and Svelte Fieldset support components 2026-09-22 19:45:50 +00:00
Dan Harrin 3f3aaa721d Fix nested breadcrumb direction and typed data attributes 2026-09-22 17:21:16 +00:00
Dan Harrin 8054ac456c Add Breadcrumbs components for React, Vue, and Svelte 2026-09-22 17:01:17 +00:00
Dan Harrin fd50f33fc0 Add React, Vue, and Svelte avatar components 2026-09-22 16:43:29 +00:00
Dan Harrin 70e9079bf8 Approve widget output collisions before installing dependencies 2026-09-21 21:29:37 +00:00
Dan Harrin 64c4b85df1 Rebuild widget renderer after configuration API rename 2026-09-21 21:29:37 +00:00
Dan Harrin 5fe01dd74a Use consistent renderer configuration naming for widgets 2026-09-21 21:29:37 +00:00
Dan HarrinandAmp ccd220d233 Preserve widget files when renderer overwrite is cancelled
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:37 +00:00
Dan HarrinandAmp 88161bd10f Use shared renderer foundation for JavaScript widgets
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:37 +00:00
Dan HarrinandAmp e45323b406 Fix JavaScript widget starter production builds
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:37 +00:00
Dan HarrinandAmp 0ff8190583 Add JavaScript-rendered widgets
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:37 +00:00
Dan Harrin 8630e6c62d Approve schema output collisions before installing dependencies 2026-09-21 21:29:36 +00:00
Dan Harrin db63f2458f Rebuild schema renderer for configuration API naming 2026-09-21 21:29:36 +00:00
Dan Harrin 5e93e59df6 Name schema renderer configuration consistently 2026-09-21 21:29:36 +00:00
Dan HarrinandAmp 73854d354a Preserve schema files when renderer overwrite is declined
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:36 +00:00
Dan HarrinandAmp 3e70386c4c Add JavaScript-rendered schema components using shared renderer support
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:36 +00:00
Dan HarrinandAmp ea77942a70 Add JavaScript-rendered custom fields
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:36 +00:00
Dan HarrinandAmp 49dc7c1e5f Extract shared JavaScript renderer infrastructure
Co-authored-by: Amp <amp@ampcode.com>
2026-09-21 21:29:21 +00:00
Dan Harrin 2f2f7a6d75 fix: require content-based upload MIME detection 2026-09-21 21:16:07 +00:00
Dan Harrin 6ca69568c4 fix: store uploaded files with detected MIME types 2026-09-21 20:48:00 +00:00
RenHai Wen 19d8d89228 fix: collapse non-contained sections correctly (#20532)
* fix: collapse non-contained sections correctly

* test: cover collapsing non-contained sections
2026-09-20 19:53:45 +01:00
604038fd2b [4.x] Fix: preserve the order of rich editor mention options (#20531)
* fix(forms): preserve the order of rich editor mention options

Mention options were sent to JavaScript as an object keyed by ID, and
`toItemsArray()` reads them back with `Object.entries()`. JavaScript orders
integer-like keys ascending numerically, so for models with numeric primary
keys the developer's ordering was silently replaced with an ascending-ID
sort, for both `items()` and `getSearchResultsUsing()`.

Items are now sent as an ordered list of `id` and `label` pairs. The JS
already supports that shape, so no JS change is required.

This also fixes a related edge case: PHP re-casts numeric-string array keys
back to integers, so a provider whose IDs were 0-based and sequential
serialised to a JSON array of bare labels, and the inserted mention took its
label as its `id`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011LniPBty6yFENqFFcMcNad

* fix(forms): preserve zero-valued mention IDs

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-09-20 19:31:08 +01:00
RenHai Wen d3f5facead fix: preserve 0 values when rendering column orders (#20529) 2026-09-20 17:06:31 +01:00
Dan Harrin 5e87606fe9 fix: resolve state casts from cached child schemas (#20528)
* fix: resolve state casts from cached child schemas

* test: cover per-item repeater schema freshness
2026-09-19 20:34:45 +01:00
Dan Harrin 95fdf86ebb fix: clean up JavaScript resources on destruction 2026-09-19 10:50:51 +00:00
Dan Harrin 4bbc9c092d Merge remote-tracking branch 'origin/4.x' into 4.x 2026-09-19 10:39:49 +00:00
Dan Harrin 3b2b613b1a Stabilize parallel test assets and fixtures 2026-09-19 10:39:48 +00:00
Dan Harrin 12b877486f fix: improve mobile-stacked table layouts (#20527) 2026-09-19 11:34:31 +01:00
Dan Harrin 6d4dae6d7a fix: secure multi-factor authentication actions (#20522) 2026-09-18 12:08:57 +01:00
Stefan KuhlmannandDan Harrin f7266ed1bc fix: Dropdown aria-controls loop when the component is initialised twice on the same element (#20503)
* fix: Dropdown aria-controls loop when the component is initialised twice on the same element

* test: Reproduce the dropdown `aria-controls` loop through a real morph

Prepending a row to a keyed list whose rows also carry an `x-text` binding makes
Alpine initialise every retained row's dropdown a second time: the `x-text` effect
flushes the mutation observer mid-morph, so a row's removal and re-insertion land in
different batches. A second prepend then strips `aria-controls` and the two instances
ping-pong. Fails on the previous `dropdown.js` (5000+ writes, renderer frozen) and
stays at ~100 writes with the fix. Includes the rebuilt support bundle so the browser
test runs against the fixed component.

* fix: Clean up dropdown observers when destroyed

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-09-18 10:26:29 +01:00
Lazizbek ErgashevandDan Harrin 3ff2d4f5a0 fix: query builder filter indicators when a rule is deleted from the deferred filters form (#20516)
* fix: query builder filter indicators when a rule is deleted from the deferred filters form

* test: reproduce the query builder indicator failure with the standard testing helpers

Delete the rule with `callAction()` and then sort the table, instead of
building the Livewire request by hand. Sorting re-renders the whole table,
which is what rebuilds the indicators and triggers the failure.

* fix: count applied query builder filters

* refactor: centralize applied filter form state

---------

Co-authored-by: Dan Harrin <git@danharrin.com>
2026-09-18 10:08:24 +01:00
danharrin 9403bdcb64 chore: format and build 2026-09-17 08:01:18 +00:00
RenHai Wen e4872ab7f9 fix: correct FileUpload audio preview interactions (#20511)
* fix: audio controls triggering FileUpload reordering

* fix: correct FileUpload audio timeline interactions

* chore: clarify FileUpload audio preview change comments
2026-09-17 08:59:35 +01:00
ItsKaimsandKaimar Laaniste 3ff4783f08 Added Estonian missing language files (#20518)
Co-authored-by: Kaimar Laaniste <kaimar@greaton.ee>
2026-09-17 08:58:58 +01:00
Jefferson GonçalvesandClaude Opus 5 c2537be5a1 fix: bind Livewire's DataStore as a singleton (#20515)
`bind()` is not shared, so when `filament/support` registers after
`livewire/livewire` it overwrites Livewire's shared `DataStore` instance
with a non-shared binding. Every `app(DataStore::class)` then builds a new
store with an empty `WeakMap`, losing all per-component state, and every
render throws from `ViewErrorBag::put()` with a null message bag.

`singleton()` is order-independent: either provider order ends up with one
shared `DataStoreOverride`, which is what the binding already intended.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 08:58:30 +01:00
TinaH c826d40f93 missing swedish (#20514) 2026-09-17 08:36:54 +01:00
6c5962898a fix: skip tenant association for HasOneThrough ownership relationships (#20506)
* fix: skip tenant association for HasOneThrough ownership relationships

The `created` observer registered by `observeTenancyModelCreation()` only
returned early for `BelongsTo` and `BelongsToThrough` ownership
relationships before calling `$relationship->save($tenant)`. Laravel's
`HasOneThrough` and `HasManyThrough` are read-only and have no `save()`
method, so creating a record in a resource whose ownership relationship
goes through an intermediate model crashed with
`Call to undefined method HasOneThrough::save()`.

Treat `HasOneOrManyThrough` like the other non-writable ownership
relationships and return early, since the tenant is already implied by
the intermediate model. Query scoping through `whereHas()` is unaffected.

* Simplify tenancy relationship tests

---------

Co-authored-by: Ricardo Sawir <rian.segalhidajat@gmail.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
2026-09-15 14:42:08 +01:00
Sandro Gehri 38d684bbe5 add client-side searchable mentions (#20501) 2026-09-15 14:37:50 +01:00
RenHai Wen dbf627db9e fix: rebuild repeatable entry items after in-place collection mutation (#20500) 2026-09-15 14:34:07 +01:00
Chanthoeun Kim 21ec4e2708 Update km translations (#20499)
* 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

* chore: update Khmer language translations for validation and email verification controller

* fix: fallback to default GITHUB_TOKEN if GH_ACCESS_TOKEN is not defined in workflow checkout

* feat: add and update Khmer language translations for various components and packages

* Update Khmer (km) translations
2026-09-15 14:26:52 +01:00