Compare commits
5 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| acd1c10598 | |||
|
|
6a008afb40 | ||
| 220cb499ee | |||
|
|
c9873e0dcc | ||
|
|
a4a633e82a |
@@ -1,273 +1,28 @@
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import { Award, Star, Users } from "lucide-react";
|
||||
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; this shell only fixes render order.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import AmenitiesSection from './HomePage/sections/Amenities';
|
||||
import RoomsSection from './HomePage/sections/Rooms';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Welcome to Hotel Luxe"
|
||||
title="Experience Unparalleled Luxury and Comfort"
|
||||
description="Indulge in a world of sophistication where every detail is crafted for your utmost pleasure. Discover exquisite dining, rejuvenating spa treatments, and breathtaking views."
|
||||
primaryButton={{
|
||||
text: "Book Your Stay",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Explore Rooms",
|
||||
href: "#rooms",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-sitting-furniture-set-cafe-restaurant-with-light-colors-big-windows_114579-1522.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/outdoor-swimming-pool_1203-2844.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/such-good-tableware-table-gold-shades_8353-9923.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-woman-resting-her-bedroom-lying-bed-drinking-coffee-having-her_1258-205120.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glass-raspberry-cocktail-with-ice_140725-4866.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/modern-building-seen-from_116348-65.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="A Legacy of Exquisite Hospitality"
|
||||
descriptions={[
|
||||
"Hotel Luxe stands as a beacon of refined elegance, offering an unparalleled experience in the heart of the city. For decades, we have been dedicated to providing our guests with exceptional service, luxurious accommodations, and unforgettable memories.",
|
||||
"Our commitment to excellence is reflected in every corner of our establishment, from our meticulously designed interiors to our world-class amenities. We invite you to discover the charm and sophistication that make Hotel Luxe a truly unique destination.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Virtual Tour",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="amenities" data-section="amenities">
|
||||
<SectionErrorBoundary name="amenities">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Luxury Services"
|
||||
title="Indulge in Our World-Class Amenities"
|
||||
description="At Hotel Luxe, every aspect of your stay is designed for comfort and pleasure. Explore our array of exclusive services."
|
||||
steps={[
|
||||
{
|
||||
tag: "Relax & Rejuvenate",
|
||||
title: "Signature Spa & Wellness",
|
||||
subtitle: "Unwind in our tranquil sanctuary.",
|
||||
description: "Experience bespoke treatments, soothing massages, and holistic therapies designed to refresh your mind, body, and soul.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/spa-massage-concept-with-woman_23-2147817012.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Stay Active",
|
||||
title: "State-of-the-Art Fitness Center",
|
||||
subtitle: "Maintain your routine with premium equipment.",
|
||||
description: "Our fully equipped gym offers the latest in fitness technology, personal training sessions, and stunning views to inspire your workout.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-blonde-woman-sportswear-training-exercise-bike-modern-fitness-center_613910-5771.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Meet & Celebrate",
|
||||
title: "Exclusive Event Spaces",
|
||||
subtitle: "Host unforgettable gatherings.",
|
||||
description: "From intimate meetings to grand celebrations, our versatile venues and dedicated event planners ensure every occasion is a resounding success.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-having-dinner-luxurious-restaurants_23-2151081849.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="rooms" data-section="rooms">
|
||||
<SectionErrorBoundary name="rooms">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Accommodations"
|
||||
title="Discover Your Perfect Retreat"
|
||||
description="Choose from our exquisite collection of rooms and suites, each designed with elegance and equipped with modern comforts to ensure a memorable stay."
|
||||
items={[
|
||||
{
|
||||
title: "Deluxe Room",
|
||||
description: "Spacious and elegant, offering city or garden views. Ideal for solo travelers or couples seeking comfort.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bouquet-presents-near-bed-with-breakfast_23-2147742135.jpg",
|
||||
},
|
||||
{
|
||||
title: "Executive Suite",
|
||||
description: "Enjoy a separate living area, enhanced amenities, and panoramic views. Perfect for business or extended stays.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/well-dressed-curly-woman-standing-near-big-window-with-coffee-photo-gorgeous-caucasian-lady-enjoying-tea-looking-street_197531-11370.jpg",
|
||||
},
|
||||
{
|
||||
title: "Presidential Suite",
|
||||
description: "The pinnacle of luxury, featuring multiple rooms, a private chef service, and breathtaking vistas. Unforgettable experience.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bedroom-with-chandelier-bed-with-blanket-it_188544-33431.jpg",
|
||||
},
|
||||
{
|
||||
title: "Classic Room",
|
||||
description: "Timeless design with all essential comforts, perfect for a peaceful and relaxing visit.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/elegant-outdoor-living-space_23-2152008190.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Suite",
|
||||
description: "Designed for comfort and space, offering connecting rooms or separate areas for families traveling together.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-asian-woman-use-computer-laptop-bed-bedroom-interior_74190-12679.jpg",
|
||||
},
|
||||
{
|
||||
title: "Accessible Room",
|
||||
description: "Thoughtfully designed for accessibility, ensuring comfort and ease for all guests with special needs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/office-workspace-organized-social-integration_23-2149341077.jpg",
|
||||
},
|
||||
{
|
||||
title: "Studio Apartment",
|
||||
description: "Ideal for longer stays, featuring a fully equipped kitchenette and a comfortable living space.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-bed-arrangement-with-magazine-mug_23-2150326131.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsIconCards
|
||||
tag="Our Achievements"
|
||||
title="A Tradition of Excellence"
|
||||
description="Hotel Luxe has consistently been recognized for outstanding service and guest satisfaction."
|
||||
metrics={[
|
||||
{
|
||||
icon: Award,
|
||||
title: "Years of Hospitality",
|
||||
value: "50+",
|
||||
},
|
||||
{
|
||||
icon: Star,
|
||||
title: "5-Star Rating",
|
||||
value: "10+",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Happy Guests Annually",
|
||||
value: "100K+",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="What Our Guests Say"
|
||||
title="Hear From Our Valued Visitors"
|
||||
description="Our guests consistently praise our exceptional service, luxurious amenities, and unforgettable experiences."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Eleanor Vance",
|
||||
role: "Travel Blogger",
|
||||
quote: "Hotel Luxe redefined luxury for me. The service was impeccable, and every detail was meticulously cared for. A truly unforgettable stay!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-posing-against-large-window_1153-3823.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marcus Thorne",
|
||||
role: "CEO, Global Ventures",
|
||||
quote: "For business or leisure, Hotel Luxe is my top choice. The executive suite was magnificent, and the staff's professionalism was outstanding.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-adult-pressing-buzzer-button_23-2149586556.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sophia Chang",
|
||||
role: "Art Curator",
|
||||
quote: "The ambiance and artistic touches throughout Hotel Luxe are simply stunning. It felt like a home away from home, but with much more sparkle!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/two-young-beautiful-smiling-women-white-bathrobes-towels-head_158538-18077.jpg",
|
||||
},
|
||||
{
|
||||
name: "David Ramirez",
|
||||
role: "Renowned Chef",
|
||||
quote: "The dining experience at Hotel Luxe's restaurant was a culinary journey. Every dish was a masterpiece, perfectly complemented by the elegant setting.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-sit-backyard-chair-summer-sunny-day-enjoying-amazing-warm-weather-catching-sun-rays_343596-6757.jpg",
|
||||
},
|
||||
{
|
||||
name: "Isabella Rossi",
|
||||
role: "Fashion Designer",
|
||||
quote: "From the moment I arrived, I was treated like royalty. The spa treatments were divine, and the views from my suite were simply breathtaking. Pure indulgence!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-groom-feeding-his-bride-with-croissant-cafe_176420-2272.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted & Awarded"
|
||||
title="Recognized by Industry Leaders"
|
||||
description="Hotel Luxe is proud to be affiliated with leading travel organizations and distinguished by prestigious awards."
|
||||
names={[
|
||||
"Condé Nast Traveler",
|
||||
"Forbes Travel Guide",
|
||||
"AAA Five Diamond",
|
||||
"Michelin Guide",
|
||||
"World Travel Awards",
|
||||
"Luxury Lifestyle Awards",
|
||||
"Travel + Leisure",
|
||||
"Hospitality Awards",
|
||||
"The Leading Hotels of the World",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready for Your Getaway?"
|
||||
text="Book Your Exquisite Stay at Hotel Luxe Today"
|
||||
primaryButton={{
|
||||
text: "Reserve Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HeroSection />
|
||||
<AboutSection />
|
||||
<AmenitiesSection />
|
||||
<RoomsSection />
|
||||
<MetricsSection />
|
||||
<TestimonialsSection />
|
||||
<SocialProofSection />
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
30
src/pages/HomePage/sections/About.tsx
Normal file
30
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
// 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 Exquisite Hospitality"
|
||||
descriptions={[
|
||||
"Hotel Luxe stands as a beacon of refined elegance, offering an unparalleled experience in the heart of the city. For decades, we have been dedicated to providing our guests with exceptional service, luxurious accommodations, and unforgettable memories.",
|
||||
"Our commitment to excellence is reflected in every corner of our establishment, from our meticulously designed interiors to our world-class amenities. We invite you to discover the charm and sophistication that make Hotel Luxe a truly unique destination.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Virtual Tour",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
43
src/pages/HomePage/sections/Amenities.tsx
Normal file
43
src/pages/HomePage/sections/Amenities.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "amenities" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AmenitiesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="amenities" data-section="amenities">
|
||||
<SectionErrorBoundary name="amenities">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Luxury Services"
|
||||
title="Indulge in Our World-Class Amenities"
|
||||
description="At Hotel Luxe, every aspect of your stay is designed for comfort and pleasure. Explore our array of exclusive services."
|
||||
steps={[
|
||||
{
|
||||
tag: "Relax & Rejuvenate",
|
||||
title: "Signature Spa & Wellness",
|
||||
subtitle: "Unwind in our tranquil sanctuary.",
|
||||
description: "Experience bespoke treatments, soothing massages, and holistic therapies designed to refresh your mind, body, and soul.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/spa-massage-concept-with-woman_23-2147817012.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Stay Active",
|
||||
title: "State-of-the-Art Fitness Center",
|
||||
subtitle: "Maintain your routine with premium equipment.",
|
||||
description: "Our fully equipped gym offers the latest in fitness technology, personal training sessions, and stunning views to inspire your workout.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-blonde-woman-sportswear-training-exercise-bike-modern-fitness-center_613910-5771.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Meet & Celebrate",
|
||||
title: "Exclusive Event Spaces",
|
||||
subtitle: "Host unforgettable gatherings.",
|
||||
description: "From intimate meetings to grand celebrations, our versatile venues and dedicated event planners ensure every occasion is a resounding success.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-having-dinner-luxurious-restaurants_23-2151081849.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal 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="Ready for Your Getaway?"
|
||||
text="Book Your Exquisite Stay at Hotel Luxe Today"
|
||||
primaryButton={{
|
||||
text: "Reserve Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
58
src/pages/HomePage/sections/Hero.tsx
Normal file
58
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
import { Star } from "lucide-react";
|
||||
import Button from "@/components/ui/Button";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
|
||||
export default function HeroSection() {
|
||||
return (
|
||||
<section id="hero" className="relative w-full bg-background overflow-hidden">
|
||||
<div className="absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] bg-primary-cta/10 blur-[100px] rounded-full pointer-events-none -z-10" />
|
||||
|
||||
<div className="max-w-content-width mx-auto px-6 flex flex-col items-center text-center relative z-10">
|
||||
<ScrollReveal variant="slide-up">
|
||||
<div className="flex items-center gap-2 mb-8 bg-card px-4 py-2 rounded-full shadow-sm border border-border/50">
|
||||
<div className="flex gap-1">
|
||||
{[...Array(5)].map((_, i) => (
|
||||
<Star key={i} className="w-4 h-4 fill-primary-cta text-primary-cta" />
|
||||
))}
|
||||
</div>
|
||||
<span className="text-sm font-medium">5 Star Luxury Hotel</span>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<TextAnimation
|
||||
text="Your Ultimate Coastal Retreat"
|
||||
variant="fade-blur"
|
||||
gradientText={true}
|
||||
tag="h1"
|
||||
className="text-6xl md:text-7xl lg:text-8xl font-bold tracking-tight text-balance"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text="Experience unparalleled luxury, breathtaking views, and world-class amenities in the heart of the city."
|
||||
variant="fade-blur"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="mt-6 text-lg md:text-xl text-muted-foreground max-w-content-width text-balance"
|
||||
/>
|
||||
|
||||
<ScrollReveal variant="slide-up" delay={0.2}>
|
||||
<div className="flex flex-wrap justify-center gap-4">
|
||||
<Button text="Book Your Stay" href="#contact" variant="primary" />
|
||||
<Button text="View Rooms" href="#rooms" variant="secondary" />
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="slide-up" delay={0.4} className="w-full">
|
||||
<div className="w-full aspect-video md:aspect-[21/9] rounded-theme overflow-hidden border border-border/50 shadow-2xl relative">
|
||||
<ImageOrVideo
|
||||
imageSrc="https://picsum.photos/seed/1447114562/1200/800"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Metrics.tsx
Normal file
38
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
// 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 MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
|
||||
import { Award, Star, Users } from "lucide-react";
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsIconCards
|
||||
tag="Our Achievements"
|
||||
title="A Tradition of Excellence"
|
||||
description="Hotel Luxe has consistently been recognized for outstanding service and guest satisfaction."
|
||||
metrics={[
|
||||
{
|
||||
icon: Award,
|
||||
title: "Years of Hospitality",
|
||||
value: "50+",
|
||||
},
|
||||
{
|
||||
icon: Star,
|
||||
title: "5-Star Rating",
|
||||
value: "10+",
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
title: "Happy Guests Annually",
|
||||
value: "100K+",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Rooms.tsx
Normal file
64
src/pages/HomePage/sections/Rooms.tsx
Normal 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 Accommodations"
|
||||
title="Discover Your Perfect Retreat"
|
||||
description="Choose from our exquisite collection of rooms and suites, each designed with elegance and equipped with modern comforts to ensure a memorable stay."
|
||||
items={[
|
||||
{
|
||||
title: "Deluxe Room",
|
||||
description: "Spacious and elegant, offering city or garden views. Ideal for solo travelers or couples seeking comfort.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bouquet-presents-near-bed-with-breakfast_23-2147742135.jpg",
|
||||
},
|
||||
{
|
||||
title: "Executive Suite",
|
||||
description: "Enjoy a separate living area, enhanced amenities, and panoramic views. Perfect for business or extended stays.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/well-dressed-curly-woman-standing-near-big-window-with-coffee-photo-gorgeous-caucasian-lady-enjoying-tea-looking-street_197531-11370.jpg",
|
||||
},
|
||||
{
|
||||
title: "Presidential Suite",
|
||||
description: "The pinnacle of luxury, featuring multiple rooms, a private chef service, and breathtaking vistas. Unforgettable experience.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bedroom-with-chandelier-bed-with-blanket-it_188544-33431.jpg",
|
||||
},
|
||||
{
|
||||
title: "Classic Room",
|
||||
description: "Timeless design with all essential comforts, perfect for a peaceful and relaxing visit.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/elegant-outdoor-living-space_23-2152008190.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Suite",
|
||||
description: "Designed for comfort and space, offering connecting rooms or separate areas for families traveling together.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-asian-woman-use-computer-laptop-bed-bedroom-interior_74190-12679.jpg",
|
||||
},
|
||||
{
|
||||
title: "Accessible Room",
|
||||
description: "Thoughtfully designed for accessibility, ensuring comfort and ease for all guests with special needs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/office-workspace-organized-social-integration_23-2149341077.jpg",
|
||||
},
|
||||
{
|
||||
title: "Studio Apartment",
|
||||
description: "Ideal for longer stays, featuring a fully equipped kitchenette and a comfortable living space.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-bed-arrangement-with-magazine-mug_23-2150326131.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/pages/HomePage/sections/SocialProof.tsx
Normal file
31
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,31 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social-proof" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialProofSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted & Awarded"
|
||||
title="Recognized by Industry Leaders"
|
||||
description="Hotel Luxe is proud to be affiliated with leading travel organizations and distinguished by prestigious awards."
|
||||
names={[
|
||||
"Condé Nast Traveler",
|
||||
"Forbes Travel Guide",
|
||||
"AAA Five Diamond",
|
||||
"Michelin Guide",
|
||||
"World Travel Awards",
|
||||
"Luxury Lifestyle Awards",
|
||||
"Travel + Leisure",
|
||||
"Hospitality Awards",
|
||||
"The Leading Hotels of the World",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// 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 TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="What Our Guests Say"
|
||||
title="Hear From Our Valued Visitors"
|
||||
description="Our guests consistently praise our exceptional service, luxurious amenities, and unforgettable experiences."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Eleanor Vance",
|
||||
role: "Travel Blogger",
|
||||
quote: "Hotel Luxe redefined luxury for me. The service was impeccable, and every detail was meticulously cared for. A truly unforgettable stay!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-posing-against-large-window_1153-3823.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marcus Thorne",
|
||||
role: "CEO, Global Ventures",
|
||||
quote: "For business or leisure, Hotel Luxe is my top choice. The executive suite was magnificent, and the staff's professionalism was outstanding.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-adult-pressing-buzzer-button_23-2149586556.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sophia Chang",
|
||||
role: "Art Curator",
|
||||
quote: "The ambiance and artistic touches throughout Hotel Luxe are simply stunning. It felt like a home away from home, but with much more sparkle!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/two-young-beautiful-smiling-women-white-bathrobes-towels-head_158538-18077.jpg",
|
||||
},
|
||||
{
|
||||
name: "David Ramirez",
|
||||
role: "Renowned Chef",
|
||||
quote: "The dining experience at Hotel Luxe's restaurant was a culinary journey. Every dish was a masterpiece, perfectly complemented by the elegant setting.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-sit-backyard-chair-summer-sunny-day-enjoying-amazing-warm-weather-catching-sun-rays_343596-6757.jpg",
|
||||
},
|
||||
{
|
||||
name: "Isabella Rossi",
|
||||
role: "Fashion Designer",
|
||||
quote: "From the moment I arrived, I was treated like royalty. The spa treatments were divine, and the views from my suite were simply breathtaking. Pure indulgence!",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-groom-feeding-his-bride-with-croissant-cafe_176420-2272.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user