



Gorgeous Laravel Blade UI Components
made for Livewire 3 and styled around daisyUI + Tailwind
made for Livewire 3 and styled around daisyUI + Tailwind
Amazing components.
Delightful demos.
Lists
@php $users = App\Models\User::take(3)->get();@endphp @foreach($users as $user) <x-list-item :item="$user" sub-value="username" link="/docs/installation"> <x-slot:actions> <x-button icon="o-trash" wire:click="delete({{ $user->id }})" spinner /> </x-slot:actions> </x-list-item>@endforeach
Multi selection
Users - server side
No results found.
Abigale
Adrianna
Aletha
Ally
Search happens on server side
@php $users = $this->users; @endphp <x-choices label="Users - server side" wire:model="selected_users" :options="$users" icon="s-bolt" hint="Search happens on server side" searchable />
No results found.
Amieland
Port Dawnview
Ilianaport
Willshire
East Helmer
Mayertbury
South Maurine
Lake Chesleyton
East Concepcionshire
North Maximoville
Theresemouth
West Buford
Stehrchester
North Davonte
West Josephbury
Davismouth
New Kalliechester
Petramouth
Hicklechester
South Madisyn
Lake Jerome
Keonchester
South Reggie
Stoltenbergshire
Katherynton
South Alysonbury
North Autumnborough
Muellerview
Waelchihaven
Stammview
North Pablo
Lake Emmitt
West Devan
Francescoport
Harleyburgh
West Emmaleeton
Rippinborough
Coleland
Lake June
Lake Brock
Kiarraton
Lake Joanyborough
North Maximemouth
East Careybury
Gerlachmouth
New Emilianoborough
Gottliebmouth
Elzaberg
Port Flavio
East Eliane
East Cooperside
West Margotland
Nataliechester
Russelburgh
Lake Dominiquemouth
South Alainaburgh
Lake Kari
Borerburgh
Jeanneberg
West Aubreyland
Lake Peteberg
Lake Roscoe
East Joelburgh
Unaview
Walterbury
Harberberg
South Amaraberg
West Rozellastad
New Oliverstad
Port Micaelaport
Port Paolo
Rippinport
Port Letitiaville
Koelpinfort
Heathcoteside
Ritchieborough
North Sheldonton
Sipesbury
South Damion
Josieberg
North Sienna
Donatostad
Port Thelmatown
Selinaberg
West Stanley
Donburgh
Port Madelynn
Jedediahhaven
East Mustafa
West Norvalfurt
Dachbury
Ericaview
Lake Goldenton
Evemouth
Candelarioberg
New Davonte
Hoppehaven
Bradtkeside
Gerholdshire
Port Kaylin
Search happens on frontend side
@php $cities = App\Models\City::all(); @endphp <x-choices-offline label="Cities - frontend side" wire:model="selected_cities" :options="$cities" icon="s-bolt-slash" hint="Search happens on frontend side" searchable />
Forms.
<x-form wire:submit="save"> <x-input label="Name" wire:model="name" icon="o-user" placeholder="Hello" /> <x-input label="Amount" wire:model="amount" prefix="USD" money /> <x-slot:actions> <x-button label="Cancel" /> <x-button label="Save" class="btn-primary" type="submit" spinner="save" /> </x-slot:actions></x-form>
Drawer & Modal
Hello!
Click outside, on `CANCEL` button or `CLOSE` icon to close.
@php $showDrawer = $this->showDrawer; @endphp <x-button label="Open Drawer" wire:click="$toggle('showDrawer')" class="btn-primary btn-block" /> <x-drawer wire:model="showDrawer" title="Hello!" with-close-button separator class="w-11/12 lg:w-1/3"> <div>Click outside, on `CANCEL` button or `CLOSE` icon to close.</div> <x-slot:actions> <x-button label="Cancel" wire:click="$toggle('showDrawer')" /> <x-button label="Confirm" class="btn-primary" /> </x-slot:actions></x-drawer>
@php $myModal = $this->myModal; @endphp <x-button label="Open Modal" wire:click="$toggle('myModal')" class="btn-warning btn-block" /> <x-modal wire:model="myModal" title="Hello" subtitle="Livewire example" separator> <div>Click outside, press `ESC` or click `CANCEL` button to close.</div> <x-slot:actions> <x-button label="Cancel" wire:click="$toggle('myModal')" /> <x-button label="Confirm" class="btn-primary" /> </x-slot:actions></x-modal>
Easy Tables.
# | City | |
---|---|---|
1 | Mireille | Amieland |
2 | Rafaela | Port Dawnview |
3 | Grayce | Ilianaport |
4 | Ilene | Willshire |
@php use App\Models\User; $users = User::with('city')->take(4)->get(); $headers = [ ['key' => 'id', 'label' => '#', 'class' => 'w-1 bg-yellow-500/20'], # <-- CSS ['key' => 'name', 'label' => 'Nice Name', 'class' => 'hidden lg:table-cell'], # <-- responsive ['key' => 'city.name', 'label' => 'City'] # <-- nested object ];@endphp <x-table :rows="$users" :headers="$headers" striped />
Full Tables.
# | Nice Name | ||||
---|---|---|---|---|---|
91 | Abigale |
mlang
|
Dachbury | ||
Hello, Abigale!
|
|||||
5 | Adrianna |
brad00
|
East Helmer | ||
Hello, Adrianna!
|
|||||
52 | Aletha |
kovacek.griffin
|
West Margotland | ||
Hello, Aletha!
|
@php use App\Models\User; // public array $expanded = []; // public array $sortBy = ['column' => 'name', 'direction' => 'asc']; $sortBy = $this->sortBy; $expanded = $this->expanded; $users = User::with('city') ->orderBy(...array_values($this->sortBy)) ->paginate(3); $headers = [ ['key' => 'id', 'label' => '#', 'class' => 'w-1'], # <-- CSS ['key' => 'name', 'label' => 'Nice Name'], ['key' => 'username', 'label' => 'Username', 'class' => 'hidden lg:table-cell'], # <--- responsive ['key' => 'city.name', 'label' => 'City', 'sortable' => false, 'class' => 'hidden lg:table-cell'] # <-- nested object ]; $cell_decoration = [ 'name' => [ 'bg-yellow-500/20 italic' => fn(User $user) => Str::of($user->name)->startsWith('A') ] ];@endphp <x-table wire:model="expanded" :headers="$headers" :rows="$users" :cell-decoration="$cell_decoration" :sort-by="$sortBy" link="/docs/components/table?user_id={id}&city={city.name}" {{-- Make rows clickables --}} expandable with-pagination> {{-- Expansion slot --}} @scope('expansion', $user) <div class="border border-dashed rounded-lg p-5 "> Hello, {{ $user->name }}! </div> @endscope {{-- Actions Slot --}} @scope('actions', $user) <x-button icon="o-trash" wire:click="delete({{ $user->id }})" spinner /> @endscope {{-- Cell scope --}} @scope('cell_username', $user) <x-badge :value="$user->username" class="badge-primary" /> @endscope</x-table>
And more ...
LET`S DO IT