"use client"; import { motion, AnimatePresence } from "framer-motion"; import { useState, useEffect } from "react"; import type { DemoData } from "@/data/demos"; const fadeUp = { hidden: { opacity: 0, y: 35 }, show: { opacity: 1, y: 0, transition: { duration: 0.75, ease: [0.25, 0.46, 0.45, 0.94] as [number, number, number, number] } }, }; const stagger = { hidden: {}, show: { transition: { staggerChildren: 0.1 } }, }; const translations = { tr: { navBook: "Rezervasyon", navSuites: "Özel Süitler", navExp: "Deneyimler", navRev: "Yorumlar", badge: "BUTİK LÜKS RESORT", heroTail: "sizi bekliyor", heroDesc: "Cal Vestam'da eşsiz bir huzura dalın. Fethiye'nin nefes kesici mavi sırtlarının üzerinde, size özel cam kenarlı sonsuzluk havuzları ve organik zeytin yaprağı masaj terapileri sunuyoruz.", reserveNow: "Rezervasyon Yap", planEscape: "TATİLİ PLANLA", resortServices: "RESORT HİZMETLERİ", checkAvailability: "UYGUNLUK DURUMU", scheduleEscape: "RESORT TATİLİNİZİ PLANLAYIN", scheduleDesc: "Benzersiz deniz manzaralı teras süitinizde yerinizi ayırtmak için tarihlerinizi belirleyin.", checkin: "GİRİŞ TARİHİ", checkout: "ÇIKIŞ TARİHİ", adults: "YETİŞKİN", kids: "ÇOCUK (12 YAŞ ALTI)", guests: "Misafir", kidsLabel: "Çocuk", guarantee: "Rezervasyonlar, giriş esnasında taze toplanmış narenciye kokteyli ikramı ile en iyi fiyat garantisini kilitler.", confirmDetails: "TARİHLERİ ONAYLA", suitesTitle: "TERAS SÜİTLERİ", suitesHeader: "SEÇKİN SÜİTLER", suitesDesc: "Özel dokuma keten serimler, doğal zeytinyağlı sabunlar ve kesintisiz deniz panoraması ile mimari lüksü deneyimleyin.", secureRes: "REZERVASYON YAP →", diaries: "Misafir Defteri", lovedGuests: "LOVED BY GUESTS", lovedDesc: "Seçkin gezginlerin ve küresel mimari yazarlarının Cal Vestam deneyimlerini keşfedin.", vipCoords: "VIP KOORDİNATLAR", conciergeActive: "Resort Concierge Aktif", checkInOutDetails: "Giriş: 15:00 · Çıkış: 11:00", boutiqueLeisures: "BUTİK AYRICALIKLAR", privacyRegs: "Gizlilik Sözleşmesi", termsStay: "Konaklama Şartları", dismiss: "KAPAT", enquiryActive: "BAŞVURU ALINDI", ambassadorActive: "Cal Vestam Concierge Aktif", enquirySuccess: "Akdeniz resort rezervasyon koordinatlarınızı kaydettik. Özel misafir elçimiz giriş işlemlerinizi öncelikli olarak tamamlamak için sizinle iletişime geçecektir. Teşekkürler!", // Suite details suite1Title: "PANORAMİK VESTAM SÜİT", suite1Desc: "Fethiye'nin mavi sırtlarına bakan özel havuzlu balkon ve premium pamuklu yatak tasarımı.", suite2Title: "NARENCİYE BAHÇE SÜİTİ", suite2Desc: "Çevreleyen zeytin ve limon bahçeleriyle entegre, gün ışığıyla dolu ferah konaklama deneyimi.", suite3Title: "AKDENİZ VİLLASI", suite3Desc: "Özel sonsuzluk havuzları, kişisel uşak hizmeti ve gün batımı terasları sunan tam villa kiralama.", // Welcome orchards welcomeTitle: "Karşılama İkramları", welcomeDesc: "MİSAFİRLERİMİZ İÇİN TAZE NARENCİYE KOKTEYLLERİ", }, en: { navBook: "Book stay", navSuites: "Exclusive suites", navExp: "Experiences", navRev: "Guest reviews", badge: "BOUTIQUE LUXURY RESORT", heroTail: "awaits your arrival", heroDesc: "Submerge into sheer tranquility at Cal Vestam. Situated directly above Muğla's gorgeous blue ridges, we stage exclusive glass-edge infinity pools and wellness stone therapy.", reserveNow: "Reserve Now", planEscape: "PLAN ESCAPE", resortServices: "RESORT SERVICES", checkAvailability: "Check availability", scheduleEscape: "SCHEDULE YOUR RESORT ESCAPE", scheduleDesc: "Allocate your exclusive sea-view panoramic terrace suite directly inside our luxury booking engine.", checkin: "CHECK-IN DATE", checkout: "CHECK-OUT DATE", adults: "ADULTS", kids: "KIDS (UNDER 12)", guests: "Guests", kidsLabel: "Kids", guarantee: "Reservations lock in our premium best-rate guarantee with local welcome orchard citrus cocktail packages upon check-in.", confirmDetails: "CONFIRM DETAILS", suitesTitle: "Terrace suites", suitesHeader: "EXCLUSIVE SUITES", suitesDesc: "Experience high-end architecture layered with bespoke linen, local natural olive oil soaps, and floor-to-ceiling sea panoramas.", secureRes: "SECURE RESERVATION →", diaries: "Guest Diaries", lovedGuests: "LOVED BY GUESTS", lovedDesc: "Hear what prominent travelers and global architecture writers experience inside Cal Vestam.", vipCoords: "VIP COORDINATES", conciergeActive: "Concierge 24 Hours Active", checkInOutDetails: "Check In: 3:00 PM · Check Out: 11:00 AM", boutiqueLeisures: "BOUTIQUE LEISURES", privacyRegs: "Privacy Regulations", termsStay: "Terms of Stay", dismiss: "DISMISS", enquiryActive: "ENQUIRY ACTIVE", ambassadorActive: "Cal Vestam Concierge Active", enquirySuccess: "We have registered your Mediterranean resort reservation coordinates. A personal guest ambassador has locked your priority check-in slot. Thank you!", // Suite details suite1Title: "PANORAMIC VESTAM SUITE", suite1Desc: "Private pool balcony looking directly over Fethiye blue ridges with premium cotton layout.", suite2Title: "CITRUS GARDEN SUITE", suite2Desc: "Cozy light-filled suite integrated with surrounding organic welcome olive and lemon orchards.", suite3Title: "MEDITERRANEAN VILLA", suite3Desc: "Executive buyout layout offering private infinity pools, automated concierge, and sunset lounges.", // Welcome orchards welcomeTitle: "Welcome Orchards", welcomeDesc: "CITRUS COCKTAILS FOR GUESTS", } }; export default function HotelTemplate1({ data }: { data: DemoData }) { const { firma, istatistikler = [], hizmetler = [], yorumlar = [] } = data; const [showModal, setShowModal] = useState(false); const [adults, setAdults] = useState(2); const [kids, setKids] = useState(0); const [lang, setLang] = useState<"tr" | "en">("tr"); const [preloader, setPreloader] = useState(true); const t = translations[lang]; // 1. Lenis Smooth Scroll Integration useEffect(() => { let lenis: any; import("@studio-freight/lenis").then(({ default: Lenis }) => { lenis = new Lenis({ duration: 1.2, easing: (t: number) => Math.min(1, 1.001 - Math.pow(2, -10 * t)) }); function raf(time: number) { lenis.raf(time); requestAnimationFrame(raf); } requestAnimationFrame(raf); }); return () => lenis?.destroy(); }, []); // 2. Preloader Curtain Timer useEffect(() => { const timer = setTimeout(() => { setPreloader(false); }, 1500); return () => clearTimeout(timer); }, []); // Localized statistics const getLocalizedStat = (etiket: string) => { if (etiket.includes("Suites")) return lang === "tr" ? "İmza Deniz Süiti" : "Signature Sea Suites"; if (etiket.includes("Pools")) return lang === "tr" ? "Panoramik Havuz" : "Panoramic Infinity Pools"; if (etiket.includes("Experience")) return lang === "tr" ? "Misafir Memnuniyeti" : "Guest Experience Index"; return lang === "tr" ? "Doğal Zeytinyağı Sabun & Spa" : "Natural Olive Oil Soap & Spa"; }; // Localized services const getLocalizedService = (baslik: string, aciklama: string) => { if (baslik.includes("POOL")) { return { title: lang === "tr" ? "SONSUZLUK VESTAM HAVUZU" : "INFINITY VESTAM POOL", desc: lang === "tr" ? "Fethiye'nin mavi sırtlarına bakan cam kenarlı, ödüllü sonsuzluk havuzlarımızın keyfini çıkarın." : aciklama }; } if (baslik.includes("SPA")) { return { title: lang === "tr" ? "REHIAL SPA TERAPİSİ" : "REHIAL SPA THERAPY", desc: lang === "tr" ? "Yerel uzmanlar tarafından tasarlanan organik zeytin yaprağı taş masajları ve mineral tuzlu hidroterapi ile yenilenin." : aciklama }; } return { title: lang === "tr" ? "AÇIK HAVA TERAS YEMEĞİ" : "AL-FRESCO TERRACE DINING", desc: lang === "tr" ? "Akdeniz zeytin ağaçlarının altında taze bahçe malzemeleri ve soğuk sıkım narenciye lezzetlerinin tadını çıkarın." : aciklama }; }; const css = ` @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600;700;800;900&display=swap'); :root { --color-resort-teal: #14B8A6; --color-resort-sand: #FAF8F5; --color-resort-charcoal: #0F172A; --color-resort-gold: #D4AF37; } .font-serif-editorial { font-family: 'Playfair Display', Georgia, serif; } .font-sans-resort { font-family: 'Inter', sans-serif; } .bg-light-mesh { background-image: radial-gradient(circle at 0% 0%, rgba(20, 184, 166, 0.04) 0%, transparent 40%), radial-gradient(circle at 100% 100%, rgba(212, 175, 55, 0.03) 0%, transparent 50%); } .shadow-premium { box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05); } .hero-title-clamp { font-size: clamp(38px, 6vw, 90px); letter-spacing: -0.02em; line-height: 0.95; } `; return ( <> {/* ── IMZA AN: CURTAIN REVEAL PRELOADER ── */} {preloader && (
CAL VESTAM RESORT
interactive prototype
)}
{/* MEDITERRANEAN RESORT LIGHT THEME */}
{/* Floating Ambient Orbs */}
{/* ── MANDATORY FLOATING DEMO BANNER ── */}
{lang === "tr" ? "Bu web sitesi Ayris Tech tarafından hazırlanmış bir konsept çalışmasıdır." : "This website is a premium concept prototype designed by Ayris Tech."}
{/* ── PREMIUM FLOATING NAVBAR ── */}
{/* Logo */} {firma.adi} {/* Links */} {/* Language Selector + Booking Button */}
{/* Language Switcher */}
setShowModal(true)} className="text-[10px] font-black tracking-[2.5px] uppercase text-white bg-[#14B8A6] hover:bg-[#0D9488] px-6 py-3.5 rounded-xl transition-all cursor-pointer shadow-[0_4px_12px_rgba(20,184,166,0.15)] hidden sm:block" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > {t.reserveNow}
{/* ── HERO & SUITE QUICK LOOK ── */}
{/* Left Column: Typography Details */} {t.badge} {firma.slogan}
{t.heroTail}
{t.heroDesc} {/* Statistics Grid */} {istatistikler.map((stat, idx) => (

{stat.deger}

{getLocalizedStat(stat.etiket)}

))}
{/* CTA buttons */} {t.planEscape} {t.resortServices}
{/* Right Column: Layered Boutique Showcase */}
{/* Outer delicate lines */}
{/* Main Mediterranean Dining / Pool Setup */} {/* eslint-disable-next-line @next/next/no-img-element */} Cal Vestam Panoramic Dining Terrace {/* Floating Citrus Welcome Badge Overlay */}
{/* Miniature citrus close-up */}
{/* eslint-disable-next-line @next/next/no-img-element */} Citrus welcome orchard
{t.welcomeTitle}

{t.welcomeDesc}

{/* ── INTERACTIVE BOOKING ENGINE ── */}
{/* Glowing Top Line */}
{t.checkAvailability}

{t.scheduleEscape}

{t.scheduleDesc}

{/* Booking Fields Grid */}
{[ { label: t.checkin, type: "date" }, { label: t.checkout, type: "date" }, ].map((field, idx) => (
))} {/* Adults Count */}
{adults} {t.guests}
{/* Kids Count */}
{kids} {t.kidsLabel}
{/* Action row */}

{t.guarantee}

setShowModal(true)} className="w-full md:w-auto px-10 py-4 rounded-xl bg-[#14B8A6] hover:bg-[#0D9488] text-white font-black text-[10px] tracking-[2px] uppercase transition-all cursor-pointer shadow-[0_5px_15px_rgba(20,184,166,0.15)] shrink-0" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > {t.confirmDetails}
{/* ── SUITES GALLERY ── */}
{t.suitesTitle}

{t.suitesHeader}

{t.suitesDesc}

{/* Gallery Columns */}
{[ { title: t.suite1Title, img: "/sicilia_hero_table.png", desc: t.suite1Desc }, { title: t.suite2Title, img: "/sicilia_lemon_heritage.png", desc: t.suite2Desc }, { title: t.suite3Title, img: "/sicilia_hero_table.png", desc: t.suite3Desc }, ].map((suite, idx) => (
{/* eslint-disable-next-line @next/next/no-img-element */} {suite.title}

{suite.title}

{suite.desc}

))}
{/* ── RESORT EXPERIENCES ── */}
{hizmetler.map((hizmet, idx) => { const locServ = getLocalizedService(hizmet.baslik, hizmet.aciklama); return (

{locServ.title}

{locServ.desc}

); })}
{/* ── TESTIMONIALS ── */}
{t.diaries}

{t.lovedGuests}

{t.lovedDesc}

{/* Testimonials 2-Column Grid */}
{yorumlar.map((y, yIdx) => (
{/* Rating Stars SVG */}
{[...Array(5)].map((_, starIdx) => ( ))}

“{y.yorum}”

{y.yazar.charAt(0)}

{y.yazar}

{y.tarih}
))}
{/* ── FOOTER ── */}
{/* About Column */}
CalVestam

{firma.slogan} — Exclusive boutique resort nestled inside Ölüdeniz heights. Handcrafted sea suites, infinity pools, and organic salt therapy.

{firma.adres}

{firma.email}

{/* Coordinates Column */}

{t.vipCoords}

{t.conciergeActive}
24 Hours Active

Check-In/Out
{t.checkInOutDetails}

{/* Leisure Services Column */}

{t.boutiqueLeisures}

{hizmetler.map((h, hIdx) => { const locS = getLocalizedService(h.baslik, h.aciklama); return ( {locS.title} ); })}

© 2026 {firma.adi}. All rights reserved.

{/* ── CONFIRM SUCCESS MODAL ── */} {showModal && ( {/* Close Button */} {/* Success check indicator */}

{t.enquiryActive}

{t.ambassadorActive}

{t.enquirySuccess}

setShowModal(false)} > {t.dismiss}
)}
); }