56 lines
3.5 KiB
PHP
56 lines
3.5 KiB
PHP
@props(['closeWithX' => false, 'fullScreen' => false])
|
|
<div x-data="{
|
|
slideOverOpen: false
|
|
}" class="relative w-auto h-auto" {{ $attributes }}
|
|
>
|
|
{{ $slot }}
|
|
<template x-teleport="body">
|
|
<div x-show="slideOverOpen" @if (!$closeWithX) @keydown.window.escape="slideOverOpen=false" @endif
|
|
class="relative z-[99] ">
|
|
<div x-show="slideOverOpen" @if (!$closeWithX) @click="slideOverOpen = false" @endif
|
|
class="fixed inset-0 dark:bg-black/60 backdrop-blur-sm"></div>
|
|
<div class="fixed inset-0 overflow-hidden">
|
|
<div class="absolute inset-0 overflow-hidden ">
|
|
<div class="fixed inset-y-0 right-0 flex max-w-full pl-10">
|
|
<div x-show="slideOverOpen"
|
|
@if (!$closeWithX) @click.away="slideOverOpen = false" @endif
|
|
x-transition:enter="transform transition ease-in-out duration-100 sm:duration-300"
|
|
x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0"
|
|
x-transition:leave="transform transition ease-in-out duration-100 sm:duration-300"
|
|
x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full"
|
|
@class([
|
|
'max-w-xl w-screen' => !$fullScreen,
|
|
'max-w-4xl w-screen' => $fullScreen,
|
|
])>
|
|
<div
|
|
class="flex flex-col h-full py-6 overflow-hidden border-l shadow-lg bg-neutral-50 dark:bg-base dark:border-neutral-800 border-neutral-200">
|
|
<div class="px-4 pb-4 sm:px-5">
|
|
<div class="flex items-start justify-between pb-1">
|
|
<h2 class="text-2xl leading-6" id="slide-over-title">
|
|
{{ $title }}</h2>
|
|
<div class="flex items-center h-auto ml-3">
|
|
<button class="icon" @click="slideOverOpen=false"
|
|
class="absolute top-0 right-0 z-30 flex items-center justify-center px-3 py-2 mt-4 mr-2 space-x-1 text-xs font-normal border-none rounded">
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-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"></path>
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relative flex-1 px-4 mt-5 overflow-auto sm:px-5 scrollbar">
|
|
<div class="absolute inset-0 px-4 sm:px-5">
|
|
{{ $content }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</div>
|