Merge version_2_1781785697980 into main #1

Merged
bender merged 1 commits from version_2_1781785697980 into main 2026-06-18 12:32:20 +00:00
9 changed files with 191 additions and 257 deletions

View File

@@ -1,269 +1,36 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
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 FeaturesCompSection from './HomePage/sections/FeaturesComp';
import ProductsSection from './HomePage/sections/Products';
import PricingSection from './HomePage/sections/Pricing';
import TestimonialSection from './HomePage/sections/Testimonial';
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="Authentic Craftsmanship"
title="Experience the Soul of Arabic Music"
description="Discover our collection of premium handcrafted Ouds, meticulously designed for musicians seeking excellence and tone."
primaryButton={{
text: "Explore Collection",
href: "#products",
}}
secondaryButton={{
text: "Learn About Our Craft",
href: "#about",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/vintage-dishes-hamam-museum-istanbul-turkey_1268-22496.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/close-up-engraving-art-tools_23-2149186739.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/boho-drummer-playing-drum-beach-stones_114579-8555.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/close-up-hookah-vaping_23-2149297143.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/smooth-curves-old-tree-create-textured-backdrop-generated-by-ai_188544-10211.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/part-drum-kit-dark-with-beautiful-lighting_169016-52967.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="The Art of the Oud"
descriptions={[
"At 'يس' (Yes), we believe that every instrument carries a story. Our journey began with a passion for traditional craftsmanship and the haunting, beautiful melodies of the Arabic Oud.",
"We source only the finest woods and employ master luthiers to build instruments that balance tradition with modern performance standards.",
"Whether you are a beginner or a master, our instruments are curated to inspire and perform at the highest levels.",
]}
primaryButton={{
text: "Explore Instruments",
href: "#products",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features-comp" data-section="features-comp">
<SectionErrorBoundary name="features-comp">
<FeaturesComparison
tag="Why Yes Oud?"
title="Mastery in Every Detail"
description="Compare our artisanal approach to mass-produced alternatives."
negativeItems={[
"Mass-produced generic tone woods",
"Machine-pressed soundboards",
"Lack of structural seasoning",
"Inconsistent intonation across registers",
]}
positiveItems={[
"Ethically sourced premium aged tone woods",
"Master-crafted graduated soundboards",
"Structurally seasoned for climate resilience",
"Precision-tuned for perfect intonation",
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesCompSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Our Collection"
title="Signature Arabic Ouds"
description="Browse our curated selection of professional and master-grade instruments."
items={[
{
title: "Mahogany Masterpiece",
description: "Classic mahogany body with deep, rich resonance.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-engraving-art-tools_23-2149186747.jpg",
},
{
title: "Walnut Grand",
description: "Elegant walnut construction for crisp projection.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/man-holding-chord-guitar-close-up_23-2148673598.jpg",
},
{
title: "Rosewood Inlay",
description: "Ornate rosewood with intricate mother-of-pearl.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/3d-view-musical-instrument_23-2150473520.jpg",
},
{
title: "Concert Pro",
description: "Engineered for solo performance and recording.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/violin-wooden-textured-table_93675-129031.jpg",
},
{
title: "Sycamore Traditional",
description: "Traditional sycamore sound for authentic tone.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/hands-playing-drums-with-sticks_23-2148328553.jpg",
},
{
title: "Custom Luthier Series",
description: "Made to order with bespoke aesthetic options.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-engraving-art-tools_23-2149186772.jpg",
},
{
title: "Student Pro Series",
description: "High-quality playability for serious students.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-music-background-with-acoustic-guitar-drum_169016-20992.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingSplitCards
tag="Investment"
title="Artisanal Value"
description="Transparent pricing for high-end instruments."
plans={[
{
tag: "Starter",
price: "$850",
period: "/instrument",
description: "Entry-level professional grade.",
primaryButton: {
text: "Select",
href: "#",
},
featuresTitle: "Includes:",
features: [
"Padded hard case",
"1-year warranty",
"Setup and maintenance kit",
],
},
{
tag: "Performance",
price: "$2,200",
period: "/instrument",
description: "For serious soloists and recording.",
primaryButton: {
text: "Select",
href: "#",
},
featuresTitle: "Includes:",
features: [
"Deluxe flight case",
"Lifetime structural guarantee",
"Priority support",
"Customized setup",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="testimonial" data-section="testimonial">
<SectionErrorBoundary name="testimonial">
<TestimonialTrustCard
quote="The resonance of my Yes Oud is unparalleled. It's truly a piece of art that sounds as good as it looks."
rating={5}
author="Khalid Al-Mansouri, Professional Musician"
avatars={[
{
name: "Musician 1",
imageSrc: "http://img.b2bpic.net/free-photo/man-holding-his-head-guitar-headstock_23-2148673589.jpg",
},
{
name: "Musician 2",
imageSrc: "http://img.b2bpic.net/free-photo/man-playing-electric-guitar-home_23-2148614525.jpg",
},
{
name: "Musician 3",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-girl-with-guitar-black-background_176420-5318.jpg",
},
{
name: "Musician 4",
imageSrc: "http://img.b2bpic.net/free-photo/van-gogh-portrait_23-2149737814.jpg",
},
{
name: "Musician 5",
imageSrc: "http://img.b2bpic.net/free-photo/middle-aged-man-looking-camera-while-holding-book-shirt-looking-confident-front-view_176474-55037.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Q&A"
title="Need Guidance?"
description="Answers to commonly asked questions about our Ouds."
items={[
{
question: "What is the warranty policy?",
answer: "All instruments come with a 1-year structural warranty, extendable upon registration.",
},
{
question: "How do I care for my Oud?",
answer: "Keep it in a temperature-controlled environment and maintain humidity around 50%.",
},
{
question: "Do you ship internationally?",
answer: "Yes, we ship globally with reinforced, climate-controlled packaging.",
},
{
question: "Can I request custom features?",
answer: "Yes, for our Luthier Series instruments, we offer bespoke customization.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/middle-aged-man-making-instruments-his-workshop-alone_23-2149018599.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Inquiry"
text="Ready to find your perfect instrument? Contact our workshop for personalized consultation."
primaryButton={{
text: "Contact Us",
href: "mailto:hello@yesoud.com",
}}
secondaryButton={{
text: "View FAQ",
href: "#faq",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,20 @@
// 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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="The Art of Perfumery"
descriptions={["At 'يس' (Yes), we believe that every fragrance carries a story. Our journey began with a passion for traditional perfumery and the deep, captivating essence of the Arabic Oud.","We source only the finest ingredients and employ master perfumers to create scents that balance tradition with modern elegance.","Whether you seek a subtle daily scent or a bold statement fragrance, our collection is curated to inspire and leave a lasting impression."]}
primaryButton={{"href":"#products","text":"Explore Fragrances"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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="Inquiry"
text="Ready to find your perfect scent? Contact our perfumery for a personalized consultation."
primaryButton={{"href":"mailto:hello@yesperfumes.com","text":"Contact Us"}}
secondaryButton={{"href":"#faq","text":"View FAQ"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// 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="Q&A"
title="Need Guidance?"
description="Answers to commonly asked questions about our perfumes."
items={[{"answer":"Store your perfume in a cool, dark place away from direct sunlight and extreme temperatures.","question":"How should I store my perfume?"},{"answer":"Our perfumes are highly concentrated and typically last 8-12 hours on the skin, and even longer on clothing.","question":"How long does the scent last?"},{"question":"Do you ship internationally?","answer":"Yes, we ship globally with secure, climate-controlled packaging."},{"question":"Can I request custom blends?","answer":"Yes, for our Custom Perfumer Series, we offer bespoke scent creation."}]}
imageSrc="https://images.unsplash.com/photo-1594035910387-fea47794261f?auto=format&fit=crop&q=80&w=800"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features-comp" section.
import React from 'react';
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesCompSection(): React.JSX.Element {
return (
<div id="features-comp" data-section="features-comp">
<SectionErrorBoundary name="features-comp">
<FeaturesComparison
tag="Why Yes Perfumes?"
title="Mastery in Every Drop"
description="Compare our artisanal approach to mass-produced alternatives."
negativeItems={["Synthetic, mass-produced ingredients","Diluted concentrations","Lack of aging process","Inconsistent scent profiles"]}
positiveItems={["Ethically sourced premium natural ingredients","High concentration of pure oils","Carefully aged for depth and complexity","Precision-blended for perfect harmony"]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,19 @@
// Created by add_section_from_catalog (HeroSplit).
import React from 'react';
import HeroSplit from '@/components/sections/hero/HeroSplit';
export default function HeroSection(): React.JSX.Element {
return (
<div data-webild-section="hero" id="hero">
<HeroSplit
description="Discover our collection of premium handcrafted Oud perfumes, meticulously blended for those seeking an unforgettable sensory experience."
imageSrc="https://images.unsplash.com/photo-1594035910387-fea47794261f?auto=format&fit=crop&q=80&w=800"
secondaryButton={{"href":"#about","text":"Learn About Our Blends"}}
title="Experience the Essence of Oud"
tag="Authentic Luxury"
primaryButton={{"href":"#products","text":"Explore Fragrances"}}
/>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingSplitCards
tag="Investment"
title="Artisanal Value"
description="Transparent pricing for high-end fragrances."
plans={[{"featuresTitle":"Includes:","tag":"Signature","period":"/bottle","price":"$150","primaryButton":{"href":"#","text":"Select"},"description":"Entry-level luxury grade.","features":["50ml bottle","Signature packaging","Complimentary samples"]},{"description":"For serious collectors and connoisseurs.","primaryButton":{"text":"Select","href":"#"},"price":"$350","tag":"Masterpiece","period":"/bottle","featuresTitle":"Includes:","features":["100ml bottle","Deluxe presentation box","Priority support","Customized engraving"]}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "products" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Our Collection"
title="Signature Arabic Perfumes"
description="Browse our curated selection of signature and master-grade fragrances."
items={[{"imageSrc":"https://images.unsplash.com/photo-1594035910387-fea47794261f?auto=format&fit=crop&q=80&w=800","href":"#","title":"Royal Oud","description":"Classic oud with deep, rich woody notes."},{"imageSrc":"https://images.unsplash.com/photo-1615397323226-17b5e43a6813?auto=format&fit=crop&q=80&w=800","title":"Rosewood Essence","href":"#","description":"Elegant rose and oud blend for a crisp, floral projection."},{"href":"#","title":"Amber Inlay","imageSrc":"https://images.unsplash.com/photo-1592945403244-b3fbafd7f539?auto=format&fit=crop&q=80&w=800","description":"Ornate blend with intricate notes of amber and musk."},{"imageSrc":"https://images.unsplash.com/photo-1588405748880-12d1d2a59f75?auto=format&fit=crop&q=80&w=800","title":"Signature Pro","href":"#","description":"Engineered for long-lasting performance and projection."},{"imageSrc":"https://images.unsplash.com/photo-1595425970377-c9703bc48baf?auto=format&fit=crop&q=80&w=800","title":"Saffron Traditional","href":"#","description":"Traditional saffron and oud for an authentic scent."},{"description":"Made to order with bespoke scent profiles.","imageSrc":"https://images.unsplash.com/photo-1616401784845-180882ba9ba8?auto=format&fit=crop&q=80&w=800","href":"#","title":"Custom Perfumer Series"},{"imageSrc":"https://images.unsplash.com/photo-1594035910387-fea47794261f?auto=format&fit=crop&q=80&w=800","title":"Everyday Elegance","href":"#","description":"High-quality daily wear for fragrance enthusiasts."}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonial" section.
import React from 'react';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialSection(): React.JSX.Element {
return (
<div id="testimonial" data-section="testimonial">
<SectionErrorBoundary name="testimonial">
<TestimonialTrustCard
quote="The depth of my Yes Perfume is unparalleled. It's truly a masterpiece that lingers beautifully throughout the day."
rating={5}
author="Aisha Al-Fayed, Fragrance Connoisseur"
avatars={[{"imageSrc":"https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=crop&q=80&w=200","name":"Customer 1"},{"imageSrc":"https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?auto=format&fit=crop&q=80&w=200","name":"Customer 2"},{"imageSrc":"https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?auto=format&fit=crop&q=80&w=200","name":"Customer 3"},{"imageSrc":"https://images.unsplash.com/photo-1534528741775-53994a69daeb?auto=format&fit=crop&q=80&w=200","name":"Customer 4"},{"imageSrc":"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&q=80&w=200","name":"Customer 5"}]}
/>
</SectionErrorBoundary>
</div>
);
}