Merge version_2_1780494013667 into main
Merge version_2_1780494013667 into main
This commit was merged in pull request #2.
This commit is contained in:
@@ -1,308 +1,30 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
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 AccommodationSection from './HomePage/sections/Accommodation';
|
||||
import ExperiencesSection from './HomePage/sections/Experiences';
|
||||
import OffersSection from './HomePage/sections/Offers';
|
||||
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="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Welcome to Luxury"
|
||||
title="Experience Unparalleled Comfort & Elegance"
|
||||
description="Discover a world where impeccable service meets sophisticated design. Your unforgettable journey begins here."
|
||||
primaryButton={{
|
||||
text: "Book Your Stay",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Explore Rooms",
|
||||
href: "#accommodation",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/modern-interior-design-interior_23-2151929575.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hotel-receptionist-work_23-2149661548.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Our Legacy of Hospitality"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="accommodation" data-section="accommodation">
|
||||
<SectionErrorBoundary name="accommodation">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Accommodation"
|
||||
title="Indulge in Our Luxurious Rooms & Suites"
|
||||
description="Each space at The Grand Hotel is meticulously designed for ultimate comfort and sophistication, offering elegant decor, modern amenities, and breathtaking views to ensure a serene retreat."
|
||||
steps={[
|
||||
{
|
||||
tag: "Cozy Comfort",
|
||||
title: "Standard Room",
|
||||
subtitle: "Your Elegant Retreat",
|
||||
description: "Perfect for a relaxing stay, our Standard Rooms offer essential amenities and a comfortable ambiance.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-bed-lamp-hotel-business_1203-4933.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Spacious Luxury",
|
||||
title: "Deluxe Suite",
|
||||
subtitle: "The Premium Experience",
|
||||
description: "Enjoy expansive living areas, enhanced amenities, and picturesque city views from our Deluxe Suites.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/empty-atelier-with-sketches-tools_482257-85311.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Unmatched Grandeur",
|
||||
title: "Presidential Suite",
|
||||
subtitle: "An Opulent Haven",
|
||||
description: "The pinnacle of luxury, our Presidential Suite offers personalized service, private dining, and panoramic vistas.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-eastern-worker-business-trip_482257-80852.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="experiences" data-section="experiences">
|
||||
<SectionErrorBoundary name="experiences">
|
||||
<FeaturesRevealCardsBentoSharp
|
||||
tag="Experiences"
|
||||
title="Beyond Your Stay: Our Signature Services"
|
||||
description="From gourmet dining to rejuvenating spa treatments, The Grand Hotel offers an array of services designed to enrich every moment of your visit."
|
||||
items={[
|
||||
{
|
||||
title: "Fine Dining",
|
||||
description: "Savor exquisite dishes prepared by award-winning chefs in an elegant atmosphere.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fried-chicken-with-mushrooms-tomato_140725-3752.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spa & Wellness",
|
||||
description: "Indulge in a range of treatments designed for ultimate relaxation and rejuvenation.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-fair-skinned-women-use-moisturizing-day-cream-sensitive-skin-light-room-self-care-health-day-concept_197531-31471.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fitness Center",
|
||||
description: "Maintain your routine with our state-of-the-art facilities and professional trainers.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-looking-mirror_23-2149832697.jpg",
|
||||
},
|
||||
{
|
||||
title: "Event Spaces",
|
||||
description: "Host your perfect occasion in our versatile venues, ideal for weddings and conferences.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautifully-decorated-venue-interior-wedding_181624-58530.jpg",
|
||||
},
|
||||
{
|
||||
title: "Concierge Service",
|
||||
description: "Our dedicated team provides personalized assistance to cater to your every need.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/guests-with-suitcases-hotel-reception_482257-80053.jpg",
|
||||
},
|
||||
{
|
||||
title: "Rooftop Bar",
|
||||
description: "Enjoy crafted beverages and stunning panoramic cityscapes from our exclusive bar.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-african-american-man-posing-inside-night-club-black-hat_627829-5507.jpg",
|
||||
},
|
||||
{
|
||||
title: "Business Center",
|
||||
description: "Fully equipped facilities for your professional needs, ensuring productivity on the go.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-empty-waiting-room_1170-1960.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="offers" data-section="offers">
|
||||
<SectionErrorBoundary name="offers">
|
||||
<PricingMediaCards
|
||||
tag="Offers"
|
||||
title="Exclusive Packages & Seasonal Deals"
|
||||
description="Discover special rates and bundled experiences tailored to enhance your stay at The Grand Hotel."
|
||||
plans={[
|
||||
{
|
||||
tag: "Weekend Escape",
|
||||
price: "$450",
|
||||
period: "/night",
|
||||
features: [
|
||||
"Complimentary breakfast for two",
|
||||
"Late checkout (subject to availability)",
|
||||
"Access to all hotel amenities",
|
||||
"Welcome drink upon arrival",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/gentle-couple-celebrating-anniversary-shoreline_23-2147738211.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Couple's Delight",
|
||||
price: "$600",
|
||||
period: "/night",
|
||||
features: [
|
||||
"Romantic dinner for two at our fine dining restaurant",
|
||||
"Champagne and chocolates upon arrival",
|
||||
"Spa credit for two",
|
||||
"Exclusive turndown service",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-woman-hug-smile-sitting-old-bus_1304-5367.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Family Fun",
|
||||
price: "$750",
|
||||
period: "/night",
|
||||
features: [
|
||||
"Interconnecting rooms available",
|
||||
"Kids' activity pack and welcome treats",
|
||||
"Complimentary tickets to local attractions",
|
||||
"Special children's menu options",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-adults-with-social-media-addiction_23-2149324694.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Guest Reviews"
|
||||
title="Hear From Our Valued Guests"
|
||||
description="Read what discerning travelers have to say about their unforgettable experiences and exceptional service at The Grand Hotel."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Business Executive",
|
||||
quote: "The Grand Hotel exceeded all my expectations. The rooms are luxurious, the service is impeccable, and the dining experience was truly world-class. A perfect blend of comfort and sophistication.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-pregnant-woman-work_23-2149292809.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C.",
|
||||
role: "Travel Blogger",
|
||||
quote: "An absolute gem in the city! Every detail is thoughtfully curated, making for a truly memorable stay. The staff anticipate your every need. Highly recommended for luxury travelers.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-happy-man-woman-sunglasses-sitting-sand-beach-taking-selfie-photo-phone-camera_285396-737.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Retired Educator",
|
||||
quote: "My husband and I celebrated our anniversary here, and it was magical. The ambiance, the views, and the warm hospitality made it an experience we'll cherish forever.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-old-man-date-outdoors_23-2148214567.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Architect",
|
||||
quote: "The architecture and interior design are stunning. The Grand Hotel manages to be both grand and incredibly comfortable. A truly inspiring place to stay and unwind.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-taking-selfie-home_23-2148925874.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jessica L.",
|
||||
role: "Artist",
|
||||
quote: "From the moment I arrived, I felt completely at home. The serene atmosphere of the spa and the exquisite culinary delights were highlights of my perfect getaway.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/relaxed-man-white-bathrobe-slippers-sitting-chair-balcony_259150-59747.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Recognition"
|
||||
title="Trusted by Industry Leaders & Partners"
|
||||
description="Our unwavering commitment to excellence has earned us prestigious accolades and collaborations with esteemed organizations worldwide."
|
||||
names={[
|
||||
"Luxury Travel Magazine",
|
||||
"Michelin Guide",
|
||||
"Forbes Travel Guide",
|
||||
"AAA Diamond Rated",
|
||||
"Conde Nast Traveler",
|
||||
"World Hotel Awards",
|
||||
"Travel + Leisure",
|
||||
"Relais & Châteaux",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Help Center"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find quick answers to common inquiries about your stay, booking process, and the services offered at The Grand Hotel."
|
||||
items={[
|
||||
{
|
||||
question: "What are the check-in and check-out times?",
|
||||
answer: "Check-in is at 3:00 PM, and check-out is at 12:00 PM. Early check-in or late check-out may be available upon request and subject to availability, additional charges may apply.",
|
||||
},
|
||||
{
|
||||
question: "Does the hotel offer pet-friendly accommodations?",
|
||||
answer: "Yes, The Grand Hotel offers a limited number of pet-friendly rooms. Please notify us in advance if you plan to bring a pet, as certain restrictions and fees apply.",
|
||||
},
|
||||
{
|
||||
question: "What is your cancellation policy?",
|
||||
answer: "Our standard cancellation policy requires notification 48 hours prior to arrival to avoid a charge. Specific rates and packages may have different cancellation terms, so please refer to your booking confirmation.",
|
||||
},
|
||||
{
|
||||
question: "Are there dining options available within the hotel?",
|
||||
answer: "Absolutely! The Grand Hotel boasts several dining options, including a gourmet restaurant, a casual bistro, and a sophisticated rooftop bar, catering to all tastes and preferences.",
|
||||
},
|
||||
{
|
||||
question: "Is parking available at the hotel?",
|
||||
answer: "Valet parking is available for guests at a daily rate. Self-parking options may also be available nearby. Please inquire with our concierge for details and directions.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Connect With Us"
|
||||
text="Ready to plan your perfect getaway? Contact us today for reservations or inquiries about your luxurious stay."
|
||||
primaryButton={{
|
||||
text: "Book Now",
|
||||
href: "tel:+1234567890",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Email Us",
|
||||
href: "mailto:reservations@grandhotel.com",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HeroSection />
|
||||
<AboutSection />
|
||||
<AccommodationSection />
|
||||
<ExperiencesSection />
|
||||
<OffersSection />
|
||||
<TestimonialsSection />
|
||||
<SocialProofSection />
|
||||
<FaqSection />
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
18
src/pages/HomePage/sections/About.tsx
Normal file
18
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// 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 AboutText from '@/components/sections/about/AboutText';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Our Legacy of Hospitality"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
43
src/pages/HomePage/sections/Accommodation.tsx
Normal file
43
src/pages/HomePage/sections/Accommodation.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 "accommodation" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AccommodationSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="accommodation" data-section="accommodation">
|
||||
<SectionErrorBoundary name="accommodation">
|
||||
<FeaturesDetailedSteps
|
||||
tag="Accommodation"
|
||||
title="Indulge in Our Luxurious Rooms & Suites"
|
||||
description="Each space at The Grand Hotel is meticulously designed for ultimate comfort and sophistication, offering elegant decor, modern amenities, and breathtaking views to ensure a serene retreat."
|
||||
steps={[
|
||||
{
|
||||
tag: "Cozy Comfort",
|
||||
title: "Standard Room",
|
||||
subtitle: "Your Elegant Retreat",
|
||||
description: "Perfect for a relaxing stay, our Standard Rooms offer essential amenities and a comfortable ambiance.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/white-bed-lamp-hotel-business_1203-4933.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Spacious Luxury",
|
||||
title: "Deluxe Suite",
|
||||
subtitle: "The Premium Experience",
|
||||
description: "Enjoy expansive living areas, enhanced amenities, and picturesque city views from our Deluxe Suites.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/empty-atelier-with-sketches-tools_482257-85311.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Unmatched Grandeur",
|
||||
title: "Presidential Suite",
|
||||
subtitle: "An Opulent Haven",
|
||||
description: "The pinnacle of luxury, our Presidential Suite offers personalized service, private dining, and panoramic vistas.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-eastern-worker-business-trip_482257-80852.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="Connect With Us"
|
||||
text="Ready to plan your perfect getaway? Contact us today for reservations or inquiries about your luxurious stay."
|
||||
primaryButton={{
|
||||
text: "Book Now",
|
||||
href: "tel:+1234567890",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Email Us",
|
||||
href: "mailto:reservations@grandhotel.com",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Experiences.tsx
Normal file
64
src/pages/HomePage/sections/Experiences.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 "experiences" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ExperiencesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="experiences" data-section="experiences">
|
||||
<SectionErrorBoundary name="experiences">
|
||||
<FeaturesRevealCardsBentoSharp
|
||||
tag="Experiences"
|
||||
title="Beyond Your Stay: Our Signature Services"
|
||||
description="From gourmet dining to rejuvenating spa treatments, The Grand Hotel offers an array of services designed to enrich every moment of your visit."
|
||||
items={[
|
||||
{
|
||||
title: "Fine Dining",
|
||||
description: "Savor exquisite dishes prepared by award-winning chefs in an elegant atmosphere.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fried-chicken-with-mushrooms-tomato_140725-3752.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spa & Wellness",
|
||||
description: "Indulge in a range of treatments designed for ultimate relaxation and rejuvenation.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-fair-skinned-women-use-moisturizing-day-cream-sensitive-skin-light-room-self-care-health-day-concept_197531-31471.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fitness Center",
|
||||
description: "Maintain your routine with our state-of-the-art facilities and professional trainers.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-looking-mirror_23-2149832697.jpg",
|
||||
},
|
||||
{
|
||||
title: "Event Spaces",
|
||||
description: "Host your perfect occasion in our versatile venues, ideal for weddings and conferences.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautifully-decorated-venue-interior-wedding_181624-58530.jpg",
|
||||
},
|
||||
{
|
||||
title: "Concierge Service",
|
||||
description: "Our dedicated team provides personalized assistance to cater to your every need.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/guests-with-suitcases-hotel-reception_482257-80053.jpg",
|
||||
},
|
||||
{
|
||||
title: "Rooftop Bar",
|
||||
description: "Enjoy crafted beverages and stunning panoramic cityscapes from our exclusive bar.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-african-american-man-posing-inside-night-club-black-hat_627829-5507.jpg",
|
||||
},
|
||||
{
|
||||
title: "Business Center",
|
||||
description: "Fully equipped facilities for your professional needs, ensuring productivity on the go.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-empty-waiting-room_1170-1960.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Faq.tsx
Normal file
42
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// 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 Center"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find quick answers to common inquiries about your stay, booking process, and the services offered at The Grand Hotel."
|
||||
items={[
|
||||
{
|
||||
question: "What are the check-in and check-out times?",
|
||||
answer: "Check-in is at 3:00 PM, and check-out is at 12:00 PM. Early check-in or late check-out may be available upon request and subject to availability, additional charges may apply.",
|
||||
},
|
||||
{
|
||||
question: "Does the hotel offer pet-friendly accommodations?",
|
||||
answer: "Yes, The Grand Hotel offers a limited number of pet-friendly rooms. Please notify us in advance if you plan to bring a pet, as certain restrictions and fees apply.",
|
||||
},
|
||||
{
|
||||
question: "What is your cancellation policy?",
|
||||
answer: "Our standard cancellation policy requires notification 48 hours prior to arrival to avoid a charge. Specific rates and packages may have different cancellation terms, so please refer to your booking confirmation.",
|
||||
},
|
||||
{
|
||||
question: "Are there dining options available within the hotel?",
|
||||
answer: "Absolutely! The Grand Hotel boasts several dining options, including a gourmet restaurant, a casual bistro, and a sophisticated rooftop bar, catering to all tastes and preferences.",
|
||||
},
|
||||
{
|
||||
question: "Is parking available at the hotel?",
|
||||
answer: "Valet parking is available for guests at a daily rate. Self-parking options may also be available nearby. Please inquire with our concierge for details and directions.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Hero.tsx
Normal file
38
src/pages/HomePage/sections/Hero.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 "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import Button from '@/components/ui/Button';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
import ImageOrVideo from '@/components/ui/ImageOrVideo';
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-webild-section="hero" className="relative w-full min-h-[80vh] flex items-center justify-center overflow-hidden">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<div className="absolute inset-0 z-0">
|
||||
<ImageOrVideo
|
||||
imageSrc="http://img.b2bpic.net/free-photo/modern-interior-design-interior_23-2151929575.jpg"
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-black/50" />
|
||||
</div>
|
||||
<div className="relative z-10 container mx-auto px-4 text-center flex flex-col items-center gap-6 py-24">
|
||||
<Tag text="Welcome to Luxury" className="bg-background/20 text-white border-white/30 backdrop-blur-md" />
|
||||
<h1 className="text-5xl md:text-7xl font-bold text-white max-w-4xl">
|
||||
Experience Unparalleled Comfort & Elegance
|
||||
</h1>
|
||||
<p className="text-lg md:text-xl text-white/90 max-w-2xl">
|
||||
Discover a world where impeccable service meets sophisticated design. Your unforgettable journey begins here.
|
||||
</p>
|
||||
<div className="flex flex-wrap items-center justify-center gap-4 mt-4">
|
||||
<Button text="Book Your Stay" variant="primary" href="#contact" className="text-lg px-8 py-6" />
|
||||
<Button text="Explore Rooms" variant="secondary" href="#accommodation" className="text-lg px-8 py-6 bg-white/10 text-white border-white/30 hover:bg-white/20" />
|
||||
</div>
|
||||
</div>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
70
src/pages/HomePage/sections/Offers.tsx
Normal file
70
src/pages/HomePage/sections/Offers.tsx
Normal file
@@ -0,0 +1,70 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "offers" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function OffersSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="offers" data-section="offers">
|
||||
<SectionErrorBoundary name="offers">
|
||||
<PricingMediaCards
|
||||
tag="Offers"
|
||||
title="Exclusive Packages & Seasonal Deals"
|
||||
description="Discover special rates and bundled experiences tailored to enhance your stay at The Grand Hotel."
|
||||
plans={[
|
||||
{
|
||||
tag: "Weekend Escape",
|
||||
price: "$450",
|
||||
period: "/night",
|
||||
features: [
|
||||
"Complimentary breakfast for two",
|
||||
"Late checkout (subject to availability)",
|
||||
"Access to all hotel amenities",
|
||||
"Welcome drink upon arrival",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/gentle-couple-celebrating-anniversary-shoreline_23-2147738211.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Couple's Delight",
|
||||
price: "$600",
|
||||
period: "/night",
|
||||
features: [
|
||||
"Romantic dinner for two at our fine dining restaurant",
|
||||
"Champagne and chocolates upon arrival",
|
||||
"Spa credit for two",
|
||||
"Exclusive turndown service",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-woman-hug-smile-sitting-old-bus_1304-5367.jpg",
|
||||
},
|
||||
{
|
||||
tag: "Family Fun",
|
||||
price: "$750",
|
||||
period: "/night",
|
||||
features: [
|
||||
"Interconnecting rooms available",
|
||||
"Kids' activity pack and welcome treats",
|
||||
"Complimentary tickets to local attractions",
|
||||
"Special children's menu options",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-adults-with-social-media-addiction_23-2149324694.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
30
src/pages/HomePage/sections/SocialProof.tsx
Normal file
30
src/pages/HomePage/sections/SocialProof.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 "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="Recognition"
|
||||
title="Trusted by Industry Leaders & Partners"
|
||||
description="Our unwavering commitment to excellence has earned us prestigious accolades and collaborations with esteemed organizations worldwide."
|
||||
names={[
|
||||
"Luxury Travel Magazine",
|
||||
"Michelin Guide",
|
||||
"Forbes Travel Guide",
|
||||
"AAA Diamond Rated",
|
||||
"Conde Nast Traveler",
|
||||
"World Hotel Awards",
|
||||
"Travel + Leisure",
|
||||
"Relais & Châteaux",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.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 "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Guest Reviews"
|
||||
title="Hear From Our Valued Guests"
|
||||
description="Read what discerning travelers have to say about their unforgettable experiences and exceptional service at The Grand Hotel."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Business Executive",
|
||||
quote: "The Grand Hotel exceeded all my expectations. The rooms are luxurious, the service is impeccable, and the dining experience was truly world-class. A perfect blend of comfort and sophistication.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-pregnant-woman-work_23-2149292809.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C.",
|
||||
role: "Travel Blogger",
|
||||
quote: "An absolute gem in the city! Every detail is thoughtfully curated, making for a truly memorable stay. The staff anticipate your every need. Highly recommended for luxury travelers.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-happy-man-woman-sunglasses-sitting-sand-beach-taking-selfie-photo-phone-camera_285396-737.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R.",
|
||||
role: "Retired Educator",
|
||||
quote: "My husband and I celebrated our anniversary here, and it was magical. The ambiance, the views, and the warm hospitality made it an experience we'll cherish forever.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-old-man-date-outdoors_23-2148214567.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K.",
|
||||
role: "Architect",
|
||||
quote: "The architecture and interior design are stunning. The Grand Hotel manages to be both grand and incredibly comfortable. A truly inspiring place to stay and unwind.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-taking-selfie-home_23-2148925874.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jessica L.",
|
||||
role: "Artist",
|
||||
quote: "From the moment I arrived, I felt completely at home. The serene atmosphere of the spa and the exquisite culinary delights were highlights of my perfect getaway.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/relaxed-man-white-bathrobe-slippers-sitting-chair-balcony_259150-59747.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user