2 Commits

Author SHA1 Message Date
05a60fff51 Merge version_2_1781192141762 into main
Merge version_2_1781192141762 into main
2026-06-11 15:36:55 +00:00
kudinDmitriyUp
fccc057a2b Bob AI: Changed color theme to blue 2026-06-11 15:36:12 +00:00
9 changed files with 327 additions and 245 deletions

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #0a0a0a;
--card: #1a1a1a;
--foreground: #f5f5f5;
--primary-cta: #ffdf7d;
--primary-cta-text: #0a0a0a;
--secondary-cta: #1a1a1a;
--background: #0f172a;
--card: #1e293b;
--foreground: #f8fafc;
--primary-cta: #3b82f6;
--primary-cta-text: #ffffff;
--secondary-cta: #1e293b;
--secondary-cta-text: #ffffff;
--accent: #b8860b;
--background-accent: #8b6914;
--accent: #2563eb;
--background-accent: #1d4ed8;
/* @layout/border-radius/rounded */
--radius: 0.5rem;

View File

@@ -1,243 +1,26 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards';
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 OffersSection from './HomePage/sections/Offers';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroBillboard
title="Experience Unrivaled Luxury at The Grandeur Hotel"
description="Nestled in the heart of the city, The Grandeur Hotel offers an exquisite escape where timeless elegance meets modern comfort. Discover a sanctuary designed for ultimate relaxation and refined indulgence."
primaryButton={{
text: "Book Your Stay",
href: "#offers",
}}
secondaryButton={{
text: "Explore Rooms",
href: "#rooms",
}}
imageSrc="https://images.pexels.com/photos/6466290/pexels-photo-6466290.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
/>
</SectionErrorBoundary>
</div>
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="A Legacy of Hospitality and Elegance"
/>
</SectionErrorBoundary>
</div>
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesRevealCardsBento
tag="Our Accommodations"
title="Indulge in Exquisite Comfort"
description="Each room and suite at The Grandeur Hotel is a haven of luxury, meticulously designed with opulent furnishings and state-of-the-art amenities to provide an unparalleled experience."
items={[
{
title: "Deluxe Room",
description: "Sophisticated design with a plush king-sized bed, high-speed Wi-Fi, and stunning city views.",
href: "#",
imageSrc: "https://images.pexels.com/photos/3940733/pexels-photo-3940733.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Executive Suite",
description: "Expansive living area, a private work desk, and exclusive access to the Executive Lounge amenities.",
href: "#",
imageSrc: "https://images.pexels.com/photos/6899355/pexels-photo-6899355.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Presidential Suite",
description: "The epitome of luxury with a grand foyer, multiple bedrooms, and a dedicated butler service for an elite experience.",
href: "#",
imageSrc: "https://images.pexels.com/photos/27829894/pexels-photo-27829894.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Ocean View Room",
description: "Wake up to breathtaking panoramic ocean views, complemented by elegant decor and a private balcony.",
href: "#",
imageSrc: "https://images.pexels.com/photos/31146633/pexels-photo-31146633.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Family Suite",
description: "Designed for comfort and space, featuring separate sleeping areas and child-friendly amenities to ensure a delightful family stay.",
href: "#",
imageSrc: "https://images.pexels.com/photos/6466484/pexels-photo-6466484.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Accessible Room",
description: "Thoughtfully designed for accessibility with widened doorways, roll-in showers, and assistive devices for a comfortable and secure stay.",
href: "#",
imageSrc: "https://images.pexels.com/photos/1457847/pexels-photo-1457847.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Penthouse Suite",
description: "Our most exclusive offering, featuring a private terrace, a gourmet kitchen, and personalized services for an unforgettable stay above the city.",
href: "#",
imageSrc: "https://images.pexels.com/photos/9696597/pexels-photo-9696597.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="offers" data-section="offers">
<SectionErrorBoundary name="offers">
<PricingLayeredCards
tag="Exclusive Offers"
title="Tailored Stays for Every Desire"
description="Discover our range of meticulously crafted packages, offering exceptional value and unforgettable experiences for every type of traveler. From romantic getaways to family vacations, your perfect stay awaits."
plans={[
{
tag: "Standard Stay",
price: "$300/night",
description: "Enjoy a comfortable stay with essential amenities.",
primaryButton: {
text: "Book Standard",
href: "#",
},
features: [
"Luxury Room",
"Complimentary Wi-Fi",
"Access to Fitness Center",
"Concierge Service",
],
},
{
tag: "Weekend Escape",
price: "$550/weekend",
description: "Perfect for a romantic getaway or a relaxing short break.",
primaryButton: {
text: "Book Weekend",
href: "#",
},
features: [
"Executive Suite",
"Breakfast for Two",
"Spa Credit ($50)",
"Late Check-out",
],
},
{
tag: "Luxury Indulgence",
price: "$999/night",
description: "Experience the pinnacle of luxury with our premium package.",
primaryButton: {
text: "Book Indulgence",
href: "#",
},
features: [
"Presidential Suite",
"Gourmet Dinner",
"Private Car Service",
"Personal Butler",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Guest Experiences"
title="What Our Esteemed Guests Say"
description="Hear firsthand accounts from travelers who have experienced the exceptional service and luxurious comfort that define The Grandeur Hotel."
testimonials={[
{
name: "Isabella Rossi",
role: "Fashion Designer",
quote: "The Grandeur Hotel exceeded all expectations. The attention to detail, from the exquisite decor to the impeccable service, made my stay truly unforgettable. A perfect blend of classic elegance and modern luxury.",
imageSrc: "https://images.pexels.com/photos/3770095/pexels-photo-3770095.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "Marcus Thorne",
role: "Tech Entrepreneur",
quote: "Simply outstanding. The Executive Suite provided a serene environment for both work and relaxation. The staff anticipated every need, making me feel incredibly valued. This is my new go-to hotel.",
imageSrc: "https://images.pexels.com/photos/33761224/pexels-photo-33761224.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "Sophia Chang",
role: "Art Curator",
quote: "Every moment at The Grandeur was a delight. The culinary experience was exceptional, and the hotel's ambiance is truly captivating. It felt like a retreat into a world of refined beauty.",
imageSrc: "https://images.pexels.com/photos/9119637/pexels-photo-9119637.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "David Miller",
role: "Philanthropist",
quote: "I've traveled the world, and The Grandeur Hotel stands out. The personalized service and commitment to guest satisfaction are commendable. A truly luxurious experience from start to finish.",
imageSrc: "https://images.pexels.com/photos/5378693/pexels-photo-5378693.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "Elena Petrova",
role: "Concert Pianist",
quote: "The tranquility and elegance of my room allowed for perfect rest before my performance. The staff's professionalism and warmth were deeply appreciated. A gem of a hotel.",
imageSrc: "https://images.pexels.com/photos/6939124/pexels-photo-6939124.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Your Questions, Answered"
title="Frequently Asked Questions"
description="Find quick answers to common inquiries about your stay, amenities, booking, and more at The Grandeur 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. We offer late check-out options based on availability, please inquire at the front desk.",
},
{
question: "Does the hotel offer airport shuttle services?",
answer: "Yes, we provide luxury airport shuttle services. Please contact our concierge team at least 24 hours in advance to arrange your transportation.",
},
{
question: "Are pets allowed at The Grandeur Hotel?",
answer: "The Grandeur Hotel is a pet-friendly establishment. We welcome well-behaved pets under 20 lbs for an additional fee. Please inform us upon booking.",
},
{
question: "What dining options are available at the hotel?",
answer: "Our hotel boasts a Michelin-starred restaurant, a sophisticated lounge bar, and 24-hour in-room dining services, offering a diverse culinary experience.",
},
{
question: "Do you have facilities for business meetings or events?",
answer: "Absolutely. We offer state-of-the-art conference rooms and elegant ballrooms, perfect for corporate events, weddings, and social gatherings. Our event planners are ready to assist you.",
},
]}
imageSrc="https://images.pexels.com/photos/3768095/pexels-photo-3768095.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
/>
</SectionErrorBoundary>
</div>
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Ready to Plan Your Escape?"
text="Contact us today to arrange your unforgettable stay or inquire about our bespoke services. Our dedicated team is here to assist you."
primaryButton={{
text: "Make a Reservation",
href: "#offers",
}}
secondaryButton={{
text: "Contact Us Directly",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<HomeSection />
<AboutSection />
<RoomsSection />
<OffersSection />
<TestimonialsSection />
<FaqSection />
<ContactSection />
</>
);
}

View 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="A Legacy of Hospitality and Elegance"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Ready to Plan Your Escape?"
text="Contact us today to arrange your unforgettable stay or inquire about our bespoke services. Our dedicated team is here to assist you."
primaryButton={{
text: "Make a Reservation",
href: "#offers",
}}
secondaryButton={{
text: "Contact Us Directly",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,43 @@
// 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 FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Your Questions, Answered"
title="Frequently Asked Questions"
description="Find quick answers to common inquiries about your stay, amenities, booking, and more at The Grandeur 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. We offer late check-out options based on availability, please inquire at the front desk.",
},
{
question: "Does the hotel offer airport shuttle services?",
answer: "Yes, we provide luxury airport shuttle services. Please contact our concierge team at least 24 hours in advance to arrange your transportation.",
},
{
question: "Are pets allowed at The Grandeur Hotel?",
answer: "The Grandeur Hotel is a pet-friendly establishment. We welcome well-behaved pets under 20 lbs for an additional fee. Please inform us upon booking.",
},
{
question: "What dining options are available at the hotel?",
answer: "Our hotel boasts a Michelin-starred restaurant, a sophisticated lounge bar, and 24-hour in-room dining services, offering a diverse culinary experience.",
},
{
question: "Do you have facilities for business meetings or events?",
answer: "Absolutely. We offer state-of-the-art conference rooms and elegant ballrooms, perfect for corporate events, weddings, and social gatherings. Our event planners are ready to assist you.",
},
]}
imageSrc="https://images.pexels.com/photos/3768095/pexels-photo-3768095.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HomeSection(): React.JSX.Element {
return (
<div id="home" data-section="home">
<SectionErrorBoundary name="home">
<HeroBillboard
title="Experience Unrivaled Luxury at The Grandeur Hotel"
description="Nestled in the heart of the city, The Grandeur Hotel offers an exquisite escape where timeless elegance meets modern comfort. Discover a sanctuary designed for ultimate relaxation and refined indulgence."
primaryButton={{
text: "Book Your Stay",
href: "#offers",
}}
secondaryButton={{
text: "Explore Rooms",
href: "#rooms",
}}
imageSrc="https://images.pexels.com/photos/6466290/pexels-photo-6466290.jpeg?auto=compress&cs=tinysrgb&h=650&w=940"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,67 @@
// 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 PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function OffersSection(): React.JSX.Element {
return (
<div id="offers" data-section="offers">
<SectionErrorBoundary name="offers">
<PricingLayeredCards
tag="Exclusive Offers"
title="Tailored Stays for Every Desire"
description="Discover our range of meticulously crafted packages, offering exceptional value and unforgettable experiences for every type of traveler. From romantic getaways to family vacations, your perfect stay awaits."
plans={[
{
tag: "Standard Stay",
price: "$300/night",
description: "Enjoy a comfortable stay with essential amenities.",
primaryButton: {
text: "Book Standard",
href: "#",
},
features: [
"Luxury Room",
"Complimentary Wi-Fi",
"Access to Fitness Center",
"Concierge Service",
],
},
{
tag: "Weekend Escape",
price: "$550/weekend",
description: "Perfect for a romantic getaway or a relaxing short break.",
primaryButton: {
text: "Book Weekend",
href: "#",
},
features: [
"Executive Suite",
"Breakfast for Two",
"Spa Credit ($50)",
"Late Check-out",
],
},
{
tag: "Luxury Indulgence",
price: "$999/night",
description: "Experience the pinnacle of luxury with our premium package.",
primaryButton: {
text: "Book Indulgence",
href: "#",
},
features: [
"Presidential Suite",
"Gourmet Dinner",
"Private Car Service",
"Personal Butler",
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "rooms" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function RoomsSection(): React.JSX.Element {
return (
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesRevealCardsBento
tag="Our Accommodations"
title="Indulge in Exquisite Comfort"
description="Each room and suite at The Grandeur Hotel is a haven of luxury, meticulously designed with opulent furnishings and state-of-the-art amenities to provide an unparalleled experience."
items={[
{
title: "Deluxe Room",
description: "Sophisticated design with a plush king-sized bed, high-speed Wi-Fi, and stunning city views.",
href: "#",
imageSrc: "https://images.pexels.com/photos/3940733/pexels-photo-3940733.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Executive Suite",
description: "Expansive living area, a private work desk, and exclusive access to the Executive Lounge amenities.",
href: "#",
imageSrc: "https://images.pexels.com/photos/6899355/pexels-photo-6899355.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Presidential Suite",
description: "The epitome of luxury with a grand foyer, multiple bedrooms, and a dedicated butler service for an elite experience.",
href: "#",
imageSrc: "https://images.pexels.com/photos/27829894/pexels-photo-27829894.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Ocean View Room",
description: "Wake up to breathtaking panoramic ocean views, complemented by elegant decor and a private balcony.",
href: "#",
imageSrc: "https://images.pexels.com/photos/31146633/pexels-photo-31146633.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Family Suite",
description: "Designed for comfort and space, featuring separate sleeping areas and child-friendly amenities to ensure a delightful family stay.",
href: "#",
imageSrc: "https://images.pexels.com/photos/6466484/pexels-photo-6466484.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Accessible Room",
description: "Thoughtfully designed for accessibility with widened doorways, roll-in showers, and assistive devices for a comfortable and secure stay.",
href: "#",
imageSrc: "https://images.pexels.com/photos/1457847/pexels-photo-1457847.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
title: "Penthouse Suite",
description: "Our most exclusive offering, featuring a private terrace, a gourmet kitchen, and personalized services for an unforgettable stay above the city.",
href: "#",
imageSrc: "https://images.pexels.com/photos/9696597/pexels-photo-9696597.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import 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="Guest Experiences"
title="What Our Esteemed Guests Say"
description="Hear firsthand accounts from travelers who have experienced the exceptional service and luxurious comfort that define The Grandeur Hotel."
testimonials={[
{
name: "Isabella Rossi",
role: "Fashion Designer",
quote: "The Grandeur Hotel exceeded all expectations. The attention to detail, from the exquisite decor to the impeccable service, made my stay truly unforgettable. A perfect blend of classic elegance and modern luxury.",
imageSrc: "https://images.pexels.com/photos/3770095/pexels-photo-3770095.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "Marcus Thorne",
role: "Tech Entrepreneur",
quote: "Simply outstanding. The Executive Suite provided a serene environment for both work and relaxation. The staff anticipated every need, making me feel incredibly valued. This is my new go-to hotel.",
imageSrc: "https://images.pexels.com/photos/33761224/pexels-photo-33761224.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "Sophia Chang",
role: "Art Curator",
quote: "Every moment at The Grandeur was a delight. The culinary experience was exceptional, and the hotel's ambiance is truly captivating. It felt like a retreat into a world of refined beauty.",
imageSrc: "https://images.pexels.com/photos/9119637/pexels-photo-9119637.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "David Miller",
role: "Philanthropist",
quote: "I've traveled the world, and The Grandeur Hotel stands out. The personalized service and commitment to guest satisfaction are commendable. A truly luxurious experience from start to finish.",
imageSrc: "https://images.pexels.com/photos/5378693/pexels-photo-5378693.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
{
name: "Elena Petrova",
role: "Concert Pianist",
quote: "The tranquility and elegance of my room allowed for perfect rest before my performance. The staff's professionalism and warmth were deeply appreciated. A gem of a hotel.",
imageSrc: "https://images.pexels.com/photos/6939124/pexels-photo-6939124.jpeg?auto=compress&cs=tinysrgb&h=650&w=940",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}