* feat: add ->size() support to Filament\Schemas\Components\Icon
* cleanup
* docs
* improve ss
---------
Co-authored-by: Dan Harrin <git@danharrin.com>
* feat: expose TipTap/ProseMirror globals for custom extensions
Custom extensions loaded via RichContentPlugin::getTipTapJsExtensions()
are fetched at runtime via dynamic import(). Each extension bundle must
currently include its own copy of TipTap/ProseMirror, leading to:
- Duplicate ProseMirror instances on the page
- instanceof checks failing across bundles (e.g. DecorationSet)
- ~150-200 KB of redundant JS per extension
This adds window.Filament.TipTap with the core ProseMirror modules
(@tiptap/core, @tiptap/pm/state, @tiptap/pm/view, @tiptap/pm/model)
already bundled in rich-editor.js. Custom extension builds can mark
@tiptap/* as external and resolve from this global at runtime,
sharing the same ProseMirror instance as the host editor.
Non-breaking: existing extensions that bundle their own TipTap
continue to work unchanged.
* Discard changes to packages/forms/dist/components/rich-editor.js
* chore: fix code style
* clean up & docs
---------
Co-authored-by: leek <leek@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
* Add openableUrl support for file uploads
Include server-provided openable URLs in uploaded file metadata and use them for the file open action. JS: add uploadedFile.metadata to the file options and prefer metadata.openableUrl (falling back to file.source) when generating the open link. PHP: introduce a getOpenableUrlUsing closure property and setter, and populate metadata.openableUrl for each stored file by evaluating the callback. This enables customizable/signed URLs or alternate domains for opening uploaded files.
* chore: fix code style
* Add downloadable URL support for file uploads
Support custom downloadable URLs for uploaded files. Backend: add a getDownloadableUrlUsing callback and property on BaseFileUpload, populate metadata.downloadableUrl when isDownloadable() and the callback is set, and ensure openable URL generation checks isOpenable(). Frontend: prefer metadata.downloadableUrl for the download anchor href (fallback to file.source behavior removed). This enables serving custom download links separate from the file source.
* Format conditionals in BaseFileUpload
Remove an extra blank line and standardize conditional formatting in BaseFileUpload: add consistent spacing and braces for the openable/downloadable URL checks and tidy up the getDownloadableUrlUsing method. Purely stylistic changes with no functional impact.
* run composer cs
* clean up
---------
Co-authored-by: Abdulmajeed-Jamaan <Abdulmajeed-Jamaan@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
* feat: add deferred badge loading for relation manager tabs
Extends the deferred tab badge loading introduced in PR #19336 to
relation manager tabs, fixing two upstream issues:
1. `RelationManager::getTabComponent()` was evaluating `getBadge()`
eagerly before the deferred mechanism could intercept it.
2. `HasRelationManagers::getRelationManagersContentComponent()` built
`Tabs::make()` with no key, causing `callSchemaComponentMethod()` to
receive null when the async badge fetch fired.
Changes:
- Add `protected static bool $deferBadge = false` to `RelationManager`
with an overrideable `isBadgeDeferred()` method for per-record control
- Add fluent `->deferBadge()` and `isBadgeDeferred()` to `RelationGroup`
- Add `->key('relationManagerTabs')` to the `Tabs` built in
`HasRelationManagers`
- Add docs and tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* cleanup
---------
Co-authored-by: buzkall <buzkall@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
Added missing Persian translations for the export column selection actions
in the Filament actions export language file.
The following keys were missing in the `fa` locale:
- actions.select_all
- actions.deselect_all
These translations ensure the column selection controls in the export
modal are properly localized for Persian users.
Signed-off-by: Amirhossein <amirhosseinzangali@gmail.com>
* improve: add Set/Get reactive snippet, table filters, edit test, and relationship mistake
Added examples for reactive field mutation and computed column values. Updated guidelines for using SelectFilter and actions with modal forms.
Signed-off-by: Rupesh Shrestha <46959961+rupeshstha@users.noreply.github.com>
* Revise core guidelines for forms and layouts
Updated guidelines for reactive field mutation and layout components.
Signed-off-by: Rupesh Shrestha <46959961+rupeshstha@users.noreply.github.com>
* condense
---------
Signed-off-by: Rupesh Shrestha <46959961+rupeshstha@users.noreply.github.com>
Co-authored-by: Dan Harrin <git@danharrin.com>
* fix: resolve method shadowing by using backing properties in Notification class
* clean up
* Update ActionGroup.php
---------
Co-authored-by: Dan Harrin <git@danharrin.com>