@props([ 'pageKey' => null, 'title' => null, 'description' => null, ]) @php $settings = \App\Models\SiteSettings::current(); $meta = $pageKey ? \App\Models\SeoMeta::forPage($pageKey) : null; $orgName = $settings->org_name ?: 'Saint Yachting'; $resolvedTitle = $meta?->title ?: ($title ? $title.' · '.$orgName : $orgName.' · Private Yacht Charters in Mykonos'); $resolvedDescription = $meta?->meta_description ?: ($description ?: 'Private luxury yacht charters across Mykonos, Delos and the Cyclades.'); $canonical = $meta?->canonical ?: url()->current(); $ogImage = $meta?->og_image ?: $settings->default_og_image; if ($ogImage && ! \Illuminate\Support\Str::startsWith($ogImage, ['http://', 'https://'])) { $ogImage = asset($ogImage); } $twitterCard = $meta?->twitter_card ?: 'summary_large_image'; $noindex = (bool) ($meta?->noindex ?? false); // Admin can override the structured data per page; otherwise auto-generate it. $jsonLd = $meta?->json_ld ?: \App\Support\StructuredData::for($pageKey, $settings); @endphp {{ $resolvedTitle }} {{-- Open Graph --}} @if ($ogImage) @endif {{-- Twitter --}} @if ($ogImage) @endif @if ($jsonLd) @endif