55 lines
2.1 KiB
PHP
55 lines
2.1 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="{{ app()->getLocale() }}" data-theme="{{ auth()->user()?->theme ?? 'dark' }}">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
|
<title>{{ ($title ?? '') ? $title . ' — Nimuli' : 'Nimuli' }}</title>
|
|
|
|
<!-- Fonts -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
|
|
@vite(['resources/js/app.js'])
|
|
@livewireStyles
|
|
</head>
|
|
<body class="bg-bg text-t1 font-sans antialiased" x-data>
|
|
<div class="flex h-screen overflow-hidden">
|
|
<!-- Mobile Sidebar Overlay -->
|
|
<div
|
|
class="fixed inset-0 z-20 bg-black/60 md:hidden"
|
|
x-show="$store.sidebar?.open"
|
|
x-transition:enter="transition ease-out duration-200"
|
|
x-transition:enter-start="opacity-0"
|
|
x-transition:enter-end="opacity-100"
|
|
x-transition:leave="transition ease-in duration-150"
|
|
x-transition:leave-start="opacity-100"
|
|
x-transition:leave-end="opacity-0"
|
|
@click="$store.sidebar.open = false"
|
|
aria-hidden="true"
|
|
></div>
|
|
|
|
<!-- Sidebar: always visible on md+, drawer on mobile -->
|
|
<div
|
|
class="fixed inset-y-0 left-0 z-30 md:relative md:z-auto md:flex md:flex-shrink-0 transition-transform duration-200 ease-in-out"
|
|
:class="$store.sidebar?.open ? 'translate-x-0' : '-translate-x-full md:translate-x-0'"
|
|
>
|
|
<x-sidebar />
|
|
</div>
|
|
|
|
<!-- Main Area -->
|
|
<div class="flex-1 flex flex-col overflow-hidden min-w-0">
|
|
<x-topbar :title="$title ?? ''" />
|
|
|
|
<main class="flex-1 overflow-y-auto p-6">
|
|
{{ $slot }}
|
|
</main>
|
|
</div>
|
|
</div>
|
|
|
|
<x-modal-container />
|
|
@livewireScripts
|
|
</body>
|
|
</html>
|