# Основы
Для создания модальных окон используется компонент 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>