@if((isset($noindex) && $noindex) || View::hasSection('noindex')) @else @endif @yield('title', t('site-title', 'Astro Sabio | Carta Astral y Astrología Profesional')) @if (empty(trim($__env->yieldPushContent('schema')))) @else @stack('schema') @endif @stack('head') @if (Route::is('login') || Route::is('register') || Route::is('password.*') || Route::is('two-factor.*') || Route::is('session-expired')) @endif @if (Route::is('panel*')) @endif @stack('styles') @php $userTheme = 'light'; if (Auth::check() && Auth::user()->theme_preference === 'dark') { $userTheme = 'dark'; } @endphp @php $giftModalGrant = null; if (Auth::check() && request()->routeIs('panel')) { try { $giftService = app(\App\Services\GiftGrantService::class); $giftService->applyDueGifts(Auth::user()); $giftService->expireEndedGifts(Auth::user()); $giftModalGrant = $giftService->getLatestUnseenAppliedGift(Auth::user()); if ($giftModalGrant) { $giftModalGrant->update(['seen_at' => now()]); } } catch (\Throwable $e) { $giftModalGrant = null; } } @endphp Saltar al contenido @php $errorStatusCode = isset($exception) && method_exists($exception, 'getStatusCode') ? (int) $exception->getStatusCode() : null; $hideHeaderForErrorPages = in_array($errorStatusCode, [404, 419, 429, 49], true); $hideShellForPayments = Route::is('cart.checkout') || Route::is('package.checkout') || Route::is('subscription.checkout') || View::hasSection('no-header'); @endphp @if ($hideShellForPayments || View::hasSection('no-header')) {{-- Checkout / No-header: header oculto --}} @elseif (Route::is('profile.show') || Route::is('mycharts.index') || Route::is('cart.show') || Route::is('profile.balance') || Route::is('profile.ai_comments') || Route::is('addresses.index') || Route::is('my-orders.*')) @include('component.frontend.panel-header') @elseif ($hideHeaderForErrorPages || Route::is('login') || Route::is('register') || Route::is('session-expired') || Route::is('password.request') || Route::is('password.reset') || Route::is('two-factor.verify')) {{-- Auth minimal flow --}} @else @include('component.frontend.header') @endif {{-- Global Toast Notifications --}}
@if (session('success')) @endif @if (session('error')) @endif @if (session('warning')) @endif
@yield('content') @php $bodyClass = trim($__env->yieldContent('body-class')); $isHomePage = str_contains(" {$bodyClass} ", ' home-page '); @endphp @if (Route::is('panel*') || Route::is('profile*') || Route::is('mycharts*') || Route::is('package.checkout') || Route::is('subscription.checkout') || View::hasSection('no-footer') || $hideShellForPayments) {{-- Panel, profile, and checkout footer hidden --}} @else @include('component.frontend.footer') @endif @if ( !$isHomePage && !Route::is('login') && !Route::is('register') && !Route::is('session-expired') && !Route::is('password.request') && !Route::is('password.reset') && !Route::is('two-factor.verify') && !Route::is('subscription.checkout') && !Route::is('package.checkout') && !$hideShellForPayments && !View::hasSection('no-header')) @include('frontend.ai-assistant.chat-widget') @endif @if ($giftModalGrant) @php $giftParts = []; if (($giftModalGrant->chat_words ?? 0) > 0) { $giftParts[] = number_format($giftModalGrant->chat_words) . ' ' . t('token', 'tokens'); } if (($giftModalGrant->report_credits ?? 0) > 0) { $giftParts[] = $giftModalGrant->report_credits . ' ' . t('report-limit-modal-title', 'crédito de informe'); } if (($giftModalGrant->map_credits ?? 0) > 0) { $giftParts[] = $giftModalGrant->map_credits . ' ' . t('map-credit-modal-title', 'crédito de carta'); } @endphp @endif {{-- Cursor Trail Efekti (desktop only) --}}