Compare commits
8 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 452e1d74b9 | |||
|
|
757f4b1b42 | ||
| f01d228aed | |||
|
|
913037d5b7 | ||
| 16e10fd30a | |||
|
|
0d759b6fd1 | ||
| fe0b0a226b | |||
|
|
764c760515 |
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #0a0a0a;
|
||||
--card: #1a1a1a;
|
||||
--foreground: #f5f5f5;
|
||||
--primary-cta: #ffdf7d;
|
||||
--primary-cta-text: #0a0a0a;
|
||||
--secondary-cta: #1a1a1a;
|
||||
--secondary-cta-text: #ffffff;
|
||||
--accent: #b8860b;
|
||||
--background-accent: #8b6914;
|
||||
--background: #fdfbf7;
|
||||
--card: #f5f0e6;
|
||||
--foreground: #3e2723;
|
||||
--primary-cta: #5d4037;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #d7ccc8;
|
||||
--secondary-cta-text: #3e2723;
|
||||
--accent: #795548;
|
||||
--background-accent: #efebe0;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1rem;
|
||||
|
||||
@@ -1,304 +1,28 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
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 HomeSection from './HomePage/sections/Home';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import RoomsSection from './HomePage/sections/Rooms';
|
||||
import AmenitiesSection from './HomePage/sections/Amenities';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="home" data-section="home">
|
||||
<SectionErrorBoundary name="home">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Welcome to Paradise"
|
||||
title="Experience Unrivaled Luxury at The Grand Oasis"
|
||||
description="Discover a sanctuary of sophistication where every detail is crafted for your utmost comfort and delight. Indulge in exquisite dining, serene spa treatments, and breathtaking views."
|
||||
primaryButton={{
|
||||
text: "Explore Rooms",
|
||||
href: "#rooms",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Gallery",
|
||||
href: "#gallery",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/36039629/pexels-photo-36039629.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/16253098/pexels-photo-16253098.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/31372786/pexels-photo-31372786.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/4916534/pexels-photo-4916534.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/19627754/pexels-photo-19627754.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/3926506/pexels-photo-3926506.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/18161061/pexels-photo-18161061.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/8134196/pexels-photo-8134196.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/24877212/pexels-photo-24877212.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/6612569/pexels-photo-6612569.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/17896273/pexels-photo-17896273.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/10751389/pexels-photo-10751389.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Our Philosophy"
|
||||
quote="At The Grand Oasis, we believe true luxury is not just about opulent surroundings, but about crafting unforgettable moments and delivering impeccable service that anticipates your every need. Our passion is your perfect stay."
|
||||
author="Eleanor Vance"
|
||||
role="General Manager"
|
||||
imageSrc="https://images.pexels.com/photos/27990719/pexels-photo-27990719.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="rooms" data-section="rooms">
|
||||
<SectionErrorBoundary name="rooms">
|
||||
<FeaturesTaggedCards
|
||||
tag="Accommodations"
|
||||
title="Indulge in Supreme Comfort"
|
||||
description="From elegantly appointed rooms to lavish suites, each space at The Grand Oasis is designed as your private haven. Experience sophisticated design, modern amenities, and breathtaking views."
|
||||
items={[
|
||||
{
|
||||
tag: "Spacious & Serene",
|
||||
title: "Executive Suite",
|
||||
description: "Luxurious space with a separate living area, marble bathroom, and panoramic city views. Perfect for extended stays or discerning travelers.",
|
||||
primaryButton: {
|
||||
text: "View Details",
|
||||
href: "#",
|
||||
},
|
||||
imageSrc: "https://images.pexels.com/photos/7746042/pexels-photo-7746042.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
tag: "Elegant & Cozy",
|
||||
title: "Deluxe Room",
|
||||
description: "Comfortable and stylish, our Deluxe Rooms offer plush bedding, a modern workspace, and exquisite amenities for a restful stay.",
|
||||
primaryButton: {
|
||||
text: "View Details",
|
||||
href: "#",
|
||||
},
|
||||
imageSrc: "https://images.pexels.com/photos/10267454/pexels-photo-10267454.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
tag: "Unrivaled Views",
|
||||
title: "Penthouse Collection",
|
||||
description: "The pinnacle of luxury, our Penthouse Suites boast private terraces, personalized butler service, and an unparalleled perspective of the city.",
|
||||
primaryButton: {
|
||||
text: "View Details",
|
||||
href: "#",
|
||||
},
|
||||
imageSrc: "https://images.pexels.com/photos/37842845/pexels-photo-37842845.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="amenities" data-section="amenities">
|
||||
<SectionErrorBoundary name="amenities">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Exclusive Offerings"
|
||||
title="World-Class Amenities for Every Guest"
|
||||
description="Elevate your stay with our curated selection of facilities and services, designed to cater to your every desire, from relaxation to rejuvenation."
|
||||
items={[
|
||||
{
|
||||
title: "Spa & Wellness",
|
||||
description: "Indulge in bespoke treatments, therapeutic massages, and holistic wellness programs at our tranquil hotel spa.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/16436995/pexels-photo-16436995.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Gourmet Dining",
|
||||
description: "Savor culinary masterpieces crafted by renowned chefs, with a choice of fine dining, casual bistro, and exquisite bar experiences.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/2291599/pexels-photo-2291599.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Infinity Pool",
|
||||
description: "Take a refreshing dip in our stunning rooftop infinity pool, offering panoramic views of the city skyline and beyond.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/78126/pexels-photo-78126.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Fitness Center",
|
||||
description: "Maintain your routine in our state-of-the-art fitness center, equipped with modern machinery and professional guidance.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/3768916/pexels-photo-3768916.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Event Spaces",
|
||||
description: "Host your next unforgettable event, from intimate gatherings to grand celebrations, in our versatile and elegant venues.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/29614952/pexels-photo-29614952.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Concierge Service",
|
||||
description: "Our dedicated concierge team is available 24/7 to assist with reservations, travel arrangements, and local recommendations.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/16761915/pexels-photo-16761915.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Art & Culture",
|
||||
description: "Discover local art exhibitions, live music performances, and cultural events curated exclusively for our guests.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/33803734/pexels-photo-33803734.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="What Our Guests Say"
|
||||
title="Stories from Your Next Home Away From Home"
|
||||
description="Read firsthand accounts from travelers who have experienced the unparalleled luxury and hospitality of The Grand Oasis."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah L.",
|
||||
role: "Frequent Traveler",
|
||||
quote: "The Grand Oasis exceeded all my expectations. The service was impeccable, the room was stunning, and the spa was a true sanctuary. I can't wait to return!",
|
||||
imageSrc: "https://images.pexels.com/photos/15686276/pexels-photo-15686276.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Michael R.",
|
||||
role: "Business Executive",
|
||||
quote: "My business trip was transformed into a luxurious retreat. The staff anticipated my needs, and the amenities were top-notch. Truly a five-star experience.",
|
||||
imageSrc: "https://images.pexels.com/photos/3770296/pexels-photo-3770296.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Emily P.",
|
||||
role: "Honeymooner",
|
||||
quote: "Our honeymoon at The Grand Oasis was simply magical. Every detail, from the rose petals to the private dining, made our special occasion unforgettable.",
|
||||
imageSrc: "https://images.pexels.com/photos/13871319/pexels-photo-13871319.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Family Vacationer",
|
||||
quote: "Traveling with family can be challenging, but The Grand Oasis made it seamless. The kids loved the pool, and we appreciated the thoughtful, attentive service.",
|
||||
imageSrc: "https://images.pexels.com/photos/16042556/pexels-photo-16042556.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Jessica M.",
|
||||
role: "Solo Adventurer",
|
||||
quote: "As a solo traveler, safety and comfort are key. The Grand Oasis provided both in abundance, plus a vibrant atmosphere to relax and explore.",
|
||||
imageSrc: "https://images.pexels.com/photos/19488234/pexels-photo-19488234.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Robert G.",
|
||||
role: "Retired Couple",
|
||||
quote: "We celebrated our anniversary here, and it was perfect. The tranquility, the gourmet food, and the stunning views created memories we'll cherish forever.",
|
||||
imageSrc: "https://images.pexels.com/photos/5637560/pexels-photo-5637560.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted & Recognized"
|
||||
title="Proud Partners & Accolades"
|
||||
description="We are honored to be recognized by leading travel organizations and proud to partner with industry-best brands to bring you an unparalleled luxury experience."
|
||||
names={[
|
||||
"Travel + Leisure",
|
||||
"Forbes Travel Guide",
|
||||
"Condé Nast Traveler",
|
||||
"Relais & Châteaux",
|
||||
"Luxury Hotels of the World",
|
||||
"AAA Five Diamond",
|
||||
"Expedia",
|
||||
"Booking.com",
|
||||
"TripAdvisor",
|
||||
"The Leading Hotels of the World",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Got Questions?"
|
||||
title="Your Queries, Answered"
|
||||
description="Find quick answers to the most common questions about your stay, our services, and what makes The Grand Oasis truly exceptional."
|
||||
items={[
|
||||
{
|
||||
question: "What are the check-in and check-out times?",
|
||||
answer: "Check-in time is at 3:00 PM, and check-out is at 12:00 PM. Early check-in or late check-out requests are subject to availability and may incur an additional charge.",
|
||||
},
|
||||
{
|
||||
question: "Is parking available at the hotel?",
|
||||
answer: "Yes, we offer secure valet parking services for all our guests. Please inquire with our concierge upon arrival for rates and assistance.",
|
||||
},
|
||||
{
|
||||
question: "Does the hotel have a restaurant?",
|
||||
answer: "Absolutely! The Grand Oasis boasts a Michelin-starred fine dining restaurant, a casual bistro, and a vibrant lobby bar, catering to all your culinary desires.",
|
||||
},
|
||||
{
|
||||
question: "Are pets allowed?",
|
||||
answer: "We welcome well-behaved small pets in designated rooms for an additional fee. Please notify us in advance so we can ensure a comfortable stay for all.",
|
||||
},
|
||||
{
|
||||
question: "What's included in the room rate?",
|
||||
answer: "Our room rates typically include access to the fitness center, Wi-Fi, and daily turndown service. Certain packages may include breakfast or spa credits; please check your booking details.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer airport transportation?",
|
||||
answer: "Yes, we can arrange luxury airport transfers for your convenience. Please contact our concierge at least 24 hours prior to your arrival or departure to book this service.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Reserve Your Experience"
|
||||
text="Ready to Indulge in Unforgettable Luxury?"
|
||||
primaryButton={{
|
||||
text: "Book Your Stay Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HomeSection />
|
||||
<AboutSection />
|
||||
<RoomsSection />
|
||||
<AmenitiesSection />
|
||||
<TestimonialsSection />
|
||||
<SocialProofSection />
|
||||
<FaqSection />
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal 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 AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTestimonial
|
||||
tag="Our Philosophy"
|
||||
quote="At The Grand Oasis, we believe true luxury is not just about opulent surroundings, but about crafting unforgettable moments and delivering impeccable service that anticipates your every need. Our passion is your perfect stay."
|
||||
author="Eleanor Vance"
|
||||
role="General Manager"
|
||||
imageSrc="https://images.pexels.com/photos/27990719/pexels-photo-27990719.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Amenities.tsx
Normal file
64
src/pages/HomePage/sections/Amenities.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 "amenities" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AmenitiesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="amenities" data-section="amenities">
|
||||
<SectionErrorBoundary name="amenities">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Exclusive Offerings"
|
||||
title="World-Class Amenities for Every Guest"
|
||||
description="Elevate your stay with our curated selection of facilities and services, designed to cater to your every desire, from relaxation to rejuvenation."
|
||||
items={[
|
||||
{
|
||||
title: "Spa & Wellness",
|
||||
description: "Indulge in bespoke treatments, therapeutic massages, and holistic wellness programs at our tranquil hotel spa.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/16436995/pexels-photo-16436995.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Gourmet Dining",
|
||||
description: "Savor culinary masterpieces crafted by renowned chefs, with a choice of fine dining, casual bistro, and exquisite bar experiences.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/2291599/pexels-photo-2291599.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Infinity Pool",
|
||||
description: "Take a refreshing dip in our stunning rooftop infinity pool, offering panoramic views of the city skyline and beyond.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/78126/pexels-photo-78126.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Fitness Center",
|
||||
description: "Maintain your routine in our state-of-the-art fitness center, equipped with modern machinery and professional guidance.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/3768916/pexels-photo-3768916.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Event Spaces",
|
||||
description: "Host your next unforgettable event, from intimate gatherings to grand celebrations, in our versatile and elegant venues.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/29614952/pexels-photo-29614952.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Concierge Service",
|
||||
description: "Our dedicated concierge team is available 24/7 to assist with reservations, travel arrangements, and local recommendations.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/16761915/pexels-photo-16761915.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
title: "Art & Culture",
|
||||
description: "Discover local art exhibitions, live music performances, and cultural events curated exclusively for our guests.",
|
||||
href: "#",
|
||||
imageSrc: "https://images.pexels.com/photos/33803734/pexels-photo-33803734.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</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="Reserve Your Experience"
|
||||
text="Ready to Indulge in Unforgettable Luxury?"
|
||||
primaryButton={{
|
||||
text: "Book Your Stay Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
46
src/pages/HomePage/sections/Faq.tsx
Normal file
46
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
// 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="Got Questions?"
|
||||
title="Your Queries, Answered"
|
||||
description="Find quick answers to the most common questions about your stay, our services, and what makes The Grand Oasis truly exceptional."
|
||||
items={[
|
||||
{
|
||||
question: "What are the check-in and check-out times?",
|
||||
answer: "Check-in time is at 3:00 PM, and check-out is at 12:00 PM. Early check-in or late check-out requests are subject to availability and may incur an additional charge.",
|
||||
},
|
||||
{
|
||||
question: "Is parking available at the hotel?",
|
||||
answer: "Yes, we offer secure valet parking services for all our guests. Please inquire with our concierge upon arrival for rates and assistance.",
|
||||
},
|
||||
{
|
||||
question: "Does the hotel have a restaurant?",
|
||||
answer: "Absolutely! The Grand Oasis boasts a Michelin-starred fine dining restaurant, a casual bistro, and a vibrant lobby bar, catering to all your culinary desires.",
|
||||
},
|
||||
{
|
||||
question: "Are pets allowed?",
|
||||
answer: "We welcome well-behaved small pets in designated rooms for an additional fee. Please notify us in advance so we can ensure a comfortable stay for all.",
|
||||
},
|
||||
{
|
||||
question: "What's included in the room rate?",
|
||||
answer: "Our room rates typically include access to the fitness center, Wi-Fi, and daily turndown service. Certain packages may include breakfast or spa credits; please check your booking details.",
|
||||
},
|
||||
{
|
||||
question: "Do you offer airport transportation?",
|
||||
answer: "Yes, we can arrange luxury airport transfers for your convenience. Please contact our concierge at least 24 hours prior to your arrival or departure to book this service.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
68
src/pages/HomePage/sections/Home.tsx
Normal file
68
src/pages/HomePage/sections/Home.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "home" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HomeSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="home" data-section="home">
|
||||
<SectionErrorBoundary name="home">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Welcome to Paradise"
|
||||
title="Experience Unrivaled Luxury at The Grand Oasis"
|
||||
description="Discover a sanctuary of sophistication where every detail is crafted for your utmost comfort and delight. Indulge in exquisite dining, serene spa treatments, and breathtaking views."
|
||||
primaryButton={{
|
||||
text: "Explore Rooms",
|
||||
href: "#rooms",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Gallery",
|
||||
href: "#gallery",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/36039629/pexels-photo-36039629.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/16253098/pexels-photo-16253098.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/31372786/pexels-photo-31372786.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/4916534/pexels-photo-4916534.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/19627754/pexels-photo-19627754.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/3926506/pexels-photo-3926506.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/18161061/pexels-photo-18161061.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/8134196/pexels-photo-8134196.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/24877212/pexels-photo-24877212.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/6612569/pexels-photo-6612569.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/17896273/pexels-photo-17896273.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
imageSrc: "https://images.pexels.com/photos/10751389/pexels-photo-10751389.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Rooms.tsx
Normal file
52
src/pages/HomePage/sections/Rooms.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// 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 FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function RoomsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="rooms" data-section="rooms">
|
||||
<SectionErrorBoundary name="rooms">
|
||||
<FeaturesTaggedCards
|
||||
tag="Accommodations"
|
||||
title="Indulge in Supreme Comfort"
|
||||
description="From elegantly appointed rooms to lavish suites, each space at The Grand Oasis is designed as your private haven. Experience sophisticated design, modern amenities, and breathtaking views."
|
||||
items={[
|
||||
{
|
||||
tag: "Spacious & Serene",
|
||||
title: "Executive Suite",
|
||||
description: "Luxurious space with a separate living area, marble bathroom, and panoramic city views. Perfect for extended stays or discerning travelers.",
|
||||
primaryButton: {
|
||||
text: "View Details",
|
||||
href: "#",
|
||||
},
|
||||
imageSrc: "https://images.pexels.com/photos/7746042/pexels-photo-7746042.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
tag: "Elegant & Cozy",
|
||||
title: "Deluxe Room",
|
||||
description: "Comfortable and stylish, our Deluxe Rooms offer plush bedding, a modern workspace, and exquisite amenities for a restful stay.",
|
||||
primaryButton: {
|
||||
text: "View Details",
|
||||
href: "#",
|
||||
},
|
||||
imageSrc: "https://images.pexels.com/photos/10267454/pexels-photo-10267454.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
tag: "Unrivaled Views",
|
||||
title: "Penthouse Collection",
|
||||
description: "The pinnacle of luxury, our Penthouse Suites boast private terraces, personalized butler service, and an unparalleled perspective of the city.",
|
||||
primaryButton: {
|
||||
text: "View Details",
|
||||
href: "#",
|
||||
},
|
||||
imageSrc: "https://images.pexels.com/photos/37842845/pexels-photo-37842845.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
32
src/pages/HomePage/sections/SocialProof.tsx
Normal file
32
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
// 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 & Recognized"
|
||||
title="Proud Partners & Accolades"
|
||||
description="We are honored to be recognized by leading travel organizations and proud to partner with industry-best brands to bring you an unparalleled luxury experience."
|
||||
names={[
|
||||
"Travel + Leisure",
|
||||
"Forbes Travel Guide",
|
||||
"Condé Nast Traveler",
|
||||
"Relais & Châteaux",
|
||||
"Luxury Hotels of the World",
|
||||
"AAA Five Diamond",
|
||||
"Expedia",
|
||||
"Booking.com",
|
||||
"TripAdvisor",
|
||||
"The Leading Hotels of the World",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
58
src/pages/HomePage/sections/Testimonials.tsx
Normal file
58
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
// 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 TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="What Our Guests Say"
|
||||
title="Stories from Your Next Home Away From Home"
|
||||
description="Read firsthand accounts from travelers who have experienced the unparalleled luxury and hospitality of The Grand Oasis."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah L.",
|
||||
role: "Frequent Traveler",
|
||||
quote: "The Grand Oasis exceeded all my expectations. The service was impeccable, the room was stunning, and the spa was a true sanctuary. I can't wait to return!",
|
||||
imageSrc: "https://images.pexels.com/photos/15686276/pexels-photo-15686276.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Michael R.",
|
||||
role: "Business Executive",
|
||||
quote: "My business trip was transformed into a luxurious retreat. The staff anticipated my needs, and the amenities were top-notch. Truly a five-star experience.",
|
||||
imageSrc: "https://images.pexels.com/photos/3770296/pexels-photo-3770296.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Emily P.",
|
||||
role: "Honeymooner",
|
||||
quote: "Our honeymoon at The Grand Oasis was simply magical. Every detail, from the rose petals to the private dining, made our special occasion unforgettable.",
|
||||
imageSrc: "https://images.pexels.com/photos/13871319/pexels-photo-13871319.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Family Vacationer",
|
||||
quote: "Traveling with family can be challenging, but The Grand Oasis made it seamless. The kids loved the pool, and we appreciated the thoughtful, attentive service.",
|
||||
imageSrc: "https://images.pexels.com/photos/16042556/pexels-photo-16042556.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Jessica M.",
|
||||
role: "Solo Adventurer",
|
||||
quote: "As a solo traveler, safety and comfort are key. The Grand Oasis provided both in abundance, plus a vibrant atmosphere to relax and explore.",
|
||||
imageSrc: "https://images.pexels.com/photos/19488234/pexels-photo-19488234.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
{
|
||||
name: "Robert G.",
|
||||
role: "Retired Couple",
|
||||
quote: "We celebrated our anniversary here, and it was perfect. The tranquility, the gourmet food, and the stunning views created memories we'll cherish forever.",
|
||||
imageSrc: "https://images.pexels.com/photos/5637560/pexels-photo-5637560.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user