Compare commits
4 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 61f00b1e20 | |||
|
|
ddb48f8e93 | ||
| 60838131b8 | |||
| e87a0532a0 |
@@ -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;
|
||||
|
||||
@@ -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 />
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
19
src/pages/HomePage/sections/About.tsx
Normal file
19
src/pages/HomePage/sections/About.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
26
src/pages/HomePage/sections/Faq.tsx
Normal file
26
src/pages/HomePage/sections/Faq.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Features.tsx
Normal file
25
src/pages/HomePage/sections/Features.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Hero.tsx
Normal file
29
src/pages/HomePage/sections/Hero.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Rooms.tsx
Normal file
29
src/pages/HomePage/sections/Rooms.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Social.tsx
Normal file
23
src/pages/HomePage/sections/Social.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Stats.tsx
Normal file
25
src/pages/HomePage/sections/Stats.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Team.tsx
Normal file
25
src/pages/HomePage/sections/Team.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Testimonials.tsx
Normal file
27
src/pages/HomePage/sections/Testimonials.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 "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>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user