Dropdown
Dropdowns plays nice with the Menu component. Under the hood It uses the Alpine's anchor plugin to control the position.
Take a look at Select for value selection.
Basic
<x-dropdown> <x-menu-item title="Archive" icon="o-archive-box" /> <x-menu-item title="Remove" icon="o-trash" /> <x-menu-item title="Restore" icon="o-arrow-path" /></x-dropdown>
Custom Trigger
<x-dropdown> <x-slot:trigger> <x-button icon="o-bell" class="btn-circle btn-outline" /> </x-slot:trigger> <x-menu-item title="Archive" /> <x-menu-item title="Move" /></x-dropdown>
Right alignment
Hello
{{-- Use `right` if dropdown is on right side of screen --}}<x-dropdown label="Hello" class="btn-warning" right> <x-menu-item title="It should align correctly on right side" /> <x-menu-item title="Yes!" /></x-dropdown>
Click propagation
By default, any click closes the dropdown. Just use @click.stop
or wire:click.stop
to prevent this behavior.
Settings
<x-dropdown label="Settings" class="btn-outline"> {{-- By default any click closes dropdown --}} <x-menu-item title="Close after click" /> <x-menu-separator /> {{-- Use `@click.STOP` to stop event propagation --}} <x-menu-item title="Keep open after click" @click.stop="alert('Keep open')" /> {{-- Or `wire:click.stop` --}} <x-menu-item title="Call wire:click" wire:click.stop="delete" /> <x-menu-separator /> <x-menu-item @click.stop=""> <x-checkbox label="Activate" /> </x-menu-item> <x-menu-item @click.stop=""> <x-toggle label="Sleep mode" right /> </x-menu-item></x-dropdown>
Spinner
Settings
<x-dropdown label="Settings" class="btn-outline"> <x-menu-item title="Spinner" wire:click.stop="delete2" spinner="delete2" /> <x-menu-item title="Spinner" wire:click.stop="delete3" spinner="delete3" icon="o-trash" /></x-dropdown>
No anchor
By default, this component works with Alpine's anchor plugin.
If you don't want to use it, just add no-x-anchor
to the dropdown to manually control the position.
Default
Top
Right
<x-dropdown label="Default" no-x-anchor> <x-menu-item title="Hey" /> <x-menu-item title="How are you?" /></x-dropdown> <x-dropdown label="Top" no-x-anchor top> <x-menu-item title="Hey" /> <x-menu-item title="How are you?" /></x-dropdown> <x-dropdown label="Right" no-x-anchor right> <x-menu-item title="Hey" /> <x-menu-item title="It should align correctly on right side?" /></x-dropdown>
maryUI
Sponsor