guava/filament-icon-picker
Filament plugin that adds an Icon Picker form field and matching table column. Pick icons from any installed blade-icons kit (Heroicons included). Store full icon names and render them in tables or on the frontend for customizable UI/icons.
blade-icons kit (e.g., Heroicons, Feather, Tabler), enabling consistency with existing UI libraries."heroicons-outline-home"), avoiding vendor lock-in or binary storage.blade-icons kits; no native upload/custom icon support (though extensions like upload-icons are hinted in docs).@source in theme.css), adding friction for non-standard Filament setups.TextInput with IconPicker in Filament schemas (1 line change).TextColumn with IconColumn (1 line change).<x-icon :name="$model->icon" /> in Blade.blade-icons packages (e.g., blade-icons/heroicons).payloads.max_calls tuning for large icon sets.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Filament Version Drift | High | Pin plugin version to match Filament (e.g., guava/filament-icon-picker:^4.0). Monitor Filament releases for breaking changes. |
| Icon Set Availability | Medium | Audit blade-icons compatibility early; provide fallback UI if icons are missing. |
| Performance | Medium | Test with large icon sets (e.g., 1000+ icons); optimize payloads.max_calls if needed. |
| CSS Conflicts | Low | Use Filament’s scoped CSS or shadow DOM to isolate styles. |
| Database Schema | Low | Icon names are strings; no migration needed unless adding validation. |
blade-icons kits sufficient?blade-icons (e.g., blade-icons/heroicons for defaults).<x-icon :name="$icon" />).blade-icons kits (e.g., composer require blade-icons/heroicons).composer require guava/filament-icon-picker
php artisan filament:assets
@source directive to resources/css/filament/theme.css:
@source '../../../../vendor/guava/filament-icon-picker/resources/**/*';
TextInput::make('icon') with IconPicker::make('icon').TextColumn::make('icon') with IconColumn::make('icon').<x-icon :name="$model->icon" />.->sets(['heroicons', 'tabler']).->dropdown(false).->gridSearchResults() or ->iconsSearchResults().| Component | Compatibility Notes |
|---|---|
| Filament v4/v5 | Full support; use ^4.0 for v5. |
| Filament v3 | Use ^3.x branch (deprecated; no active maintenance). |
| Blade-Icons | Works with any kit (e.g., Heroicons, Feather, Tabler). Requires blade-icons packages. |
| Livewire | No conflicts; uses Livewire’s payload system. May need payloads.max_calls tuning. |
| Tailwind CSS | Styles are Tailwind-agnostic but may need adjustments for custom themes. |
TextInput/TextColumn with IconPicker/IconColumn in critical forms/tables.payloads.max_calls if lag is detected.<x-icon> usage in templates.blade-icons for breaking changes.^4.0) to avoid major version risks.php artisan filament:assets) after theme changes.blade-icons package and restart the queue worker (if using preloading).IconPicker).payloads.max_calls exceeded).blade-icons kits are installed and registered.@source directive in theme.css and rebuild assets.payloads.max_calls in livewire.php or limit icon sets.How can I help you explore Laravel packages today?