wezlo/filament-search-spotlight
Full-screen Spotlight/command-palette search for Filament panels (⌘K/Ctrl+K). Aggregates global search records plus resources, pages, and actions, with recent/pinned items stored in localStorage. Keyboard navigation, configurable per panel and via config.
Pros:
GlobalSearchProvider and resource/page architecture. Minimal architectural friction for Laravel/Filament-based admin panels.RecordsCategory for advanced search logic).SpotlightAction registry enables dynamic, keyword-searchable actions (e.g., "Clear Cache") without custom development, aligning with Filament’s action system.Cons:
getGloballySearchableAttributes()) limits reuse in non-Filament Laravel apps. Would require abstraction layers for broader adoption.GlobalSearchProvider and resource architecture.@source directive for compiled themes. Non-Tailwind projects would require manual asset inclusion.wezlo/filament-search-spotlight).PanelProvider (1 line).getGloballySearchableAttributes(); non-compliant resources can be excluded via excludeResources().Category contract (moderate effort).mod+k binding could clash with existing shortcuts (configurable via keyBinding()).keyBinding('ctrl+shift+f')).mod+k?GlobalSearchProvider is implemented for records.@source directive). Non-Tailwind projects require manual CSS inclusion.resources/views).>=3.0).mod+k.composer require wezlo/filament-search-spotlight
PanelProvider (e.g., app/Providers/Filament/AdminPanelProvider.php):
->plugins([
FilamentSearchSpotlightPlugin::make()
->keyBinding('mod+k') // Optional: customize binding
->placeholder('Jump to...'), // Optional
])
resources/css/filament/admin/theme.css:
@source '../../../../vendor/wezlo/filament-search-spotlight/resources/views/**/*';
Rebuild assets:
npm run build
php artisan vendor:publish --tag=filament-search-spotlight-config
AppServiceProvider::boot():
SpotlightAction::make('clear-cache')
->label('Clear Cache')
->keywords(['flush', 'cache'])
->url(route('admin.cache.clear'))
->register();
getGloballySearchableAttributes(). Non-compliant resources can be excluded via excludeResources([Resource::class]).create page (disable with disableCreateActions()).SpotlightAction for dynamic URLs or conditional logic.How can I help you explore Laravel packages today?