tonegabes/filament-better-options
Checkbox, Radio) without modifying core functionality, adhering to Laravel’s dependency injection and service provider patterns.Checkbox::make() → CheckboxList::make()), with identical method signatures for core properties (labels, required rules).filament/filament: ^3.0).str_contains/array_reduce usage if on older PHP.| Risk Area | Mitigation Strategy |
|---|---|
| Breaking Changes | Monitor Filament major releases; package author maintains changelog. |
| Performance | Components are optimized for large option sets (debounced search, virtual scrolling). Test with 100+ options. |
| Styling Conflicts | Tailwind classes are scoped; override via Filament’s tailwind.config.js. |
| Localization | Uses Filament’s translation system; ensure language files are updated. |
| Security | Inherits Filament’s CSRF/validation; no additional attack surface. |
CheckboxCards with lazy-loaded data.boolean/string fields.make:filament-test to validate form submissions with new components.CheckboxCards to validate UI/UX.Checkbox/Radio as backup; wrap new components in a conditional:
if (config('filament.enable_better_options')) {
BetterOptions::CheckboxCards(...);
} else {
Checkbox::make(...);
}
| Component | Native Filament Equivalent | Key Differences |
|---|---|---|
CheckboxList |
Checkbox::make() |
Bulk select, search, descriptions |
CheckboxCards |
Checkbox::make() |
Card-based, icons, themes |
RadioList |
Radio::make() |
List layout, better spacing |
RadioCards |
Radio::make() |
Card UI, visual feedback |
Edge Cases:
required, confirmed). Test with custom rules.getOptions() method.composer require tonegabes/filament-better-options.php artisan vendor:publish --provider="Tonegabes\BetterOptions\BetterOptionsServiceProvider".config/filament-better-options.php.AppServiceProvider:
BetterOptions::configureUsing(function (BetterOptions $config) {
$config->defaultTheme('modern');
});
use Tonegabes\BetterOptions\CheckboxCards;
CheckboxCards::make('tags')
->options([
'admin' => 'Administrator Access',
'editor' => 'Content Editor',
])
->bulkActionLabel('Select All')
->searchable();
debug:filament command to inspect component rendering.CheckboxList for scalability.| Scenario | Impact | Mitigation |
|---|---|---|
| JavaScript Errors | Broken UI | Fallback to native components. |
| Theme Conflicts | Styling issues | Override Tailwind classes. |
| Option Data Corruption | Invalid form submissions | Validate options server-side. |
| Filament Update | Package incompatibility | Test in staging before production. |
How can I help you explore Laravel packages today?