Summary
Searchable blade-icons picker with lazy SVG rendering, set filters, whitelist/exclude controls, paginated server-side search, and virtual scrolling for large catalogs. Stores the full icon name string (e.g.hugeicons-star).
The stored value is a plain string, making it compatible with any standard Filament or Blade icon component.
Basic usage
Standard Icon Picker
Strict Whitelist
State & validation
Stored value
State is the full blade-icons name stored as a plain string.Validation rules (built-in)
Custom rule checks the value against the configured catalog (sets, whitelist, and exclude list).Configuration API
All methods acceptClosure unless noted.
Real-world examples
CMS Navigation Icon
Frontend Usage (Blade)
Playground
/admin/flex-fields/icon-picker-field
See Playground for setup.
Ops notes
getIconPickerSearchResults and getIconPickerSvgPreviews share the Select-family Livewire rate limit (filament-flex-fields.select.search_rate_limit_per_minute). Keys use the authenticated user id or Request::ip() — configure Laravel TrustedProxies behind a reverse proxy. SVG preview batches stay capped at 64 icons. When limited, search returns an empty page (hasMore=false) and SVG previews return [].
Related components
CSS classes (reference)
Choose an icon beside text
UseFlexTextInput::iconPicker() to place the same searchable icon picker in a
text input’s toolbar. The label and icon remain separate form values. The inline
menu aligns with the end of the input, opens above when needed, and uses the
shared mobile sheet on small screens. An empty value shows the Hugeicons shapes
symbol; it does not write a default icon into your data.
default() for an initial value. The icon state path is relative to
the surrounding form or repeater row. Persist both values using your normal
Filament form save flow. See Text input: associated icon picker
for storage, validation and composition examples.
inlineTrigger() selects the compact trigger presentation for composed controls.
When using a text input, it is applied automatically.
When embedded through FlexTextInput::iconPicker(), clearing is enabled by default.
The dropdown’s Clear icon button resets only the associated icon to null, leaving
the text unchanged. Set clearable(false) in the callback to disable the action;
required() still rejects an empty selection during form validation. The action
is unavailable for disabled or read-only inputs and after the picker is disposed.