From 8b345309631b5fdcd365db894701a559432b9fd6 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:46:06 +0000 Subject: [PATCH 01/20] Update src/app/fashion/page.tsx --- src/app/fashion/page.tsx | 149 ++++++++------------------------------- 1 file changed, 31 insertions(+), 118 deletions(-) diff --git a/src/app/fashion/page.tsx b/src/app/fashion/page.tsx index 6ce56e3..09cf91c 100644 --- a/src/app/fashion/page.tsx +++ b/src/app/fashion/page.tsx @@ -26,7 +26,7 @@ export default function FashionPage() { brandName="ZSMX Store" navItems={[ { name: "Fashion", id: "fashion" }, - { name: "Home", id: "home-category" }, + { name: "Home", id: "home" }, { name: "Gym", id: "gym" }, { name: "Electronics", id: "electronics" }, { name: "Contact", id: "contact" }, @@ -49,65 +49,23 @@ export default function FashionPage() { useInvertedBackground={false} products={[ { - id: "fashion-1", - brand: "LuxeStyle", - name: "Premium Wool Overcoat", - price: "$450.00", - rating: 5, - reviewCount: "342", - imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=3", - imageAlt: "Premium Wool Overcoat", - }, + id: "fashion-1", brand: "LuxeStyle", name: "Premium Wool Overcoat", price: "$450.00", rating: 5, + reviewCount: "342", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=3", imageAlt: "Premium Wool Overcoat"}, { - id: "fashion-2", - brand: "ElegantWear", - name: "Designer Evening Gown", - price: "$680.00", - rating: 5, - reviewCount: "289", - imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=2", - imageAlt: "Designer Evening Gown", - }, + id: "fashion-2", brand: "ElegantWear", name: "Designer Evening Gown", price: "$680.00", rating: 5, + reviewCount: "289", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=2", imageAlt: "Designer Evening Gown"}, { - id: "fashion-3", - brand: "ClassicThreads", - name: "Italian Leather Shoes", - price: "$395.00", - rating: 4, - reviewCount: "156", - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=2", - imageAlt: "Italian Leather Shoes", - }, + id: "fashion-3", brand: "ClassicThreads", name: "Italian Leather Shoes", price: "$395.00", rating: 4, + reviewCount: "156", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=2", imageAlt: "Italian Leather Shoes"}, { - id: "fashion-4", - brand: "LuxeStyle", - name: "Cashmere Sweater Collection", - price: "$320.00", - rating: 5, - reviewCount: "267", - imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=4", - imageAlt: "Cashmere Sweater", - }, + id: "fashion-4", brand: "LuxeStyle", name: "Cashmere Sweater Collection", price: "$320.00", rating: 5, + reviewCount: "267", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=4", imageAlt: "Cashmere Sweater"}, { - id: "fashion-5", - brand: "ElegantWear", - name: "Silk Blouse Set", - price: "$275.00", - rating: 5, - reviewCount: "198", - imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=3", - imageAlt: "Silk Blouse", - }, + id: "fashion-5", brand: "ElegantWear", name: "Silk Blouse Set", price: "$275.00", rating: 5, + reviewCount: "198", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=3", imageAlt: "Silk Blouse"}, { - id: "fashion-6", - brand: "ClassicThreads", - name: "Designer Jean Collection", - price: "$199.00", - rating: 4, - reviewCount: "445", - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=3", - imageAlt: "Designer Jeans", - }, + id: "fashion-6", brand: "ClassicThreads", name: "Designer Jean Collection", price: "$199.00", rating: 4, + reviewCount: "445", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=3", imageAlt: "Designer Jeans"}, ]} buttons={[ { text: "View All", href: "#" }, @@ -129,35 +87,14 @@ export default function FashionPage() { useInvertedBackground={true} products={[ { - id: "fashion-trend-1", - brand: "LuxeStyle", - name: "Minimalist White Shirt", - price: "$155.00", - rating: 5, - reviewCount: "523", - imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=4", - imageAlt: "Minimalist White Shirt", - }, + id: "fashion-trend-1", brand: "LuxeStyle", name: "Minimalist White Shirt", price: "$155.00", rating: 5, + reviewCount: "523", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=4", imageAlt: "Minimalist White Shirt"}, { - id: "fashion-trend-2", - brand: "ElegantWear", - name: "Black Leather Jacket", - price: "$495.00", - rating: 5, - reviewCount: "389", - imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=5", - imageAlt: "Black Leather Jacket", - }, + id: "fashion-trend-2", brand: "ElegantWear", name: "Black Leather Jacket", price: "$495.00", rating: 5, + reviewCount: "389", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=5", imageAlt: "Black Leather Jacket"}, { - id: "fashion-trend-3", - brand: "ClassicThreads", - name: "Neutral Tone Blazer", - price: "$425.00", - rating: 4, - reviewCount: "267", - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=4", - imageAlt: "Neutral Blazer", - }, + id: "fashion-trend-3", brand: "ClassicThreads", name: "Neutral Tone Blazer", price: "$425.00", rating: 4, + reviewCount: "267", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=4", imageAlt: "Neutral Blazer"}, ]} /> @@ -175,35 +112,14 @@ export default function FashionPage() { useInvertedBackground={false} products={[ { - id: "designer-1", - brand: "ElegantWear", - name: "Haute Couture Gown", - price: "$1,200.00", - rating: 5, - reviewCount: "89", - imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=5", - imageAlt: "Haute Couture Gown", - }, + id: "designer-1", brand: "ElegantWear", name: "Haute Couture Gown", price: "$1,200.00", rating: 5, + reviewCount: "89", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=5", imageAlt: "Haute Couture Gown"}, { - id: "designer-2", - brand: "LuxeStyle", - name: "Signature Collection Dress", - price: "$895.00", - rating: 5, - reviewCount: "134", - imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=6", - imageAlt: "Signature Dress", - }, + id: "designer-2", brand: "LuxeStyle", name: "Signature Collection Dress", price: "$895.00", rating: 5, + reviewCount: "134", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=6", imageAlt: "Signature Dress"}, { - id: "designer-3", - brand: "ClassicThreads", - name: "Artisan Wool Coat", - price: "$750.00", - rating: 5, - reviewCount: "167", - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=5", - imageAlt: "Artisan Wool Coat", - }, + id: "designer-3", brand: "ClassicThreads", name: "Artisan Wool Coat", price: "$750.00", rating: 5, + reviewCount: "167", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=5", imageAlt: "Artisan Wool Coat"}, ]} /> @@ -214,17 +130,15 @@ export default function FashionPage() { copyrightText="© 2025 ZSMX Store. All rights reserved." columns={[ { - title: "Shop", - items: [ + title: "Shop", items: [ { label: "Fashion", href: "/fashion" }, - { label: "Home", href: "#home-category" }, - { label: "Gym", href: "#gym" }, - { label: "Electronics", href: "#electronics" }, + { label: "Home", href: "/home" }, + { label: "Gym", href: "/gym" }, + { label: "Electronics", href: "/electronics" }, ], }, { - title: "Support", - items: [ + title: "Support", items: [ { label: "Contact Us", href: "#contact" }, { label: "FAQ", href: "#faq" }, { label: "Shipping Info", href: "#" }, @@ -232,8 +146,7 @@ export default function FashionPage() { ], }, { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "#about" }, { label: "Blog", href: "#" }, { label: "Careers", href: "#" }, -- 2.49.1 From 8d45f1f9b0753b547a82cb44e4a73fec087214b0 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:46:06 +0000 Subject: [PATCH 02/20] Update src/app/gym/page.tsx --- src/app/gym/page.tsx | 139 ++++++++++--------------------------------- 1 file changed, 32 insertions(+), 107 deletions(-) diff --git a/src/app/gym/page.tsx b/src/app/gym/page.tsx index d0501b8..a3ed0eb 100644 --- a/src/app/gym/page.tsx +++ b/src/app/gym/page.tsx @@ -27,7 +27,7 @@ export default function GymPage() { @@ -121,12 +79,8 @@ export default function GymPage() { Date: Thu, 12 Mar 2026 03:46:07 +0000 Subject: [PATCH 03/20] Update src/app/page.tsx --- src/app/page.tsx | 241 +++++++++++------------------------------------ 1 file changed, 56 insertions(+), 185 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 9e698fd..b98c681 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -57,29 +57,14 @@ export default function HomePage() { mediaAnimation="slide-up" testimonials={[ { - name: "Sarah Mitchell", - handle: "Fashion Enthusiast", - testimonial: "Exceptional quality and stunning designs. ZSMX Store has become my go-to for everything.", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-young-businessman-with-his-arms-crossed_23-2148176206.jpg?_wi=1", - imageAlt: "Sarah Mitchell", - }, + name: "Sarah Mitchell", handle: "Fashion Enthusiast", testimonial: "Exceptional quality and stunning designs. ZSMX Store has become my go-to for everything.", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-young-businessman-with-his-arms-crossed_23-2148176206.jpg?_wi=1", imageAlt: "Sarah Mitchell"}, { - name: "James Chen", - handle: "Interior Designer", - testimonial: "The home collection is absolutely exquisite. Premium pieces that transform any space.", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/positive-confident-businessman-posing-outside_74855-1183.jpg?_wi=1", - imageAlt: "James Chen", - }, + name: "James Chen", handle: "Interior Designer", testimonial: "The home collection is absolutely exquisite. Premium pieces that transform any space.", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/positive-confident-businessman-posing-outside_74855-1183.jpg?_wi=1", imageAlt: "James Chen"}, { - name: "Emma Rodriguez", - handle: "Fitness Coach", - testimonial: "Top-tier gym equipment. My clients and I love the durability and design.", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/modern-businesswoman_23-2148012909.jpg?_wi=1", - imageAlt: "Emma Rodriguez", - }, + name: "Emma Rodriguez", handle: "Fitness Coach", testimonial: "Top-tier gym equipment. My clients and I love the durability and design.", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/modern-businesswoman_23-2148012909.jpg?_wi=1", imageAlt: "Emma Rodriguez"}, ]} testimonialRotationInterval={5000} buttons={[ @@ -104,65 +89,23 @@ export default function HomePage() { useInvertedBackground={false} products={[ { - id: "fashion-1", - brand: "LuxeStyle", - name: "Premium Wool Overcoat", - price: "$450.00", - rating: 5, - reviewCount: "342", - imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=1", - imageAlt: "Premium Wool Overcoat", - }, + id: "fashion-1", brand: "LuxeStyle", name: "Premium Wool Overcoat", price: "$450.00", rating: 5, + reviewCount: "342", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=1", imageAlt: "Premium Wool Overcoat"}, { - id: "fashion-2", - brand: "ElegantWear", - name: "Designer Evening Gown", - price: "$680.00", - rating: 5, - reviewCount: "289", - imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=1", - imageAlt: "Designer Evening Gown", - }, + id: "fashion-2", brand: "ElegantWear", name: "Designer Evening Gown", price: "$680.00", rating: 5, + reviewCount: "289", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg?_wi=1", imageAlt: "Designer Evening Gown"}, { - id: "fashion-3", - brand: "ClassicThreads", - name: "Italian Leather Shoes", - price: "$395.00", - rating: 4, - reviewCount: "156", - imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=1", - imageAlt: "Italian Leather Shoes", - }, + id: "fashion-3", brand: "ClassicThreads", name: "Italian Leather Shoes", price: "$395.00", rating: 4, + reviewCount: "156", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg?_wi=1", imageAlt: "Italian Leather Shoes"}, { - id: "home-1", - brand: "Luxehome", - name: "Modern Sectional Sofa", - price: "$1,299.00", - rating: 5, - reviewCount: "201", - imageSrc: "http://img.b2bpic.net/free-photo/beautiful-dried-flowers-table_23-2149591635.jpg?_wi=1", - imageAlt: "Modern Sectional Sofa", - }, + id: "home-1", brand: "Luxehome", name: "Modern Sectional Sofa", price: "$1,299.00", rating: 5, + reviewCount: "201", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-dried-flowers-table_23-2149591635.jpg?_wi=1", imageAlt: "Modern Sectional Sofa"}, { - id: "home-2", - brand: "DecorPremium", - name: "Crystal Chandelier", - price: "$850.00", - rating: 5, - reviewCount: "178", - imageSrc: "http://img.b2bpic.net/free-photo/couch-with-cushions-glass-table_1203-764.jpg?_wi=1", - imageAlt: "Crystal Chandelier", - }, + id: "home-2", brand: "DecorPremium", name: "Crystal Chandelier", price: "$850.00", rating: 5, + reviewCount: "178", imageSrc: "http://img.b2bpic.net/free-photo/couch-with-cushions-glass-table_1203-764.jpg?_wi=1", imageAlt: "Crystal Chandelier"}, { - id: "home-3", - brand: "InteriorLux", - name: "Turkish Area Rug", - price: "$625.00", - rating: 4, - reviewCount: "124", - imageSrc: "http://img.b2bpic.net/free-photo/cafe-with-coffee-tables-cosy-sofas-plants-shelves_140725-7785.jpg?_wi=1", - imageAlt: "Turkish Area Rug", - }, + id: "home-3", brand: "InteriorLux", name: "Turkish Area Rug", price: "$625.00", rating: 4, + reviewCount: "124", imageSrc: "http://img.b2bpic.net/free-photo/cafe-with-coffee-tables-cosy-sofas-plants-shelves_140725-7785.jpg?_wi=1", imageAlt: "Turkish Area Rug"}, ]} buttons={[{ text: "View All Products", href: "/fashion" }]} /> @@ -180,12 +123,8 @@ export default function HomePage() { useInvertedBackground={false} features={[ { - id: "1", - title: "Fashion Excellence", - description: "Premium apparel and accessories designed for those who appreciate style. From casual elegance to formal sophistication.", - media: { - imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=2", - }, + id: "1", title: "Fashion Excellence", description: "Premium apparel and accessories designed for those who appreciate style. From casual elegance to formal sophistication.", media: { + imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg?_wi=2"}, items: [ { icon: Shirt, text: "Designer Collections" }, { icon: Sparkles, text: "Premium Fabrics" }, @@ -194,12 +133,8 @@ export default function HomePage() { reverse: false, }, { - id: "2", - title: "Home Furnishings", - description: "Transform your living space with luxury home decor. Curated pieces that combine functionality with aesthetic elegance.", - media: { - imageSrc: "http://img.b2bpic.net/free-photo/beautiful-dried-flowers-table_23-2149591635.jpg?_wi=2", - }, + id: "2", title: "Home Furnishings", description: "Transform your living space with luxury home decor. Curated pieces that combine functionality with aesthetic elegance.", media: { + imageSrc: "http://img.b2bpic.net/free-photo/beautiful-dried-flowers-table_23-2149591635.jpg?_wi=2"}, items: [ { icon: Home, text: "Modern Design" }, { icon: Sofa, text: "Premium Materials" }, @@ -208,12 +143,8 @@ export default function HomePage() { reverse: true, }, { - id: "3", - title: "Fitness & Gym", - description: "Professional-grade fitness equipment and apparel. Engineered for performance and durability in every workout.", - media: { - imageSrc: "http://img.b2bpic.net/free-photo/still-life-perfectly-ordered-fitness-gym-accessories_52683-100705.jpg?_wi=1", - }, + id: "3", title: "Fitness & Gym", description: "Professional-grade fitness equipment and apparel. Engineered for performance and durability in every workout.", media: { + imageSrc: "http://img.b2bpic.net/free-photo/still-life-perfectly-ordered-fitness-gym-accessories_52683-100705.jpg?_wi=1"}, items: [ { icon: Dumbbell, text: "Professional Equipment" }, { icon: Activity, text: "Performance Gear" }, @@ -222,12 +153,8 @@ export default function HomePage() { reverse: false, }, { - id: "4", - title: "Premium Electronics", - description: "Latest technology and innovative gadgets. Cutting-edge devices that enhance your digital lifestyle.", - media: { - imageSrc: "http://img.b2bpic.net/free-photo/view-robotic-vacuum-cleaner-flat-surface_23-2151736769.jpg?_wi=1", - }, + id: "4", title: "Premium Electronics", description: "Latest technology and innovative gadgets. Cutting-edge devices that enhance your digital lifestyle.", media: { + imageSrc: "http://img.b2bpic.net/free-photo/view-robotic-vacuum-cleaner-flat-surface_23-2151736769.jpg?_wi=1"}, items: [ { icon: Smartphone, text: "Latest Technology" }, { icon: Cpu, text: "Advanced Features" }, @@ -269,32 +196,17 @@ export default function HomePage() { useInvertedBackground={false} metrics={[ { - id: "1", - value: "98%", - title: "Customer Satisfaction Rate", - items: [ - "Premium quality guaranteed", - "Expert curation", - "Dedicated support team", - ], + id: "1", value: "98%", title: "Customer Satisfaction Rate", items: [ + "Premium quality guaranteed", "Expert curation", "Dedicated support team"], }, { - id: "2", - value: "24/7", - title: "Customer Support Available", - items: ["Real-time assistance", "Expert consultations", "Fast responses"], + id: "2", value: "24/7", title: "Customer Support Available", items: ["Real-time assistance", "Expert consultations", "Fast responses"], }, { - id: "3", - value: "100%", - title: "Authentic Products", - items: ["Verified sources", "Quality assurance", "Brand authenticity"], + id: "3", value: "100%", title: "Authentic Products", items: ["Verified sources", "Quality assurance", "Brand authenticity"], }, { - id: "4", - value: "Free", - title: "Shipping On Orders Over $100", - items: ["Fast delivery", "Tracking included", "Safe packaging"], + id: "4", value: "Free", title: "Shipping On Orders Over $100", items: ["Fast delivery", "Tracking included", "Safe packaging"], }, ]} /> @@ -310,15 +222,7 @@ export default function HomePage() { textboxLayout="default" useInvertedBackground={false} names={[ - "LuxeStyle", - "ElegantWear", - "ClassicThreads", - "Luxehome", - "DecorPremium", - "InteriorLux", - "FitnessPro", - "SportsTech", - ]} + "LuxeStyle", "ElegantWear", "ClassicThreads", "Luxehome", "DecorPremium", "InteriorLux", "FitnessPro", "SportsTech"]} speed={40} showCard={true} /> @@ -331,29 +235,17 @@ export default function HomePage() { author="Victoria Thompson, Premium Lifestyle Enthusiast" avatars={[ { - src: "http://img.b2bpic.net/free-photo/portrait-confident-young-businessman-with-his-arms-crossed_23-2148176206.jpg", - alt: "Customer 1", - }, + src: "http://img.b2bpic.net/free-photo/portrait-confident-young-businessman-with-his-arms-crossed_23-2148176206.jpg", alt: "Customer 1"}, { - src: "http://img.b2bpic.net/free-photo/positive-confident-businessman-posing-outside_74855-1183.jpg", - alt: "Customer 2", - }, + src: "http://img.b2bpic.net/free-photo/positive-confident-businessman-posing-outside_74855-1183.jpg", alt: "Customer 2"}, { - src: "http://img.b2bpic.net/free-photo/modern-businesswoman_23-2148012909.jpg", - alt: "Customer 3", - }, + src: "http://img.b2bpic.net/free-photo/modern-businesswoman_23-2148012909.jpg", alt: "Customer 3"}, { - src: "http://img.b2bpic.net/free-photo/businessman-formal-wear-professional-corporate-concept_53876-71166.jpg", - alt: "Customer 4", - }, + src: "http://img.b2bpic.net/free-photo/businessman-formal-wear-professional-corporate-concept_53876-71166.jpg", alt: "Customer 4"}, { - src: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280717.jpg", - alt: "Customer 5", - }, + src: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280717.jpg", alt: "Customer 5"}, { - src: "http://img.b2bpic.net/free-photo/portrait-outdoors-business-man-smiles_23-2148763856.jpg", - alt: "Customer 6", - }, + src: "http://img.b2bpic.net/free-photo/portrait-outdoors-business-man-smiles_23-2148763856.jpg", alt: "Customer 6"}, ]} ratingAnimation="slide-up" avatarsAnimation="slide-up" @@ -372,41 +264,23 @@ export default function HomePage() { useInvertedBackground={false} faqs={[ { - id: "1", - title: "Are all products authentic and guaranteed?", - content: - "Yes, absolutely. We source directly from authorized distributors and verify authenticity of all products. Every item comes with our quality guarantee and certification of authenticity.", - }, + id: "1", title: "Are all products authentic and guaranteed?", content: + "Yes, absolutely. We source directly from authorized distributors and verify authenticity of all products. Every item comes with our quality guarantee and certification of authenticity."}, { - id: "2", - title: "What is your return and exchange policy?", - content: - "We offer hassle-free returns and exchanges within 30 days of purchase. Items must be unused and in original packaging. Simply contact our customer service team to initiate the process.", - }, + id: "2", title: "What is your return and exchange policy?", content: + "We offer hassle-free returns and exchanges within 30 days of purchase. Items must be unused and in original packaging. Simply contact our customer service team to initiate the process."}, { - id: "3", - title: "How long does shipping typically take?", - content: - "Standard shipping takes 5-7 business days. Express shipping options (2-3 days) are available for most orders. Orders over $100 qualify for free standard shipping.", - }, + id: "3", title: "How long does shipping typically take?", content: + "Standard shipping takes 5-7 business days. Express shipping options (2-3 days) are available for most orders. Orders over $100 qualify for free standard shipping."}, { - id: "4", - title: "Do you offer international shipping?", - content: - "Yes, we ship to most countries worldwide. International shipping costs vary by location and are calculated at checkout. Customs duties may apply depending on your country.", - }, + id: "4", title: "Do you offer international shipping?", content: + "Yes, we ship to most countries worldwide. International shipping costs vary by location and are calculated at checkout. Customs duties may apply depending on your country."}, { - id: "5", - title: "Is my personal information secure?", - content: - "We use industry-standard SSL encryption to protect all personal and payment information. Your data is never shared with third parties. We comply with all privacy regulations.", - }, + id: "5", title: "Is my personal information secure?", content: + "We use industry-standard SSL encryption to protect all personal and payment information. Your data is never shared with third parties. We comply with all privacy regulations."}, { - id: "6", - title: "What payment methods do you accept?", - content: - "We accept all major credit cards, debit cards, PayPal, Apple Pay, and Google Pay. All transactions are secure and encrypted.", - }, + id: "6", title: "What payment methods do you accept?", content: + "We accept all major credit cards, debit cards, PayPal, Apple Pay, and Google Pay. All transactions are secure and encrypted."}, ]} imageSrc="http://img.b2bpic.net/free-photo/woman-sitting-wheelchair-modern-concept_23-2148497283.jpg?_wi=1" imageAlt="Customer service support team" @@ -440,17 +314,15 @@ export default function HomePage() { copyrightText="© 2025 ZSMX Store. All rights reserved." columns={[ { - title: "Shop", - items: [ + title: "Shop", items: [ { label: "Fashion", href: "/fashion" }, - { label: "Home", href: "#home-category" }, - { label: "Gym", href: "#gym" }, - { label: "Electronics", href: "#electronics" }, + { label: "Home", href: "/home" }, + { label: "Gym", href: "/gym" }, + { label: "Electronics", href: "/electronics" }, ], }, { - title: "Support", - items: [ + title: "Support", items: [ { label: "Contact Us", href: "#contact" }, { label: "FAQ", href: "#faq" }, { label: "Shipping Info", href: "#" }, @@ -458,8 +330,7 @@ export default function HomePage() { ], }, { - title: "Company", - items: [ + title: "Company", items: [ { label: "About Us", href: "#about" }, { label: "Blog", href: "#" }, { label: "Careers", href: "#" }, -- 2.49.1 From 9e53130ffd6194bfe06fc222dfa5130634ece705 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:48:52 +0000 Subject: [PATCH 04/20] Update src/app/electronics/page.tsx --- src/app/electronics/page.tsx | 517 ++--------------------------------- 1 file changed, 17 insertions(+), 500 deletions(-) diff --git a/src/app/electronics/page.tsx b/src/app/electronics/page.tsx index 316781e..d929c56 100644 --- a/src/app/electronics/page.tsx +++ b/src/app/electronics/page.tsx @@ -1,520 +1,37 @@ "use client"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen"; -import HeroBillboardTestimonial from "@/components/sections/hero/HeroBillboardTestimonial"; -import ProductCardTwo from "@/components/sections/product/ProductCardTwo"; -import FeatureCardTen from "@/components/sections/feature/FeatureCardTen"; -import MetricSplitMediaAbout from "@/components/sections/about/MetricSplitMediaAbout"; -import MetricCardSeven from "@/components/sections/metrics/MetricCardSeven"; -import SocialProofOne from "@/components/sections/socialProof/SocialProofOne"; -import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen"; -import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia"; -import ContactCTA from "@/components/sections/contact/ContactCTA"; -import FooterBase from "@/components/sections/footer/FooterBase"; -import Link from "next/link"; -import { - Sparkles, - Star, - Grid, - Award, - TrendingUp, - Briefcase, - Mail, - HelpCircle, - Shirt, - Home, - Sofa, - Layout, - Dumbbell, - Activity, - Zap, - Smartphone, - Cpu, -} from "lucide-react"; +import { ThemeProvider } from '@/providers/themeProvider/ThemeProvider'; +import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; export default function ElectronicsPage() { return ( - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- - +
Electronics Page
); -} \ No newline at end of file +} -- 2.49.1 From a032a21dfe717084b1b90ff6a476204fab3127b6 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:48:53 +0000 Subject: [PATCH 05/20] Update src/app/fashion/page.tsx --- src/app/fashion/page.tsx | 158 +++++---------------------------------- 1 file changed, 17 insertions(+), 141 deletions(-) diff --git a/src/app/fashion/page.tsx b/src/app/fashion/page.tsx index 09cf91c..c7bb4b7 100644 --- a/src/app/fashion/page.tsx +++ b/src/app/fashion/page.tsx @@ -1,161 +1,37 @@ "use client"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen"; -import ProductCardTwo from "@/components/sections/product/ProductCardTwo"; -import FooterBase from "@/components/sections/footer/FooterBase"; -import Link from "next/link"; -import { Star } from "lucide-react"; +import { ThemeProvider } from '@/providers/themeProvider/ThemeProvider'; +import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; export default function FashionPage() { return ( - -
- -
- -
- -
- -
- -
- - +
Fashion Page
); -} \ No newline at end of file +} -- 2.49.1 From f9779ffa50a154fe3fb0892af85010e273a3668f Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:48:54 +0000 Subject: [PATCH 06/20] Update src/app/gym/page.tsx --- src/app/gym/page.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/gym/page.tsx b/src/app/gym/page.tsx index a3ed0eb..b54a39d 100644 --- a/src/app/gym/page.tsx +++ b/src/app/gym/page.tsx @@ -26,11 +26,11 @@ export default function GymPage() { @@ -175,12 +181,13 @@ export default function HomePage() { tagAnimation="slide-up" metrics={[ { value: "50k+", title: "Satisfied Customers" }, - { value: "10k+", title: "Premium Products" }, + { value: "10k+", title: "Premium Products" } ]} - imageSrc="http://img.b2bpic.net/free-photo/modern-sauna-with-panoramic-windows-wooden-design_169016-70021.jpg?_wi=1" + imageSrc="http://img.b2bpic.net/free-photo/modern-sauna-with-panoramic-windows-wooden-design_169016-70021.jpg" imageAlt="ZSMX Store - Premium retail environment" useInvertedBackground={true} mediaAnimation="slide-up" + metricsAnimation="slide-up" /> @@ -196,18 +203,17 @@ export default function HomePage() { useInvertedBackground={false} metrics={[ { - id: "1", value: "98%", title: "Customer Satisfaction Rate", items: [ - "Premium quality guaranteed", "Expert curation", "Dedicated support team"], + id: "1", value: "98%", title: "Customer Satisfaction Rate", items: ["Premium quality guaranteed", "Expert curation", "Dedicated support team"] }, { - id: "2", value: "24/7", title: "Customer Support Available", items: ["Real-time assistance", "Expert consultations", "Fast responses"], + id: "2", value: "24/7", title: "Customer Support Available", items: ["Real-time assistance", "Expert consultations", "Fast responses"] }, { - id: "3", value: "100%", title: "Authentic Products", items: ["Verified sources", "Quality assurance", "Brand authenticity"], + id: "3", value: "100%", title: "Authentic Products", items: ["Verified sources", "Quality assurance", "Brand authenticity"] }, { - id: "4", value: "Free", title: "Shipping On Orders Over $100", items: ["Fast delivery", "Tracking included", "Safe packaging"], - }, + id: "4", value: "Free", title: "Shipping On Orders Over $100", items: ["Fast delivery", "Tracking included", "Safe packaging"] + } ]} /> @@ -221,8 +227,7 @@ export default function HomePage() { tagAnimation="slide-up" textboxLayout="default" useInvertedBackground={false} - names={[ - "LuxeStyle", "ElegantWear", "ClassicThreads", "Luxehome", "DecorPremium", "InteriorLux", "FitnessPro", "SportsTech"]} + names={["LuxeStyle", "ElegantWear", "ClassicThreads", "Luxehome", "DecorPremium", "InteriorLux", "FitnessPro", "SportsTech"]} speed={40} showCard={true} /> @@ -234,18 +239,12 @@ export default function HomePage() { rating={5} author="Victoria Thompson, Premium Lifestyle Enthusiast" avatars={[ - { - src: "http://img.b2bpic.net/free-photo/portrait-confident-young-businessman-with-his-arms-crossed_23-2148176206.jpg", alt: "Customer 1"}, - { - src: "http://img.b2bpic.net/free-photo/positive-confident-businessman-posing-outside_74855-1183.jpg", alt: "Customer 2"}, - { - src: "http://img.b2bpic.net/free-photo/modern-businesswoman_23-2148012909.jpg", alt: "Customer 3"}, - { - src: "http://img.b2bpic.net/free-photo/businessman-formal-wear-professional-corporate-concept_53876-71166.jpg", alt: "Customer 4"}, - { - src: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280717.jpg", alt: "Customer 5"}, - { - src: "http://img.b2bpic.net/free-photo/portrait-outdoors-business-man-smiles_23-2148763856.jpg", alt: "Customer 6"}, + { src: "http://img.b2bpic.net/free-photo/portrait-confident-young-businessman-with-his-arms-crossed_23-2148176206.jpg", alt: "Customer 1" }, + { src: "http://img.b2bpic.net/free-photo/positive-confident-businessman-posing-outside_74855-1183.jpg", alt: "Customer 2" }, + { src: "http://img.b2bpic.net/free-photo/modern-businesswoman_23-2148012909.jpg", alt: "Customer 3" }, + { src: "http://img.b2bpic.net/free-photo/businessman-formal-wear-professional-corporate-concept_53876-71166.jpg", alt: "Customer 4" }, + { src: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280717.jpg", alt: "Customer 5" }, + { src: "http://img.b2bpic.net/free-photo/portrait-outdoors-business-man-smiles_23-2148763856.jpg", alt: "Customer 6" } ]} ratingAnimation="slide-up" avatarsAnimation="slide-up" @@ -264,25 +263,25 @@ export default function HomePage() { useInvertedBackground={false} faqs={[ { - id: "1", title: "Are all products authentic and guaranteed?", content: - "Yes, absolutely. We source directly from authorized distributors and verify authenticity of all products. Every item comes with our quality guarantee and certification of authenticity."}, + id: "1", title: "Are all products authentic and guaranteed?", content: "Yes, absolutely. We source directly from authorized distributors and verify authenticity of all products. Every item comes with our quality guarantee and certification of authenticity." + }, { - id: "2", title: "What is your return and exchange policy?", content: - "We offer hassle-free returns and exchanges within 30 days of purchase. Items must be unused and in original packaging. Simply contact our customer service team to initiate the process."}, + id: "2", title: "What is your return and exchange policy?", content: "We offer hassle-free returns and exchanges within 30 days of purchase. Items must be unused and in original packaging. Simply contact our customer service team to initiate the process." + }, { - id: "3", title: "How long does shipping typically take?", content: - "Standard shipping takes 5-7 business days. Express shipping options (2-3 days) are available for most orders. Orders over $100 qualify for free standard shipping."}, + id: "3", title: "How long does shipping typically take?", content: "Standard shipping takes 5-7 business days. Express shipping options (2-3 days) are available for most orders. Orders over $100 qualify for free standard shipping." + }, { - id: "4", title: "Do you offer international shipping?", content: - "Yes, we ship to most countries worldwide. International shipping costs vary by location and are calculated at checkout. Customs duties may apply depending on your country."}, + id: "4", title: "Do you offer international shipping?", content: "Yes, we ship to most countries worldwide. International shipping costs vary by location and are calculated at checkout. Customs duties may apply depending on your country." + }, { - id: "5", title: "Is my personal information secure?", content: - "We use industry-standard SSL encryption to protect all personal and payment information. Your data is never shared with third parties. We comply with all privacy regulations."}, + id: "5", title: "Is my personal information secure?", content: "We use industry-standard SSL encryption to protect all personal and payment information. Your data is never shared with third parties. We comply with all privacy regulations." + }, { - id: "6", title: "What payment methods do you accept?", content: - "We accept all major credit cards, debit cards, PayPal, Apple Pay, and Google Pay. All transactions are secure and encrypted."}, + id: "6", title: "What payment methods do you accept?", content: "We accept all major credit cards, debit cards, PayPal, Apple Pay, and Google Pay. All transactions are secure and encrypted." + } ]} - imageSrc="http://img.b2bpic.net/free-photo/woman-sitting-wheelchair-modern-concept_23-2148497283.jpg?_wi=1" + imageSrc="http://img.b2bpic.net/free-photo/woman-sitting-wheelchair-modern-concept_23-2148497283.jpg" imageAlt="Customer service support team" mediaAnimation="slide-up" faqsAnimation="slide-up" @@ -299,8 +298,8 @@ export default function HomePage() { title="Ready to Discover Premium Products?" description="Have questions about our products or services? Our expert team is here to help. Contact us today and experience the ZSMX Store difference." buttons={[ - { text: "Contact Our Team", href: "mailto:hello@zsmxstore.com" }, - { text: "Shop Now", href: "/fashion" }, + { text: "Contact Our Team", href: "#contact" }, + { text: "Shop Now", href: "fashion" } ]} buttonAnimation="slide-up" background={{ variant: "plain" }} @@ -315,31 +314,31 @@ export default function HomePage() { columns={[ { title: "Shop", items: [ - { label: "Fashion", href: "/fashion" }, - { label: "Home", href: "/home" }, - { label: "Gym", href: "/gym" }, - { label: "Electronics", href: "/electronics" }, - ], + { label: "Fashion", href: "fashion" }, + { label: "Home", href: "home-category" }, + { label: "Gym", href: "gym" }, + { label: "Electronics", href: "electronics" } + ] }, { title: "Support", items: [ { label: "Contact Us", href: "#contact" }, { label: "FAQ", href: "#faq" }, { label: "Shipping Info", href: "#" }, - { label: "Returns", href: "#" }, - ], + { label: "Returns", href: "#" } + ] }, { title: "Company", items: [ { label: "About Us", href: "#about" }, { label: "Blog", href: "#" }, { label: "Careers", href: "#" }, - { label: "Privacy Policy", href: "#" }, - ], - }, + { label: "Privacy Policy", href: "#" } + ] + } ]} /> ); -} \ No newline at end of file +} -- 2.49.1 From 98cca80272806b2895d83bb433cdcffa2836bc4d Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:51:27 +0000 Subject: [PATCH 09/20] Update src/app/page.tsx --- src/app/page.tsx | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index b911761..f1c27b2 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -50,7 +50,7 @@ export default function HomePage() { tag="Welcome to ZSMX Store" tagIcon={Sparkles} tagAnimation="slide-up" - background={{ variant: "floatingGradient" }} + background={{ variant: "radial-gradient" }} imageSrc="http://img.b2bpic.net/free-photo/internationals-people-standing-cafe_1157-32402.jpg" imageAlt="Premium multi-category product showcase" mediaAnimation="slide-up" @@ -91,28 +91,22 @@ export default function HomePage() { useInvertedBackground={false} products={[ { - id: "fashion-1", brand: "LuxeStyle", name: "Premium Wool Overcoat", price: "$450.00", rating: 5, - reviewCount: "342", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg", imageAlt: "Premium Wool Overcoat" + id: "fashion-1", brand: "LuxeStyle", name: "Premium Wool Overcoat", price: "$450.00", rating: 5, reviewCount: "342", imageSrc: "http://img.b2bpic.net/free-photo/bag-hanging-from-furniture-item-indoors_23-2151073505.jpg", imageAlt: "Premium Wool Overcoat" }, { - id: "fashion-2", brand: "ElegantWear", name: "Designer Evening Gown", price: "$680.00", rating: 5, - reviewCount: "289", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg", imageAlt: "Designer Evening Gown" + id: "fashion-2", brand: "ElegantWear", name: "Designer Evening Gown", price: "$680.00", rating: 5, reviewCount: "289", imageSrc: "http://img.b2bpic.net/free-photo/store-customer-holding-shirt-body_482257-85803.jpg", imageAlt: "Designer Evening Gown" }, { - id: "fashion-3", brand: "ClassicThreads", name: "Italian Leather Shoes", price: "$395.00", rating: 4, - reviewCount: "156", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg", imageAlt: "Italian Leather Shoes" + id: "fashion-3", brand: "ClassicThreads", name: "Italian Leather Shoes", price: "$395.00", rating: 4, reviewCount: "156", imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-classic-shirts_23-2150828626.jpg", imageAlt: "Italian Leather Shoes" }, { - id: "home-1", brand: "Luxehome", name: "Modern Sectional Sofa", price: "$1,299.00", rating: 5, - reviewCount: "201", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-dried-flowers-table_23-2149591635.jpg", imageAlt: "Modern Sectional Sofa" + id: "home-1", brand: "Luxehome", name: "Modern Sectional Sofa", price: "$1,299.00", rating: 5, reviewCount: "201", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-dried-flowers-table_23-2149591635.jpg", imageAlt: "Modern Sectional Sofa" }, { - id: "home-2", brand: "DecorPremium", name: "Crystal Chandelier", price: "$850.00", rating: 5, - reviewCount: "178", imageSrc: "http://img.b2bpic.net/free-photo/couch-with-cushions-glass-table_1203-764.jpg", imageAlt: "Crystal Chandelier" + id: "home-2", brand: "DecorPremium", name: "Crystal Chandelier", price: "$850.00", rating: 5, reviewCount: "178", imageSrc: "http://img.b2bpic.net/free-photo/couch-with-cushions-glass-table_1203-764.jpg", imageAlt: "Crystal Chandelier" }, { - id: "home-3", brand: "InteriorLux", name: "Turkish Area Rug", price: "$625.00", rating: 4, - reviewCount: "124", imageSrc: "http://img.b2bpic.net/free-photo/cafe-with-coffee-tables-cosy-sofas-plants-shelves_140725-7785.jpg", imageAlt: "Turkish Area Rug" + id: "home-3", brand: "InteriorLux", name: "Turkish Area Rug", price: "$625.00", rating: 4, reviewCount: "124", imageSrc: "http://img.b2bpic.net/free-photo/cafe-with-coffee-tables-cosy-sofas-plants-shelves_140725-7785.jpg", imageAlt: "Turkish Area Rug" } ]} buttons={[ -- 2.49.1 From b94aa9a26543bf76f59b8030aabda1aff4047c6a Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:51:28 +0000 Subject: [PATCH 10/20] Update src/components/shared/SvgTextLogo/SvgTextLogo.tsx --- .../shared/SvgTextLogo/SvgTextLogo.tsx | 50 ++++++------------- 1 file changed, 14 insertions(+), 36 deletions(-) diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..ccba3ed 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,51 +1,29 @@ -"use client"; - -import { memo } from "react"; -import useSvgTextLogo from "./useSvgTextLogo"; -import { cls } from "@/lib/utils"; +import React from 'react'; interface SvgTextLogoProps { - logoText: string; - adjustHeightFactor?: number; - verticalAlign?: "top" | "center"; + text: string; className?: string; + textClassName?: string; } -const SvgTextLogo = memo(function SvgTextLogo({ - logoText, - adjustHeightFactor, - verticalAlign = "top", - className = "", -}) { - const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor); - +const SvgTextLogo: React.FC = ({ text, className = '', textClassName = '' }) => { return ( - {logoText} + {text} ); -}); - -SvgTextLogo.displayName = "SvgTextLogo"; +}; export default SvgTextLogo; -- 2.49.1 From 42261d217e15e379a37e9de88b220781411434b4 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:55:17 +0000 Subject: [PATCH 11/20] Update src/components/cardStack/hooks/useDepth3DAnimation.ts --- .../cardStack/hooks/useDepth3DAnimation.ts | 127 +++--------------- 1 file changed, 16 insertions(+), 111 deletions(-) diff --git a/src/components/cardStack/hooks/useDepth3DAnimation.ts b/src/components/cardStack/hooks/useDepth3DAnimation.ts index 1966225..775cb0a 100644 --- a/src/components/cardStack/hooks/useDepth3DAnimation.ts +++ b/src/components/cardStack/hooks/useDepth3DAnimation.ts @@ -1,118 +1,23 @@ -import { useEffect, useState, useRef, RefObject } from "react"; +import { useEffect, useState } from 'react'; -const MOBILE_BREAKPOINT = 768; -const ANIMATION_SPEED = 0.05; -const ROTATION_SPEED = 0.1; -const MOUSE_MULTIPLIER = 0.5; -const ROTATION_MULTIPLIER = 0.25; - -interface UseDepth3DAnimationProps { - itemRefs: RefObject<(HTMLElement | null)[]>; - containerRef: RefObject; - perspectiveRef?: RefObject; - isEnabled: boolean; +interface Depth3DConfig { + rotateX?: number; + rotateY?: number; + scale?: number; + perspective?: number; } -export const useDepth3DAnimation = ({ - itemRefs, - containerRef, - perspectiveRef, - isEnabled, -}: UseDepth3DAnimationProps) => { - const [isMobile, setIsMobile] = useState(false); +const useDepth3DAnimation = (config: Depth3DConfig = {}) => { + const [transform, setTransform] = useState(''); + + const { rotateX = 0, rotateY = 0, scale = 1, perspective = 1000 } = config; - // Detect mobile viewport useEffect(() => { - const checkMobile = () => { - setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); - }; + const transformValue = `perspective(${perspective}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`; + setTransform(transformValue); + }, [rotateX, rotateY, scale, perspective]); - checkMobile(); - window.addEventListener("resize", checkMobile); - - return () => { - window.removeEventListener("resize", checkMobile); - }; - }, []); - - // 3D mouse-tracking effect (desktop only) - useEffect(() => { - if (!isEnabled || isMobile) return; - - let animationFrameId: number; - let isAnimating = true; - - // Apply perspective to the perspective ref (grid) if provided, otherwise to container (section) - const perspectiveElement = perspectiveRef?.current || containerRef.current; - if (perspectiveElement) { - perspectiveElement.style.perspective = "1200px"; - perspectiveElement.style.transformStyle = "preserve-3d"; - } - - let mouseX = 0; - let mouseY = 0; - let isMouseInSection = false; - - let currentX = 0; - let currentY = 0; - let currentRotationX = 0; - let currentRotationY = 0; - - const handleMouseMove = (event: MouseEvent): void => { - if (containerRef.current) { - const rect = containerRef.current.getBoundingClientRect(); - isMouseInSection = - event.clientX >= rect.left && - event.clientX <= rect.right && - event.clientY >= rect.top && - event.clientY <= rect.bottom; - } - - if (isMouseInSection) { - mouseX = (event.clientX / window.innerWidth) * 100 - 50; - mouseY = (event.clientY / window.innerHeight) * 100 - 50; - } - }; - - const animate = (): void => { - if (!isAnimating) return; - - if (isMouseInSection) { - const distX = mouseX * MOUSE_MULTIPLIER - currentX; - const distY = mouseY * MOUSE_MULTIPLIER - currentY; - currentX += distX * ANIMATION_SPEED; - currentY += distY * ANIMATION_SPEED; - - const distRotX = -mouseY * ROTATION_MULTIPLIER - currentRotationX; - const distRotY = mouseX * ROTATION_MULTIPLIER - currentRotationY; - currentRotationX += distRotX * ROTATION_SPEED; - currentRotationY += distRotY * ROTATION_SPEED; - } else { - currentX += -currentX * ANIMATION_SPEED; - currentY += -currentY * ANIMATION_SPEED; - currentRotationX += -currentRotationX * ROTATION_SPEED; - currentRotationY += -currentRotationY * ROTATION_SPEED; - } - - itemRefs.current?.forEach((ref) => { - if (!ref) return; - ref.style.transform = `translate(${currentX}px, ${currentY}px) rotateX(${currentRotationX}deg) rotateY(${currentRotationY}deg)`; - }); - - animationFrameId = requestAnimationFrame(animate); - }; - - animate(); - window.addEventListener("mousemove", handleMouseMove); - - return () => { - window.removeEventListener("mousemove", handleMouseMove); - if (animationFrameId) { - cancelAnimationFrame(animationFrameId); - } - isAnimating = false; - }; - }, [isEnabled, isMobile, itemRefs, containerRef]); - - return { isMobile }; + return { transform }; }; + +export default useDepth3DAnimation; \ No newline at end of file -- 2.49.1 From 8bd7af31c3cef3db1efb56a9b8e4a7c497314c15 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:55:17 +0000 Subject: [PATCH 12/20] Update src/components/cardStack/layouts/timelines/TimelineBase.tsx --- .../layouts/timelines/TimelineBase.tsx | 177 ++++-------------- 1 file changed, 39 insertions(+), 138 deletions(-) diff --git a/src/components/cardStack/layouts/timelines/TimelineBase.tsx b/src/components/cardStack/layouts/timelines/TimelineBase.tsx index 6c3930a..cbeb51d 100644 --- a/src/components/cardStack/layouts/timelines/TimelineBase.tsx +++ b/src/components/cardStack/layouts/timelines/TimelineBase.tsx @@ -1,149 +1,50 @@ -"use client"; +'use client'; -import React, { Children, useCallback } from "react"; -import { cls } from "@/lib/utils"; -import CardStackTextBox from "../../CardStackTextBox"; -import { useCardAnimation } from "../../hooks/useCardAnimation"; -import type { LucideIcon } from "lucide-react"; -import type { ButtonConfig, CardAnimationType, TitleSegment, ButtonAnimationType } from "../../types"; -import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants"; +import React from 'react'; +import { ChevronDown } from 'lucide-react'; -type TimelineVariant = "timeline"; - -interface TimelineBaseProps { - children: React.ReactNode; - variant?: TimelineVariant; - uniformGridCustomHeightClasses?: string; - animationType: CardAnimationType; - title?: string; - titleSegments?: TitleSegment[]; - description?: string; - tag?: string; - tagIcon?: LucideIcon; - tagAnimation?: ButtonAnimationType; - buttons?: ButtonConfig[]; - buttonAnimation?: ButtonAnimationType; - textboxLayout?: TextboxLayout; - useInvertedBackground?: InvertedBackground; - className?: string; - containerClassName?: string; - textBoxClassName?: string; - titleClassName?: string; - titleImageWrapperClassName?: string; - titleImageClassName?: string; - descriptionClassName?: string; - tagClassName?: string; - buttonContainerClassName?: string; - buttonClassName?: string; - buttonTextClassName?: string; - ariaLabel?: string; +interface TimelineItem { + id: string; + title: string; + description: string; + icon?: React.ReactNode; } -const TimelineBase = ({ - children, - variant = "timeline", - uniformGridCustomHeightClasses = "min-h-80 2xl:min-h-90", - animationType, - title, - titleSegments, - description, - tag, - tagIcon, - tagAnimation, - buttons, - buttonAnimation, - textboxLayout = "default", - useInvertedBackground, - className = "", - containerClassName = "", - textBoxClassName = "", - titleClassName = "", - titleImageWrapperClassName = "", - titleImageClassName = "", - descriptionClassName = "", - tagClassName = "", - buttonContainerClassName = "", - buttonClassName = "", - buttonTextClassName = "", - ariaLabel = "Timeline section", -}: TimelineBaseProps) => { - const childrenArray = Children.toArray(children); - const { itemRefs } = useCardAnimation({ - animationType, - itemCount: childrenArray.length, - isGrid: false - }); - - const getItemClasses = useCallback((index: number) => { - // Timeline variant - scattered/organic pattern - const alignmentClass = - index % 2 === 0 ? "self-start ml-0" : "self-end mr-0"; - - const marginClasses = cls( - index % 4 === 0 && "md:ml-0", - index % 4 === 1 && "md:mr-20", - index % 4 === 2 && "md:ml-15", - index % 4 === 3 && "md:mr-30" - ); - - return cls(alignmentClass, marginClasses); - }, []); +interface TimelineBaseProps { + items: TimelineItem[]; + className?: string; + itemClassName?: string; + connectorClassName?: string; + contentClassName?: string; +} +const TimelineBase: React.FC = ({ + items, + className = '', + itemClassName = '', + connectorClassName = '', + contentClassName = '', +}) => { return ( -
-
- {(title || titleSegments || description) && ( - - )} -
- {Children.map(childrenArray, (child, index) => ( -
{ itemRefs.current[index] = el; }} - > - {child} +
+ {items.map((item, index) => ( +
+
+
+ {item.icon || index + 1}
- ))} + {index < items.length - 1 && ( +
+ )} +
+
+

{item.title}

+

{item.description}

+
-
-
+ ))} + ); }; -TimelineBase.displayName = "TimelineBase"; - -export default React.memo(TimelineBase); +export default TimelineBase; \ No newline at end of file -- 2.49.1 From eba0846f2ffa2890265016d0a5a823953f221c17 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 12 Mar 2026 03:55:18 +0000 Subject: [PATCH 13/20] Update src/components/sections/contact/ContactCenter.tsx --- .../sections/contact/ContactCenter.tsx | 194 +++++++----------- 1 file changed, 72 insertions(+), 122 deletions(-) diff --git a/src/components/sections/contact/ContactCenter.tsx b/src/components/sections/contact/ContactCenter.tsx index e0cae92..fe1c5be 100644 --- a/src/components/sections/contact/ContactCenter.tsx +++ b/src/components/sections/contact/ContactCenter.tsx @@ -1,131 +1,81 @@ -"use client"; +'use client'; -import ContactForm from "@/components/form/ContactForm"; -import HeroBackgrounds, { type HeroBackgroundVariantProps } from "@/components/background/HeroBackgrounds"; -import { cls } from "@/lib/utils"; -import { LucideIcon } from "lucide-react"; -import { sendContactEmail } from "@/utils/sendContactEmail"; -import type { ButtonAnimationType } from "@/types/button"; - -type ContactCenterBackgroundProps = Extract< - HeroBackgroundVariantProps, - | { variant: "plain" } - | { variant: "animated-grid" } - | { variant: "canvas-reveal" } - | { variant: "cell-wave" } - | { variant: "downward-rays-animated" } - | { variant: "downward-rays-animated-grid" } - | { variant: "downward-rays-static" } - | { variant: "downward-rays-static-grid" } - | { variant: "gradient-bars" } - | { variant: "radial-gradient" } - | { variant: "rotated-rays-animated" } - | { variant: "rotated-rays-animated-grid" } - | { variant: "rotated-rays-static" } - | { variant: "rotated-rays-static-grid" } - | { variant: "sparkles-gradient" } ->; +import React, { useState } from 'react'; interface ContactCenterProps { - title: string; - description: string; - tag: string; - tagIcon?: LucideIcon; - tagAnimation?: ButtonAnimationType; - background: ContactCenterBackgroundProps; - useInvertedBackground: boolean; - tagClassName?: string; - inputPlaceholder?: string; - buttonText?: string; - termsText?: string; - onSubmit?: (email: string) => void; - ariaLabel?: string; - className?: string; - containerClassName?: string; - contentClassName?: string; - titleClassName?: string; - descriptionClassName?: string; - formWrapperClassName?: string; - formClassName?: string; - inputClassName?: string; - buttonClassName?: string; - buttonTextClassName?: string; - termsClassName?: string; + title: string; + description: string; + email?: string; + phone?: string; + className?: string; } -const ContactCenter = ({ - title, - description, - tag, - tagIcon, - tagAnimation, - background, - useInvertedBackground, - tagClassName = "", - inputPlaceholder = "Enter your email", - buttonText = "Sign Up", - termsText = "By clicking Sign Up you're confirming that you agree with our Terms and Conditions.", - onSubmit, - ariaLabel = "Contact section", - className = "", - containerClassName = "", - contentClassName = "", - titleClassName = "", - descriptionClassName = "", - formWrapperClassName = "", - formClassName = "", - inputClassName = "", - buttonClassName = "", - buttonTextClassName = "", - termsClassName = "", -}: ContactCenterProps) => { +const ContactCenter: React.FC = ({ + title, + description, + email, + phone, + className = '', +}) => { + const [formData, setFormData] = useState>({ + name: '', + email: '', + message: '', + }); - const handleSubmit = async (email: string) => { - try { - await sendContactEmail({ email }); - console.log("Email send successfully"); - } catch (error) { - console.error("Failed to send email:", error); - } - }; + const handleChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setFormData(prev => ({ + ...prev, + [name]: value, + })); + }; - return ( -
-
-
-
- -
-
- -
-
-
-
- ); + const handleSubmitClick = () => { + // Form submission logic would go here + console.log('Form data:', formData); + }; + + return ( +
+

{title}

+

{description}

+
+ + +