Merge version_2_1781384251826 into main #1

Merged
bender merged 1 commits from version_2_1781384251826 into main 2026-06-13 20:59:18 +00:00
10 changed files with 390 additions and 288 deletions

View File

@@ -1,301 +1,39 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import RoomsSection from './HomePage/sections/Rooms';
import PricingSection from './HomePage/sections/Pricing';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroCenteredLogos
avatarsSrc={[
"http://img.b2bpic.net/free-photo/smiling-woman-walking-with-trolley-bag-airport-terminal_107420-85050.jpg",
"http://img.b2bpic.net/free-photo/smiling-woman-with-her-friends-beach_23-2147645544.jpg",
"http://img.b2bpic.net/free-photo/happy-tanned-man-with-backpack-leans-white-fence-good-humored-guy-dark-tshirt-shorts-smiles-background-city_197531-30047.jpg",
"http://img.b2bpic.net/free-photo/medium-shot-woman-wearing-total-denim-outfit_23-2150105234.jpg",
]}
avatarText="Trusted by 10,000+ Guests"
title="Elegance Redefined at Grand Horizon"
description="Experience unparalleled luxury in the heart of the city. Grand Horizon Hotel offers refined suites, world-class dining, and personalized service for the discerning traveler."
primaryButton={{
text: "Book Your Stay",
href: "#contact",
}}
secondaryButton={{
text: "Explore Suites",
href: "#rooms",
}}
names={[
"The New York Times",
"Travel Daily",
"Luxury Travel Magazine",
"Conde Nast",
"Forbes Travel",
]}
imageSrc="http://img.b2bpic.net/free-photo/stylish-room-with-blurred-effect_1203-554.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Legacy of Hospitality"
descriptions={[
"For over three decades, Grand Horizon has been the standard of excellence in hospitality. Located at the intersection of history and modern luxury, our hotel offers a seamless blend of timeless elegance and contemporary comfort.",
"Our dedicated team is committed to crafting bespoke experiences. From personalized concierge services to our signature culinary offerings, every detail is meticulously planned to ensure your stay exceeds expectations.",
]}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCards
tag="Amenities"
title="Unmatched Comfort & Service"
description="Discover a range of world-class facilities designed to make your stay effortless and memorable."
items={[
{
title: "Panoramic Suites",
description: "Spacious rooms with breathtaking city views.",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-beautiful-comtemporary-luxury-bedroom-suite-hotel-with-tv_105762-2063.jpg",
},
{
title: "Wellness Sanctuary",
description: "Rejuvenate in our state-of-the-art spa and bath facilities.",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-modern-black-bathroom-with-luxury-tile-decor_105762-2138.jpg",
},
{
title: "Signature Dining",
description: "Exquisite culinary journeys curated by world-renowned chefs.",
imageSrc: "http://img.b2bpic.net/free-photo/empty-dining-table-restaurant_53876-64723.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesRevealCardsBento
tag="Our Suites"
title="Exquisite Accommodations"
description="Select from our curated list of luxury suites, each designed with unique aesthetics and premium comfort in mind."
items={[
{
title: "Deluxe Sea View",
description: "Relax with an ocean view in our most popular suite.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/white-pillow-bed_74190-2474.jpg",
},
{
title: "Presidential Penthouse",
description: "Ultimate luxury with a private rooftop garden.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/cozy-lively-home-interior-design_23-2151118953.jpg",
},
{
title: "Classic Executive",
description: "Modern comfort meets business efficiency.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/pillow-bed_74190-3647.jpg",
},
{
title: "Family Deluxe",
description: "Generous space for the whole family.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/family-sitting-bed_1157-16992.jpg",
},
{
title: "Modern Studio",
description: "Chic and minimalist for the urban traveler.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/white-pillow-bed_74190-4628.jpg",
},
{
title: "Wellness Spa Suite",
description: "Private sauna and spa facilities included.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/rear-view-woman-meditating-her-room_1163-16.jpg",
},
{
title: "Signature Corner",
description: "Exclusive corner views and premium amenities.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/modern-bedroom-interior-design-by-night_657883-315.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<RoomsSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingMediaCards
tag="Rates"
title="Tailored Stays"
description="Flexible pricing options to suit your travel needs."
plans={[
{
tag: "Standard",
price: "$299",
period: "/ night",
features: [
"Continental breakfast",
"Wi-Fi access",
"Access to gym",
],
primaryButton: {
text: "Book Now",
href: "#contact",
},
imageSrc: "http://img.b2bpic.net/free-photo/chocolate-bar-near-books-blanket_23-2147888796.jpg",
},
{
tag: "Premium",
price: "$550",
period: "/ night",
features: [
"Daily buffet breakfast",
"Spa access",
"Airport transfer",
"Concierge services",
],
primaryButton: {
text: "Book Now",
href: "#contact",
},
imageSrc: "http://img.b2bpic.net/free-photo/pillow-bed_1203-9643.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Why Us"
title="A Proven Track Record"
description="We take pride in our history of delivering exceptional hospitality."
metrics={[
{
value: "35+",
title: "Years of Experience",
description: "Defining luxury since 1988.",
imageSrc: "http://img.b2bpic.net/free-photo/concierge-assists-with-checkin-hotel_482257-90464.jpg",
},
{
value: "1M+",
title: "Happy Guests",
description: "A legacy of satisfied travelers.",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-luxury-modern-bedroom-suite-hotel-with-tv-cabinet_105762-2282.jpg",
},
{
value: "500",
title: "Staff Members",
description: "Dedicated to your every need.",
imageSrc: "http://img.b2bpic.net/free-photo/charming-woman-bathrobe-puts-makeup-holds-baby-mom-daughter-observe-morning-routine-bathroom_197531-17257.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Guest Stories"
title="Experience the Grand Horizon"
description="See why our guests return time and again."
testimonials={[
{
name: "Sarah J.",
role: "Corporate Client",
quote: "The service is beyond compare. Truly the finest hotel I've stayed at.",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-smiling-young-business-lady-sitting-office_1098-20742.jpg",
},
{
name: "Michael K.",
role: "Traveler",
quote: "An unforgettable experience. The attention to detail is remarkable.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-girl-with-alcoholic-drink_1163-2892.jpg",
},
{
name: "Elena R.",
role: "Guest",
quote: "Perfectly located and beautifully designed. My home away from home.",
imageSrc: "http://img.b2bpic.net/free-photo/outdoor-portrait-fashionable-attractive-dark-skinned-man-with-afro-hairstyle-wearing-headphones-neck-talking-smartphone-drinking-coffee-while-strolling-city-with-backpack_176420-19828.jpg",
},
{
name: "David M.",
role: "Traveler",
quote: "World-class dining and exceptional staff. Will definitely return.",
imageSrc: "http://img.b2bpic.net/free-photo/groom-morning-preparing-wedding-posing_1153-6498.jpg",
},
{
name: "Sofia L.",
role: "Guest",
quote: "A truly luxury experience in every sense.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598344.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Help"
title="Common Questions"
description="Find answers to our most frequently asked questions."
items={[
{
question: "What is the check-in time?",
answer: "Standard check-in is at 3:00 PM.",
},
{
question: "Do you offer airport transfers?",
answer: "Yes, we provide luxury airport pickup services upon request.",
},
{
question: "Are pets allowed?",
answer: "We are a pet-friendly hotel. Please contact us for details.",
},
{
question: "Can I request late check-out?",
answer: "Yes, late check-out is available based on room availability.",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Book Now"
text="Ready to experience Grand Horizon? Book your stay with us today for exclusive rates and personalized service."
primaryButton={{
text: "Contact Concierge",
href: "mailto:concierge@grandhorizon.com",
}}
secondaryButton={{
text: "Book Online",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Legacy of Hospitality"
descriptions={[
"For over three decades, Grand Horizon has been the standard of excellence in hospitality. Located at the intersection of history and modern luxury, our hotel offers a seamless blend of timeless elegance and contemporary comfort.",
"Our dedicated team is committed to crafting bespoke experiences. From personalized concierge services to our signature culinary offerings, every detail is meticulously planned to ensure your stay exceeds expectations.",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Book Now"
text="Ready to experience Grand Horizon? Book your stay with us today for exclusive rates and personalized service."
primaryButton={{
text: "Contact Concierge",
href: "mailto:concierge@grandhorizon.com",
}}
secondaryButton={{
text: "Book Online",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Help"
title="Common Questions"
description="Find answers to our most frequently asked questions."
items={[
{
question: "What is the check-in time?",
answer: "Standard check-in is at 3:00 PM.",
},
{
question: "Do you offer airport transfers?",
answer: "Yes, we provide luxury airport pickup services upon request.",
},
{
question: "Are pets allowed?",
answer: "We are a pet-friendly hotel. Please contact us for details.",
},
{
question: "Can I request late check-out?",
answer: "Yes, late check-out is available based on room availability.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesMediaCards
tag="Amenities"
title="Unmatched Comfort & Service"
description="Discover a range of world-class facilities designed to make your stay effortless and memorable."
items={[
{
title: "Panoramic Suites",
description: "Spacious rooms with breathtaking city views.",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-beautiful-comtemporary-luxury-bedroom-suite-hotel-with-tv_105762-2063.jpg",
},
{
title: "Wellness Sanctuary",
description: "Rejuvenate in our state-of-the-art spa and bath facilities.",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-modern-black-bathroom-with-luxury-tile-decor_105762-2138.jpg",
},
{
title: "Signature Dining",
description: "Exquisite culinary journeys curated by world-renowned chefs.",
imageSrc: "http://img.b2bpic.net/free-photo/empty-dining-table-restaurant_53876-64723.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,31 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroCenteredLogos
title="Elegance Redefined at Grand Horizon"
description="Experience unparalleled luxury in the heart of the city. Grand Horizon Hotel offers refined suites, world-class dining, and personalized service for the discerning traveler."
primaryButton={{
text: "Book Your Stay",
href: "#contact",
}}
secondaryButton={{
text: "Explore Suites",
href: "#rooms",
}}
imageSrc="http://img.b2bpic.net/free-photo/stylish-room-with-blurred-effect_1203-554.jpg"
names={[]}
avatarText=""
avatarsSrc={[]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,40 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Why Us"
title="A Proven Track Record"
description="We take pride in our history of delivering exceptional hospitality."
metrics={[
{
value: "35+",
title: "Years of Experience",
description: "Defining luxury since 1988.",
imageSrc: "http://img.b2bpic.net/free-photo/concierge-assists-with-checkin-hotel_482257-90464.jpg",
},
{
value: "1M+",
title: "Happy Guests",
description: "A legacy of satisfied travelers.",
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-luxury-modern-bedroom-suite-hotel-with-tv-cabinet_105762-2282.jpg",
},
{
value: "500",
title: "Staff Members",
description: "Dedicated to your every need.",
imageSrc: "http://img.b2bpic.net/free-photo/charming-woman-bathrobe-puts-makeup-holds-baby-mom-daughter-observe-morning-routine-bathroom_197531-17257.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,53 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingMediaCards
tag="Rates"
title="Tailored Stays"
description="Flexible pricing options to suit your travel needs."
plans={[
{
tag: "Standard",
price: "$299",
period: "/ night",
features: [
"Continental breakfast",
"Wi-Fi access",
"Access to gym",
],
primaryButton: {
text: "Book Now",
href: "#contact",
},
imageSrc: "http://img.b2bpic.net/free-photo/chocolate-bar-near-books-blanket_23-2147888796.jpg",
},
{
tag: "Premium",
price: "$550",
period: "/ night",
features: [
"Daily buffet breakfast",
"Spa access",
"Airport transfer",
"Concierge services",
],
primaryButton: {
text: "Book Now",
href: "#contact",
},
imageSrc: "http://img.b2bpic.net/free-photo/pillow-bed_1203-9643.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "rooms" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function RoomsSection(): React.JSX.Element {
return (
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesRevealCardsBento
tag="Our Suites"
title="Exquisite Accommodations"
description="Select from our curated list of luxury suites, each designed with unique aesthetics and premium comfort in mind."
items={[
{
title: "Deluxe Sea View",
description: "Relax with an ocean view in our most popular suite.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/white-pillow-bed_74190-2474.jpg",
},
{
title: "Presidential Penthouse",
description: "Ultimate luxury with a private rooftop garden.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/cozy-lively-home-interior-design_23-2151118953.jpg",
},
{
title: "Classic Executive",
description: "Modern comfort meets business efficiency.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/pillow-bed_74190-3647.jpg",
},
{
title: "Family Deluxe",
description: "Generous space for the whole family.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/family-sitting-bed_1157-16992.jpg",
},
{
title: "Modern Studio",
description: "Chic and minimalist for the urban traveler.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/white-pillow-bed_74190-4628.jpg",
},
{
title: "Wellness Spa Suite",
description: "Private sauna and spa facilities included.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/rear-view-woman-meditating-her-room_1163-16.jpg",
},
{
title: "Signature Corner",
description: "Exclusive corner views and premium amenities.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/modern-bedroom-interior-design-by-night_657883-315.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Guest Stories"
title="Experience the Grand Horizon"
description="See why our guests return time and again."
testimonials={[
{
name: "Sarah J.",
role: "Corporate Client",
quote: "The service is beyond compare. Truly the finest hotel I've stayed at.",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-smiling-young-business-lady-sitting-office_1098-20742.jpg",
},
{
name: "Michael K.",
role: "Traveler",
quote: "An unforgettable experience. The attention to detail is remarkable.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-girl-with-alcoholic-drink_1163-2892.jpg",
},
{
name: "Elena R.",
role: "Guest",
quote: "Perfectly located and beautifully designed. My home away from home.",
imageSrc: "http://img.b2bpic.net/free-photo/outdoor-portrait-fashionable-attractive-dark-skinned-man-with-afro-hairstyle-wearing-headphones-neck-talking-smartphone-drinking-coffee-while-strolling-city-with-backpack_176420-19828.jpg",
},
{
name: "David M.",
role: "Traveler",
quote: "World-class dining and exceptional staff. Will definitely return.",
imageSrc: "http://img.b2bpic.net/free-photo/groom-morning-preparing-wedding-posing_1153-6498.jpg",
},
{
name: "Sofia L.",
role: "Guest",
quote: "A truly luxury experience in every sense.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598344.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}