# Make
The Offcanvas decorator allows you to create sidebars.
You can create Offcanvas using the static make()
method.
make(Closure|string $title, Closure|View|string $content, Closure|string $toggler = '', Closure|string|null $asyncUrl = '')
$title
- sidebar title,$content
- sidebar content,$toggler
- title for button,$asyncUrl
- url for asynchronous content.
use MoonShine\Components\FormBuilder;use MoonShine\Components\Offcanvas; use MoonShine\Fields\Password; //... public function components(): array{ return [ Offcanvas::make( 'Confirm', static fn() => FormBuilder::make(route('password.confirm')) ->async() ->fields([ Password::make('Password')->eye(), ]) ->submit('Confirm'), 'Show canvas' ) ];} //...
Confirm
# Events
You can show or hide a sidebar not from a component through javascript events.
To have access to events, you must set a unique name for the sidebar using the name()
method.
use MoonShine\Components\Offcanvas; //... public function components(): array{ return [ Offcanvas::make( 'Title', 'Content...' ) ->name('my-canvas') ];} //...
The sidebar event can be triggered using the ActionButton component.
use MoonShine\Components\Offcanvas; //... public function components(): array{ return [ Offcanvas::make( 'Title', 'Content...', ) ->name('my-canvas'), ActionButton::make( 'Show canvas', '/endpoint' ) ->async(events: ['offcanvas-toggled-my-canvas']) ];} //...
Events can be triggered using native javascript methods:
document.addEventListener("DOMContentLoaded", () => { this.dispatchEvent(new Event("offcanvas-toggled-my-canvas"))})
Or use the magic $dispatch()
method from Alpine.js:
this.$dispatch('offcanvas-toggled-my-canvas')
More detailed information can be obtained from the official Alpine.js documentation in the sections Events and $dispatch .
# Default state
The open()
method allows you to show the sidebar when the page loads.
open(Closure|bool|null $condition = null)
use MoonShine\Components\Offcanvas; //... public function components(): array{ return [ Offcanvas::make('Title', 'Content...', 'Show canvas') ->open() ];} //...
By default, the sidebar will be hidden when the page loads.
# Position
By default, the sidebar is located on the right side of the screen,
the left()
method allows you to position the panel on the left side.
left(Closure|bool|null $condition = null)
use MoonShine\Components\Offcanvas; //... public function components(): array{ return [ Offcanvas::make('Title', 'Content...', 'Show canvas') ->left() ];} //...
Title
# Toggler attributes
The toggler Attributes()
method allows you to set additional attributes for the $toggler
toggle.
togglerAttributes(array $attributes)
use MoonShine\Components\Offcanvas; //... public function components(): array{ return [ Offcanvas::make('Title', 'Content...', 'Show canvas') ->togglerAttributes([ 'class' => 'mt-2' ]), ];} //...