Merge version_2_1782342355107 into main #3
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f5faff;
|
||||
--card: #ffffff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #f5faff;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta-text: #001122;
|
||||
--accent: #a8cce8;
|
||||
--background-accent: #7ba3cf;
|
||||
--background: #ffffff;
|
||||
--card: #f8f8f8;
|
||||
--foreground: #000000;
|
||||
--primary-cta: #ff8c00;
|
||||
--primary-cta-text: #000000;
|
||||
--secondary-cta: #ffd700;
|
||||
--secondary-cta-text: #000000;
|
||||
--accent: #ffd700;
|
||||
--background-accent: #ff8c00;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1.5rem;
|
||||
|
||||
@@ -1,128 +1,36 @@
|
||||
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
|
||||
import HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
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 ./<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 MetricsSection from './HomePage/sections/Metrics';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
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">
|
||||
<HeroSplit
|
||||
tag="Premium Mortgage Brokerage"
|
||||
title="Mortgage strength you can trust"
|
||||
description="Experience premium mortgage solutions backed by proven expertise and an unshakeable commitment. Get preapproved in one meeting."
|
||||
primaryButton={{ text: "Book Your Consultation", href: "#contact" }}
|
||||
secondaryButton={{ text: "View Our Services", href: "#features" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/cheerful-successful-business-team-working-report-looking-camera_1262-12268.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutFeaturesSplit
|
||||
tag="Why Choose Us"
|
||||
title="Unmatched credibility and strength in your corner"
|
||||
description="We cut through the noise of the mortgage industry. By combining proven professional expertise with an uncompromising standard of service, we secure the financing you deserve, stress-free."
|
||||
items={[
|
||||
{ icon: "Shield", title: "Total Transparency", description: "No hidden fees, no surprises. Just clear, honest mortgage guidance." },
|
||||
{ icon: "Zap", title: "Rapid Preapproval", description: "Get the green light in a single, focused meeting." },
|
||||
{ icon: "CheckCircle", title: "Expert Advocacy", description: "We fight for competitive rates, leveraging our experience for your benefit." }
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/candid-shot-mature-beautiful-female-architect-her-young-male-colleague-having-discussion-office-desk-studying-sketches-drawings-blueprints-architecture-engineering-design_344912-1608.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesArrowCards
|
||||
tag="Our Services"
|
||||
title="Mortgage solutions tailored to you"
|
||||
description="From high-net-worth real estate investments to first-time home buying, we have the strategic strength to secure your financing."
|
||||
items={[
|
||||
{ title: "Luxury Real Estate Financing", tags: ["Investment", "High-Net-Worth"], imageSrc: "http://img.b2bpic.net/free-photo/business-grass-communication-profession-idyllic_1134-1134.jpg" },
|
||||
{ title: "First-Time Home Buyers", tags: ["Guided", "Transparent"], imageSrc: "http://img.b2bpic.net/free-photo/3d-render-hourglass-mouse-symbol-design_460848-7398.jpg" },
|
||||
{ title: "Commercial & Business Loans", tags: ["Expertise", "Strength"], imageSrc: "http://img.b2bpic.net/free-vector/startup-crowdfunding-flat-icons-set_98292-1428.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Impact"
|
||||
title="Results that speak for themselves"
|
||||
description="We are committed to delivering exceptional outcomes for every client we serve."
|
||||
metrics={[
|
||||
{ value: "$500M+", description: "Loans Funded" },
|
||||
{ value: "1,200+", description: "Families Helped" },
|
||||
{ value: "48 hrs", description: "Average Closing Time" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted Partners"
|
||||
title="Backed by industry leaders"
|
||||
description="We collaborate with the most reputable names in finance."
|
||||
names={["LenderOne", "TrustHome", "MortgageAdvocates", "PrimeCap", "SafeHaven", "EliteBroker", "SecureGrowth"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialProofSection />
|
||||
|
||||
<div id="testimonial" data-section="testimonial">
|
||||
<SectionErrorBoundary name="testimonial">
|
||||
<TestimonialOverlayCards
|
||||
tag="Client Stories"
|
||||
title="Trusted by hundreds"
|
||||
testimonials={[
|
||||
{ name: "Sarah Jenkins", role: "CEO", company: "TechStream", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-black-suit_23-2148401442.jpg" },
|
||||
{ name: "Marcus Thorne", role: "Business Owner", company: "Thorne Logistics", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-man-using-tablet-street-cafe_1262-19056.jpg" },
|
||||
{ name: "Elena Rodriguez", role: "Homeowner", company: "First Time Buyer", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/real-estate-excited-asian-senior-woman-looking-happy-lucky-winning-apartment-showing-paper-house_1258-147381.jpg" },
|
||||
{ name: "David Wu", role: "Investor", company: "Wu Properties", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/corporate-business-people_23-2148827022.jpg" },
|
||||
{ name: "Amanda Chen", role: "Executive", company: "FinCorp", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg" }
|
||||
]}
|
||||
description="Read what our clients have to say about their mortgage experience."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Common Questions"
|
||||
title="Everything you need to know"
|
||||
description="Clear answers to help you navigate your mortgage journey with confidence."
|
||||
items={[
|
||||
{ question: "What documents do I need to get preapproved?", answer: "Typically, you will need your recent pay stubs, tax returns for the last two years, bank statements, and information on any current debts." },
|
||||
{ question: "How long does the mortgage process take?", answer: "While it varies, we specialize in rapid processing. Our average closing time is 48 hours for qualified applicants." },
|
||||
{ question: "Are there hidden fees working with a broker?", answer: "Absolutely not. We pride ourselves on full transparency and will outline every detail during our initial consultation." }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Start Today"
|
||||
text="Ready for premium mortgage strength? Book your consultation today and take the first step towards your goal."
|
||||
primaryButton={{ text: "Book Now", href: "#" }}
|
||||
secondaryButton={{ text: "Contact Support", href: "mailto:support@newimagemortgages.com" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
26
src/pages/HomePage/sections/About.tsx
Normal file
26
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutFeaturesSplit
|
||||
tag="Why Choose Us"
|
||||
title="Unmatched credibility and strength in your corner"
|
||||
description="We cut through the noise of the mortgage industry. By combining proven professional expertise with an uncompromising standard of service, we secure the financing you deserve, stress-free."
|
||||
items={[
|
||||
{ icon: "Shield", title: "Total Transparency", description: "No hidden fees, no surprises. Just clear, honest mortgage guidance." },
|
||||
{ icon: "Zap", title: "Rapid Preapproval", description: "Get the green light in a single, focused meeting." },
|
||||
{ icon: "CheckCircle", title: "Expert Advocacy", description: "We fight for competitive rates, leveraging our experience for your benefit." }
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/candid-shot-mature-beautiful-female-architect-her-young-male-colleague-having-discussion-office-desk-studying-sketches-drawings-blueprints-architecture-engineering-design_344912-1608.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Contact.tsx
Normal file
21
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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="Start Today"
|
||||
text="Ready for premium mortgage strength? Book your consultation today and take the first step towards your goal."
|
||||
primaryButton={{ text: "Book Now", href: "#" }}
|
||||
secondaryButton={{ text: "Contact Support", href: "mailto:support@newimagemortgages.com" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Faq.tsx
Normal file
25
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// 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 (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Common Questions"
|
||||
title="Everything you need to know"
|
||||
description="Clear answers to help you navigate your mortgage journey with confidence."
|
||||
items={[
|
||||
{ question: "What documents do I need to get preapproved?", answer: "Typically, you will need your recent pay stubs, tax returns for the last two years, bank statements, and information on any current debts." },
|
||||
{ question: "How long does the mortgage process take?", answer: "While it varies, we specialize in rapid processing. Our average closing time is 48 hours for qualified applicants." },
|
||||
{ question: "Are there hidden fees working with a broker?", answer: "Absolutely not. We pride ourselves on full transparency and will outline every detail during our initial consultation." }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Features.tsx
Normal file
25
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// 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 FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesArrowCards
|
||||
tag="Our Services"
|
||||
title="Mortgage solutions tailored to you"
|
||||
description="From high-net-worth real estate investments to first-time home buying, we have the strategic strength to secure your financing."
|
||||
items={[
|
||||
{ title: "Luxury Real Estate Financing", tags: ["Investment", "High-Net-Worth"], imageSrc: "http://img.b2bpic.net/free-photo/business-grass-communication-profession-idyllic_1134-1134.jpg" },
|
||||
{ title: "First-Time Home Buyers", tags: ["Guided", "Transparent"], imageSrc: "http://img.b2bpic.net/free-photo/3d-render-hourglass-mouse-symbol-design_460848-7398.jpg" },
|
||||
{ title: "Commercial & Business Loans", tags: ["Expertise", "Strength"], imageSrc: "http://img.b2bpic.net/free-vector/startup-crowdfunding-flat-icons-set_98292-1428.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Hero.tsx
Normal file
23
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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 HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="Premium Mortgage Brokerage"
|
||||
title="Mortgage strength you can trust"
|
||||
description="Experience premium mortgage solutions backed by proven expertise and an unshakeable commitment. Get preapproved in one meeting."
|
||||
primaryButton={{ text: "Book Your Consultation", href: "#contact" }}
|
||||
secondaryButton={{ text: "View Our Services", href: "#features" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/cheerful-successful-business-team-working-report-looking-camera_1262-12268.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Metrics.tsx
Normal file
25
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
// 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 MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Impact"
|
||||
title="Results that speak for themselves"
|
||||
description="We are committed to delivering exceptional outcomes for every client we serve."
|
||||
metrics={[
|
||||
{ value: "$500M+", description: "Loans Funded" },
|
||||
{ value: "1,200+", description: "Families Helped" },
|
||||
{ value: "48 hrs", description: "Average Closing Time" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/SocialProof.tsx
Normal file
21
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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 (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted Partners"
|
||||
title="Backed by industry leaders"
|
||||
description="We collaborate with the most reputable names in finance."
|
||||
names={["LenderOne", "TrustHome", "MortgageAdvocates", "PrimeCap", "SafeHaven", "EliteBroker", "SecureGrowth"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Testimonial.tsx
Normal file
27
src/pages/HomePage/sections/Testimonial.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// 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 TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonial" data-section="testimonial">
|
||||
<SectionErrorBoundary name="testimonial">
|
||||
<TestimonialOverlayCards
|
||||
tag="Client Stories"
|
||||
title="Trusted by hundreds"
|
||||
testimonials={[
|
||||
{ name: "Sarah Jenkins", role: "CEO", company: "TechStream", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-black-suit_23-2148401442.jpg" },
|
||||
{ name: "Marcus Thorne", role: "Business Owner", company: "Thorne Logistics", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-man-using-tablet-street-cafe_1262-19056.jpg" },
|
||||
{ name: "Elena Rodriguez", role: "Homeowner", company: "First Time Buyer", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/real-estate-excited-asian-senior-woman-looking-happy-lucky-winning-apartment-showing-paper-house_1258-147381.jpg" },
|
||||
{ name: "David Wu", role: "Investor", company: "Wu Properties", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/corporate-business-people_23-2148827022.jpg" },
|
||||
{ name: "Amanda Chen", role: "Executive", company: "FinCorp", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg" }
|
||||
]}
|
||||
description="Read what our clients have to say about their mortgage experience."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user