Merge version_2_1781857390016 into main #1
@@ -1,264 +1,41 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
|
||||
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 ServicesSection from './HomePage/sections/Services';
|
||||
import ProjectsSection from './HomePage/sections/Projects';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
|
||||
{/* webild-stub @2026-06-19T08:24:47.212Z: Update the company profile to reflect 6-7 years of industry experience instead of decades. Remove interior finishing from the services list. Focus the services and construction details on foundation strength, beams, columns, flooring, and c */}
|
||||
|
||||
import AfterConstructionMaterialsSection from './HomePage/sections/AfterConstructionMaterials';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Construction Excellence"
|
||||
title="Building Your Vision into Reality"
|
||||
description="Aggarwal Construction delivers high-performance structural solutions with a commitment to quality, durability, and architectural precision."
|
||||
primaryButton={{
|
||||
text: "View Projects",
|
||||
href: "#projects",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-architect-with-helmet-construction-site_23-2147702481.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/architect-smiling-while-looking-camera_23-2148242957.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-work-site_1398-2982.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/working-day-two-indian-men-discussing-something-looking-involved_259150-59414.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/new-york-city-ny-usa-october-20-2020-vessel-hudson-yards-staircase-designed-by-architect-thomas-heatherwick-midtown-manhattan-west_1321-2499.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blueprint-architect-construction-project-sketch-concept_53876-120012.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pedestrian-bridge-against-blue-sky_1127-2835.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/light-symmetry-historic-atrium-upward-view-through-stairs_169016-70079.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-site_53876-31720.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/steel-bar-site-construction_1150-10127.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-using-hammer-job-site_23-2150530685.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-taking-picture-flowing-water-from-bridge_23-2148187299.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Decades of Unmatched Structural Integrity"
|
||||
primaryButton={{
|
||||
text: "Learn About Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCards
|
||||
tag="Our Core Services"
|
||||
title="Professional Construction Solutions"
|
||||
description="From foundational engineering to interior precision, we manage every detail."
|
||||
items={[
|
||||
{
|
||||
title: "Structural Foundation",
|
||||
description: "Rock-solid foundations for commercial and residential developments.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/low-angle-shot-beautiful-modern-building-middle-city-clear-sky_181624-7463.jpg",
|
||||
},
|
||||
{
|
||||
title: "Interior Finishing",
|
||||
description: "Premium aesthetic and structural finishing for modern spaces.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-man-choosing-color_23-2148903521.jpg",
|
||||
},
|
||||
{
|
||||
title: "Commercial Development",
|
||||
description: "Large-scale project management with architectural rigor.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tall-skyscraper-with-metal-construction_23-2147764381.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
<AfterConstructionMaterialsSection />
|
||||
|
||||
<div id="projects" data-section="projects">
|
||||
<SectionErrorBoundary name="projects">
|
||||
<FeaturesImageBento
|
||||
tag="Portfolio"
|
||||
title="Featured Construction Projects"
|
||||
description="Explore our recent success in diverse sectors."
|
||||
items={[
|
||||
{
|
||||
title: "Luxury Estate",
|
||||
description: "High-end residential build.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/real-estate-team-using-3d-models-explore-construction-layout-options-working-residential_482257-136318.jpg",
|
||||
},
|
||||
{
|
||||
title: "Corporate Office",
|
||||
description: "Modern office structural design.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-building-seen-from_1203-1115.jpg",
|
||||
},
|
||||
{
|
||||
title: "Home Renovation",
|
||||
description: "Professional residential remodel.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/architecture-light-gothic-arches-windows-aesthetic-church-space_169016-68625.jpg",
|
||||
},
|
||||
{
|
||||
title: "Paving Infra",
|
||||
description: "Expert roadway infrastructure.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-with-sunflowers-electric-scooter_23-2149705863.jpg",
|
||||
},
|
||||
{
|
||||
title: "Foundation Work",
|
||||
description: "Reinforced concrete systems.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/monochrome-scene-depicting-life-workers-construction-industry-site_23-2151431492.jpg",
|
||||
},
|
||||
{
|
||||
title: "Outdoor Landscape",
|
||||
description: "Structural aesthetic integration.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/service-maintenance-worker-repairing_23-2149176755.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bridge Engineering",
|
||||
description: "Large scale civil project.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/aerial-shot-long-self-anchored-suspension-bridge-through-sea_181624-40406.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProjectsSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Impact"
|
||||
title="Engineering Numbers"
|
||||
description="Proven performance across decades."
|
||||
metrics={[
|
||||
{
|
||||
value: "150+",
|
||||
description: "Completed Projects",
|
||||
},
|
||||
{
|
||||
value: "20+",
|
||||
description: "Years Experience",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
description: "Clients Served",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
description: "Safety Rating",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="Aggarwal Construction transformed our vision into a masterpiece. Their precision and structural focus made all the difference."
|
||||
rating={5}
|
||||
author="Vikas Khanna, CEO of Khanna Tech"
|
||||
avatars={[
|
||||
{
|
||||
name: "Sarah J",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/african-american-man-red-t-shirt-smiling-yellow-wall_291650-225.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/image-carefree-africanamerican-girl-white-tshirt-showing-tongue-smiling-winking-happy-stan_1258-128116.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-vertical-image-smiling-african-man-looking_171337-9837.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/alone-specialist-handsome-daydreaming-collar_1262-870.jpg",
|
||||
},
|
||||
{
|
||||
name: "Anita P",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/puzzled-young-man-with-afro-hairstyle-raises-eyebrow-bewilderment-reacts-something-feels-doubt-dressed-elegant-shirt-isolated-white-wall_273609-17381.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Common Questions"
|
||||
title="Need More Information?"
|
||||
description="Frequently asked questions about our process."
|
||||
items={[
|
||||
{
|
||||
question: "What is your project timeline estimation?",
|
||||
answer: "We provide detailed timelines during the initial consultation based on project scale.",
|
||||
},
|
||||
{
|
||||
question: "Do you handle all necessary permits?",
|
||||
answer: "Yes, we handle the full regulatory and permitting process for all projects.",
|
||||
},
|
||||
{
|
||||
question: "What kind of projects do you take?",
|
||||
answer: "We specialize in residential builds, commercial office spaces, and industrial infrastructure.",
|
||||
},
|
||||
{
|
||||
question: "How do we get started?",
|
||||
answer: "Reach out through our contact form and we will schedule an onsite assessment.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Let's Build"
|
||||
text="Ready to bring your architectural vision to life with Aggarwal Construction?"
|
||||
primaryButton={{
|
||||
text: "Schedule Consultation",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal file
@@ -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 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="6-7 Years of Unmatched Structural Integrity"
|
||||
primaryButton={{
|
||||
text: "Learn About Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
69
src/pages/HomePage/sections/AfterConstructionMaterials.tsx
Normal file
69
src/pages/HomePage/sections/AfterConstructionMaterials.tsx
Normal file
@@ -0,0 +1,69 @@
|
||||
import { motion } from 'motion/react';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import Card from '@/components/ui/Card';
|
||||
import ImageOrVideo from '@/components/ui/ImageOrVideo';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
|
||||
export default function AfterConstructionMaterialsSection() {
|
||||
const items = [
|
||||
{
|
||||
title: "Tiles",
|
||||
description: "High-quality tiles for various applications.",
|
||||
imageSrc: "https://images.unsplash.com/photo-1502005097973-f5a1e117b533?auto=format&fit=crop&q=80&w=800",
|
||||
},
|
||||
{
|
||||
title: "Imported Italian Marble",
|
||||
description: "Imported Italian marble for luxurious finishes.",
|
||||
imageSrc: "https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&q=80&w=800",
|
||||
},
|
||||
{
|
||||
title: "Granite",
|
||||
description: "Durable granite for countertops and flooring.",
|
||||
imageSrc: "https://images.unsplash.com/photo-1584622650111-993a426fbf0a?auto=format&fit=crop&q=80&w=800",
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<section data-webild-section="after-construction-materials" id="after-construction-materials" className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<div className="flex flex-col items-center text-center mb-16">
|
||||
<ScrollReveal variant="fade">
|
||||
<Tag text="Materials" className="mb-4" />
|
||||
</ScrollReveal>
|
||||
<TextAnimation
|
||||
text="After-Construction Materials"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
gradientText={false}
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-4"
|
||||
/>
|
||||
<ScrollReveal variant="fade" delay={0.2}>
|
||||
<p className="text-lg text-accent max-w-2xl mx-auto">
|
||||
We provide premium after-construction materials for home and commercial projects. Images coming soon.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
{items.map((item, index) => (
|
||||
<ScrollReveal variant="fade" key={index} delay={0.1 * index}>
|
||||
<Card className="h-full overflow-hidden flex flex-col">
|
||||
<div className="relative h-64 w-full">
|
||||
<ImageOrVideo
|
||||
imageSrc={item.imageSrc}
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
<div className="p-6 flex flex-col flex-grow">
|
||||
<h3 className="text-xl font-bold text-foreground mb-2">{item.title}</h3>
|
||||
<p className="text-accent">{item.description}</p>
|
||||
</div>
|
||||
</Card>
|
||||
</ScrollReveal>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.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 "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="Let's Build"
|
||||
text="Ready to bring your architectural vision to life with Aggarwal Construction?"
|
||||
primaryButton={{
|
||||
text: "Schedule Consultation",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Faq.tsx
Normal file
38
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
// 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 (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="Common Questions"
|
||||
title="Need More Information?"
|
||||
description="Frequently asked questions about our process."
|
||||
items={[
|
||||
{
|
||||
question: "What is your project timeline estimation?",
|
||||
answer: "We provide detailed timelines during the initial consultation based on project scale.",
|
||||
},
|
||||
{
|
||||
question: "Do you handle all necessary permits?",
|
||||
answer: "Yes, we handle the full regulatory and permitting process for all projects.",
|
||||
},
|
||||
{
|
||||
question: "What kind of projects do you take?",
|
||||
answer: "We specialize in residential builds, commercial office spaces, and industrial infrastructure.",
|
||||
},
|
||||
{
|
||||
question: "How do we get started?",
|
||||
answer: "Reach out through our contact form and we will schedule an onsite assessment.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
68
src/pages/HomePage/sections/Hero.tsx
Normal file
68
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -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 (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Construction Excellence"
|
||||
title="Building Your Vision into Reality"
|
||||
description="Aggarwal Construction delivers high-performance structural solutions with a commitment to quality, durability, and architectural precision."
|
||||
primaryButton={{
|
||||
text: "View Projects",
|
||||
href: "#projects",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-architect-with-helmet-construction-site_23-2147702481.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/architect-smiling-while-looking-camera_23-2148242957.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-work-site_1398-2982.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/working-day-two-indian-men-discussing-something-looking-involved_259150-59414.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/new-york-city-ny-usa-october-20-2020-vessel-hudson-yards-staircase-designed-by-architect-thomas-heatherwick-midtown-manhattan-west_1321-2499.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blueprint-architect-construction-project-sketch-concept_53876-120012.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pedestrian-bridge-against-blue-sky_1127-2835.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/light-symmetry-historic-atrium-upward-view-through-stairs_169016-70079.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-site_53876-31720.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/steel-bar-site-construction_1150-10127.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-using-hammer-job-site_23-2150530685.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-taking-picture-flowing-water-from-bridge_23-2148187299.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
38
src/pages/HomePage/sections/Metrics.tsx
Normal file
38
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -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 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="Engineering Numbers"
|
||||
description="Proven performance across decades."
|
||||
metrics={[
|
||||
{
|
||||
value: "150+",
|
||||
description: "Completed Projects",
|
||||
},
|
||||
{
|
||||
value: "20+",
|
||||
description: "Years Experience",
|
||||
},
|
||||
{
|
||||
value: "500+",
|
||||
description: "Clients Served",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
description: "Safety Rating",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Projects.tsx
Normal file
57
src/pages/HomePage/sections/Projects.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "projects" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProjectsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="projects" data-section="projects">
|
||||
<SectionErrorBoundary name="projects">
|
||||
<FeaturesImageBento
|
||||
tag="Portfolio"
|
||||
title="Featured Construction Projects"
|
||||
description="Explore our recent success in diverse sectors."
|
||||
items={[
|
||||
{
|
||||
title: "Luxury Estate",
|
||||
description: "High-end residential build.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/real-estate-team-using-3d-models-explore-construction-layout-options-working-residential_482257-136318.jpg",
|
||||
},
|
||||
{
|
||||
title: "Corporate Office",
|
||||
description: "Modern office structural design.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/construction-building-seen-from_1203-1115.jpg",
|
||||
},
|
||||
{
|
||||
title: "Home Renovation",
|
||||
description: "Professional residential remodel.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/architecture-light-gothic-arches-windows-aesthetic-church-space_169016-68625.jpg",
|
||||
},
|
||||
{
|
||||
title: "Paving Infra",
|
||||
description: "Expert roadway infrastructure.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-with-sunflowers-electric-scooter_23-2149705863.jpg",
|
||||
},
|
||||
{
|
||||
title: "Foundation Work",
|
||||
description: "Reinforced concrete systems.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/monochrome-scene-depicting-life-workers-construction-industry-site_23-2151431492.jpg",
|
||||
},
|
||||
{
|
||||
title: "Outdoor Landscape",
|
||||
description: "Structural aesthetic integration.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/service-maintenance-worker-repairing_23-2149176755.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bridge Engineering",
|
||||
description: "Large scale civil project.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/aerial-shot-long-self-anchored-suspension-bridge-through-sea_181624-40406.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Services.tsx
Normal file
21
src/pages/HomePage/sections/Services.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 "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCards
|
||||
tag="Our Core Services"
|
||||
title="Professional Construction Solutions"
|
||||
description="From foundational engineering to concrete insulating wall solutions, we manage every structural detail."
|
||||
items={[{"description":"Rock-solid foundations, beams, columns, and flooring for commercial and residential developments.","title":"Structural Foundation","imageSrc":"http://img.b2bpic.net/free-photo/low-angle-shot-beautiful-modern-building-middle-city-clear-sky_181624-7463.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/close-up-woman-man-choosing-color_23-2148903521.jpg","title":"Construction Materials","description":"Premium construction materials including TMT iron bars, ACC, and Bangur Cement."},{"title":"Commercial Development","description":"Large-scale project management with architectural rigor, completed on schedule.","imageSrc":"http://img.b2bpic.net/free-photo/tall-skyscraper-with-metal-construction_23-2147764381.jpg"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// 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 TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="Aggarwal Construction transformed our vision into a masterpiece. Their precision and structural focus made all the difference."
|
||||
rating={5}
|
||||
author="Vikas Khanna, CEO of Khanna Tech"
|
||||
avatars={[
|
||||
{
|
||||
name: "Sarah J",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/african-american-man-red-t-shirt-smiling-yellow-wall_291650-225.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael C",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/image-carefree-africanamerican-girl-white-tshirt-showing-tongue-smiling-winking-happy-stan_1258-128116.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily R",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-vertical-image-smiling-african-man-looking_171337-9837.jpg",
|
||||
},
|
||||
{
|
||||
name: "David K",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/alone-specialist-handsome-daydreaming-collar_1262-870.jpg",
|
||||
},
|
||||
{
|
||||
name: "Anita P",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/puzzled-young-man-with-afro-hairstyle-raises-eyebrow-bewilderment-reacts-something-feels-doubt-dressed-elegant-shirt-isolated-white-wall_273609-17381.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user