Основы
Для создания модальных окон используется компонент moonshine::modal
.
<x-moonshine::modal title="Title"> <div> Content... </div> <x-slot name="outerHtml"> <x-moonshine::link-button @click.prevent="toggleModal"> Open modal </x-moonshine::link-button> </x-slot></x-moonshine::modal>
Широкое окно
Параметр wide
позволяет модальным окнам заполнять всю ширину.
<x-moonshine::modal wide title="Title"> <div> Content... </div> <x-slot name="outerHtml"> <x-moonshine::link-button @click.prevent="toggleModal"> Open wide modal </x-moonshine::link-button> </x-slot></x-moonshine::modal>
Автоматическая ширина
Параметр auto
позволяет модальным окнам занимать ширину на основе содержимого.
<x-moonshine::modal auto title="Title"> <div> Content... </div> <x-slot name="outerHtml"> <x-moonshine::link-button @click.prevent="toggleModal"> Open auto modal </x-moonshine::link-button> </x-slot></x-moonshine::modal>
Закрытие окна
По умолчанию модальные окна закрываются при клике вне области окна. Вы можете переопределить это поведение с помощью параметра closeOutside
.
<x-moonshine::modal :closeOutside="false" title="Title"> <div> Content... </div> <x-slot name="outerHtml"> <x-moonshine::link-button @click.prevent="toggleModal"> Open modal </x-moonshine::link-button> </x-slot></x-moonshine::modal>
Асинхронный контент
Компонент moonshine::modal
позволяет загружать контент асинхронно.
<x-moonshine::modal async :asyncUrl="route('async')" title="Title"> <x-slot name="outerHtml"> <x-moonshine::link-button @click.prevent="toggleModal"> Open async modal </x-moonshine::link-button> </x-slot></x-moonshine::modal>