Merge version_2_1781705639628 into main #3

Merged
bender merged 1 commits from version_2_1781705639628 into main 2026-06-17 14:15:12 +00:00
11 changed files with 263 additions and 150 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: #020617;
--card: #0f172a;
--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: #1e3a8a;
/* @layout/border-radius/rounded */
--radius: 0.5rem;

View File

@@ -1,154 +1,39 @@
import AboutText from '@/components/sections/about/AboutText';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
import { Bell, MapPin, Star } 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. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import RoomsSection from './HomePage/sections/Rooms';
import StatsSection from './HomePage/sections/Stats';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
import SocialSection from './HomePage/sections/Social';
import FaqSection from './HomePage/sections/Faq';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlayMarquee
tag="Experience True Luxury"
title="Redefining Elegance in Every Stay"
description="Discover a haven of sophisticated comfort, where world-class service meets timeless style."
primaryButton={{ text: "Explore Rooms", href: "#rooms" }}
secondaryButton={{ text: "View Amenities", href: "#features" }}
items={[
{ text: "5-Star Rating", icon: Star },
{ text: "Central Location", icon: MapPin },
{ text: "24/7 Concierge", icon: Bell },
]}
imageSrc="http://img.b2bpic.net/free-photo/beautiful-luxury-chandelier-decoration-interior_74190-1083.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="Welcome to LUX, where every detail is crafted for your complete relaxation and rejuvenation. From exquisite design to personalized service, we set the standard for high-end hospitality."
primaryButton={{ text: "Our History", href: "#about" }}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesRevealCards
tag="Amenities"
title="Signature Experiences"
description="Indulge in amenities designed to elevate your stay to a whole new level of refinement."
items={[
{ title: "World-Class Spa", description: "Relax with our full range of therapeutic treatments and saunas.", imageSrc: "http://img.b2bpic.net/free-photo/silhouette-woman-spa_23-2148000382.jpg" },
{ title: "Gourmet Dining", description: "Experience fine dining with curated dishes prepared by top chefs.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-dining-tables-without-food_23-2150157778.jpg" },
{ title: "Infinity Pools", description: "Soak in breathtaking views from our private infinity pool decks.", imageSrc: "http://img.b2bpic.net/free-photo/many-hammocks-pool_1203-381.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="rooms" data-section="rooms">
<SectionErrorBoundary name="rooms">
<FeaturesRevealCardsBento
tag="Our Services"
title="Exceptional Facilities"
description="A curated collection of exclusive facilities available to every guest."
items={[
{ title: "Private Concierge", description: "Your needs met at a moment's notice.", imageSrc: "http://img.b2bpic.net/free-photo/hotel-bellboy-helping-guests-with-bags-carrying-luggage-room-luxury-resort-young-man-working-as-concierge-giving-assistance-people-with-suitcases-arriving-reception_482257-72422.jpg", href: "#" },
{ title: "Wellness Suite", description: "The peak of relaxation.", imageSrc: "http://img.b2bpic.net/free-photo/3d-gym-equipment_23-2151114244.jpg", href: "#" },
{ title: "Luxury Valet", description: "We take care of your arrival.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-valet-parking-car_23-2150274552.jpg", href: "#" },
{ title: "Grand Library", description: "Quiet corners for reading.", imageSrc: "http://img.b2bpic.net/free-photo/people-library-reading-club-learning-from-books_23-2150293582.jpg", href: "#" },
{ title: "Rooftop Lounge", description: "Sky-high evening relaxation.", imageSrc: "http://img.b2bpic.net/free-photo/waiter-holding-tray-with-glasses-white-wine-it-serving-them-guests-balcony_181624-57937.jpg", href: "#" },
{ title: "Meeting Spaces", description: "Professional environments.", imageSrc: "http://img.b2bpic.net/free-photo/modern-corporate-people-working-together_23-2148352578.jpg", href: "#" },
{ title: "Boutique Shop", description: "Exclusive handpicked gifts.", imageSrc: "http://img.b2bpic.net/free-photo/food-dessert-representative-elements_23-2149177080.jpg", href: "#" },
]}
/>
</SectionErrorBoundary>
</div>
<RoomsSection />
<div id="stats" data-section="stats">
<SectionErrorBoundary name="stats">
<MetricsIconCards
tag="Our Excellence"
title="Global Recognition"
description="Achievements that showcase our dedication to excellence."
metrics={[
{ icon: "Award", title: "Awards Won", value: "25+" },
{ icon: "Map", title: "Locations", value: "12" },
{ icon: "Smile", title: "Happy Guests", value: "100k+" },
]}
/>
</SectionErrorBoundary>
</div>
<StatsSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="The Team"
title="Led by Experts"
description="Our dedicated professional team ensures your stay is nothing short of perfect."
members={[
{ name: "Julian Thorne", role: "General Manager", imageSrc: "http://img.b2bpic.net/free-photo/catering-business_1098-15740.jpg" },
{ name: "Elise Beaumont", role: "Chief Concierge", imageSrc: "http://img.b2bpic.net/free-photo/traveller-arrives-hotel-front-desk-ringing-service-bell-trying-get-hold-resort-employees-businessman-looking-receptionist-wanting-relax-after-long-flight_482257-72599.jpg" },
{ name: "Marcus Vane", role: "Executive Chef", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-holding-food-plate_23-2149631671.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Reviews"
title="Guest Stories"
description="Hear what our distinguished guests have to say about their stay at LUX."
testimonials={[
{ name: "Sarah Miller", role: "Editor", company: "Travel Daily", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/woman-with-afro-hair-smile-broadly-dressed-beige-coat-strolls-city-sunny-autumn-day-uses-smartphone-with-delight-has-fun-texting-cellular-browses-web-pages_273609-55300.jpg" },
{ name: "David Chen", role: "CEO", company: "Tech Innovations", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/spectacular-smiling-girl-expressing-positive-emotions-while-posing-home-indoor-portrait-magnificent-longhaired-woman-elegant-holiday-outfit_291650-2396.jpg" },
{ name: "Elena Rossi", role: "Architect", company: "Studio Designs", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/fashion-portrait-blonde-caucasian-stylish-woman-french-cap-blazer-shorts-outdoor-outside-villa_343596-2200.jpg" },
{ name: "James Holt", role: "Traveler", company: "Venture Capital", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/happy-young-caucasian-redhaired-girl-pajamas-with-smile-her-face-holds-disco-ball-glass-with-sweets-living-room-festive-mood-concept_197531-31754.jpg" },
{ name: "Maria Lopez", role: "Designer", company: "Style Group", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/group-female-friends-enjoying-meal-home_1153-7627.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="social" data-section="social">
<SectionErrorBoundary name="social">
<SocialProofMarquee
tag="As Featured In"
title="Global Media Partners"
description="Recognized across leading publications globally."
names={[
"Travel Digest", "Luxury Weekly", "Global Hotel Guide", "Design Journal", "Hospitality Today", "World Resort Review", "Premium Travels"
]}
/>
</SectionErrorBoundary>
</div>
<SocialSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Support"
title="Frequently Asked Questions"
description="Everything you need to know to ensure a seamless booking and stay."
items={[
{ question: "What are your check-in/check-out times?", answer: "Check-in is at 3:00 PM, and check-out is by 12:00 PM." },
{ question: "Do you offer airport transfer services?", answer: "Yes, we provide luxury private airport transfer upon request." },
{ question: "Are pets allowed in the hotel?", answer: "We welcome small pets in designated pet-friendly suites." },
]}
imageSrc="http://img.b2bpic.net/free-photo/old-people-ring-service-bell-hotel_482257-76550.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
</>
);
}
}

View File

@@ -0,0 +1,19 @@
// 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="Welcome to LUX, where every detail is crafted for your complete relaxation and rejuvenation. From exquisite design to personalized service, we set the standard for high-end hospitality."
primaryButton={{ text: "Our History", href: "#about" }}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,26 @@
// 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="Support"
title="Frequently Asked Questions"
description="Everything you need to know to ensure a seamless booking and stay."
items={[
{ question: "What are your check-in/check-out times?", answer: "Check-in is at 3:00 PM, and check-out is by 12:00 PM." },
{ question: "Do you offer airport transfer services?", answer: "Yes, we provide luxury private airport transfer upon request." },
{ question: "Are pets allowed in the hotel?", answer: "We welcome small pets in designated pet-friendly suites." },
]}
imageSrc="http://img.b2bpic.net/free-photo/old-people-ring-service-bell-hotel_482257-76550.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesRevealCards
tag="Amenities"
title="Signature Experiences"
description="Indulge in amenities designed to elevate your stay to a whole new level of refinement."
items={[
{ title: "World-Class Spa", description: "Relax with our full range of therapeutic treatments and saunas.", imageSrc: "http://img.b2bpic.net/free-photo/silhouette-woman-spa_23-2148000382.jpg" },
{ title: "Gourmet Dining", description: "Experience fine dining with curated dishes prepared by top chefs.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-dining-tables-without-food_23-2150157778.jpg" },
{ title: "Infinity Pools", description: "Soak in breathtaking views from our private infinity pool decks.", imageSrc: "http://img.b2bpic.net/free-photo/many-hammocks-pool_1203-381.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// 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 HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import { Bell, MapPin, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlayMarquee
tag="Experience True Luxury"
title="Redefining Elegance in Every Stay"
description="Discover a haven of sophisticated comfort, where world-class service meets timeless style."
primaryButton={{ text: "Explore Rooms", href: "#rooms" }}
secondaryButton={{ text: "View Amenities", href: "#features" }}
items={[
{ text: "5-Star Rating", icon: Star },
{ text: "Central Location", icon: MapPin },
{ text: "24/7 Concierge", icon: Bell },
]}
imageSrc="http://img.b2bpic.net/free-photo/beautiful-luxury-chandelier-decoration-interior_74190-1083.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// 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 Services"
title="Exceptional Facilities"
description="A curated collection of exclusive facilities available to every guest."
items={[
{ title: "Private Concierge", description: "Your needs met at a moment's notice.", imageSrc: "http://img.b2bpic.net/free-photo/hotel-bellboy-helping-guests-with-bags-carrying-luggage-room-luxury-resort-young-man-working-as-concierge-giving-assistance-people-with-suitcases-arriving-reception_482257-72422.jpg", href: "#" },
{ title: "Wellness Suite", description: "The peak of relaxation.", imageSrc: "http://img.b2bpic.net/free-photo/3d-gym-equipment_23-2151114244.jpg", href: "#" },
{ title: "Luxury Valet", description: "We take care of your arrival.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-valet-parking-car_23-2150274552.jpg", href: "#" },
{ title: "Grand Library", description: "Quiet corners for reading.", imageSrc: "http://img.b2bpic.net/free-photo/people-library-reading-club-learning-from-books_23-2150293582.jpg", href: "#" },
{ title: "Rooftop Lounge", description: "Sky-high evening relaxation.", imageSrc: "http://img.b2bpic.net/free-photo/waiter-holding-tray-with-glasses-white-wine-it-serving-them-guests-balcony_181624-57937.jpg", href: "#" },
{ title: "Meeting Spaces", description: "Professional environments.", imageSrc: "http://img.b2bpic.net/free-photo/modern-corporate-people-working-together_23-2148352578.jpg", href: "#" },
{ title: "Boutique Shop", description: "Exclusive handpicked gifts.", imageSrc: "http://img.b2bpic.net/free-photo/food-dessert-representative-elements_23-2149177080.jpg", href: "#" },
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "social" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function SocialSection(): React.JSX.Element {
return (
<div id="social" data-section="social">
<SectionErrorBoundary name="social">
<SocialProofMarquee
tag="As Featured In"
title="Global Media Partners"
description="Recognized across leading publications globally."
names={[
"Travel Digest", "Luxury Weekly", "Global Hotel Guide", "Design Journal", "Hospitality Today", "World Resort Review", "Premium Travels"
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "stats" section.
import React from 'react';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function StatsSection(): React.JSX.Element {
return (
<div id="stats" data-section="stats">
<SectionErrorBoundary name="stats">
<MetricsIconCards
tag="Our Excellence"
title="Global Recognition"
description="Achievements that showcase our dedication to excellence."
metrics={[
{ icon: "Award", title: "Awards Won", value: "25+" },
{ icon: "Map", title: "Locations", value: "12" },
{ icon: "Smile", title: "Happy Guests", value: "100k+" },
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "team" section.
import React from 'react';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="The Team"
title="Led by Experts"
description="Our dedicated professional team ensures your stay is nothing short of perfect."
members={[
{ name: "Julian Thorne", role: "General Manager", imageSrc: "http://img.b2bpic.net/free-photo/catering-business_1098-15740.jpg" },
{ name: "Elise Beaumont", role: "Chief Concierge", imageSrc: "http://img.b2bpic.net/free-photo/traveller-arrives-hotel-front-desk-ringing-service-bell-trying-get-hold-resort-employees-businessman-looking-receptionist-wanting-relax-after-long-flight_482257-72599.jpg" },
{ name: "Marcus Vane", role: "Executive Chef", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-holding-food-plate_23-2149631671.jpg" },
]}
/>
</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 "testimonials" section.
import React from 'react';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Reviews"
title="Guest Stories"
description="Hear what our distinguished guests have to say about their stay at LUX."
testimonials={[
{ name: "Sarah Miller", role: "Editor", company: "Travel Daily", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/woman-with-afro-hair-smile-broadly-dressed-beige-coat-strolls-city-sunny-autumn-day-uses-smartphone-with-delight-has-fun-texting-cellular-browses-web-pages_273609-55300.jpg" },
{ name: "David Chen", role: "CEO", company: "Tech Innovations", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/spectacular-smiling-girl-expressing-positive-emotions-while-posing-home-indoor-portrait-magnificent-longhaired-woman-elegant-holiday-outfit_291650-2396.jpg" },
{ name: "Elena Rossi", role: "Architect", company: "Studio Designs", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/fashion-portrait-blonde-caucasian-stylish-woman-french-cap-blazer-shorts-outdoor-outside-villa_343596-2200.jpg" },
{ name: "James Holt", role: "Traveler", company: "Venture Capital", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/happy-young-caucasian-redhaired-girl-pajamas-with-smile-her-face-holds-disco-ball-glass-with-sweets-living-room-festive-mood-concept_197531-31754.jpg" },
{ name: "Maria Lopez", role: "Designer", company: "Style Group", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/group-female-friends-enjoying-meal-home_1153-7627.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
);
}