From 08c9cf31485c82bfc1eca1fb22c89de8bf3c565b Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 15 Jun 2026 12:03:49 +0000 Subject: [PATCH] Bob AI: Make testimonial stars yellow --- src/pages/HomePage.tsx | 265 ++----------------- src/pages/HomePage/sections/About.tsx | 22 ++ src/pages/HomePage/sections/Contact.tsx | 27 ++ src/pages/HomePage/sections/Faq.tsx | 35 +++ src/pages/HomePage/sections/Hero.tsx | 68 +++++ src/pages/HomePage/sections/Metrics.tsx | 38 +++ src/pages/HomePage/sections/Services.tsx | 43 +++ src/pages/HomePage/sections/Team.tsx | 43 +++ src/pages/HomePage/sections/Testimonials.tsx | 95 +++++++ 9 files changed, 395 insertions(+), 241 deletions(-) create mode 100644 src/pages/HomePage/sections/About.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 create mode 100644 src/pages/HomePage/sections/Metrics.tsx create mode 100644 src/pages/HomePage/sections/Services.tsx create mode 100644 src/pages/HomePage/sections/Team.tsx create mode 100644 src/pages/HomePage/sections/Testimonials.tsx diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index d43f546..1775107 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,253 +1,36 @@ -import AboutTestimonial from '@/components/sections/about/AboutTestimonial'; -import ContactCta from '@/components/sections/contact/ContactCta'; -import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; -import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; -import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee'; -import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; -import TeamProfileCards from '@/components/sections/team/TeamProfileCards'; -import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard'; -import { Award, CheckCircle, Zap } from "lucide-react"; -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 AboutSection from './HomePage/sections/About'; +import ServicesSection from './HomePage/sections/Services'; +import TeamSection from './HomePage/sections/Team'; +import MetricsSection from './HomePage/sections/Metrics'; +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 ( - <> -
- - - -
+<> + -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ ); } diff --git a/src/pages/HomePage/sections/About.tsx b/src/pages/HomePage/sections/About.tsx new file mode 100644 index 0000000..bd5d64a --- /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 AboutTestimonial from '@/components/sections/about/AboutTestimonial'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function AboutSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..c4b9eea --- /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..998f322 --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,35 @@ +// 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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..9527c5d --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,68 @@ +// 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 HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx new file mode 100644 index 0000000..ce6a474 --- /dev/null +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -0,0 +1,38 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "metrics" section. + +import React from 'react'; +import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; +import { Award, CheckCircle, Zap } from "lucide-react"; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function MetricsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Services.tsx b/src/pages/HomePage/sections/Services.tsx new file mode 100644 index 0000000..bde9e84 --- /dev/null +++ b/src/pages/HomePage/sections/Services.tsx @@ -0,0 +1,43 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "services" section. + +import React from 'react'; +import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ServicesSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Team.tsx b/src/pages/HomePage/sections/Team.tsx new file mode 100644 index 0000000..ba10c1a --- /dev/null +++ b/src/pages/HomePage/sections/Team.tsx @@ -0,0 +1,43 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "team" section. + +import React from 'react'; +import TeamProfileCards from '@/components/sections/team/TeamProfileCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TeamSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Testimonials.tsx b/src/pages/HomePage/sections/Testimonials.tsx new file mode 100644 index 0000000..e68da4f --- /dev/null +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -0,0 +1,95 @@ +/* eslint-disable */ +// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body +import { Star } from "lucide-react"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import { cls } from "@/lib/utils"; + +const avatars = [ + { + name: "Client 1", + imageSrc: "http://img.b2bpic.net/free-photo/woman-shaking-hands-with-male-colleague_482257-123554.jpg" + }, + { + name: "Client 2", + imageSrc: "http://img.b2bpic.net/free-photo/cheerful-woman-with-speech-bubble_53876-70978.jpg" + }, + { + name: "Client 3", + imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-smiling-businessman-showing-thumbs-up-with-funny-faces-drawings-focus-hands_176420-42468.jpg" + }, + { + name: "Client 4", + imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg" + }, + { + name: "Client 5", + imageSrc: "http://img.b2bpic.net/free-photo/business-partners-celebrate-beginning-new-project-their-companies_482257-97532.jpg" + } +]; + +type Avatar = { + name: string; +} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); + +const TestimonialsInline = () => { + const visibleAvatars = avatars.slice(0, 6); + const remainingCount = avatars.length - visibleAvatars.length; + + return ( +
+
+ + {Array.from({ length: 5 }).map((_, index) => ( + + ))} + + + + + +

{"Local Adelaide Entrepreneur"}

+
+ + + {visibleAvatars.map((avatar, index) => ( +
0 && "-ml-5")} + style={{ zIndex: visibleAvatars.length - index }} + > + +
+ ))} + {remainingCount > 0 && ( +
+ +{remainingCount} +
+ )} +
+
+
+ ); +}; + +export default function TestimonialsSection() { + return ( +
+ +
+ ); +}