Skip to main content
← Back to Table of Contents

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 accept Closure 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 [].

CSS classes (reference)

Choose an icon beside text

Use FlexTextInput::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.
The callback accepts the same configuration methods documented on this page, including 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.
Last modified on October 16, 2026