3 Commits

Author SHA1 Message Date
69e564a40a Merge version_2_1781990608230 into main
Merge version_2_1781990608230 into main
2026-06-20 21:25:33 +00:00
kudinDmitriyUp
17081ca431 Bob AI: Update copy and images for engineering firm 2026-06-20 21:24:56 +00:00
35e51505e8 Merge version_1_1781989133156 into main
Merge version_1_1781989133156 into main
2026-06-20 21:20:22 +00:00
9 changed files with 207 additions and 197 deletions

View File

@@ -48,13 +48,13 @@ export default function Layout() {
<FooterBasic
columns={[
{
title: "Practice Areas", items: [
title: "Engineering Disciplines", items: [
{
label: "Litigation", href: "#"},
label: "Structural", href: "#"},
{
label: "Corporate Law", href: "#"},
label: "Civil", href: "#"},
{
label: "Real Estate", href: "#"},
label: "MEP", href: "#"},
],
},
{
@@ -79,7 +79,7 @@ export default function Layout() {
},
]}
leftText="© 2024 Fashandi & Associates. All rights reserved."
rightText="Professional Legal Services"
rightText="Professional Engineering Services"
/>
</SectionErrorBoundary>
</StyleProvider>

View File

@@ -1,203 +1,33 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
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 TeamSection from './HomePage/sections/Team';
import TestimonialSection from './HomePage/sections/Testimonial';
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">
<HeroBillboardTiltedCarousel
tag="Premier Legal Counsel"
title="Expert Legal Advocacy for Complex Challenges"
description="Fashandi & Associates provides strategic, professional legal services tailored to your specific business and individual needs. Your success is our mission."
primaryButton={{
text: "Schedule Consultation",
href: "#contact",
}}
secondaryButton={{
text: "View Our Expertise",
href: "#features",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/black-financial-consultant-explaining-deal-details_1163-5307.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-workstation-with-notepad-plant_23-2148430881.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/people-taking-part-high-protocol-event_23-2150951469.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/open-drawer-linear-perspective-dark-interior_169016-69134.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/female-engineers-working_23-2151657912.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-modern-environment_23-2148993909.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="At Fashandi & Associates, we combine years of courtroom experience with deep commercial insight to resolve your most critical legal disputes and transactional matters."
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Our Practice Areas"
title="Comprehensive Legal Solutions"
description="We specialize in navigating complex legal landscapes to ensure your business remains protected and compliant."
items={[
{
tag: "Litigation",
title: "Civil & Commercial Litigation",
description: "Aggressive and strategic representation in complex business disputes.",
primaryButton: {
text: "Learn More",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/photorealistic-law-environment_23-2151202468.jpg",
},
{
tag: "Corporate",
title: "Corporate Advisory",
description: "Guidance on mergers, acquisitions, and everyday operational governance.",
primaryButton: {
text: "Learn More",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/businessman-formalwear-telling-colleague-contract_1262-2690.jpg",
},
{
tag: "Real Estate",
title: "Real Estate Transactions",
description: "Handling complex property acquisitions and development regulatory issues.",
primaryButton: {
text: "Learn More",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/real-estate-sector_23-2151925492.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="Leadership"
title="Meet Our Partners"
description="Dedicated attorneys committed to your legal success and long-term business goals."
members={[
{
name: "Alexander Fashandi",
role: "Senior Partner",
imageSrc: "http://img.b2bpic.net/free-photo/senior-businessman-with-arms-crossed-outside-modern-office-building_1139-1074.jpg",
},
{
name: "Sarah Jenkins",
role: "Managing Partner",
imageSrc: "http://img.b2bpic.net/free-photo/closeup-handsome-middle-aged-business-leader_1262-4822.jpg",
},
{
name: "Marcus Thorne",
role: "Litigation Lead",
imageSrc: "http://img.b2bpic.net/free-photo/man-corrects-belt-fees-groom-man-s-hands-dressing-man-buttons-pants-jeans_8353-5893.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonial" data-section="testimonial">
<SectionErrorBoundary name="testimonial">
<TestimonialTrustCard
quote="Fashandi & Associates provided exceptional clarity and strategy in our most challenging business litigation. Their professionalism is unmatched."
rating={5}
author="CEO, GrowthTech Solutions"
avatars={[
{
name: "Client 1",
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-girl-smiling-sitting-floor-white-wall_176420-8542.jpg",
},
{
name: "Client 2",
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-boss-sitting-with-newspaper-table_1098-3037.jpg",
},
{
name: "Client 3",
imageSrc: "http://img.b2bpic.net/free-photo/professional-woman-reading-reports_1098-137.jpg",
},
{
name: "Client 4",
imageSrc: "http://img.b2bpic.net/free-photo/alone-specialist-handsome-daydreaming-collar_1262-870.jpg",
},
{
name: "Client 5",
imageSrc: "http://img.b2bpic.net/free-photo/angry-man-with-crossed-arms_1187-3142.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Common Questions"
title="Understanding Our Services"
description="Get answers to your primary concerns regarding initial consultations, fee structures, and our legal approach."
items={[
{
question: "What does an initial consultation involve?",
answer: "We evaluate your case, discuss potential legal strategies, and provide an overview of the expected costs and outcomes.",
},
{
question: "Do you offer flat-fee structures?",
answer: "Certain services are offered on a flat-fee basis, while complex litigation is typically handled via standard hourly rates.",
},
{
question: "How often will you communicate with me?",
answer: "We provide regular status updates and ensure a direct line of communication with your lead attorney throughout the matter.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/real-estate-agents-studying-layout-high-class-office-space-building_482257-99610.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get in Touch"
text="Ready to discuss your legal requirements? Contact our firm today to schedule your confidential consultation."
primaryButton={{
text: "Call Firm",
href: "tel:+15551234567",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:info@fashandi.com",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,18 @@
// 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="At Fashandi & Associates, we combine years of technical expertise with deep industry insight to deliver innovative engineering solutions for your most critical infrastructure and development projects."
/>
</SectionErrorBoundary>
</div>
);
}

View 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="Get in Touch"
text="Ready to discuss your legal requirements? Contact our firm today to schedule your confidential consultation."
primaryButton={{
text: "Call Firm",
href: "tel:+15551234567",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:info@fashandi.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// 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 (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Common Questions"
title="Understanding Our Services"
description="Get answers to your primary concerns regarding initial assessments, project timelines, and our engineering approach."
items={[{"question":"What does an initial project assessment involve?","answer":"We evaluate your project requirements, discuss potential engineering strategies, and provide an overview of the expected timelines and deliverables."},{"question":"Do you offer flat-fee structures?","answer":"Certain consulting services are offered on a flat-fee basis, while complex design and oversight projects are typically handled via standard hourly rates or phased contracts."},{"question":"How often will you communicate with me?","answer":"We provide regular status updates and ensure a direct line of communication with your lead engineer throughout the project lifecycle."}]}
imageSrc="http://img.b2bpic.net/free-photo/real-estate-agents-studying-layout-high-class-office-space-building_482257-99610.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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 FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Our Expertise"
title="Comprehensive Engineering Solutions"
description="We specialize in navigating complex technical landscapes to ensure your projects are structurally sound, efficient, and compliant."
items={[{"primaryButton":{"text":"Learn More","href":"#"},"imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293910.jpg","tag":"Structural","title":"Structural Engineering","description":"Comprehensive structural analysis and design for commercial and residential developments."},{"primaryButton":{"text":"Learn More","href":"#"},"title":"Civil Engineering","description":"Expert guidance on site development, grading, and municipal infrastructure projects.","imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293911.jpg","tag":"Civil"},{"tag":"MEP","imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293912.jpg","description":"Innovative solutions for HVAC, plumbing, and electrical systems in modern buildings.","title":"MEP Engineering","primaryButton":{"href":"#","text":"Learn More"}}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -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 HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardTiltedCarousel
tag="Premier Engineering Firm"
title="Expert Engineering Solutions for Complex Challenges"
description="Fashandi & Associates provides strategic, professional engineering solutions tailored to your specific infrastructure and development needs. Your success is our mission."
primaryButton={{
text: "Schedule Consultation",
href: "#contact",
}}
secondaryButton={{
text: "View Our Expertise",
href: "#features",
}}
items={[{"imageSrc":"http://img.b2bpic.net/free-photo/female-engineers-working_23-2151657912.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/engineer-working-with-blueprints_23-2148293909.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293910.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293911.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293912.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/engineers-working-construction-site_23-2148293913.jpg"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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 TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamOverlayCards
tag="Leadership"
title="Meet Our Partners"
description="Dedicated engineers committed to your project's success and long-term structural integrity."
members={[{"role":"Principal Engineer","name":"Alexander Fashandi","imageSrc":"http://img.b2bpic.net/free-photo/senior-businessman-with-arms-crossed-outside-modern-office-building_1139-1074.jpg"},{"role":"Lead Structural Engineer","name":"Sarah Jenkins","imageSrc":"http://img.b2bpic.net/free-photo/closeup-handsome-middle-aged-business-leader_1262-4822.jpg"},{"role":"Civil Engineering Director","name":"Marcus Thorne","imageSrc":"http://img.b2bpic.net/free-photo/man-corrects-belt-fees-groom-man-s-hands-dressing-man-buttons-pants-jeans_8353-5893.jpg"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,42 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonial" section.
import React from 'react';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialSection(): React.JSX.Element {
return (
<div id="testimonial" data-section="testimonial">
<SectionErrorBoundary name="testimonial">
<TestimonialTrustCard
quote="Fashandi & Associates provided exceptional clarity and strategy in our most challenging infrastructure project. Their technical expertise is unmatched."
rating={5}
author="CEO, Urban Development Corp"
avatars={[
{
name: "Client 1",
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-girl-smiling-sitting-floor-white-wall_176420-8542.jpg",
},
{
name: "Client 2",
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-boss-sitting-with-newspaper-table_1098-3037.jpg",
},
{
name: "Client 3",
imageSrc: "http://img.b2bpic.net/free-photo/professional-woman-reading-reports_1098-137.jpg",
},
{
name: "Client 4",
imageSrc: "http://img.b2bpic.net/free-photo/alone-specialist-handsome-daydreaming-collar_1262-870.jpg",
},
{
name: "Client 5",
imageSrc: "http://img.b2bpic.net/free-photo/angry-man-with-crossed-arms_1187-3142.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}