@php $locale = current_locale(); $fallbackSlides = [ [ 'type' => 'image', 'src' => 'c610-s.jpg', 'poster' => null, 'subtitle' => match($locale) { 'en' => 'Thoughtful superiority', 'ru' => 'Продуманное превосходство', default => 'Düşünülmüş üstünlük', }, 'title' => match($locale) { 'en' => "BERNESSO — premium\nhome appliances", 'ru' => "BERNESSO — премиальная\nбытовая техника", default => "BERNESSO — premium sinif\n məişət texnikası", }, 'cta' => match($locale) { 'en' => 'Go to catalog', 'ru' => 'Перейти в каталог', default => 'Kataloqa keç', }, 'link' => localized_route('products.index'), 'external' => false, ], [ 'type' => 'image', 'src' => 'k810-new.jpg', 'poster' => null, 'subtitle' => match($locale) { 'en' => 'Collection 2026', 'ru' => 'Коллекция 2026', default => 'Kolleksiya 2026', }, 'title' => match($locale) { 'en' => "Discover\nnew products", 'ru' => "Познакомьтесь с\nновинками", default => "Yeni məhsullar\nilə tanış olun", }, 'cta' => match($locale) { 'en' => 'New arrivals', 'ru' => 'Новинки', default => 'Yeni gələnlər', }, 'link' => localized_route('products.index'), 'external' => false, ], [ 'type' => 'image', 'src' => '1_1524021.png', 'poster' => null, 'subtitle' => match($locale) { 'en' => 'Kitchen', 'ru' => 'Кухня', default => 'Mətbəx', }, 'title' => match($locale) { 'en' => "Premium kitchen\nappliances", 'ru' => "Премиальная кухонная\nтехника", default => "Premium mətbəx\ntexnikası", }, 'cta' => match($locale) { 'en' => 'Kitchen appliances', 'ru' => 'Кухонная техника', default => 'Mətbəx texnikası', }, 'link' => localized_route('categories.show', 'metbex-texnikasi'), 'external' => false, ], [ 'type' => 'image', 'src' => 'v851-new.jpg', 'poster' => null, 'subtitle' => match($locale) { 'en' => 'Comfort', 'ru' => 'Комфорт', default => 'Rahatlıq', }, 'title' => match($locale) { 'en' => "Essential home\nappliances", 'ru' => "Необходимая техника\nдля дома", default => "Ev üçün zəruri\ntexnika", }, 'cta' => match($locale) { 'en' => 'Home appliances', 'ru' => 'Техника для дома', default => 'Ev üçün texnika', }, 'link' => localized_route('categories.show', 'ev-ucun-texnika'), 'external' => false, ], ]; if (!isset($slides) || $slides->isEmpty()) { $slides = collect(); } else { $slides = $slides->map(function ($slide) { $hasMediaUrl = !empty($slide->media_url); $mediaPath = $hasMediaUrl ? strtolower((string) parse_url($slide->media_url, PHP_URL_PATH)) : ''; $urlLooksLikeVideo = $hasMediaUrl && ( str_ends_with($mediaPath, '.m3u8') || str_ends_with($mediaPath, '.mp4') || str_ends_with($mediaPath, '.webm') || str_ends_with($mediaPath, '.ogg') ); $isVideo = $hasMediaUrl ? ($slide->media_url_type === 'video' || $urlLooksLikeVideo) : ($slide->type === 'video'); $src = $hasMediaUrl ? $slide->media_url : ($isVideo ? $slide->desktop_video : $slide->desktop_image); $mobileSrc = $hasMediaUrl ? null : ($isVideo ? $slide->mobile_video : $slide->mobile_image); return [ 'type' => $isVideo ? 'video' : 'image', 'src' => $src, 'mobile_src' => $mobileSrc, 'poster' => $slide->poster_image, 'external' => $hasMediaUrl, 'subtitle' => $slide->subtitle, 'title' => $slide->title, 'cta' => $slide->button_text ?: __('view_more'), 'link' => $slide->button_link ? str_replace('{locale}', current_locale(), $slide->button_link) : localized_route('products.index'), ]; }); } $scrollText = match($locale) { 'en' => 'Scroll down', 'ru' => 'Прокрутите вниз', default => 'Aşağı sürüşdürün', }; $youtubeId = function ($url) { if (preg_match('/(?:youtube\.com\/(?:[^\/]+\/[^\/]+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i', $url, $m)) { return $m[1]; } return null; }; $vimeoId = function ($url) { if (preg_match('/vimeo\.com\/(?:video\/)?(\d+)/i', $url, $m)) { return $m[1]; } return null; }; @endphp @if($slides->isNotEmpty()) @foreach($slides as $index => $slide) {{-- Background media --}} @if($slide['type'] === 'video') @php $ytId = $slide['external'] ? $youtubeId($slide['src']) : null; $vmId = $slide['external'] && !$ytId ? $vimeoId($slide['src']) : null; @endphp @if($ytId) @elseif($vmId) @else @if(!$slide['external'] && !empty($slide['mobile_src'])) @endif @if(!str_ends_with(strtolower((string) parse_url($slide['src'], PHP_URL_PATH)), '.m3u8')) @endif @endif @else @if(!$slide['external'] && !empty($slide['mobile_src'])) @endif @endif {{-- Whole-slide link overlay --}} @if($slide['link']) @endif {{-- Content --}} {!! nl2br(e($slide['title'])) !!} @endforeach @endif {{-- GSAP + ScrollTrigger (CDN fallback until npm build is run) --}} @if ($slides->isNotEmpty() && !file_exists(public_path('build/manifest.json')) && !file_exists(public_path('hot'))) @endif