Components

Dropdown Component

Make

The Dropdown component allows you to create drop-down blocks.

You can create a Dropdown using the static make() method class Dropdown.

make(
?string $title = null,
Closure|string $toggler = '',
Closure|View|string $content = '',
bool $isSearchable = false,
Closure|array $items = [],
string $placement = 'bottom-start'
)
  • $title - title of the dropdown,
  • $toggler - switch,
  • $content - content
  • $isSearchable - search by elements
  • $items - block elements,
  • $placement - location of the dropdown.
use MoonShine\Components\Dropdown;
use MoonShine\Components\Link;
 
Dropdown::make(
title: 'Title',
toggler: 'Click me',
items: [
Link::make('#', 'Link 1'),
Link::make('#', 'Link 2'),
Link::make('#', 'Link 3'),
],
placement: 'top',
)

Toggler

The toggler() method allows you to specify an element that, when clicked, will open Dropdown.

toggler(Closure|string $toggler)
use MoonShine\ActionButtons\ActionButton;
use MoonShine\Components\Dropdown;
 
Dropdown::make(
title: 'Dropdown',
content: fn() => fake()->text()
)
->toggler(fn() => ActionButton::make('Click me'))

Items

The items() method allows you to add items to the dropdown list.

items(Closure|array $items)
use MoonShine\Components\Dropdown;
use MoonShine\Components\Link;
 
Dropdown::make(
toggler: 'Click me',
)
->items([
Link::make('#', 'Link 1'),
Link::make('#', 'Link 2'),
Link::make('#', 'Link 3'),
])

Search item

The searchable() method allows you to add a search for elements in the dropdown.

searchable(Closure|bool|null $condition = null)
use MoonShine\Components\Dropdown;
use MoonShine\Components\Link;
 
Dropdown::make(
toggler: 'Click me',
)
->items([
Link::make('#', 'Link 1'),
Link::make('#', 'Link 2'),
Link::make('#', 'Link 3'),
])
->searchable()

Placeholder

The searchPlaceholder() method allows you to change the placeholder in the search field.

searchPlaceholder(Closure|string $placeholder)
use MoonShine\Components\Dropdown;
use MoonShine\Components\Link;
 
Dropdown::make(
toggler: 'Click me',
)
->items([
Link::make('#', 'Link 1'),
Link::make('#', 'Link 2'),
Link::make('#', 'Link 3'),
])
->searchable()
->searchPlaceholder('Search item')

Content

The content() method allows you to display arbitrary content in the revealing block.

content(Closure|View|string $content)
use MoonShine\Components\Dropdown;
 
Dropdown::make(
toggler: 'Click me',
)
->content(fake()->text())

Placement

The placement() method allows you to change the location of the dropdown.

placement(string $placement)

Available locations:

  • bottom
  • top
  • left
  • right
use MoonShine\Components\Dropdown;
 
Dropdown::make(
toggler: 'Click me',
content: fake()->text(),
)
->placement('right')

Additional location options can be found in the official documentation tippy.js