zpmlabs / filament-undraw
Filament select component for undraw illustrations.
Package info
github.com/zpm-packages/filament-undraw-illustrations-select
pkg:composer/zpmlabs/filament-undraw
Requires
- php: ^8.2
- filament/forms: ^5.0
- illuminate/support: ^12.0|^13.0
- zpmlabs/undraw-php: ^1.0
README
Filament Undraw (ZPMLabs)
A Filament select component that lets you search and pick unDraw illustrations with image thumbnails in the dropdown and in the selected value.
PHP 8.2+, Filament Forms 5.x.
Install
composer require zpmlabs/filament-undraw
Filament theme setup
If your Filament panel uses a custom Tailwind theme, add both package paths to your theme file so Tailwind can see the classes used by the package:
@source '../../../../vendor/zpmlabs/filament-undraw/src/**/*'; @source '../../../../vendor/zpmlabs/filament-undraw/resources/views/**/*';
Both are needed for different reasons:
src/**/*is required because the field component stores configurable utility classes likew-24 h-24andw-40 h-40inside PHP strings.resources/views/**/*is required because the packaged demo page view uses Tailwind classes directly in Blade.
After adding the sources, rebuild your assets:
npm run build
Version support
main/v5.xtags: Filament 5v4branch /v4.xtags: Filament 4
If you want to customize the view:
php artisan vendor:publish --tag=filament-undraw-views
- This will copy the blade file to
resources/views/vendor/filament-undraw/undraw-select.blade.php.
Usage
use ZPMLabs\FilamentUndraw\Forms\Components\UndrawSelect; UndrawSelect::make('svg_url'),
Since this extends Filament's Select, you can keep using the usual fluent methods alongside the custom thumbnail layout.
Ready-to-use demo page
The package ships with an example Filament page you can mount directly in your panel:
use CommunitySdks\UnlayerFilament\Examples\Pages\UnlayerFilamentDemoPage; use Filament\Pages\Dashboard; use ZPMLabs\FilamentUndraw\Examples\Pages\UndrawDemoPage; $panel->pages([ Dashboard::class, UnlayerFilamentDemoPage::class, UndrawDemoPage::class, ]);
Example field presets used on the page:
use ZPMLabs\FilamentUndraw\Forms\Components\UndrawSelect; UndrawSelect::make('hero_illustration') ->label('Hero illustration') ->live(); UndrawSelect::make('compact_illustration') ->label('Compact illustration') ->searchResultSize('w-24 h-24') ->selectedOptionSize('w-24 h-24') ->limit(12);
Expanding Undraw Usage
In case you want to expand this in some other field or custom component you can check the base php package for undraw.