Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Modal Relation Managers

Filament Modal Relation Managers Laravel Package

guava/filament-modal-relation-managers

Open any relation manager inside a modal with a Filament action, from table rows, schema entries, or page headers, no edit page needed. Supports Filament 3, 4, and 5.

View on GitHub
Deep Wiki
Context7

Guava Modal Relation Managers lets you embed any Filament relation manager inside a modal instead of navigating to a record's edit page. Using the provided RelationManagerAction, you can open relations directly from a table row, schema entry, or page header—keeping users in context.

  • Works with table, schema, and page header actions
  • Simple API: chain ->relationManager() on the action
  • Supports compact styling and custom labels
  • Compatible with Filament 3.x, 4.x, and 5.x
  • Requires a custom theme with a single @source line
Frequently asked questions about Filament Modal Relation Managers
How do I install guava/filament-modal-relation-managers in a Laravel app?
Install it with composer require guava/filament-modal-relation-managers. You also need a custom Filament theme and an @source directive in your theme CSS pointing to vendor/guava/filament-modal-relation-managers/resources/**/* so the package styles are compiled. After that, import RelationManagerAction and attach it to a table row, schema entry, or page header action.
Which Filament versions are supported by filament-modal-relation-managers?
The package explicitly supports Filament 3, 4, and 5, with major-locked plugin versions: Filament 3.x uses plugin 1.x, Filament 4.x uses 2.x, and Filament 5.x uses 3.x. That mapping removes ambiguity during upgrades because each Filament major has a matching plugin major. Check the compatibility table before installing if you are on an older Filament release.
Why does this package require a custom Filament theme?
The package ships Tailwind CSS overrides for Filament modal and table markup, and those styles must be included in your compiled theme. Filament's stock theme will not pick up vendor CSS automatically, so you add an @source line to your theme.css and rebuild assets. If you do not already have a custom theme, adopting this package means owning a theme build pipeline.
How do I open a Filament relation manager in a modal from a table row?
Use RelationManagerAction in your table's record actions and point it at the relation manager class with relationManager(LessonRelationManager::class). Set a label if needed and optionally use the compact modifier to control modal padding. The action opens the relation manager in a modal on the current page instead of navigating to the record edit page.
Can I use RelationManagerAction in schema, infolist, and page header actions?
Yes. The package is designed to work from table row actions, schema or infolist suffix actions, and page header actions using the same RelationManagerAction class. This makes it additive to existing Filament primitives without changing your models, policies, or relation manager classes. The compact modifier is also available across those contexts for tighter modal layout.
How is authorization handled for relation managers inside modals?
Authorization still delegates to your Laravel policies and Filament relation manager visibility rules, so users see only what your policies allow. Because the action can expose relations from table rows, schema entries, and page headers where they were not previously reachable, verify that canView and related checks are enforced per action. Do not assume the modal changes authorization behavior; test each surface with a restricted user.
What are the known limitations of embedding relation managers in Filament modals?
Relation managers were built for page context, so modal use can expose gaps around nested action modals, file uploads or rich editors, table bulk actions, pagination and query-string state, and pageClass resolution after create or edit redirects. The changelog includes repeated pageClass fixes, which shows this is an area to test in your own relation managers. Keep the specific relation managers you plan to surface simple, or validate the complex behaviors before rollout.
Is guava/filament-modal-relation-managers production-ready?
Architecturally it is a low-risk, presentation-layer adapter with no data model, queue, cache, or service-provider bootstrapping, so the code surface is small. The main production concerns are ecosystem maturity and support: the package has modest adoption, no commercial support tier, and GitHub issues only. Treat it as a small dependency in the admin UI critical path and have a reimplementation plan, estimated at one to three days for a mid-level Filament developer.
How do I upgrade this package when moving to a new Filament major version?
Upgrade the plugin in lockstep with Filament: Filament 3 uses plugin 1.x, Filament 4 uses 2.x, and Filament 5 uses 3.x, so expect a plugin major bump when you move Filament majors. After upgrading, rebuild your custom theme because the package CSS is compiled through the @source directive. Re-test modal behaviors such as nested actions, uploads, bulk actions, pagination, and redirects because Filament minor releases can affect modal markup.
What should I check before adding modal relation managers to an existing Laravel app?
Confirm that you already have a custom Filament theme and that its build runs in CI, because the package requires vendor CSS to be compiled through an @source directive. Check your Filament major against the plugin compatibility table and identify which relation managers you will surface, especially any with uploads, nested actions, or bulk operations. Also decide who owns the dependency and what the fallback is if maintenance stops; the feature is small enough to reimplement if needed.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections