Search
Quick Commands
run:diagnostics Run all system checks
db:connect Connect to primary DB
cache:clear Clear application cache
users:list Show all active users
Notifications

Stay on top of recent system events and updates.

  • Notification avatar
    System Update Available

    Version 2.4.1 is ready to install with new features.

    2 minutes ago

  • AB
    New User Registration

    Alex Brown from Canada has joined the platform.

    15 minutes ago

  • Notification avatar
    Backup Completed

    Daily backup has been successfully completed.

    1 hour ago

  • Notification avatar
    Security Alert

    Unusual login activity detected from new location.

    3 hours ago

  • Notification avatar
    Monthly Report Ready

    Your analytics report for September is now available.

    Yesterday

  • MJ
    Server Maintenance

    Scheduled maintenance will begin at 2:00 AM EST.

    2 days ago

style Icon Picker Component

A powerful, reusable icon picker component that supports both Bootstrap Icons and Material Symbols Rounded. Perfect for forms, settings panels, and any interface where users need to select icons.

Key Features:
  • check_circle Dual Icon Support: Bootstrap Icons & Material Symbols Rounded
  • check_circle Live Search: Instant filtering as you type
  • check_circle Family Toggle: Easy switching between icon families
  • check_circle Modal Interface: Clean, focused selection experience
  • check_circle Easy Integration: Simple Blade component
Icon Libraries Included:
  • Bootstrap Icons v1.11.3 - 500+ icons
  • widgets Material Symbols Rounded - 200+ common icons
code Basic Usage
Live Example
info Click the button above to open the icon picker modal
Blade Component Code
<!-- Basic usage -->
<x-icon-picker 
    inputId="my-icon" 
    name="icon" />

<!-- With default value -->
<x-icon-picker 
    inputId="my-icon" 
    name="icon" 
    value='<i class="bi bi-house"></i>' />

<!-- Required field -->
<x-icon-picker 
    inputId="my-icon" 
    name="icon" 
    :required="true" />
settings Advanced Examples
With Label & Helper Text
This will be displayed next to your menu item
Multiple Icon Pickers
Complete Form Example
description Component Properties
Property Type Default Required Description
inputId String 'icon-picker-input' Yes Unique ID for the hidden input and modal. Must be unique per page.
name String 'icon' No Name attribute for the form input
value String '' No Pre-selected icon HTML (e.g., <i class="bi bi-house"></i>)
required Boolean false No Whether the field is required for form validation
apps Supported Icon Libraries
Bootstrap Icons

Free, high quality, open source icon library with 500+ icons.

  • Version: 1.11.3
  • Format: SVG icons as web fonts
  • Class: bi bi-{icon-name}
View Full Library →
widgets Material Symbols Rounded

Google's Material Design icon system with 200+ curated common icons.

  • Source: Google Fonts
  • Format: Variable web font
  • Class: material-symbols-rounded
home favorite star settings notifications
View Full Library →
touch_app Interactive Demo
Try It Out
Preview & Code Output
Preview
Select an icon to see preview
Generated HTML
<!-- Select an icon -->
build Installation & Setup
Component Files
File Location Purpose
icon-picker.blade.php resources/views/components/ Blade component template
icon-picker.js resources/js/ JavaScript functionality
admin-static.js resources/js/ Imports icon-picker.js
Already Included

The icon picker is already integrated into your WaveDash installation and ready to use! Simply use the Blade component in your views:

<x-icon-picker inputId="unique-id" name="field_name" />
integration_instructions Using with Laravel Forms
Controller Example
// In your controller
public function store(Request $request)
{
    $validated = $request->validate([
        'name' => 'required|string|max:255',
        'icon' => 'required|string', // This will contain the icon HTML
        'url' => 'required|url',
    ]);

    // The icon field will contain something like:
    // '<i class="bi bi-house"></i>' or
    // '<i class="material-symbols-rounded">home</i>'

    MenuItem::create($validated);

    return redirect()->back()->with('success', 'Menu item created!');
}
Blade View Example

@csrf
Displaying Saved Icons





auto_awesome Features & Behavior
search Live Search

Type to instantly filter icons by name. Search is case-insensitive and matches partial names.

swap_horiz Family Switching

Toggle between Bootstrap Icons and Material Symbols with the dropdown selector. Search results update automatically.

touch_app Click Selection

Click any icon to select it. Selected icon is highlighted and "Select Icon" button becomes enabled.

visibility Visual Feedback

Selected icon displays in the input field with its name. Clear button appears when an icon is selected.

refresh State Persistence

Modal remembers your last search and family selection while open. Resets when closed.

check_circle Form Integration

Works seamlessly with Laravel forms. The hidden input stores the complete icon HTML for easy database storage.

lightbulb Customization Tips
Adding More Icons

Edit resources/js/icon-picker.js and add icons to the this.icons.material or this.icons.bootstrap arrays.

Changing Icon Size in Picker

Edit the <style> section in icon-picker.blade.php. Change font-size: 24px; in .icon-item i.

Styling the Input

The trigger button uses Bootstrap's btn-secondary class. You can wrap it with custom CSS or modify the component.

Adding New Icon Families

Add a new option to the family selector, add the icon list to this.icons, and update the getIconHtml() method.

info Pro Tip: The icon picker stores complete HTML (including classes) so you can easily render icons in your views using {!! $variable !!} without additional processing.
verified Best Practices
check
Use Unique IDs

Always provide a unique inputId for each icon picker on the same page to avoid conflicts.

check
Store as Text/HTML

Store the icon HTML in your database as TEXT or VARCHAR(255) for maximum flexibility.

check
Use {!! !!} for Output

Use {!! $icon !!} (not {{ $icon }} ) to render the HTML without escaping.

check
Validate in Controller

Add validation to ensure the icon field contains valid HTML and prevent XSS attacks.

info
Consider Database Indexing

If you're searching by icons, consider adding an index to the icon column for better performance.

info
Provide Default Icons

When creating forms, consider providing sensible default icons for better UX.

lightbulb Real-World Use Cases
menu
Menu Builders

Let users select icons for custom navigation menus

dashboard_customize
Widget Configuration

Allow dashboard widget customization with icon selection

category
Category Management

Assign visual icons to product or content categories

add_link
Quick Links

Create customizable quick link widgets (see App Widgets page)

badge
User Badges

Let admins create custom badges with icons and colors

wysiwyg
CMS Blocks

Add icon selection to content blocks in your CMS