jkharley/filament-trumbowyg
Adds a Trumbowyg rich-text editor field to Filament forms, bringing a lightweight WYSIWYG toolbar to Laravel admin panels. Configure the editor, customize its buttons, and use it as a straightforward alternative for content editing.
Version 3.0.0 adds Filament 3 support, which makes this release the entry point for anyone running a Filament 3 panel. Treat it as a framework-major upgrade release, not a feature drop — the package surface is largely the same, but the Filament/Livewire floor underneath it moved.
Minimum steps:
composer show filament/filament → 3.x). Filament 3 requires PHP 8.1+, Laravel 10+, Livewire 3, Alpine 3. If you're still on Filament 2, stay on the previous major of this package — 3.0.0 will not resolve alongside it.composer require vendor/package:"^3.0" and, if the package ships assets/views/config, re-publish them (see Gotchas — stale published views are the #1 upgrade failure).public function panel(Panel $panel): Panel
{
return $panel
->plugin(Vendor\Package\PackagePlugin::make());
}
php artisan filament:upgrade and php artisan filament:assets, then clear caches.Look first at: the README's Filament 3 / upgrade section, CHANGELOG.md for the 2.x → 3.x diff, the package's *Plugin.php class (this is where panel-scoped config and registration live in Filament 3), and the published config file for feature toggles.
First use case: install into an existing panel, register the plugin, and verify the package's pages/resources appear in the navigation for one panel only. That single check exercises registration, authorization, and asset loading — the three things that break in a Filament major bump.
AdminPanelProvider, AppPanelProvider) a plugin registered on one panel should not leak into the other. This is a feature — use it to expose admin-only tooling.config('package.features.x')) rather than subclassing. Config survives minor upgrades; subclasses don't.form()/table(), or override Blade views via Filament's view namespace resolution instead of editing vendor/.->viteTheme('resources/css/filament/admin/theme.css')). If the package injects CSS/JS, confirm its assets are registered through Filament's asset pipeline so they survive filament:assets.livewire(Page::class)->assertSee(...)) and cover at least: plugin registration, navigation visibility per role, and one form submission. Filament 3's Livewire 3 dependency changes component testing semantics — retest anything that previously relied on Livewire 2 lifecycle hooks.3.x and Livewire 3.x explicitly; if the package still supports Filament 2 on a 2.x branch, keep a second matrix entry so you can patch both.filament:upgrade → optimize:clear → smoke-test each panel. Script it; this sequence is repeated for every Filament plugin in the app.composer require fails, composer why-not vendor/package 3.0 tells you which plugin is holding the app on Filament 2. Upgrade the ecosystem together, not one package at a time.resources/views/vendor/... copy is 2.x. Re-publish with --force (after diffing your customizations) and rebuild assets.Filament\Resources\Form → Filament\Forms\Form, table columns moved, Heroicon strings became an enum, ->colors() became ->colors([...])). Any code in your app extending package classes may need the same edits — grep your app for the old namespaces after upgrading.x-init with $nextTick chaining, dispatchEvent patterns) can silently break UI inside Filament 3 components. Check any custom views the package renders.php artisan optimize:clear then php artisan filament:upgrade fixes a large share of "it's broken after upgrade" reports.canAccess()/policy wiring before assuming a package bug.vendor/ edits — everything else is overwritten on the next composer update.^3.0 rather than 3.0.0 exactly.How can I help you explore Laravel packages today?