Merge version_2_1781577135004 into main #1

Merged
bender merged 1 commits from version_2_1781577135004 into main 2026-06-16 02:33:44 +00:00
9 changed files with 341 additions and 252 deletions

View File

@@ -42,7 +42,7 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloating
logo="LUXEHAIR"
logo="Cemluxe Lounge"
ctaButton={{
text: "Book Now",
href: "#contact",
@@ -54,7 +54,7 @@ export default function Layout() {
</main>
<SectionErrorBoundary name="footer">
<FooterSimple
brand="LUXEHAIR"
brand="Cemluxe Lounge"
columns={[
{
title: "Salon",
@@ -91,7 +91,7 @@ export default function Layout() {
],
},
]}
copyright="© 2024 LUXEHAIR All rights reserved."
copyright="© 2024 Cemluxe Lounge All rights reserved."
links={[
{
label: "Instagram",

View File

@@ -1,260 +1,33 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import TeamProfileCards from '@/components/sections/team/TeamProfileCards';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import { CheckCircle, Sparkles, 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 TeamSection from './HomePage/sections/Team';
import ServicesSection from './HomePage/sections/Services';
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="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardCarousel
tag="Welcome to Excellence"
title="Where Luxury Meets Precision Styling"
description="Redefining your personal style with professional expertise and high-end hair care experiences."
primaryButton={{
text: "Book Your Appointment",
href: "#contact",
}}
secondaryButton={{
text: "View Our Menu",
href: "#services",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/smiling-african-american-woman-talking-smartphone-armchair-office_23-2148042626.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/blonde-model-white-shirt-looks-seductive_114579-17017.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1803.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/laptop-hair-equipment_23-2148352872.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/one-woman-helps-friend-with-necklace_343596-885.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/sexy-blond-female-black-costume-sits-round-black-chair-empty-room_613910-336.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="Our Philosophy"
title="Curated Experiences for Discerning Clients"
description="We blend artistic precision with premium hair products to ensure every strand receives the attention it deserves. Your journey to impeccable style begins here."
items={[
{
icon: Sparkles,
title: "Expert Stylists",
description: "Highly trained professionals dedicated to your vision.",
},
{
icon: CheckCircle,
title: "Premium Products",
description: "Using only the finest luxury hair care brands.",
},
{
icon: Star,
title: "Bespoke Service",
description: "Personalized consultations tailored to your unique look.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/front-view-beautiful-happy-woman_23-2148778255.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamProfileCards
tag="Meet Our Experts"
title="Visionaries Behind the Chair"
description="Our master stylists bring passion, technique, and care to every appointment."
items={[
{
title: "Elena Vance",
description: "Master Stylist specializing in bespoke color treatments.",
avatarSrc: "http://img.b2bpic.net/free-photo/smiley-woman-face-massaging-with-gua-sha-medium-shot_23-2149349087.jpg",
buttonText: "View Portfolio",
imageSrc: "http://img.b2bpic.net/free-photo/pleased-young-beautiful-female-barber-uniform-holding-cash-with-scissors-isolated-blue-wall_141793-106142.jpg",
},
{
title: "Julian Reed",
description: "Creative Director known for precision cutting and texturing.",
avatarSrc: "http://img.b2bpic.net/free-photo/clothes-designer-working-store_23-2148915557.jpg",
buttonText: "View Portfolio",
imageSrc: "http://img.b2bpic.net/free-photo/young-artist-woman-holding-art-supplies-red-wall_114579-55994.jpg",
},
{
title: "Sophia Chen",
description: "Style Artisan with 15 years of luxury salon experience.",
avatarSrc: "http://img.b2bpic.net/free-photo/senior-woman-getting-ready-go-out_329181-7844.jpg",
buttonText: "View Portfolio",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-blond-female-white-dress-posing-studio_613910-10972.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Services"
title="Elevate Your Look"
description="From precision cuts to revitalizing treatments, explore our signature service offerings."
items={[
{
title: "Precision Cuts",
description: "Classic and modern shapes defined by expert technique.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-salon_23-2147737030.jpg",
},
{
title: "Bespoke Color",
description: "Tailored multidimensional color that reflects your style.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/extreme-close-up-squid-ink-pasta-all-black_23-2148340453.jpg",
},
{
title: "Deep Conditioning",
description: "Restorative treatments for vibrant, healthy hair.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/woman-getting-treatment-hairdresser-shop_23-2149230922.jpg",
},
{
title: "Signature Blowout",
description: "Professional styling for a perfect finish.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-self-care-setting-still-life_23-2150326560.jpg",
},
{
title: "Special Events",
description: "Updos and styling for your most important days.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-black-sweater-standing-posing_114579-81881.jpg",
},
{
title: "Scalp Therapy",
description: "A holistic approach to scalp health and growth.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/anime-style-beauty-salon-with-cosmetology-equipment_23-2151501004.jpg",
},
{
title: "Bridal Packages",
description: "Full-service wedding preparation for your bridal party.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/tools-profession-hairdresser_23-2150668439.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Testimonials"
title="Trusted by Beautiful People"
description="See why our clients choose us for their most important hair moments."
testimonials={[
{
name: "Sarah Miller",
role: "Corporate Lead",
quote: "The most professional salon experience I have ever had.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/crop-hairdresser-coloring-hair-client_23-2147769784.jpg",
},
{
name: "David Thorne",
role: "Creative",
quote: "Impeccable attention to detail. My style has never looked better.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-two-young-women-screaming-friend_171337-15303.jpg",
},
{
name: "Mia Rossi",
role: "Entrepreneur",
quote: "I am so happy with my custom color results. Simply amazing.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/hairdresser-drying-woman39s-hair_657883-585.jpg",
},
{
name: "Chloe West",
role: "Model",
quote: "The scalp treatments here have completely changed my hair health.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiling-bride-young-woman-with-wedding-hairstyle-silk-robe-drinking-looking-bridesmaids-gray-style-robes-standing-spacious-room-near-window_8353-12010.jpg",
},
{
name: "James Bond",
role: "Architect",
quote: "Consistent excellence every time I visit. Highly recommended.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-black-african-american-woman-with-afro-hair-posing-beauty-skin-care-smiling-face-positive-emotionisolated-background_640221-12.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Common Questions"
title="Everything You Need to Know"
description="Clear answers to help you prepare for your next luxury salon visit."
items={[
{
question: "How often should I trim?",
answer: "Every 6-8 weeks is recommended for healthy growth.",
},
{
question: "Can I request a stylist?",
answer: "Absolutely! We encourage booking with your preferred professional.",
},
{
question: "Do you offer consultations?",
answer: "Yes, we provide 15-minute consultations for all chemical services.",
},
{
question: "What if I need to reschedule?",
answer: "Please let us know at least 48 hours in advance.",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Ready to Transform?"
text="Book your personalized consultation or visit us in person today to start your journey."
primaryButton={{
text: "Book Now",
href: "#",
}}
secondaryButton={{
text: "Get Directions",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,39 @@
// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import { CheckCircle, Sparkles, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="Our Philosophy"
title="Curated Experiences for Discerning Clients"
description="We blend artistic precision with premium hair products to ensure every strand receives the attention it deserves. Your journey to impeccable style begins here."
items={[
{
icon: Sparkles,
title: "Expert Stylists",
description: "Highly trained professionals dedicated to your vision.",
},
{
icon: CheckCircle,
title: "Premium Products",
description: "Using only the finest luxury hair care brands.",
},
{
icon: Star,
title: "Bespoke Service",
description: "Personalized consultations tailored to your unique look.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/front-view-beautiful-happy-woman_23-2148778255.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 "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 Transform?"
text="Book your personalized consultation or visit us in person today to start your journey."
primaryButton={{
text: "Book Now",
href: "#",
}}
secondaryButton={{
text: "Get Directions",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// 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 FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Common Questions"
title="Everything You Need to Know"
description="Clear answers to help you prepare for your next luxury salon visit."
items={[
{
question: "How often should I trim?",
answer: "Every 6-8 weeks is recommended for healthy growth.",
},
{
question: "Can I request a stylist?",
answer: "Absolutely! We encourage booking with your preferred professional.",
},
{
question: "Do you offer consultations?",
answer: "Yes, we provide 15-minute consultations for all chemical services.",
},
{
question: "What if I need to reschedule?",
answer: "Please let us know at least 48 hours in advance.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,48 @@
// 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 HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardCarousel
tag="Welcome to Excellence"
title="Where Luxury Meets Precision Styling"
description="Redefining your personal style with professional expertise and high-end hair care experiences."
primaryButton={{
text: "Book Your Appointment",
href: "#contact",
}}
secondaryButton={{
text: "View Our Menu",
href: "#services",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/smiling-african-american-woman-talking-smartphone-armchair-office_23-2148042626.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/blonde-model-white-shirt-looks-seductive_114579-17017.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1803.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/laptop-hair-equipment_23-2148352872.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/one-woman-helps-friend-with-necklace_343596-885.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/sexy-blond-female-black-costume-sits-round-black-chair-empty-room_613910-336.jpg",
},
]}
/>
</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 "services" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Services"
title="Elevate Your Look"
description="From precision cuts to revitalizing treatments, explore our signature service offerings."
items={[
{
title: "Precision Cuts",
description: "Classic and modern shapes defined by expert technique.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-salon_23-2147737030.jpg",
},
{
title: "Bespoke Color",
description: "Tailored multidimensional color that reflects your style.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/extreme-close-up-squid-ink-pasta-all-black_23-2148340453.jpg",
},
{
title: "Deep Conditioning",
description: "Restorative treatments for vibrant, healthy hair.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/woman-getting-treatment-hairdresser-shop_23-2149230922.jpg",
},
{
title: "Signature Blowout",
description: "Professional styling for a perfect finish.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-self-care-setting-still-life_23-2150326560.jpg",
},
{
title: "Special Events",
description: "Updos and styling for your most important days.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-black-sweater-standing-posing_114579-81881.jpg",
},
{
title: "Scalp Therapy",
description: "A holistic approach to scalp health and growth.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/anime-style-beauty-salon-with-cosmetology-equipment_23-2151501004.jpg",
},
{
title: "Bridal Packages",
description: "Full-service wedding preparation for your bridal party.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/tools-profession-hairdresser_23-2150668439.jpg",
},
]}
/>
</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 "team" section.
import React from 'react';
import TeamProfileCards from '@/components/sections/team/TeamProfileCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamProfileCards
tag="Meet Our Experts"
title="Visionaries Behind the Chair"
description="Our master stylists bring passion, technique, and care to every appointment."
items={[
{
title: "Elena Vance",
description: "Master Stylist specializing in bespoke color treatments.",
avatarSrc: "http://img.b2bpic.net/free-photo/smiley-woman-face-massaging-with-gua-sha-medium-shot_23-2149349087.jpg",
buttonText: "View Portfolio",
imageSrc: "http://img.b2bpic.net/free-photo/pleased-young-beautiful-female-barber-uniform-holding-cash-with-scissors-isolated-blue-wall_141793-106142.jpg",
},
{
title: "Julian Reed",
description: "Creative Director known for precision cutting and texturing.",
avatarSrc: "http://img.b2bpic.net/free-photo/clothes-designer-working-store_23-2148915557.jpg",
buttonText: "View Portfolio",
imageSrc: "http://img.b2bpic.net/free-photo/young-artist-woman-holding-art-supplies-red-wall_114579-55994.jpg",
},
{
title: "Sophia Chen",
description: "Style Artisan with 15 years of luxury salon experience.",
avatarSrc: "http://img.b2bpic.net/free-photo/senior-woman-getting-ready-go-out_329181-7844.jpg",
buttonText: "View Portfolio",
imageSrc: "http://img.b2bpic.net/free-photo/luxury-blond-female-white-dress-posing-studio_613910-10972.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// 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 TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Testimonials"
title="Trusted by Beautiful People"
description="See why our clients choose us for their most important hair moments."
testimonials={[
{
name: "Sarah Miller",
role: "Corporate Lead",
quote: "The most professional salon experience I have ever had.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/crop-hairdresser-coloring-hair-client_23-2147769784.jpg",
},
{
name: "David Thorne",
role: "Creative",
quote: "Impeccable attention to detail. My style has never looked better.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-two-young-women-screaming-friend_171337-15303.jpg",
},
{
name: "Mia Rossi",
role: "Entrepreneur",
quote: "I am so happy with my custom color results. Simply amazing.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/hairdresser-drying-woman39s-hair_657883-585.jpg",
},
{
name: "Chloe West",
role: "Model",
quote: "The scalp treatments here have completely changed my hair health.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiling-bride-young-woman-with-wedding-hairstyle-silk-robe-drinking-looking-bridesmaids-gray-style-robes-standing-spacious-room-near-window_8353-12010.jpg",
},
{
name: "James Bond",
role: "Architect",
quote: "Consistent excellence every time I visit. Highly recommended.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-black-african-american-woman-with-afro-hair-posing-beauty-skin-care-smiling-face-positive-emotionisolated-background_640221-12.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}