solution-forest/filament-otp-input
Filament OTP Input adds a segmented one-time-password field to Laravel Filament forms and admin panels. Use it to capture verification codes in a clean, focused input that matches Filament styling, with configurable code length for login, signup, and security flows.
This release (2.0.4) is a compatibility release: it adds support for Filament v4 and v5. Before anything else, confirm your Filament version, because the package now spans two major Filament lines with different internals.
composer.json for filament/filament and this package's constraint:
composer show --direct | grep -E 'filament|your-vendor/package'
composer why your-vendor/package # confirm what pulled it in
composer require your-vendor/package:^2.0.4 --with-all-dependencies
php artisan filament:upgrade # if you use Filament's upgrade command
php artisan optimize:clear
->plugin(...) or panel provider ->plugins([...])) — that is where v4/v5 differences usually surface.BindingResolutionException or missing-asset error.If you are still on Filament v3, stay on the previous package line — 2.0.4 targets v4/v5 and does not extend v3 support.
Pin the major versions deliberately. Composer's --with-all-dependencies will happily pull Filament v5. Lock both sides explicitly so a future composer update does not move you across a Filament major without a test pass:
"require": {
"filament/filament": "^4.0",
"your-vendor/package": "^2.0.4"
}
Register once per panel. In multi-panel apps, register the plugin in each panel provider that needs it, and keep panel-specific config in the panel provider rather than in config/your-package.php so behaviour is not shared accidentally.
Test both paths if you support both Filament majors. CI matrix with filament/filament:^4.0 and ^5.0 against your lowest supported PHP/Laravel combination catches most of the surface-area divergence.
Gate upgrades behind a branch. Upgrade flow that works well day to day:
git checkout -b chore/filament-v5
composer require filament/filament:^5.0 your-vendor/package:^2.0.4 -W
php artisan test
npm run build # if the plugin ships assets
Use the package's extension points instead of overriding views. Prefer published config, registered actions/columns, and plugin hooks over copying Blade views into resources/views/vendor/. Vendor view overrides are the first thing to break across Filament majors.
Keep a smoke test per panel. A Pest/PHPUnit test that boots each panel and hits the dashboard catches registration regressions that unit tests miss.
2.0.4 supports v4 and v5, not v3. A half-upgraded lockfile (package v2, Filament v3) typically fails at container resolution or panel boot, not at install time.php artisan filament:optimize-clear, php artisan optimize:clear, and php artisan view:clear.php artisan about-adjacent checks or use filament:cache-components output; a missing Livewire component usually means a plugin registered on the wrong panel or a stale component cache.class_exists().composer.json and the diff before assuming no behavioural changes elsewhere — check the changelog and git diff on the tag.filament/filament, package, PHP, Laravel, and Livewire versions — cross-major support issues are usually resolved by narrowing a constraint.How can I help you explore Laravel packages today?