Merge version_2_1781526751342 into main #2
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f6f0e9;
|
||||
--card: #efe7dd;
|
||||
--foreground: #2b180a;
|
||||
--primary-cta: #2b180a;
|
||||
--primary-cta-text: #f6f0e9;
|
||||
--secondary-cta: #efe7dd;
|
||||
--secondary-cta-text: #2b180a;
|
||||
--accent: #94877c;
|
||||
--background-accent: #afa094;
|
||||
--background: #ffffff;
|
||||
--card: #f8f8f8;
|
||||
--foreground: #1a1a1a;
|
||||
--primary-cta: #1a1a1a;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #f8f8f8;
|
||||
--secondary-cta-text: #1a1a1a;
|
||||
--accent: #e5e5e5;
|
||||
--background-accent: #f0f0f0;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1.5rem;
|
||||
|
||||
@@ -1,265 +1,36 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
|
||||
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
|
||||
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
|
||||
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 ProductsSection from './HomePage/sections/Products';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
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">
|
||||
<HeroCenteredLogos
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/modern-muslim-woman-talking-phone_1303-27595.jpg",
|
||||
"http://img.b2bpic.net/free-photo/pretty-young-woman-indoor_624325-3501.jpg",
|
||||
"http://img.b2bpic.net/free-photo/beautiful-girl-with-hijab-smiling-outdoors_23-2148645025.jpg",
|
||||
"http://img.b2bpic.net/free-photo/pretty-young-girls-look-phone-screen-ladies-stylish-summer-outfits-smile-pose-cozy-office-fashion-designer_197531-29841.jpg",
|
||||
"http://img.b2bpic.net/free-photo/cute-friends-having-fun-together_23-2148262806.jpg",
|
||||
]}
|
||||
avatarText="Trusted by 5,000+ fashion enthusiasts"
|
||||
title="Modest Fashion That Expresses You"
|
||||
description="Beautifully designed hijabs, abayas, and modest wear crafted for confidence and cultural authenticity. Shop curated collections delivered discreetly to your door."
|
||||
primaryButton={{
|
||||
text: "Explore Collections",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#about",
|
||||
}}
|
||||
names={[
|
||||
"Quality Craftsmanship",
|
||||
"Worldwide Shipping",
|
||||
"Discreet Packaging",
|
||||
"Authentic Styles",
|
||||
"Premium Materials",
|
||||
"Ethical Sourcing",
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/side-view-woman-posing_23-2148627181.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Celebrating Modest Identity"
|
||||
primaryButton={{
|
||||
text: "Our Values",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCards
|
||||
tag="Why Us"
|
||||
title="Excellence in Every Detail"
|
||||
description="We prioritize quality and cultural sensitivity in everything we do."
|
||||
items={[
|
||||
{
|
||||
title: "Premium Fabrics",
|
||||
description: "Hand-selected materials for comfort, durability, and a beautiful silhouette.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-manila-shawl-with-pink-background_23-2148235342.jpg",
|
||||
},
|
||||
{
|
||||
title: "Discreet Delivery",
|
||||
description: "Secure, private packaging ensures your purchases arrive exactly as you want.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-laptop-holding-box_23-2148567228.jpg",
|
||||
},
|
||||
{
|
||||
title: "Perfect Fit",
|
||||
description: "Detailed sizing guides to ensure confidence in every purchase.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/personal-shopper-office-with-client_23-2148929546.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesImageBento
|
||||
tag="Collections"
|
||||
title="Curated Modesty"
|
||||
description="Discover our latest seasonal arrivals."
|
||||
items={[
|
||||
{
|
||||
title: "Essential Abayas",
|
||||
description: "Timeless elegance.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fashion-photo-young-magnificent-woman-pink-shirt_158595-1050.jpg",
|
||||
},
|
||||
{
|
||||
title: "Silk Hijabs",
|
||||
description: "Soft and breathable.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/clean-bathrobe-bed_1232-3420.jpg",
|
||||
},
|
||||
{
|
||||
title: "Luxury Sets",
|
||||
description: "Occasion wear.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/adult-brunette-woman-violet-gown-background-old-wooden-doors_627829-8776.jpg",
|
||||
},
|
||||
{
|
||||
title: "Casual Wear",
|
||||
description: "Daily comfort.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-short-sleeved-blouse-stylish-high-waisted-pants-sits-doorstep_197531-17094.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bridal Abayas",
|
||||
description: "Elegant gowns.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-boho-dress-with-romantic-garden-aesthetic-vegetation_23-2150260770.jpg",
|
||||
},
|
||||
{
|
||||
title: "Summer Collection",
|
||||
description: "Light fabrics.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/seductive-stylish-woman-bohemian-summer-clothes-posing-tropical-luxury-resort-vacation-concept_273443-3135.jpg",
|
||||
},
|
||||
{
|
||||
title: "Scarves",
|
||||
description: "Versatile styles.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/multi-colored-textiles-hang-elegant-fashion-store-generated-by-ai_188544-34070.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingHighlightedCards
|
||||
tag="Value"
|
||||
title="Transparent Pricing"
|
||||
description="Quality modest fashion within reach."
|
||||
plans={[
|
||||
{
|
||||
tag: "Essentials",
|
||||
price: "$49",
|
||||
description: "Perfect for daily needs.",
|
||||
features: [
|
||||
"Fast Shipping",
|
||||
"Premium Cotton",
|
||||
"30-Day Return",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Select",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Premium",
|
||||
price: "$129",
|
||||
description: "Luxury abayas and sets.",
|
||||
features: [
|
||||
"Gift Packaging",
|
||||
"Silk Blend",
|
||||
"Priority Support",
|
||||
"Personal Styling",
|
||||
],
|
||||
highlight: "Best Seller",
|
||||
primaryButton: {
|
||||
text: "Select",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeOverlayCards
|
||||
tag="Reviews"
|
||||
title="Loved by Our Community"
|
||||
description="Hear what our customers have to say about their experience."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Ahmed",
|
||||
role: "Fashion Blogger",
|
||||
company: "Global Styles",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arab-business-woman-working_74190-7369.jpg",
|
||||
},
|
||||
{
|
||||
name: "Fatima Khan",
|
||||
role: "Consultant",
|
||||
company: "Daily Modesty",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-pretty-female-with-pink-silk-dress-sitting-outdoor-cafe_181624-27386.jpg",
|
||||
},
|
||||
{
|
||||
name: "Amira Noor",
|
||||
role: "Teacher",
|
||||
company: "Community Hub",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-caucasian-woman-holding-shopping-bags-make-selfie-by-camera-clothing-store_839833-1916.jpg",
|
||||
},
|
||||
{
|
||||
name: "Layla Saeed",
|
||||
role: "Designer",
|
||||
company: "Creative Minds",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-ancient-greece-woman_23-2151026617.jpg",
|
||||
},
|
||||
{
|
||||
name: "Zahra Malik",
|
||||
role: "Architect",
|
||||
company: "Design Group",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/urban-portrait-smiley-woman-costume-outdoors_23-2148728630.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Help"
|
||||
title="Common Questions"
|
||||
description="Answers to help you shop with confidence."
|
||||
items={[
|
||||
{
|
||||
question: "What is your return policy?",
|
||||
answer: "We offer a 30-day return policy for unused, original condition items.",
|
||||
},
|
||||
{
|
||||
question: "Do you ship worldwide?",
|
||||
answer: "Yes, we ship to over 100 countries with fast tracking.",
|
||||
},
|
||||
{
|
||||
question: "Are packages discreet?",
|
||||
answer: "Absolutely, all shipments are sent in plain, unmarked packaging.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Support"
|
||||
text="Need help finding your perfect fit or have questions about a collection?"
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Chat Live",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// 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="Celebrating Modest Identity"
|
||||
primaryButton={{
|
||||
text: "Our Values",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.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 "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="Support"
|
||||
text="Need help finding your perfect fit or have questions about a collection?"
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Chat Live",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// 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 FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Help"
|
||||
title="Common Questions"
|
||||
description="Answers to help you shop with confidence."
|
||||
items={[
|
||||
{
|
||||
question: "What is your return policy?",
|
||||
answer: "We offer a 30-day return policy for unused, original condition items.",
|
||||
},
|
||||
{
|
||||
question: "Do you ship worldwide?",
|
||||
answer: "Yes, we ship to over 100 countries with fast tracking.",
|
||||
},
|
||||
{
|
||||
question: "Are packages discreet?",
|
||||
answer: "Absolutely, all shipments are sent in plain, unmarked packaging.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Features.tsx
Normal file
37
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// 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 FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCards
|
||||
tag="Why Us"
|
||||
title="Excellence in Every Detail"
|
||||
description="We prioritize quality and cultural sensitivity in everything we do."
|
||||
items={[
|
||||
{
|
||||
title: "Premium Fabrics",
|
||||
description: "Hand-selected materials for comfort, durability, and a beautiful silhouette.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-manila-shawl-with-pink-background_23-2148235342.jpg",
|
||||
},
|
||||
{
|
||||
title: "Discreet Delivery",
|
||||
description: "Secure, private packaging ensures your purchases arrive exactly as you want.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-laptop-holding-box_23-2148567228.jpg",
|
||||
},
|
||||
{
|
||||
title: "Perfect Fit",
|
||||
description: "Detailed sizing guides to ensure confidence in every purchase.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/personal-shopper-office-with-client_23-2148929546.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
44
src/pages/HomePage/sections/Hero.tsx
Normal file
44
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,44 @@
|
||||
// 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 HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroCenteredLogos
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/modern-muslim-woman-talking-phone_1303-27595.jpg",
|
||||
"http://img.b2bpic.net/free-photo/pretty-young-woman-indoor_624325-3501.jpg",
|
||||
"http://img.b2bpic.net/free-photo/beautiful-girl-with-hijab-smiling-outdoors_23-2148645025.jpg",
|
||||
"http://img.b2bpic.net/free-photo/pretty-young-girls-look-phone-screen-ladies-stylish-summer-outfits-smile-pose-cozy-office-fashion-designer_197531-29841.jpg",
|
||||
"http://img.b2bpic.net/free-photo/cute-friends-having-fun-together_23-2148262806.jpg",
|
||||
]}
|
||||
avatarText="Trusted by 5,000+ fashion enthusiasts"
|
||||
title="Modest Fashion That Expresses You"
|
||||
description="Beautifully designed hijabs, abayas, and modest wear crafted for confidence and cultural authenticity. Shop curated collections delivered discreetly to your door."
|
||||
primaryButton={{
|
||||
text: "Explore Collections",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#about",
|
||||
}}
|
||||
names={[
|
||||
"Quality Craftsmanship",
|
||||
"Worldwide Shipping",
|
||||
"Discreet Packaging",
|
||||
"Authentic Styles",
|
||||
"Premium Materials",
|
||||
"Ethical Sourcing",
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/side-view-woman-posing_23-2148627181.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Pricing.tsx
Normal file
52
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// 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 PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingHighlightedCards
|
||||
tag="Value"
|
||||
title="Transparent Pricing"
|
||||
description="Quality modest fashion within reach."
|
||||
plans={[
|
||||
{
|
||||
tag: "Essentials",
|
||||
price: "$49",
|
||||
description: "Perfect for daily needs.",
|
||||
features: [
|
||||
"Fast Shipping",
|
||||
"Premium Cotton",
|
||||
"30-Day Return",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Select",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Premium",
|
||||
price: "$129",
|
||||
description: "Luxury abayas and sets.",
|
||||
features: [
|
||||
"Gift Packaging",
|
||||
"Silk Blend",
|
||||
"Priority Support",
|
||||
"Personal Styling",
|
||||
],
|
||||
highlight: "Best Seller",
|
||||
primaryButton: {
|
||||
text: "Select",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Products.tsx
Normal file
57
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// 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 FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProductsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesImageBento
|
||||
tag="Collections"
|
||||
title="Curated Modesty"
|
||||
description="Discover our latest seasonal arrivals."
|
||||
items={[
|
||||
{
|
||||
title: "Essential Abayas",
|
||||
description: "Timeless elegance.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fashion-photo-young-magnificent-woman-pink-shirt_158595-1050.jpg",
|
||||
},
|
||||
{
|
||||
title: "Silk Hijabs",
|
||||
description: "Soft and breathable.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/clean-bathrobe-bed_1232-3420.jpg",
|
||||
},
|
||||
{
|
||||
title: "Luxury Sets",
|
||||
description: "Occasion wear.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/adult-brunette-woman-violet-gown-background-old-wooden-doors_627829-8776.jpg",
|
||||
},
|
||||
{
|
||||
title: "Casual Wear",
|
||||
description: "Daily comfort.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-short-sleeved-blouse-stylish-high-waisted-pants-sits-doorstep_197531-17094.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bridal Abayas",
|
||||
description: "Elegant gowns.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-boho-dress-with-romantic-garden-aesthetic-vegetation_23-2150260770.jpg",
|
||||
},
|
||||
{
|
||||
title: "Summer Collection",
|
||||
description: "Light fabrics.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/seductive-stylish-woman-bohemian-summer-clothes-posing-tropical-luxury-resort-vacation-concept_273443-3135.jpg",
|
||||
},
|
||||
{
|
||||
title: "Scarves",
|
||||
description: "Versatile styles.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/multi-colored-textiles-hang-elegant-fashion-store-generated-by-ai_188544-34070.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
57
src/pages/HomePage/sections/Testimonials.tsx
Normal 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 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="Loved by Our Community"
|
||||
description="Hear what our customers have to say about their experience."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Ahmed",
|
||||
role: "Fashion Blogger",
|
||||
company: "Global Styles",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/arab-business-woman-working_74190-7369.jpg",
|
||||
},
|
||||
{
|
||||
name: "Fatima Khan",
|
||||
role: "Consultant",
|
||||
company: "Daily Modesty",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-pretty-female-with-pink-silk-dress-sitting-outdoor-cafe_181624-27386.jpg",
|
||||
},
|
||||
{
|
||||
name: "Amira Noor",
|
||||
role: "Teacher",
|
||||
company: "Community Hub",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-caucasian-woman-holding-shopping-bags-make-selfie-by-camera-clothing-store_839833-1916.jpg",
|
||||
},
|
||||
{
|
||||
name: "Layla Saeed",
|
||||
role: "Designer",
|
||||
company: "Creative Minds",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-ancient-greece-woman_23-2151026617.jpg",
|
||||
},
|
||||
{
|
||||
name: "Zahra Malik",
|
||||
role: "Architect",
|
||||
company: "Design Group",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/urban-portrait-smiley-woman-costume-outdoors_23-2148728630.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user