45 lines
1.9 KiB
PHP
45 lines
1.9 KiB
PHP
|
|
@props(['wire:model'])
|
||
|
|
|
||
|
|
<div x-data="{ open: @entangle($attributes->wire('model')) }" x-show="open" @keydown.escape.window="open = false">
|
||
|
|
<!-- Overlay -->
|
||
|
|
<div x-show="open"
|
||
|
|
x-transition:enter="transition-opacity ease-linear duration-300"
|
||
|
|
x-transition:enter-start="opacity-0"
|
||
|
|
x-transition:enter-end="opacity-100"
|
||
|
|
x-transition:leave="transition-opacity ease-linear duration-300"
|
||
|
|
x-transition:leave-start="opacity-100"
|
||
|
|
x-transition:leave-end="opacity-0"
|
||
|
|
class="fixed inset-0 bg-gray-900/80 z-40"
|
||
|
|
@click="open = false"></div>
|
||
|
|
|
||
|
|
<!-- Slide-over panel -->
|
||
|
|
<div x-show="open"
|
||
|
|
x-transition:enter="transform transition ease-in-out duration-500"
|
||
|
|
x-transition:enter-start="translate-x-full"
|
||
|
|
x-transition:enter-end="translate-x-0"
|
||
|
|
x-transition:leave="transform transition ease-in-out duration-500"
|
||
|
|
x-transition:leave-start="translate-x-0"
|
||
|
|
x-transition:leave-end="translate-x-full"
|
||
|
|
class="fixed inset-y-0 right-0 z-50 w-full max-w-md bg-white shadow-xl">
|
||
|
|
|
||
|
|
<div class="flex h-full flex-col overflow-y-scroll">
|
||
|
|
<!-- Close button -->
|
||
|
|
<div class="px-4 py-6 sm:px-6">
|
||
|
|
<button @click="open = false"
|
||
|
|
type="button"
|
||
|
|
class="rounded-md text-gray-400 hover:text-gray-500">
|
||
|
|
<span class="sr-only">Close panel</span>
|
||
|
|
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
|
||
|
|
</svg>
|
||
|
|
</button>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<!-- Content -->
|
||
|
|
<div class="flex-1 px-4 py-6 sm:px-6">
|
||
|
|
{{ $slot }}
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|