lernschiff/resources/views/vendor/wire-elements-modal/modal.blade.php

58 lines
2.3 KiB
PHP

<div>
@isset($jsPath)
<script>{!! file_get_contents($jsPath) !!}</script>
@endisset
@isset($cssPath)
<style>{!! file_get_contents($cssPath) !!}</style>
@endisset
<div
x-data="LivewireUIModal()"
x-on:close.stop="setShowPropertyTo(false)"
x-on:keydown.escape.window="show && closeModalOnEscape()"
x-show="show"
class="fixed inset-0 z-50 overflow-y-auto"
style="display: none;"
data-testid="modal-root"
>
{{-- Backdrop --}}
<div
x-show="show"
x-on:click="closeModalOnClickAway()"
x-transition:enter="ease-out duration-200"
x-transition:enter-start="opacity-0"
x-transition:enter-end="opacity-100"
x-transition:leave="ease-in duration-150"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
class="fixed inset-0 bg-ink-1/60 backdrop-blur-sm"
></div>
{{-- Centered modal container --}}
<div class="fixed inset-0 flex items-center justify-center p-4 pointer-events-none">
<div
x-show="show && showActiveComponent"
x-transition:enter="ease-out duration-200"
x-transition:enter-start="opacity-0 scale-95"
x-transition:enter-end="opacity-100 scale-100"
x-transition:leave="ease-in duration-150"
x-transition:leave-start="opacity-100 scale-100"
x-transition:leave-end="opacity-0 scale-95"
x-bind:class="modalWidth"
class="relative w-full bg-bg-soft rounded-xl shadow-md border border-line max-h-[90vh] overflow-y-auto pointer-events-auto"
id="modal-container"
x-trap.noscroll.inert="show && showActiveComponent"
aria-modal="true"
role="dialog"
>
@forelse($components as $id => $component)
<div x-show.immediate="activeComponent == '{{ $id }}'" x-ref="{{ $id }}" wire:key="{{ $id }}">
@livewire($component['name'], $component['arguments'], key($id))
</div>
@empty
@endforelse
</div>
</div>
</div>
</div>