From 2166ced57b79e22e083279a4bbcd3efb5e255a82 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 03:04:04 +0000 Subject: [PATCH 1/6] Update src/app/about/page.tsx --- src/app/about/page.tsx | 76 +++++++++++------------------------------- 1 file changed, 19 insertions(+), 57 deletions(-) diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index e107c6b..002eb69 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -36,9 +36,7 @@ export default function AboutPage() { brandName="JM Roofing" navItems={navItems} button={{ - text: "Get Free Quote", - href: "/contact", - }} + text: "Get Free Quote", href: "/contact"}} /> @@ -48,26 +46,14 @@ export default function AboutPage() { description="Founded by a master craftsman with over 30 years of roofing expertise, JM Roofing has grown into a trusted family business. Now serving its third generation, we combine time-tested techniques with modern innovation to deliver premium roofing solutions." features={[ { - id: "1", - title: "Generation One: The Foundation", - tags: ["1990s", "Master Craftsman", "Legacy"], - imageSrc: "http://img.b2bpic.net/free-photo/making-starling-house_1098-14195.jpg?_wi=2", - imageAlt: "First generation roofing master craftsman", - }, + id: "1", title: "Generation One: The Foundation", tags: ["1990s", "Master Craftsman", "Legacy"], + imageSrc: "http://img.b2bpic.net/free-photo/making-starling-house_1098-14195.jpg", imageAlt: "First generation roofing master craftsman"}, { - id: "2", - title: "Generation Two: Growth & Trust", - tags: ["2000s", "Expansion", "Community"], - imageSrc: "http://img.b2bpic.net/free-photo/cropped-team-discussing-business-data-with-highlighters_1098-18929.jpg?_wi=2", - imageAlt: "Second generation business growth and community service", - }, + id: "2", title: "Generation Two: Growth & Trust", tags: ["2000s", "Expansion", "Community"], + imageSrc: "http://img.b2bpic.net/free-photo/cropped-team-discussing-business-data-with-highlighters_1098-18929.jpg", imageAlt: "Second generation business growth and community service"}, { - id: "3", - title: "Generation Three: Modern Excellence", - tags: ["2020s", "Innovation", "Leadership"], - imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-from-home_23-2150232423.jpg?_wi=2", - imageAlt: "Third generation modern roofing leadership", - }, + id: "3", title: "Generation Three: Modern Excellence", tags: ["2020s", "Innovation", "Leadership"], + imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-from-home_23-2150232423.jpg", imageAlt: "Third generation modern roofing leadership"}, ]} textboxLayout="default" useInvertedBackground={false} @@ -85,35 +71,17 @@ export default function AboutPage() { animationType="smooth" faqs={[ { - id: "1", - title: "How long does a roof replacement take?", - content: "Most residential roofs are completed in 1–3 days, depending on size and complexity. We work efficiently without sacrificing quality, and our crews coordinate with you on timing and site access.", - }, + id: "1", title: "How long does a roof replacement take?", content: "Most residential roofs are completed in 1–3 days, depending on size and complexity. We work efficiently without sacrificing quality, and our crews coordinate with you on timing and site access."}, { - id: "2", - title: "Can you help if my insurance company says I need a new roof?", - content: "Yes, we specialize in insurance-driven replacements. We provide same or next-day inspections, detailed photo reports, invoices, and documentation that your insurance company needs for fast approval and renewals.", - }, + id: "2", title: "Can you help if my insurance company says I need a new roof?", content: "Yes, we specialize in insurance-driven replacements. We provide same or next-day inspections, detailed photo reports, invoices, and documentation that your insurance company needs for fast approval and renewals."}, { - id: "3", - title: "Do you provide free estimates?", - content: "Absolutely. All roof inspections and estimates are free, and we provide detailed before-and-after photos so you know exactly what we're recommending and why.", - }, + id: "3", title: "Do you provide free estimates?", content: "Absolutely. All roof inspections and estimates are free, and we provide detailed before-and-after photos so you know exactly what we're recommending and why."}, { - id: "4", - title: "Are you licensed and insured?", - content: "Yes. We are fully licensed and insured in California. Our business is also rated on HomeAdvisor, Thumbtack, Yelp, and the Better Business Bureau, so you can verify our credentials anytime.", - }, + id: "4", title: "Are you licensed and insured?", content: "Yes. We are fully licensed and insured in California. Our business is also rated on HomeAdvisor, Thumbtack, Yelp, and the Better Business Bureau, so you can verify our credentials anytime."}, { - id: "5", - title: "Which areas do you serve?", - content: "We proudly serve Los Angeles, Bell Gardens, Lynwood, South Gate, Compton, Maywood, Inglewood, Bell, Huntington Park, and surrounding communities throughout Greater Los Angeles.", - }, + id: "5", title: "Which areas do you serve?", content: "We proudly serve Los Angeles, Bell Gardens, Lynwood, South Gate, Compton, Maywood, Inglewood, Bell, Huntington Park, and surrounding communities throughout Greater Los Angeles."}, { - id: "6", - title: "How messy is a roof replacement?", - content: "We protect your property, keep the site clean daily, and perform a thorough cleanup with magnet sweeps at the end. Our crews are trained to respect your home and neighborhood.", - }, + id: "6", title: "How messy is a roof replacement?", content: "We protect your property, keep the site clean daily, and perform a thorough cleanup with magnet sweeps at the end. Our crews are trained to respect your home and neighborhood."}, ]} /> @@ -124,14 +92,14 @@ export default function AboutPage() { title="Connect With the JM Roofing Family" description="Whether you have questions about our heritage, want to discuss your roofing needs, or simply want to learn more about what makes us different, we're here to help. Reach out today." background={{ - variant: "sparkles-gradient", - }} + variant: "sparkles-gradient"}} useInvertedBackground={false} - imageSrc="http://img.b2bpic.net/free-photo/palm-trees-line_23-2148106935.jpg?_wi=2" + imageSrc="http://img.b2bpic.net/free-photo/palm-trees-line_23-2148106935.jpg" mediaPosition="right" inputPlaceholder="you@example.com" buttonText="Get In Touch" termsText="We respect your privacy. We'll only use your information to provide roofing services or respond to your inquiry." + mediaAnimation="none" /> @@ -142,19 +110,13 @@ export default function AboutPage() { socialLinks={[ { icon: Facebook, - href: "https://facebook.com/jmroofing", - ariaLabel: "Facebook", - }, + href: "https://facebook.com/jmroofing", ariaLabel: "Facebook"}, { icon: Phone, - href: "tel:+13232459154", - ariaLabel: "Call us", - }, + href: "tel:+13232459154", ariaLabel: "Call us"}, { icon: Mail, - href: "mailto:info@jmroofing.com", - ariaLabel: "Email us", - }, + href: "mailto:info@jmroofing.com", ariaLabel: "Email us"}, ]} /> From 863587edd490166493fed6f29ceb861674a6e7ae Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 03:04:05 +0000 Subject: [PATCH 2/6] Update src/app/contact/page.tsx --- src/app/contact/page.tsx | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index 733f9c6..53ae0c9 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -48,9 +48,7 @@ export default function ContactPage() { @@ -61,15 +59,15 @@ export default function ContactPage() { title="Let's Get You a Roof You'll Be Proud Of" description="Fill out the form or call us directly. We respond fast, ask the right questions, and provide honest recommendations without pressure or hidden fees." background={{ - variant: "sparkles-gradient", - }} + variant: "sparkles-gradient"}} useInvertedBackground={false} - imageSrc="http://img.b2bpic.net/free-photo/palm-trees-line_23-2148106935.jpg?_wi=5" + imageSrc="http://img.b2bpic.net/free-photo/palm-trees-line_23-2148106935.jpg" mediaPosition="right" inputPlaceholder="you@example.com" buttonText="Schedule My Free Estimate" termsText="We respect your privacy. We'll only use your information to provide a roofing estimate." onSubmit={handleContactSubmit} + mediaAnimation="none" /> @@ -80,19 +78,13 @@ export default function ContactPage() { socialLinks={[ { icon: Facebook, - href: "https://facebook.com/jmroofing", - ariaLabel: "Facebook", - }, + href: "https://facebook.com/jmroofing", ariaLabel: "Facebook"}, { icon: Phone, - href: "tel:+13232459154", - ariaLabel: "Call us", - }, + href: "tel:+13232459154", ariaLabel: "Call us"}, { icon: Mail, - href: "mailto:info@jmroofing.com", - ariaLabel: "Email us", - }, + href: "mailto:info@jmroofing.com", ariaLabel: "Email us"}, ]} /> From a3188d2f495c42542a26e5bf0f9836b58bae1c5d Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 03:04:05 +0000 Subject: [PATCH 3/6] Update src/app/financing/page.tsx --- src/app/financing/page.tsx | 103 +++++++++---------------------------- 1 file changed, 25 insertions(+), 78 deletions(-) diff --git a/src/app/financing/page.tsx b/src/app/financing/page.tsx index a2ec70d..b0863c1 100644 --- a/src/app/financing/page.tsx +++ b/src/app/financing/page.tsx @@ -35,9 +35,7 @@ export default function FinancingPage() { @@ -48,45 +46,21 @@ export default function FinancingPage() { description="We work with your budget and insurance company to make premium roofing affordable. Multiple payment options available." features={[ { - id: "1", - title: "Insurance Claim Specialists", - tags: [ - "Expert Documentation", - "Fast Approval", - ], - imageSrc: "http://img.b2bpic.net/free-photo/woman-looking-man-working-with-papers_23-2147657294.jpg?_wi=3", - imageAlt: "insurance claim roof replacement fast professional service", - }, + id: "1", title: "Insurance Claim Specialists", tags: [ + "Expert Documentation", "Fast Approval"], + imageSrc: "http://img.b2bpic.net/free-photo/woman-looking-man-working-with-papers_23-2147657294.jpg", imageAlt: "insurance claim roof replacement fast professional service"}, { - id: "2", - title: "Financing Plans Available", - tags: [ - "No Money Down", - "Flexible Terms", - ], - imageSrc: "http://img.b2bpic.net/free-photo/cropped-team-discussing-business-data-with-highlighters_1098-18929.jpg?_wi=4", - imageAlt: "transparent itemized roofing estimate clear pricing breakdown", - }, + id: "2", title: "Financing Plans Available", tags: [ + "No Money Down", "Flexible Terms"], + imageSrc: "http://img.b2bpic.net/free-photo/cropped-team-discussing-business-data-with-highlighters_1098-18929.jpg", imageAlt: "transparent itemized roofing estimate clear pricing breakdown"}, { - id: "3", - title: "Direct Insurance Billing", - tags: [ - "Hassle-Free", - "We Handle It", - ], - imageSrc: "http://img.b2bpic.net/free-photo/serious-male-boss-talking-female-manager-her-workplace-while-she-working-computer-business-communication-concept_74855-11988.jpg?_wi=3", - imageAlt: "clean organized roofing job site daily cleanup magnet sweep", - }, + id: "3", title: "Direct Insurance Billing", tags: [ + "Hassle-Free", "We Handle It"], + imageSrc: "http://img.b2bpic.net/free-photo/serious-male-boss-talking-female-manager-her-workplace-while-she-working-computer-business-communication-concept_74855-11988.jpg", imageAlt: "clean organized roofing job site daily cleanup magnet sweep"}, { - id: "4", - title: "Fair, Transparent Pricing", - tags: [ - "No Hidden Fees", - "Full Breakdown", - ], - imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-from-home_23-2150232423.jpg?_wi=4", - imageAlt: "family business roofing father son direct service personal", - }, + id: "4", title: "Fair, Transparent Pricing", tags: [ + "No Hidden Fees", "Full Breakdown"], + imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-from-home_23-2150232423.jpg", imageAlt: "family business roofing father son direct service personal"}, ]} textboxLayout="default" useInvertedBackground={false} @@ -98,42 +72,21 @@ export default function FinancingPage() { @@ -169,19 +122,13 @@ export default function FinancingPage() { socialLinks={[ { icon: Facebook, - href: "https://facebook.com/jmroofing", - ariaLabel: "Facebook", - }, + href: "https://facebook.com/jmroofing", ariaLabel: "Facebook"}, { icon: Phone, - href: "tel:+13232459154", - ariaLabel: "Call us", - }, + href: "tel:+13232459154", ariaLabel: "Call us"}, { icon: Mail, - href: "mailto:info@jmroofing.com", - ariaLabel: "Email us", - }, + href: "mailto:info@jmroofing.com", ariaLabel: "Email us"}, ]} /> From e4aaeade05b781e638a1ce3b46de2fe11f26875b Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 03:04:06 +0000 Subject: [PATCH 4/6] Update src/app/page.tsx --- src/app/page.tsx | 229 ++++++++++------------------------------------- 1 file changed, 49 insertions(+), 180 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index c762837..2ae55b8 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -40,9 +40,7 @@ export default function HomePage() { brandName="JM Roofing" navItems={navItems} button={{ - text: "Get Free Quote", - href: "/contact", - }} + text: "Get Free Quote", href: "/contact"}} /> @@ -52,40 +50,26 @@ export default function HomePage() { description="JM Roofing 3rd Generation delivers premium roofs at fair prices, with three generations of expertise serving Los Angeles homeowners. Fast, honest, insurance-friendly roofing — completed in as little as 2 days." tag="3rd Generation Family-Owned" background={{ - variant: "radial-gradient", - }} + variant: "radial-gradient"}} buttons={[ { - text: "Get My Free Roof Quote", - href: "/contact", - }, + text: "Get My Free Roof Quote", href: "/contact"}, { - text: "Call Now: (323) 245-9154", - href: "tel:+13232459154", - }, + text: "Call Now: (323) 245-9154", href: "tel:+13232459154"}, ]} mediaItems={[ { - imageSrc: "http://img.b2bpic.net/free-photo/boston-sunset_649448-730.jpg", - imageAlt: "Beautiful finished roof at golden hour", - }, + imageSrc: "http://img.b2bpic.net/free-photo/boston-sunset_649448-730.jpg", imageAlt: "Beautiful finished roof at golden hour"}, { - imageSrc: "http://img.b2bpic.net/free-photo/photo-wall-texture-pattern_58702-15047.jpg", - imageAlt: "Close-up of premium shingles installation", - }, + imageSrc: "http://img.b2bpic.net/free-photo/photo-wall-texture-pattern_58702-15047.jpg", imageAlt: "Close-up of premium shingles installation"}, { - imageSrc: "http://img.b2bpic.net/free-photo/family-moving-new-home_23-2149162247.jpg", - imageAlt: "Father and son roofing team on job site", - }, + imageSrc: "http://img.b2bpic.net/free-photo/family-moving-new-home_23-2149162247.jpg", imageAlt: "Father and son roofing team on job site"}, { - imageSrc: "http://img.b2bpic.net/free-photo/various-carpentry-tools-wooden-table_23-2148180586.jpg", - imageAlt: "Clean, professional job site with tools organized", - }, + imageSrc: "http://img.b2bpic.net/free-photo/various-carpentry-tools-wooden-table_23-2148180586.jpg", imageAlt: "Clean, professional job site with tools organized"}, { - imageSrc: "http://img.b2bpic.net/free-photo/thai-style-gold-decoration-concept_53876-23418.jpg", - imageAlt: "Before and after roof replacement comparison", - }, + imageSrc: "http://img.b2bpic.net/free-photo/thai-style-gold-decoration-concept_53876-23418.jpg", imageAlt: "Before and after roof replacement comparison"}, ]} + mediaAnimation="none" /> @@ -96,13 +80,7 @@ export default function HomePage() { textboxLayout="default" useInvertedBackground={false} names={[ - "HomeAdvisor", - "Thumbtack", - "Yelp", - "Google Reviews", - "Better Business Bureau", - "California Roofing Association", - ]} + "HomeAdvisor", "Thumbtack", "Yelp", "Google Reviews", "Better Business Bureau", "California Roofing Association"]} speed={40} showCard={true} /> @@ -114,33 +92,17 @@ export default function HomePage() { description="Three decades of family expertise, fair pricing, and unwavering commitment to your home's protection." features={[ { - id: "1", - title: "Third-Generation Craftsmanship", - tags: ["Family Legacy", "30+ Years"], - imageSrc: "http://img.b2bpic.net/free-photo/making-starling-house_1098-14195.jpg?_wi=1", - imageAlt: "Multi-generational roofing family expertise", - }, + id: "1", title: "Third-Generation Craftsmanship", tags: ["Family Legacy", "30+ Years"], + imageSrc: "http://img.b2bpic.net/free-photo/making-starling-house_1098-14195.jpg", imageAlt: "Multi-generational roofing family expertise"}, { - id: "2", - title: "Fair, Honest Pricing", - tags: ["No Hidden Fees", "Transparent"], - imageSrc: "http://img.b2bpic.net/free-photo/cropped-team-discussing-business-data-with-highlighters_1098-18929.jpg?_wi=1", - imageAlt: "Clear itemized roofing estimates", - }, + id: "2", title: "Fair, Honest Pricing", tags: ["No Hidden Fees", "Transparent"], + imageSrc: "http://img.b2bpic.net/free-photo/cropped-team-discussing-business-data-with-highlighters_1098-18929.jpg", imageAlt: "Clear itemized roofing estimates"}, { - id: "3", - title: "Fast, Clean & Respectful", - tags: ["1–3 Day Turnaround", "Clean Job Sites"], - imageSrc: "http://img.b2bpic.net/free-photo/serious-male-boss-talking-female-manager-her-workplace-while-she-working-computer-business-communication-concept_74855-11988.jpg?_wi=1", - imageAlt: "Organized, professional roofing job site", - }, + id: "3", title: "Fast, Clean & Respectful", tags: ["1–3 Day Turnaround", "Clean Job Sites"], + imageSrc: "http://img.b2bpic.net/free-photo/serious-male-boss-talking-female-manager-her-workplace-while-she-working-computer-business-communication-concept_74855-11988.jpg", imageAlt: "Organized, professional roofing job site"}, { - id: "4", - title: "Father & Son, Not a Franchise", - tags: ["Personal Service", "Direct Contact"], - imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-from-home_23-2150232423.jpg?_wi=1", - imageAlt: "Family-owned roofing business directly serving customers", - }, + id: "4", title: "Father & Son, Not a Franchise", tags: ["Personal Service", "Direct Contact"], + imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-from-home_23-2150232423.jpg", imageAlt: "Family-owned roofing business directly serving customers"}, ]} textboxLayout="default" useInvertedBackground={false} @@ -158,59 +120,23 @@ export default function HomePage() { gridVariant="uniform-all-items-equal" testimonials={[ { - id: "1", - name: "Sarah Martinez", - role: "Homeowner", - company: "Los Angeles", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-attractive-woman-elegant-hotel-cafeteria_657883-401.jpg?_wi=1", - imageAlt: "happy customer homeowner portrait", - }, + id: "1", name: "Sarah Martinez", role: "Homeowner", company: "Los Angeles", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-attractive-woman-elegant-hotel-cafeteria_657883-401.jpg", imageAlt: "happy customer homeowner portrait"}, { - id: "2", - name: "James Chen", - role: "Property Manager", - company: "Residential Portfolio", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-successful-businesswoman-suit-cross-arms-chest-smile-look-confident-stan_1258-118782.jpg?_wi=1", - imageAlt: "property manager professional portrait", - }, + id: "2", name: "James Chen", role: "Property Manager", company: "Residential Portfolio", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-successful-businesswoman-suit-cross-arms-chest-smile-look-confident-stan_1258-118782.jpg", imageAlt: "property manager professional portrait"}, { - id: "3", - name: "Maria Rodriguez", - role: "Repeat Customer", - company: "25+ Year Client", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/happy-businesswoman-smiling-looking-camera-successful-confident-grey-haired-manager-sitting-office-room-workplace-business-management-concept_74855-7343.jpg?_wi=1", - imageAlt: "long-term customer satisfied repeat business", - }, + id: "3", name: "Maria Rodriguez", role: "Repeat Customer", company: "25+ Year Client", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/happy-businesswoman-smiling-looking-camera-successful-confident-grey-haired-manager-sitting-office-room-workplace-business-management-concept_74855-7343.jpg", imageAlt: "long-term customer satisfied repeat business"}, { - id: "4", - name: "David Thompson", - role: "Business Owner", - company: "Commercial Property", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1631.jpg?_wi=1", - imageAlt: "business owner professional portrait", - }, + id: "4", name: "David Thompson", role: "Business Owner", company: "Commercial Property", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1631.jpg", imageAlt: "business owner professional portrait"}, { - id: "5", - name: "Lisa Johnson", - role: "Insurance Renewal", - company: "Recent Customer", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-customer-car-dealership_23-2149117173.jpg?_wi=1", - imageAlt: "homeowner insurance renewal satisfied customer", - }, + id: "5", name: "Lisa Johnson", role: "Insurance Renewal", company: "Recent Customer", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-customer-car-dealership_23-2149117173.jpg", imageAlt: "homeowner insurance renewal satisfied customer"}, { - id: "6", - name: "Robert Williams", - role: "Family Home", - company: "South Gate", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-as-real-estate-agent_23-2151064995.jpg?_wi=1", - imageAlt: "South Gate Los Angeles homeowner customer", - }, + id: "6", name: "Robert Williams", role: "Family Home", company: "South Gate", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-as-real-estate-agent_23-2151064995.jpg", imageAlt: "South Gate Los Angeles homeowner customer"}, ]} /> @@ -226,47 +152,17 @@ export default function HomePage() { carouselMode="buttons" products={[ { - id: "1", - name: "Complete Roof Replacement", - price: "Premium Solution", - imageSrc: "http://img.b2bpic.net/free-photo/diverse-team-working-storehouse-inventory_482257-108883.jpg?_wi=1", - imageAlt: "complete roof replacement premium installation", - }, + id: "1", name: "Complete Roof Replacement", price: "Premium Solution", imageSrc: "http://img.b2bpic.net/free-photo/diverse-team-working-storehouse-inventory_482257-108883.jpg", imageAlt: "complete roof replacement premium installation"}, { - id: "2", - name: "New Roof Installation", - price: "New Construction", - imageSrc: "http://img.b2bpic.net/free-photo/front-view-construction-roof_23-2148748814.jpg?_wi=1", - imageAlt: "new roof installation new construction residential", - }, + id: "2", name: "New Roof Installation", price: "New Construction", imageSrc: "http://img.b2bpic.net/free-photo/front-view-construction-roof_23-2148748814.jpg", imageAlt: "new roof installation new construction residential"}, { - id: "3", - name: "Roof Repair & Maintenance", - price: "Ongoing Care", - imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-using-hammer-job-site_23-2150530693.jpg?_wi=1", - imageAlt: "roof repair maintenance ongoing care professional", - }, + id: "3", name: "Roof Repair & Maintenance", price: "Ongoing Care", imageSrc: "http://img.b2bpic.net/free-photo/construction-worker-using-hammer-job-site_23-2150530693.jpg", imageAlt: "roof repair maintenance ongoing care professional"}, { - id: "4", - name: "Insurance-Required Replacement", - price: "Fast Service", - imageSrc: "http://img.b2bpic.net/free-photo/woman-looking-man-working-with-papers_23-2147657294.jpg?_wi=1", - imageAlt: "insurance claim roof replacement fast professional", - }, + id: "4", name: "Insurance-Required Replacement", price: "Fast Service", imageSrc: "http://img.b2bpic.net/free-photo/woman-looking-man-working-with-papers_23-2147657294.jpg", imageAlt: "insurance claim roof replacement fast professional"}, { - id: "5", - name: "Cool Roofs & Energy-Efficient Systems", - price: "Modern Efficiency", - imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-salt-salt-farm-ready-harvest-thailand_335224-1050.jpg?_wi=1", - imageAlt: "energy efficient cool roof installation modern", - }, + id: "5", name: "Cool Roofs & Energy-Efficient Systems", price: "Modern Efficiency", imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-salt-salt-farm-ready-harvest-thailand_335224-1050.jpg", imageAlt: "energy efficient cool roof installation modern"}, { - id: "6", - name: "Flat Roofs & Low-Slope Solutions", - price: "Specialized Service", - imageSrc: "http://img.b2bpic.net/free-photo/mechanic-holding-toolbox-walking-smart-factory-preparing-maintenance_482257-126132.jpg?_wi=1", - imageAlt: "flat roof installation low-slope commercial", - }, + id: "6", name: "Flat Roofs & Low-Slope Solutions", price: "Specialized Service", imageSrc: "http://img.b2bpic.net/free-photo/mechanic-holding-toolbox-walking-smart-factory-preparing-maintenance_482257-126132.jpg", imageAlt: "flat roof installation low-slope commercial"}, ]} /> @@ -280,42 +176,21 @@ export default function HomePage() { animationType="slide-up" metrics={[ { - id: "1", - title: "Request Your Free Quote", - subtitle: "Call, text, or submit the form — we respond fast and often visit same or next day", - category: "Step 1", - value: "Fast Response", - buttons: [ + id: "1", title: "Request Your Free Quote", subtitle: "Call, text, or submit the form — we respond fast and often visit same or next day", category: "Step 1", value: "Fast Response", buttons: [ { - text: "Start Now", - href: "/contact", - }, + text: "Start Now", href: "/contact"}, ], }, { - id: "2", - title: "Transparent, Written Proposal", - subtitle: "We walk your roof, show you photos, and provide a clear itemized proposal with options", - category: "Step 2", - value: "Clear Options", - buttons: [ + id: "2", title: "Transparent, Written Proposal", subtitle: "We walk your roof, show you photos, and provide a clear itemized proposal with options", category: "Step 2", value: "Clear Options", buttons: [ { - text: "Learn More", - href: "#services", - }, + text: "Learn More", href: "#services"}, ], }, { - id: "3", - title: "Install, Inspect & Clean", - subtitle: "Our crew arrives on time, protects your home, completes in days, and leaves spotless", - category: "Step 3", - value: "1–3 Days", - buttons: [ + id: "3", title: "Install, Inspect & Clean", subtitle: "Our crew arrives on time, protects your home, completes in days, and leaves spotless", category: "Step 3", value: "1–3 Days", buttons: [ { - text: "Contact Us", - href: "/contact", - }, + text: "Contact Us", href: "/contact"}, ], }, ]} @@ -334,14 +209,14 @@ export default function HomePage() { title="Let's Get You a Roof You'll Be Proud Of" description="Fill out the form or call us directly. We respond fast, ask the right questions, and provide honest recommendations without pressure or hidden fees." background={{ - variant: "sparkles-gradient", - }} + variant: "sparkles-gradient"}} useInvertedBackground={false} - imageSrc="http://img.b2bpic.net/free-photo/palm-trees-line_23-2148106935.jpg?_wi=1" + imageSrc="http://img.b2bpic.net/free-photo/palm-trees-line_23-2148106935.jpg" mediaPosition="right" inputPlaceholder="you@example.com" buttonText="Schedule My Free Estimate" termsText="We respect your privacy. We'll only use your information to provide a roofing estimate." + mediaAnimation="none" /> @@ -352,19 +227,13 @@ export default function HomePage() { socialLinks={[ { icon: Facebook, - href: "https://facebook.com/jmroofing", - ariaLabel: "Facebook", - }, + href: "https://facebook.com/jmroofing", ariaLabel: "Facebook"}, { icon: Phone, - href: "tel:+13232459154", - ariaLabel: "Call us", - }, + href: "tel:+13232459154", ariaLabel: "Call us"}, { icon: Mail, - href: "mailto:info@jmroofing.com", - ariaLabel: "Email us", - }, + href: "mailto:info@jmroofing.com", ariaLabel: "Email us"}, ]} /> From 83a31bbe5a64869f34377165ebc9f7bdbb946600 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 03:04:06 +0000 Subject: [PATCH 5/6] Update src/app/reviews/page.tsx --- src/app/reviews/page.tsx | 112 +++++++++------------------------------ 1 file changed, 25 insertions(+), 87 deletions(-) diff --git a/src/app/reviews/page.tsx b/src/app/reviews/page.tsx index 5e3e123..9dcb533 100644 --- a/src/app/reviews/page.tsx +++ b/src/app/reviews/page.tsx @@ -35,9 +35,7 @@ export default function ReviewsPage() { @@ -52,59 +50,23 @@ export default function ReviewsPage() { gridVariant="uniform-all-items-equal" testimonials={[ { - id: "1", - name: "Sarah Martinez", - role: "Homeowner", - company: "Los Angeles", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-attractive-woman-elegant-hotel-cafeteria_657883-401.jpg?_wi=3", - imageAlt: "happy customer homeowner portrait professional headshot", - }, + id: "1", name: "Sarah Martinez", role: "Homeowner", company: "Los Angeles", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-attractive-woman-elegant-hotel-cafeteria_657883-401.jpg", imageAlt: "happy customer homeowner portrait professional headshot"}, { - id: "2", - name: "James Chen", - role: "Property Manager", - company: "Residential Portfolio", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-successful-businesswoman-suit-cross-arms-chest-smile-look-confident-stan_1258-118782.jpg?_wi=3", - imageAlt: "property manager professional portrait headshot confident", - }, + id: "2", name: "James Chen", role: "Property Manager", company: "Residential Portfolio", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-successful-businesswoman-suit-cross-arms-chest-smile-look-confident-stan_1258-118782.jpg", imageAlt: "property manager professional portrait headshot confident"}, { - id: "3", - name: "Maria Rodriguez", - role: "Repeat Customer", - company: "25+ Year Client", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/happy-businesswoman-smiling-looking-camera-successful-confident-grey-haired-manager-sitting-office-room-workplace-business-management-concept_74855-7343.jpg?_wi=3", - imageAlt: "long-term customer homeowner portrait satisfied repeat business", - }, + id: "3", name: "Maria Rodriguez", role: "Repeat Customer", company: "25+ Year Client", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/happy-businesswoman-smiling-looking-camera-successful-confident-grey-haired-manager-sitting-office-room-workplace-business-management-concept_74855-7343.jpg", imageAlt: "long-term customer homeowner portrait satisfied repeat business"}, { - id: "4", - name: "David Thompson", - role: "Business Owner", - company: "Commercial Property", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1631.jpg?_wi=3", - imageAlt: "business owner professional portrait confident headshot", - }, + id: "4", name: "David Thompson", role: "Business Owner", company: "Commercial Property", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1631.jpg", imageAlt: "business owner professional portrait confident headshot"}, { - id: "5", - name: "Lisa Johnson", - role: "Insurance Renewal", - company: "Recent Customer", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-customer-car-dealership_23-2149117173.jpg?_wi=3", - imageAlt: "homeowner insurance renewal satisfied customer portrait", - }, + id: "5", name: "Lisa Johnson", role: "Insurance Renewal", company: "Recent Customer", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-customer-car-dealership_23-2149117173.jpg", imageAlt: "homeowner insurance renewal satisfied customer portrait"}, { - id: "6", - name: "Robert Williams", - role: "Family Home", - company: "South Gate", - rating: 5, - imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-as-real-estate-agent_23-2151064995.jpg?_wi=3", - imageAlt: "South Gate Los Angeles homeowner customer portrait satisfied", - }, + id: "6", name: "Robert Williams", role: "Family Home", company: "South Gate", rating: 5, + imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-as-real-estate-agent_23-2151064995.jpg", imageAlt: "South Gate Los Angeles homeowner customer portrait satisfied"}, ]} /> @@ -113,35 +75,17 @@ export default function ReviewsPage() { @@ -176,19 +120,13 @@ export default function ReviewsPage() { socialLinks={[ { icon: Facebook, - href: "https://facebook.com/jmroofing", - ariaLabel: "Facebook", - }, + href: "https://facebook.com/jmroofing", ariaLabel: "Facebook"}, { icon: Phone, - href: "tel:+13232459154", - ariaLabel: "Call us", - }, + href: "tel:+13232459154", ariaLabel: "Call us"}, { icon: Mail, - href: "mailto:info@jmroofing.com", - ariaLabel: "Email us", - }, + href: "mailto:info@jmroofing.com", ariaLabel: "Email us"}, ]} /> From 2db29bfbdadfe1809ac7f5f721c358e7c36cce40 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 03:04:06 +0000 Subject: [PATCH 6/6] Update src/components/shared/SvgTextLogo/SvgTextLogo.tsx --- .../shared/SvgTextLogo/SvgTextLogo.tsx | 65 ++++++++----------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..fc8fc0e 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,51 +1,40 @@ -"use client"; +import React, { SVGProps } from "react"; -import { memo } from "react"; -import useSvgTextLogo from "./useSvgTextLogo"; -import { cls } from "@/lib/utils"; - -interface SvgTextLogoProps { - logoText: string; - adjustHeightFactor?: number; - verticalAlign?: "top" | "center"; +interface SvgTextLogoProps extends SVGProps { + text?: string; className?: string; } -const SvgTextLogo = memo(function SvgTextLogo({ - logoText, - adjustHeightFactor, - verticalAlign = "top", - className = "", -}) { - const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor); - +const SvgTextLogo: React.FC = ({ + text = "Webild", className = "", ...props +}) => { return ( + + + - {logoText} + {text} ); -}); +}; -SvgTextLogo.displayName = "SvgTextLogo"; - -export default SvgTextLogo; +export default SvgTextLogo; \ No newline at end of file