From b5300d7443108ef57700b46058fc388d31cb0bdb Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 22 Jun 2026 20:41:28 +0000 Subject: [PATCH] Bob AI: Add example prices to New Arrivals product cards --- src/pages/HomePage.tsx | 148 +++----------------- src/pages/HomePage/sections/About.tsx | 22 +++ src/pages/HomePage/sections/Arrivals.tsx | 166 +++++++++++++++++++++++ src/pages/HomePage/sections/Contact.tsx | 27 ++++ src/pages/HomePage/sections/Faq.tsx | 42 ++++++ src/pages/HomePage/sections/Hero.tsx | 29 ++++ 6 files changed, 304 insertions(+), 130 deletions(-) create mode 100644 src/pages/HomePage/sections/About.tsx create mode 100644 src/pages/HomePage/sections/Arrivals.tsx create mode 100644 src/pages/HomePage/sections/Contact.tsx create mode 100644 src/pages/HomePage/sections/Faq.tsx create mode 100644 src/pages/HomePage/sections/Hero.tsx diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 5542bfe..a9c33f3 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,139 +1,27 @@ -import AboutTextSplit from '@/components/sections/about/AboutTextSplit'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FaqSimple from '@/components/sections/faq/FaqSimple'; -import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; -import HeroOverlay from '@/components/sections/hero/HeroOverlay'; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.tsx. Edit the section +// files directly. Non-block content (wrappers, non-inlinable sections) is +// preserved inline; extracted section blocks become refs. -export default function HomePage() { +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import ArrivalsSection from './HomePage/sections/Arrivals'; +import AboutSection from './HomePage/sections/About'; +import FaqSection from './HomePage/sections/Faq'; +import ContactSection from './HomePage/sections/Contact'; + +export default function HomePage(): React.JSX.Element { return ( - <> -
- - - -
+<> + -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ ); } diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..88359b9 --- /dev/null +++ b/src/pages/HomePage/sections/About.tsx @@ -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 AboutTextSplit from '@/components/sections/about/AboutTextSplit'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function AboutSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Arrivals.tsx b/src/pages/HomePage/sections/Arrivals.tsx new file mode 100644 index 0000000..672fd24 --- /dev/null +++ b/src/pages/HomePage/sections/Arrivals.tsx @@ -0,0 +1,166 @@ +/* eslint-disable */ +// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body +import Button from "@/components/ui/Button"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import { cls } from "@/lib/utils"; + +const items = [ + { + title: "Essential Tee", + description: "Soft everyday basic", + price: "EGP 450", + imageSrc: "http://img.b2bpic.net/free-photo/backpack-casual-outfit_23-2147710428.jpg" + }, + { + title: "Linen Wrap", + description: "Comfortable elegance", + price: "EGP 650", + imageSrc: "http://img.b2bpic.net/free-photo/stylish-happy-attractive-smiling-woman-posing-desert-sand-dressed-white-clothes-wearing-straw-hat-sunglasses-sunset-sunny-summer-day_285396-9209.jpg" + }, + { + title: "Silk Midi", + description: "Graceful everyday wear", + price: "EGP 850", + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-beautiful-brunette-woman-girl-model-with-nude-makeup-colorful-summer-pink-hipster-clothes-sunglasses-posing-near-wall-full-length_158538-8875.jpg" + }, + { + title: "Classic Trouser", + description: "Tailored for comfort", + price: "EGP 550", + imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-present-with-citrus-slice-copy-space_23-2148370119.jpg" + }, + { + title: "Cotton Knit", + description: "Soft and breathable", + price: "EGP 400", + imageSrc: "http://img.b2bpic.net/free-photo/view-beige-tone-colored-pants_23-2150773385.jpg" + }, + { + title: "Neutral Blazer", + description: "Polished layers", + price: "EGP 950", + imageSrc: "http://img.b2bpic.net/free-photo/collection-beige-tone-colored-pants_23-2150773386.jpg" + }, + { + title: "Comfort Slip", + description: "Elegant simplicity", + price: "EGP 350", + imageSrc: "http://img.b2bpic.net/free-photo/young-man-portrait-with-flowers_23-2148830422.jpg" + } +]; + +type FeatureItem = { + title: string; + description: string; + href?: string; +} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); + +interface FeaturesImageBentoProps { + tag: string; + title: string; + description: string; + primaryButton?: { text: string; href: string }; + secondaryButton?: { text: string; href: string }; + items: [FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem]; +} + +const ArrivalsInline = () => { + const gridClasses = [ + "md:col-span-2", + "md:col-span-4", + "md:col-span-3", + "md:col-span-3", + "md:col-span-2", + "md:col-span-2", + "md:col-span-2", + ]; + + const staggerDelays = [ + 0, + 0.1, + 0, + 0.1, + 0, + 0.1, + 0.2, + ]; + + return ( +
+
+
+
+

{"Collection"}

+
+ + + + + + {(undefined || undefined) && ( +
+ {undefined &&
+ )} +
+ +
+ {items.map((item, index) => { + const content = ( +
+ + +
+ {item.title} + {item.description} + {item.price} +
+
+ ); + + return ( + + {item.href ? ( + + {content} + + ) : ( +
+ {content} +
+ )} +
+ ); + })} +
+
+
+ ); +}; + +export default function ArrivalsSection() { + return ( +
+ +
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..f98be78 --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Faq.tsx b/src/pages/HomePage/sections/Faq.tsx new file mode 100644 index 0000000..51c13de --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,42 @@ +// 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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..639ab47 --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,29 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "hero" section. + +import React from 'react'; +import HeroOverlay from '@/components/sections/hero/HeroOverlay'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +}