159 lines
5.2 KiB
PHP
159 lines
5.2 KiB
PHP
@props([
|
|
'livewire' => null,
|
|
])
|
|
|
|
@php
|
|
$renderHookScopes = $livewire?->getRenderHookScopes();
|
|
@endphp
|
|
|
|
<!DOCTYPE html>
|
|
<html
|
|
lang="{{ str_replace('_', '-', app()->getLocale()) }}"
|
|
dir="{{ __('filament-panels::layout.direction') ?? 'ltr' }}"
|
|
@class([
|
|
'fi',
|
|
'dark' => filament()->hasDarkModeForced(),
|
|
])
|
|
>
|
|
<head>
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::HEAD_START, scopes: $renderHookScopes) }}
|
|
|
|
<meta charset="utf-8" />
|
|
<meta name="csrf-token" content="{{ csrf_token() }}" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
@if ($favicon = filament()->getFavicon())
|
|
<link rel="icon" href="{{ $favicon }}" />
|
|
@endif
|
|
|
|
@php
|
|
$title = trim(strip_tags($livewire?->getTitle() ?? ''));
|
|
$brandName = trim(strip_tags(filament()->getBrandName()));
|
|
@endphp
|
|
|
|
<title>
|
|
{{ filled($title) ? "{$title} - " : null }} {{ $brandName }}
|
|
</title>
|
|
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::STYLES_BEFORE, scopes: $renderHookScopes) }}
|
|
|
|
<style>
|
|
[x-cloak=''],
|
|
[x-cloak='x-cloak'],
|
|
[x-cloak='1'] {
|
|
display: none !important;
|
|
}
|
|
|
|
[x-cloak='inline-flex'] {
|
|
display: inline-flex !important;
|
|
}
|
|
|
|
@media (max-width: 1023px) {
|
|
[x-cloak='-lg'] {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
[x-cloak='lg'] {
|
|
display: none !important;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
@filamentStyles
|
|
|
|
{{ filament()->getTheme()->getHtml() }}
|
|
{{ filament()->getFontHtml() }}
|
|
{{ filament()->getMonoFontHtml() }}
|
|
{{ filament()->getSerifFontHtml() }}
|
|
|
|
<style>
|
|
:root {
|
|
--font-family: '{!! filament()->getFontFamily() !!}';
|
|
--mono-font-family: '{!! filament()->getMonoFontFamily() !!}';
|
|
--serif-font-family: '{!! filament()->getSerifFontFamily() !!}';
|
|
--sidebar-width: {{ filament()->getSidebarWidth() }};
|
|
--collapsed-sidebar-width: {{ filament()->getCollapsedSidebarWidth() }};
|
|
--default-theme-mode: {{ filament()->getDefaultThemeMode()->value }};
|
|
}
|
|
</style>
|
|
|
|
@stack('styles')
|
|
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::STYLES_AFTER, scopes: $renderHookScopes) }}
|
|
|
|
@if (! filament()->hasDarkMode())
|
|
<script>
|
|
localStorage.setItem('theme', 'light')
|
|
</script>
|
|
@elseif (filament()->hasDarkModeForced())
|
|
<script>
|
|
localStorage.setItem('theme', 'dark')
|
|
</script>
|
|
@else
|
|
<script>
|
|
const loadDarkMode = () => {
|
|
window.theme = localStorage.getItem('theme') ?? @js(filament()->getDefaultThemeMode()->value)
|
|
|
|
if (
|
|
window.theme === 'dark' ||
|
|
(window.theme === 'system' &&
|
|
window.matchMedia('(prefers-color-scheme: dark)')
|
|
.matches)
|
|
) {
|
|
document.documentElement.classList.add('dark')
|
|
}
|
|
}
|
|
|
|
loadDarkMode()
|
|
|
|
document.addEventListener('livewire:navigated', loadDarkMode)
|
|
</script>
|
|
@endif
|
|
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::HEAD_END, scopes: $renderHookScopes) }}
|
|
</head>
|
|
|
|
<body
|
|
{{
|
|
$attributes
|
|
->merge($livewire?->getExtraBodyAttributes() ?? [], escape: false)
|
|
->class([
|
|
'fi-body',
|
|
'fi-panel-' . filament()->getId(),
|
|
])
|
|
}}
|
|
>
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::BODY_START, scopes: $renderHookScopes) }}
|
|
|
|
{{ $slot }}
|
|
|
|
@livewire(Filament\Livewire\Notifications::class)
|
|
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::SCRIPTS_BEFORE, scopes: $renderHookScopes) }}
|
|
|
|
@filamentScripts(withCore: true)
|
|
|
|
@if (filament()->hasBroadcasting() && config('filament.broadcasting.echo'))
|
|
<script data-navigate-once>
|
|
window.Echo = new window.EchoFactory(@js(config('filament.broadcasting.echo')))
|
|
|
|
window.dispatchEvent(new CustomEvent('EchoLoaded'))
|
|
</script>
|
|
@endif
|
|
|
|
@if (filament()->hasDarkMode() && (! filament()->hasDarkModeForced()))
|
|
<script>
|
|
loadDarkMode()
|
|
</script>
|
|
@endif
|
|
|
|
@stack('scripts')
|
|
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::SCRIPTS_AFTER, scopes: $renderHookScopes) }}
|
|
|
|
{{ \Filament\Support\Facades\FilamentView::renderHook(\Filament\View\PanelsRenderHook::BODY_END, scopes: $renderHookScopes) }}
|
|
</body>
|
|
</html>
|