Files
amare/resources/views/layouts/public.blade.php
manoel freitas ce90cedb18 Merge remote-tracking branch 'origin/main' into feature/daisyui
# Conflicts:
#	resources/views/components/home/final-cta.blade.php
#	resources/views/components/home/hero.blade.php
#	resources/views/layouts/public.blade.php
2026-08-11 22:45:04 -03:00

146 lines
7.1 KiB
PHP

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" data-theme="amare">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light">
<meta name="theme-color" content="#FBF9F4">
<link rel="icon" href="{{ asset('favicon.svg') }}" type="image/svg+xml">
<title>{{ $pageMeta->title }}</title>
<x-seo.meta :page-meta="$pageMeta" />
@php
$origin = static function (string $url): ?string {
$parts = parse_url($url);
if (! is_array($parts) || ! isset($parts['scheme'], $parts['host'])) {
return null;
}
return $parts['scheme'].'://'.$parts['host'].(isset($parts['port']) ? ':'.$parts['port'] : '');
};
$r2Origin = $origin((string) config('filesystems.disks.r2.url'));
$siteOrigin = $origin((string) config('app.url'));
@endphp
@if (\App\Support\PublicImageUploadRules::disk() === 'r2' && $r2Origin !== null && $r2Origin !== $siteOrigin)
<link rel="preconnect" href="{{ $r2Origin }}" crossorigin>
@endif
<x-fonts />
@vite(['resources/css/app.css', 'resources/js/app.js'])
<noscript>
<style>
.main-nav {
display: flex;
flex-direction: column;
}
@media (min-width: 768px) {
.main-nav {
flex-direction: row;
}
}
.menu-button {
display: none;
}
</style>
</noscript>
</head>
<body class="min-h-screen bg-amare-bg font-serif text-amare-text antialiased">
<a href="#conteudo" class="sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-50 focus:bg-amare-accent focus:px-4 focus:py-2 focus:text-amare-accent-text">
Ir para o conteúdo
</a>
<header class="site-header sticky top-0 z-40 border-b border-amare-border bg-amare-bg/95 backdrop-blur-sm">
<div class="container-amare grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4 md:grid-cols-[1fr_auto_1fr] md:h-[74px] md:py-0">
<nav id="main-nav" class="main-nav order-3 col-span-3 hidden flex-col gap-4 border-t border-amare-border pt-4 md:order-1 md:col-span-1 md:flex md:flex-row md:items-center md:gap-1 md:border-0 md:pt-0" aria-label="Principal" data-main-nav>
<a href="{{ route('home') }}" class="btn btn-ghost min-h-0 px-0 py-3 text-[13px] font-semibold uppercase tracking-[0.08em] text-amare-muted hover:text-amare-accent md:px-3">Início</a>
<a href="{{ route('services.index') }}" class="btn btn-ghost min-h-0 px-0 py-3 text-[13px] font-semibold uppercase tracking-[0.08em] text-amare-muted hover:text-amare-accent md:px-3">Serviços</a>
<a href="{{ route('portfolio.index') }}" class="btn btn-ghost min-h-0 px-0 py-3 text-[13px] font-semibold uppercase tracking-[0.08em] text-amare-muted hover:text-amare-accent md:px-3">Portfólio</a>
<a href="{{ route('about') }}" class="btn btn-ghost min-h-0 px-0 py-3 text-[13px] font-semibold uppercase tracking-[0.08em] text-amare-muted hover:text-amare-accent md:px-3">Amare</a>
<a href="{{ route('briefing') }}" class="btn btn-ghost min-h-0 px-0 py-3 text-[13px] font-semibold uppercase tracking-[0.08em] text-amare-muted hover:text-amare-accent md:hidden">Solicitar proposta</a>
</nav>
<a href="{{ route('home') }}" class="order-1 justify-self-start md:order-2 md:justify-self-center" aria-label="{{ $siteSettings->brand_name }} — página inicial">
<x-brand.logo variant="on-light" class="h-10 w-auto md:h-11" />
</a>
<div class="order-2 flex items-center justify-end gap-3 md:order-3">
<a href="{{ route('briefing') }}" class="btn btn-outline hidden min-h-0 px-6 text-xs font-bold uppercase tracking-[0.09em] md:inline-flex">
Conte seu evento
</a>
</a>
<button
type="button"
class="menu-button btn btn-square btn-ghost border border-amare-border text-amare-text md:hidden"
aria-label="Abrir menu"
aria-controls="main-nav"
aria-expanded="false"
data-menu-button
>
<span class="sr-only">Menu</span>
<span aria-hidden="true" class="flex w-4 flex-col gap-1">
<span class="block h-px w-full bg-current"></span>
<span class="block h-px w-full bg-current"></span>
<span class="block h-px w-full bg-current"></span>
</span>
</button>
</div>
</div>
</header>
<main id="conteudo">
@yield('content')
</main>
<footer class="border-t border-amare-border bg-amare-bg">
@php
$footerSocialLabel = static function (string $network): string {
return match ($network) {
'instagram' => 'Instagram',
'whatsapp' => 'WhatsApp',
'linkedin' => 'LinkedIn',
default => ucfirst($network),
};
};
$footerSocials = collect($siteSettings->social_links ?? [])->filter(static fn ($url) => filled($url));
@endphp
<div class="container-amare flex flex-col gap-8 py-14 md:flex-row md:items-end md:justify-between md:py-[58px]">
<div class="space-y-3">
<x-brand.logo variant="on-light" class="h-10 w-auto" />
<p class="text-sm text-amare-muted">Assessoria &amp; produção de eventos &bull; São Paulo</p>
</div>
<p class="text-sm text-amare-muted md:text-right">
@if ($footerSocials->isEmpty())
Instagram &middot; WhatsApp &middot; E-mail &middot; LinkedIn (quando confirmado)
@else
@foreach ($footerSocials as $network => $url)
<a href="{{ $url }}" class="inline-flex min-h-11 items-center transition-colors hover:text-amare-accent" rel="noopener noreferrer" target="_blank">{{ $footerSocialLabel((string) $network) }}</a>@unless ($loop->last) &nbsp;&middot;&nbsp; @endunless
@endforeach
@endif
</p>
</div>
<div class="border-t border-amare-border">
<div class="container-amare flex flex-col gap-2 py-6 text-sm text-amare-muted md:flex-row md:items-center md:justify-between">
<p>&copy; {{ now()->year }} {{ $siteSettings->brand_name }}. Todos os direitos reservados.</p>
<p>
<a href="{{ route('privacy') }}" class="inline-flex min-h-11 items-center transition-colors hover:text-amare-accent">Política de privacidade</a>
</p>
</div>
</div>
</footer>
@if ($siteSettings->analytics_enabled && filled($siteSettings->analytics_script))
{!! $siteSettings->analytics_script !!}
@endif
</body>
</html>