"use client"; import { motion, AnimatePresence } from "framer-motion"; import { useRef, 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", navTariffs: "Havalimanı Ücretleri", navBenefits: "Ayrıcalıklar", navApp: "Mobil Uygulama", navReviews: "Misafir Yorumları", callCenter: "Çağrı Hattı", bookNow: "Rezervasyon Yap", badge: "NYC MINIMALIST & CHIC HAVAALANI TRANSFERLERİ", heroTitlePart1: "ZARİF & GÜVENLİ", heroTitlePart2: "PREMIUM TRANSFERLER", heroDesc: "Yeni nesil sıfır emisyonlu lüks yolculuk keyfi. Beyaz elektrikli lüks sedan filomuz JFK, LaGuardia ve Newark lounge transferleriniz için özel olarak optimize edilmiştir. 60 saniyede güvenli planlama.", instantBooking: "Havalimanı Özel Hattı", getQuote: "Rezervasyon Yap", viewTariffs: "Havaalanı Tarifeleri", fastFormSubtitle: "Transfer Seyahat Formu", fastFormTitle: "MİL HESAPLA & REZERVE ET", fastFormDesc: "Havalimanı kapı ve seyahat koordinatlarınızı girerek tahmini tutarı anında hesaplayın.", formName: "Ad Soyad", formNamePlaceholder: "Adınız Soyadınız", formPhone: "Telefon Numarası", formPhonePlaceholder: "İletişim Numaranız", formDate: "Tarih", formTime: "Saat", formPickup: "Alış Noktası", formDropoff: "Varış Noktası", chooseVehicle: "Araç Sınıfı Seçimi", submitBooking: "GÜVENLİ REZERVASYON", dispatchWarning: "Bu formu gönderdiğinizde, sürücümüz sizinle 3 dakika içinde iletişime geçecektir.", tariffsSubtitle: "Havalimanı Ücretleri", tariffsTitle: "HAVAALANI TARİFELERİ", tariffsDesc: "Lounge ve terminal koordinatlarınızı taçlandıracak en uygun sabit fiyatları inceleyin.", popular: "EN ÇOK TERCİH EDİLEN", perMile: "/ MİL", bookTariff: "BU TARİFEYİ SEÇ", benefitsSubtitle: "Özel Değerler", benefitsTitle: "LOUNGE AYRICALIKLARI", benefitsDesc: "Havaalanı ve şehir içi koordinatlarınızı tamamen stressiz hale getirmek için tasarlandı.", appSubtitle: "Zarif Mobil Mobilite", appTitle: "CHIC MOBİL UYGULAMASI", appDesc: "CabHub mobil uygulamasını telefonunuza indirin. Sürücü atamalarını izleyin, anlık GPS rotalarını takip edin ve üyelere özel avantajlardan yararlanın.", getItOn: "HEMEN İNDİRİN", googlePlay: "Google Play", appStore: "App Store", reviewsSubtitle: "Müşteri Deneyimleri", reviewsTitle: "AYRICALIKLI DENEYİMLER", reviewsDesc: "Sık seyahat eden kurumsal yöneticilerimizin lounge transfer sistemimiz hakkındaki yorumları.", callStripText: "7 GÜN 24 SAAT ÇAĞRILARINIZI CEVAPLAMAYA HAZIRIZ!", footerRights: "Tüm hakları saklıdır.", footerPrivacy: "Gizlilik Politikası", footerTerms: "Kullanım Şartları", bookingRequested: "TRANSFER REZERVE EDİLDİ", nycDispatchActive: "Premium Lounge Sürücü Atama Aktif", successDesc: "Havalimanı transfer parametrelerinizi kaydettik. En yakın CabHub özel şoförü 3 dakika içinde sizinle iletişime geçecektir. Teşekkürler!", dismiss: "KAPAT", conceptBanner: "Bu web sitesi Ayris Tech tarafından hazırlanmış bir konsept çalışmasıdır.", calcEstimated: "Tahmini Tutar:", calcLoading: "Hesaplanıyor...", min: "dk", calculatingText: "Mesafe bazlı anlık ücretlendirme" }, en: { navBook: "Reserve", navTariffs: "Airport Rates", navBenefits: "Why Us", navApp: "Mobile App", navReviews: "Reviews", callCenter: "Lounge Line", bookNow: "Book Transfer", badge: "NYC MINIMALIST & CHIC AIRPORT TRANSFERS", heroTitlePart1: "CHIC & SECURE", heroTitlePart2: "PREMIUM TRANSFERS", heroDesc: "Indulge in modern zero-emission comfort. Our fleet of white luxury electric sedans is fully optimized for JFK, LaGuardia, and Newark lounge drop-offs. Secure scheduling in under 60 seconds.", instantBooking: "Lounge Concierge Line", getQuote: "Reserve Now", viewTariffs: "Airport Tariffs", fastFormSubtitle: "Transfer Form", fastFormTitle: "RESERVE TRANSFER", fastFormDesc: "Input airport gate and travel coordinates to allocate a verified premium driver.", formName: "Name", formNamePlaceholder: "Your full name", formPhone: "Phone", formPhonePlaceholder: "Contact Number", formDate: "Date", formTime: "Time", formPickup: "Start Location", formDropoff: "End Destination", chooseVehicle: "Choose Vehicle", submitBooking: "SECURE BOOKING", dispatchWarning: "By submitting this form, you secure immediate dispatch. A professional verified driver will reach out on your contact number in under 3 minutes.", tariffsSubtitle: "Airport Rates", tariffsTitle: "AIRPORT TARIFFS", tariffsDesc: "Flat rates designed to elevate your airport lounge coordinates.", popular: "MOST PREFERRED", perMile: "/ MILE", bookTariff: "BOOK TARIFF", benefitsSubtitle: "Premium Values", benefitsTitle: "LOUNGE ADVANTAGES", benefitsDesc: "Designed to make airport and city coordinates completely stress-free.", appSubtitle: "Light Application", appTitle: "CHIC MOBILITY APP", appDesc: "Reserve transfers, allocate verified chauffeurs, monitor real-time GPS trajectories, and redeem up to 40% saving balances. Beautiful, seamless light-mode smartphone UI.", getItOn: "GET IT ON", googlePlay: "Google Play", appStore: "App Store", reviewsSubtitle: "Reviews", reviewsTitle: "TRUSTED EXPERIENCE", reviewsDesc: "Hear what frequent corporate executives think of our lounge transfer system.", callStripText: "WE ARE READY TO TAKE YOUR CALL 24 HOURS, 7 DAYS!", footerRights: "All rights reserved.", footerPrivacy: "Privacy Policy", footerTerms: "Terms of Service", bookingRequested: "TRANSFER SECURED", nycDispatchActive: "Premium Lounge Dispatcher Active", successDesc: "We have registered your airport transfer parameters. A professional verified CabHub chauffeur will reach out on your contact number in under 3 minutes. Thank you!", dismiss: "DISMISS", conceptBanner: "This website is a premium concept prototype designed by Ayris Tech.", calcEstimated: "Estimated Fare:", calcLoading: "Calculating...", min: "min", calculatingText: "Real-time coordinate-based pricing" } }; const locationsList = [ "Manhattan Midtown", "Brooklyn Heights", "Queens Astoria", "JFK Airport", "LaGuardia Airport" ]; export default function TaxiTemplate2({ data }: { data: DemoData }) { const { firma, istatistikler = [], hizmetler = [], yorumlar = [] } = data; const [showBookingModal, setShowBookingModal] = useState(false); const [activePlan, setActivePlan] = useState(1); // Standard active by default const [lang, setLang] = useState<"tr" | "en">("tr"); const [preloader, setPreloader] = useState(true); // Calculator states const [pickupLoc, setPickupLoc] = useState("Manhattan Midtown"); const [dropoffLoc, setDropoffLoc] = useState("JFK Airport"); const t = translations[lang]; const getIconSvg = (type: string) => { switch (type) { case "pickup": return ( ); case "booking": return ( ); case "bonus": return ( ); case "gps": return ( ); default: return ( ); } }; // 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 timer useEffect(() => { const timer = setTimeout(() => { setPreloader(false); }, 1500); return () => clearTimeout(timer); }, []); // Fare estimation logic const calculatePrice = () => { if (pickupLoc === dropoffLoc) return "$5.00"; // JFK flat rates if ((pickupLoc === "Manhattan Midtown" && dropoffLoc === "JFK Airport") || (pickupLoc === "JFK Airport" && dropoffLoc === "Manhattan Midtown")) { return activePlan === 0 ? "$55.00" : activePlan === 1 ? "$75.00" : "$110.00"; } // LaGuardia flat rates if ((pickupLoc === "Manhattan Midtown" && dropoffLoc === "LaGuardia Airport") || (pickupLoc === "LaGuardia Airport" && dropoffLoc === "Manhattan Midtown")) { return activePlan === 0 ? "$35.00" : activePlan === 1 ? "$48.00" : "$75.00"; } // Mileage estimations based on distance let miles = 8; if ((pickupLoc === "Manhattan Midtown" && dropoffLoc === "Brooklyn Heights") || (pickupLoc === "Brooklyn Heights" && dropoffLoc === "Manhattan Midtown")) miles = 6; else if ((pickupLoc === "Manhattan Midtown" && dropoffLoc === "Queens Astoria") || (pickupLoc === "Queens Astoria" && dropoffLoc === "Manhattan Midtown")) miles = 7; else if ((pickupLoc === "Brooklyn Heights" && dropoffLoc === "Queens Astoria") || (pickupLoc === "Queens Astoria" && dropoffLoc === "Brooklyn Heights")) miles = 10; else if ((pickupLoc === "Brooklyn Heights" && dropoffLoc === "JFK Airport") || (pickupLoc === "JFK Airport" && dropoffLoc === "Brooklyn Heights")) miles = 16; else if ((pickupLoc === "Brooklyn Heights" && dropoffLoc === "LaGuardia Airport") || (pickupLoc === "LaGuardia Airport" && dropoffLoc === "Brooklyn Heights")) miles = 14; else if ((pickupLoc === "Queens Astoria" && dropoffLoc === "JFK Airport") || (pickupLoc === "JFK Airport" && dropoffLoc === "Queens Astoria")) miles = 12; else if ((pickupLoc === "Queens Astoria" && dropoffLoc === "LaGuardia Airport") || (pickupLoc === "LaGuardia Airport" && dropoffLoc === "Queens Astoria")) miles = 6; else if ((pickupLoc === "JFK Airport" && dropoffLoc === "LaGuardia Airport") || (pickupLoc === "LaGuardia Airport" && dropoffLoc === "JFK Airport")) miles = 12; const basePrice = miles * 1.6 + 5.0; const multiplier = activePlan === 0 ? 1.0 : activePlan === 1 ? 1.5 : 2.2; return `$${(basePrice * multiplier).toFixed(2)}`; }; // Dynamic Localization handlers const getLocalizedStat = (deger: string) => { if (deger.toLowerCase().includes("economy")) { return { title: lang === "tr" ? "Chic Şehir İçi" : "Economy Class", desc: lang === "tr" ? "Şehir içi ulaşımlarda konforlu ve sıfır emisyonlu elektrikli araç deneyimi. Mil başı $1.50." : "Comfortable zero-emission trips to any destination within boroughs. $1.5/MI" }; } if (deger.toLowerCase().includes("standard")) { return { title: lang === "tr" ? "Premium Şehirler Arası" : "Standard Class", desc: lang === "tr" ? "Eyalet genelinde ve 3 ana havalimanına premium lüks seyahatler. Mil başı $2.20." : "Premium transfers. Verified luxury sedans covering tri-state airport hubs. $2.20/MI" }; } return { title: lang === "tr" ? "First Class Yönetici" : "Business Class", desc: lang === "tr" ? "Öncelikli geçiş şeridi ve en üst segment lüks şoför hizmeti. Mil başı $3.50." : "First class executive. Top-tier luxury vehicles with priority lane dispatch. $3.50/MI" }; }; const getLocalizedService = (baslik: string, aciklama: string) => { if (baslik.toLowerCase().includes("pickup") || baslik.toLowerCase().includes("lounge")) { return { title: lang === "tr" ? "LOUNGE'DAN ALIM" : "LOUNGE PICKUP", desc: lang === "tr" ? "Doğrudan havalimanı lounge kapısından veya otel girişinden bagaj asistanlığıyla karşılama." : "Direct lounge or doorstep coordination for all airport coordinates." }; } if (baslik.toLowerCase().includes("booking") || baslik.toLowerCase().includes("reservation")) { return { title: lang === "tr" ? "PRATİK REZERVASYON" : "TAP RESERVATION", desc: lang === "tr" ? "Akıllı telefon entegrasyonu ile seyahatlerinizi 60 saniyenin altında rezerve edin." : "Ultra-fast smartphone booking client. Secure scheduling under 60 seconds." }; } if (baslik.toLowerCase().includes("bonus") || baslik.toLowerCase().includes("member")) { return { title: lang === "tr" ? "ÜYELİK AVANTAJLARI" : "MEMBER BENEFITS", desc: lang === "tr" ? "Mil toplayın ve bir sonraki premium seyahatinizde %40 indirim kazanın." : "Collect mileage dynamically. Redeem up to 40% savings on specialty trips." }; } return { title: lang === "tr" ? "HASSAS GPS TAKİBİ" : "TRACKING GPS", desc: lang === "tr" ? "Gerçek zamanlı uydu üzerinden sürüş takibi ve uçuş saati rötar senkronizasyonu." : "Real-time satellite path tracking and automated flight delay syncing." }; }; const getLocalizedTestimonial = (yazar: string) => { if (yazar.toLowerCase().includes("alexander")) { return lang === "tr" ? "JFK'den transferim tamamen kusursuzdu. Sürücü beni lounge kapısında karşıladı ve elektrikli araç tertemiz durumdaydı." : "The airport transfer from JFK was absolutely seamless. The driver met me at the lounge gate and the electric vehicle was in pristine condition."; } return lang === "tr" ? "Kurumsal seyahatlerimde kesinlikle ilk tercihim CabHub Premium. Açık renkli sade uygulamasından rezervasyon çok basit ve rötar takibi mükemmel." : "CabHub Premium is my absolute go-to for corporate travel. The light theme app booking is simple and the delay syncing works perfectly."; }; const css = ` @import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;700;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Syne:wght@700;800&display=swap'); :root { --color-premium-gold: #E5A900; --color-nordic-white: #FFFFFF; --color-nordic-ivory: #FCFAF7; --color-nordic-ivory-dark: #F5F2EC; --color-coal-text: #111317; --color-coal-muted: rgba(17, 19, 23, 0.6); } .font-industrial { font-family: 'Syne', 'Oswald', sans-serif; } .font-sans-premium { font-family: 'Plus Jakarta Sans', sans-serif; } .spinning-badge { animation: spin 25s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .bg-mesh-grid-light { background-image: linear-gradient(rgba(229, 169, 0, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(229, 169, 0, 0.02) 1px, transparent 1px); background-size: 45px 45px; } .gold-bar-glow { box-shadow: 0 0 12px rgba(229, 169, 0, 0.25); } .pulse-glow-dark { animation: pulseDark 2s infinite; } @keyframes pulseDark { 0% { box-shadow: 0 0 0 0 rgba(17, 19, 23, 0.2); } 70% { box-shadow: 0 0 0 15px rgba(17, 19, 23, 0); } 100% { box-shadow: 0 0 0 0 rgba(17, 19, 23, 0); } } .hero-title-clamp { font-size: clamp(34px, 5.8vw, 84px); letter-spacing: -0.01em; line-height: 0.95; } `; return ( <> {/* ── IMZA AN: LIGHT TARIFF PRELOADER ── */} {preloader && (
CABHUB PREMIUM SERVICE
allocating...
)}
{/* ── MANDATORY FLOATING DEMO BANNER ── */}
{t.conceptBanner}
{/* ── MAIN CONTENT CONTAINER (Chic Minimalist Light Theme) ── */}
{/* Soft Grid Overlay */}
{/* Floating Ambient Warm Gold Orbs */}
{/* ── PREMIUM LIGHT NAVBAR ── */}
{/* Logo */}
CABHUB
{/* Navigation Links */} {/* Direct Dial booking & Lang Selector */}
{/* Language Switcher */}
setShowBookingModal(true)} className="text-[11px] font-black tracking-[2px] uppercase text-white bg-[#E5A900] hover:bg-black px-6 py-3.5 rounded-xl transition-all cursor-pointer shadow-[0_4px_12px_rgba(229,169,0,0.2)] hidden sm:block" whileHover={{ scale: 1.03 }} whileTap={{ scale: 0.98 }} > {t.bookNow}
{/* ── HERO SECTION ── */}
{/* Left Column: Heading, Slogans, Direct Reservation */} {/* Minimalist Accent Badge */} {t.badge} {t.heroTitlePart1}
{t.heroTitlePart2}
{t.heroDesc} {/* Direct Dial block */}
{t.instantBooking}
{firma.telefon}
{/* Action Buttons */} {t.getQuote} {t.viewTariffs}
{/* Right Column: Premium White e-tron Car & Rotating circular stamp */}
{/* Outer circle overlay */}
{/* High fidelity White luxury cab */} {/* eslint-disable-next-line @next/next/no-img-element */} CabHub White e-tron GT Luxury Electric NYC Cab {/* Spinning stamp */}
LOUNGE TRANSFER • AIRPORT EXPRESS • 24/7 •
{/* ── BOOKING FLOW & CALCULATOR ── */}
{/* Gold line border indicator */}
{t.fastFormSubtitle}

{t.fastFormTitle}

{t.fastFormDesc}

{/* Form Input fields */}
{[ { label: t.formName, placeholder: t.formNamePlaceholder, type: "text" }, { label: t.formPhone, placeholder: t.formPhonePlaceholder, type: "tel" }, { label: t.formDate, placeholder: "", type: "date" }, { label: t.formTime, placeholder: "", type: "time" }, ].map((field, idx) => (
))} {/* Pickup Location select */}
{/* Dropoff Location select */}
{/* Choose Vehicle */}
{["Economy", "Standard", "Business"].map((option, oIdx) => ( ))}
{/* ESTIMATED FARE BANNER */}
$
{t.calculatingText} {t.calcEstimated} {calculatePrice()}
Flat-rate airport vouchers apply dynamically between JFK / LaGuardia and Manhattan.
{/* Submit panel */}

{t.dispatchWarning}

setShowBookingModal(true)} className="w-full md:w-auto px-10 py-4.5 rounded-xl bg-[#E5A900] hover:bg-black text-white font-black text-xs uppercase tracking-widest transition-all cursor-pointer shadow-[0_4px_12px_rgba(229,169,0,0.25)] shrink-0" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > {t.submitBooking}
{/* ── OUR TARIFFS (Bento style Light Plans) ── */}
{t.tariffsSubtitle}

{t.tariffsTitle}

{t.tariffsDesc}

{/* Three Cards Grid */}
{istatistikler.map((stat, sIdx) => { const locStat = getLocalizedStat(stat.deger); const isPopular = stat.deger === "Standard Class"; return ( {isPopular && (
{t.popular}
)}
{/* Car vector silhouette placeholder */}

{locStat.title}

{locStat.desc}

{/* Price display */}
{sIdx === 0 ? "$1.50" : sIdx === 1 ? "$2.20" : "$3.50"} {t.perMile}
{ setActivePlan(sIdx); const el = document.getElementById("booking-flow"); el?.scrollIntoView({ behavior: "smooth" }); }} className={`w-full py-4.5 rounded-xl font-black text-xs uppercase tracking-widest transition-all cursor-pointer ${ isPopular ? "bg-[#E5A900] hover:bg-black text-white shadow-md shadow-[#E5A900]/10" : "bg-[#FCFAF7] hover:bg-black hover:text-white text-black/70 border border-black/5 hover:border-black/10" }`} whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > {t.bookTariff}
); })}
{/* ── CORE BENEFITS ── */}
{t.benefitsSubtitle}

{t.benefitsTitle}

{t.benefitsDesc}

{/* Grid */}
{hizmetler.map((benefit, bIdx) => { const locBenefit = getLocalizedService(benefit.baslik, benefit.aciklama); return (
{getIconSvg(benefit.ikon)}

{locBenefit.title}

{locBenefit.desc}

); })}
{/* ── APP SHOWCASE ── */}
{/* Left Column: text details and store buttons */} {t.appSubtitle} {t.appTitle} {t.appDesc} {/* Badges buttons */} {/* Google Play */}
{t.getItOn}
{t.googlePlay}
{/* App Store */}
{t.getItOn}
{t.appStore}
{/* Right Column: Light theme smartphone mockup */}
{/* eslint-disable-next-line @next/next/no-img-element */} CabHub Light-themed Booking interface tracking map
{/* ── TESTIMONIALS ── */}
{t.reviewsSubtitle}

{t.reviewsTitle}

{t.reviewsDesc}

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

“{locTestimonial}”

{y.yazar.charAt(0)}

{y.yazar}

{y.tarih}
); })}
{/* ── BOTTOM CALL RESERVATION DIRECT STRIP ── */}

{t.callStripText}

📞 {firma.telefon}
{/* ── FOOTER ── */} {/* ── FAST BOOKING SUCCESS MODAL ── */} {showBookingModal && ( {/* Close Button */} {/* Success check indicator */}

{t.bookingRequested}

{t.nycDispatchActive}

{t.successDesc}

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