asignua/filament-relation-manager-tabs
A Filament plugin that adds tabs to relation managers, letting you group multiple relationship tables into one clean tabbed interface on resource pages. Simple setup and native Filament styling.
" in the data could break the attribute and print raw text on screen. If you ship record data with free-text fields, this was a real (if low-severity) data-exposure and visual-defect risk. v1.1.1 fixes it — a reason to take the upgrade rather than defer.^5.0). That converts into a platform-upgrade decision: you cannot stay on Filament 5.0–5.5 and take these fixes. Older Filament 5 previously crashed every Edit/View page that had a tab, so teams on 5.0–5.5 are effectively already broken and should upgrade.key: values containing & now throw InvalidArgumentException (browser decodes character references in the Alpine attribute, so the tab opened empty). Any saved configuration, seeded demo data, or user-entered tab keys containing & must be migrated or validated. PM action: confirm with engineering whether any keys are user-supplied; if so, add validation/copy in the UI rather than letting it throw.key: rule was corrected to match the shipped code. Useful for PMs writing internal onboarding docs — the documented rule (empty, backslash, quote, backtick, angle bracket, or control character rejected; everything else allowed) is now accurate.Consider it when:
Look elsewhere (or plan extra work) when:
key: values containing & (or user-authored keys you cannot validate/constrain) — this now throws by design.& key rule and the Filament floor both changed in a patch bump). Treat it as a dependency to pin and regression-test, not a foundation.For executives (one paragraph): This is a small UI component for our Filament admin panel that lets staff edit a record and its related records on one screen instead of bouncing between pages. The new release closes two real defects — a case where record data could print as raw JSON text on screen, and a case where pressing Enter in a search box silently saved a half-finished record — and it fixes a crash that hit every edit page for teams on older Filament 5 versions. The cost is a mandatory framework bump to Filament 5.6+ and one small behaviour change for custom tab identifiers. Recommendation: take the upgrade, budget a short regression pass, and schedule the Filament bump alongside it.
For engineering: v1.1.1 is a correctness release. It sets the Livewire record to null in RelationManagerTab::livewire() (a caller's ->data(['record' => …]) still overrides), which stops Filament's always-injected record from being forwarded as an HTML attribute and leaking model JSON into the hidden panel. It bumps the Filament floor to 5.6+ because the tab calls deferBadge() (5.3+) and isBadgeDeferred() (5.6+). It adds a keydown.enter guard scoped to outer-form-owned inputs so embedded search/filter/inline-edit no longer submit the parent form. It memoizes badge, colour, and tooltip per record/page via ManagerReference::memoized(), and it tightens the custom key: rule so & throws InvalidArgumentException (character references are decoded in the Alpine attribute, producing an empty tab). The README's key: rule was corrected to match shipped behaviour. Action items: upgrade Filament to 5.6+, grep for key: values containing &, add regression tests for Enter-in-input and for records with quotes/free text in the parent model, and pin the version.
For the product/QA team: Two test scenarios matter most — press Enter in the embedded manager's search, filter, and inline-edit fields on an Edit page (the parent form must not submit), and open a tab on a record whose fields contain quotes or JSON-sensitive characters (no raw text should appear in the hidden panel). Also verify any existing tab key: values, and re-verify tab badges/counters render with correct counts after the memoization change.
How can I help you explore Laravel packages today?