anatolian2/app/experiences/first-light/page.tsx
Temmuz Aslan 591d878ac6 Initial commit: The Anatolian Edit website
Next.js 14 website with standalone output configured for Docker deployment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:34:25 +03:00

76 lines
3.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Metadata } from "next";
import { experiences } from "@/lib/constants";
import { generatePageMetadata } from "@/lib/metadata";
import { generateTouristTripSchema, generateBreadcrumbSchema } from "@/lib/structured-data";
import { ExperienceHero } from "@/components/experiences/ExperienceHero";
import { Itinerary } from "@/components/experiences/Itinerary";
import { BookingWidget } from "@/components/experiences/BookingWidget";
import { Testimonials } from "@/components/home/Testimonials";
import { FinalCTA } from "@/components/home/FinalCTA";
const experience = experiences.find((e) => e.slug === "first-light")!;
export const metadata: Metadata = generatePageMetadata({
title: "First Light — The Asian Side Breakfast Experience",
description: "Istanbul's breakfast culture is legendary. The best of it happens on the Asian side. Serpme kahvaltı, Kadıköy market, Turkish coffee ritual.",
path: "/experiences/first-light",
});
export default function FirstLightPage() {
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(generateTouristTripSchema(experience)) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(generateBreadcrumbSchema([
{ name: "Home", url: "https://theanatolianedit.com" },
{ name: "Experiences", url: "https://theanatolianedit.com/experiences" },
{ name: "First Light", url: "https://theanatolianedit.com/experiences/first-light" },
])),
}}
/>
<ExperienceHero experience={experience} />
<section className="py-12 section-padding">
<div className="max-w-4xl mx-auto">
<div className="flex flex-wrap justify-center gap-4">
{experience.highlights.map((h, i) => (
<div key={i} className="inline-flex items-center gap-2 bg-warm-sand rounded-full px-5 py-3 text-sm text-deep-nazar font-medium">
<span className="text-lg">{h.icon}</span>
{h.text}
</div>
))}
</div>
</div>
</section>
<section className="py-12 section-padding bg-warm-sand">
<div className="max-w-3xl mx-auto">
<h2 className="font-display text-2xl md:text-3xl font-bold text-deep-nazar mb-8 text-center">What&apos;s Included</h2>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
{experience.includes.map((item, i) => (
<div key={i} className="flex items-start gap-3 bg-white rounded-2xl p-4">
<span className="text-bosphorus mt-0.5">
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
</svg>
</span>
<span className="text-deep-nazar/80 text-sm">{item}</span>
</div>
))}
</div>
</div>
</section>
{experience.itinerary && <Itinerary stops={experience.itinerary} />}
<BookingWidget experience={experience} />
<Testimonials />
<FinalCTA />
</>
);
}