From c93395947d6cf7d0c12b5cd7a15f6c99000193d1 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Sun, 14 Jun 2026 10:47:29 +0000 Subject: [PATCH] Bob AI: Updated hero to Developer's Digital Office concept --- src/pages/HomePage.tsx | 164 ++----------------- src/pages/HomePage/sections/Faq.tsx | 30 ++++ src/pages/HomePage/sections/Hero.tsx | 162 ++++++++++++++++++ src/pages/HomePage/sections/Pricing.tsx | 50 ++++++ src/pages/HomePage/sections/SocialProof.tsx | 27 +++ src/pages/HomePage/sections/Testimonials.tsx | 57 +++++++ 6 files changed, 344 insertions(+), 146 deletions(-) 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/Pricing.tsx create mode 100644 src/pages/HomePage/sections/SocialProof.tsx create mode 100644 src/pages/HomePage/sections/Testimonials.tsx diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index d896ab2..ebbc700 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,155 +1,27 @@ -import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn'; -import HeroBillboard from '@/components/sections/hero/HeroBillboard'; -import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards'; -import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; -import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; -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 TestimonialsSection from './HomePage/sections/Testimonials'; +import SocialProofSection from './HomePage/sections/SocialProof'; +import PricingSection from './HomePage/sections/Pricing'; +import FaqSection from './HomePage/sections/Faq'; + +export default function HomePage(): 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..d813e55 --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,30 @@ +// 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 FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn'; +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..b1f4278 --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -0,0 +1,162 @@ +/* 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 HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import AvatarGroup from "@/components/ui/AvatarGroup"; + +const primaryButton = { + text: "View Projects", + href: "/projects" +}; +const secondaryButton = { + text: "About Me", + href: "/about" +}; + +type HeroBillboardProps = { + tag?: string; + title: string; + description: string; + primaryButton: { text: string; href: string }; + secondaryButton: { text: string; href: string }; + avatarsSrc?: string[]; + avatarsLabel?: string; +} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); + +import { useState, useEffect } from 'react'; +import { BookOpen, Award, FileText, Github, Terminal } from 'lucide-react'; +import { motion } from 'motion/react'; + +const HeroInline = () => { + const [isNight, setIsNight] = useState(false); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + const hour = new Date().getHours(); + setIsNight(hour < 6 || hour >= 18); + }, []); + + if (!mounted) return null; + + return ( +
+ {/* Background Window */} + +
+ {isNight ? ( + + ) : ( + + )} +
+ +
+
+
+ +
+ + {/* Wall Items */} +
+ + {/* Intro Text & Certificates */} +
+
+ + +
+ + +
+ +

AWS Certified

+
+
+ +

React Expert

+
+
+
+ + {/* Bookshelf */} + +

Tech Stack

+
+ {['React', 'TypeScript', 'Node.js', 'Next.js', 'Tailwind CSS', 'GraphQL', 'PostgreSQL', 'Docker'].map(tech => ( + {tech} + ))} +
+
+
+ + {/* Desk Area */} +
+ {/* Desk Surface */} +
+ +
+ + {/* Resume */} + + + Download Résumé +
+
+
+
+ + {/* Laptop */} + +
+
+ {/* Screen Content */} +
+
+
+
+
+
+ +

Live Projects

+

{">"} ./view_portfolio.sh

+
+
+
+
+
+
+ + {/* Coffee Mug */} + +
+ +
+
+ + + + {/* Tooltip on hover */} +
+ Fueled by Coffee +
+
+
+
+ +
+
+ ); +}; + +export default function HeroSection() { + return ( +
+ +
+ ); +} diff --git a/src/pages/HomePage/sections/Pricing.tsx b/src/pages/HomePage/sections/Pricing.tsx new file mode 100644 index 0000000..caba5ee --- /dev/null +++ b/src/pages/HomePage/sections/Pricing.tsx @@ -0,0 +1,50 @@ +// 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 PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function PricingSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/SocialProof.tsx b/src/pages/HomePage/sections/SocialProof.tsx new file mode 100644 index 0000000..c764db2 --- /dev/null +++ b/src/pages/HomePage/sections/SocialProof.tsx @@ -0,0 +1,27 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "social-proof" section. + +import React from 'react'; +import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function SocialProofSection(): 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..9d73b91 --- /dev/null +++ b/src/pages/HomePage/sections/Testimonials.tsx @@ -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 TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TestimonialsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +}