Merge version_1 into main #2

Merged
bender merged 3 commits from version_1 into main 2026-03-12 05:40:06 +00:00
3 changed files with 103 additions and 176 deletions

View File

@@ -12,8 +12,7 @@ import { CheckCircle, Award, Zap, Users, TrendingUp, Phone } from "lucide-react"
export default function AboutPage() {
const footerColumns = [
{
title: "Services",
items: [
title: "Services", items: [
{ label: "Brake Repair", href: "/services" },
{ label: "Engine Diagnostics", href: "/services" },
{ label: "Oil Changes", href: "/services" },
@@ -21,8 +20,7 @@ export default function AboutPage() {
],
},
{
title: "Company",
items: [
title: "Company", items: [
{ label: "About Us", href: "/about" },
{ label: "Our Team", href: "/about" },
{ label: "Testimonials", href: "/#testimonials" },
@@ -30,16 +28,14 @@ export default function AboutPage() {
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Warranty Info", href: "#" },
],
},
{
title: "Connect",
items: [
title: "Connect", items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Instagram", href: "https://instagram.com" },
{ label: "Google Reviews", href: "https://google.com" },
@@ -81,27 +77,22 @@ export default function AboutPage() {
tag="Our Story"
textboxLayout="default"
useInvertedBackground={false}
mediaAnimation="none"
bulletPoints={[
{
title: "Honest Diagnostics",
description:
"We provide transparent assessments without upselling unnecessary services. Your trust is our foundation.",
icon: CheckCircle,
title: "Honest Diagnostics", description:
"We provide transparent assessments without upselling unnecessary services. Your trust is our foundation.", icon: CheckCircle,
},
{
title: "Experienced Mechanics",
description:
"Our certified technicians bring years of expertise to every repair, ensuring quality workmanship.",
icon: Award,
title: "Experienced Mechanics", description:
"Our certified technicians bring years of expertise to every repair, ensuring quality workmanship.", icon: Award,
},
{
title: "Fast Turnaround",
description:
"We respect your time. Most repairs are completed the same day or next business day.",
icon: Zap,
title: "Fast Turnaround", description:
"We respect your time. Most repairs are completed the same day or next business day.", icon: Zap,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170017.jpg?_wi=3"
imageSrc="http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170017.jpg"
imageAlt="Joe Complete Auto Repair garage interior"
imagePosition="right"
buttons={[{ text: "View Services", href: "/services" }]}
@@ -119,25 +110,13 @@ export default function AboutPage() {
gridVariant="uniform-all-items-equal"
metrics={[
{
id: "1",
value: "500+",
title: "Happy Customers",
description: "Trusted by local vehicle owners for quality repairs",
icon: Users,
id: "1", value: "500+", title: "Happy Customers", description: "Trusted by local vehicle owners for quality repairs", icon: Users,
},
{
id: "2",
value: "15+",
title: "Years Experience",
description: "Decades of combined automotive expertise",
icon: Award,
id: "2", value: "15+", title: "Years Experience", description: "Decades of combined automotive expertise", icon: Award,
},
{
id: "3",
value: "98%",
title: "Satisfaction Rate",
description: "Commitment to excellence and customer care",
icon: TrendingUp,
id: "3", value: "98%", title: "Satisfaction Rate", description: "Commitment to excellence and customer care", icon: TrendingUp,
},
]}
/>

View File

@@ -23,8 +23,7 @@ export default function HomePage() {
const footerColumns = [
{
title: "Services",
items: [
title: "Services", items: [
{ label: "Brake Repair", href: "/services" },
{ label: "Engine Diagnostics", href: "/services" },
{ label: "Oil Changes", href: "/services" },
@@ -32,8 +31,7 @@ export default function HomePage() {
],
},
{
title: "Company",
items: [
title: "Company", items: [
{ label: "About Us", href: "/about" },
{ label: "Our Team", href: "/about" },
{ label: "Testimonials", href: "#testimonials" },
@@ -41,16 +39,14 @@ export default function HomePage() {
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Warranty Info", href: "#" },
],
},
{
title: "Connect",
items: [
title: "Connect", items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Instagram", href: "https://instagram.com" },
{ label: "Google Reviews", href: "https://google.com" },
@@ -96,9 +92,7 @@ export default function HomePage() {
slides={[
{
imageSrc:
"http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170017.jpg?_wi=1",
imageAlt: "Modern auto repair garage with diagnostic equipment",
},
"http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170017.jpg", imageAlt: "Modern auto repair garage with diagnostic equipment"},
]}
autoplayDelay={5000}
showDimOverlay={true}
@@ -112,27 +106,22 @@ export default function HomePage() {
tag="Our Story"
textboxLayout="default"
useInvertedBackground={false}
mediaAnimation="none"
bulletPoints={[
{
title: "Honest Diagnostics",
description:
"We provide transparent assessments without upselling unnecessary services. Your trust is our foundation.",
icon: CheckCircle,
title: "Honest Diagnostics", description:
"We provide transparent assessments without upselling unnecessary services. Your trust is our foundation.", icon: CheckCircle,
},
{
title: "Experienced Mechanics",
description:
"Our certified technicians bring years of expertise to every repair, ensuring quality workmanship.",
icon: Award,
title: "Experienced Mechanics", description:
"Our certified technicians bring years of expertise to every repair, ensuring quality workmanship.", icon: Award,
},
{
title: "Fast Turnaround",
description:
"We respect your time. Most repairs are completed the same day or next business day.",
icon: Zap,
title: "Fast Turnaround", description:
"We respect your time. Most repairs are completed the same day or next business day.", icon: Zap,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170017.jpg?_wi=2"
imageSrc="http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170017.jpg"
imageAlt="Joe Complete Auto Repair garage interior"
imagePosition="right"
buttons={[{ text: "View Services", href: "/services" }]}
@@ -150,58 +139,34 @@ export default function HomePage() {
features={[
{
id: 1,
title: "Brake Repair",
description:
"Professional brake pad replacement, rotor resurfacing, and complete brake system inspections to ensure your safety on every drive.",
imageSrc:
"http://img.b2bpic.net/free-photo/low-angle-woman-working-service_23-2150171272.jpg?_wi=1",
imageAlt: "Brake repair service",
},
title: "Brake Repair", description:
"Professional brake pad replacement, rotor resurfacing, and complete brake system inspections to ensure your safety on every drive.", imageSrc:
"http://img.b2bpic.net/free-photo/low-angle-woman-working-service_23-2150171272.jpg", imageAlt: "Brake repair service"},
{
id: 2,
title: "Engine Diagnostics",
description:
"Advanced computer diagnostic scanning to identify engine issues quickly and accurately, saving you time and money.",
imageSrc:
"http://img.b2bpic.net/free-photo/muscular-car-service-worker-repairing-vehicle_146671-19610.jpg?_wi=1",
imageAlt: "Engine diagnostic equipment",
},
title: "Engine Diagnostics", description:
"Advanced computer diagnostic scanning to identify engine issues quickly and accurately, saving you time and money.", imageSrc:
"http://img.b2bpic.net/free-photo/muscular-car-service-worker-repairing-vehicle_146671-19610.jpg", imageAlt: "Engine diagnostic equipment"},
{
id: 3,
title: "Oil Changes",
description:
"Regular oil changes with quality filters keep your engine healthy. We use OEM and premium synthetic options.",
imageSrc:
"http://img.b2bpic.net/free-photo/mechanic-using-laptop_1170-1148.jpg?_wi=1",
imageAlt: "Oil change service",
},
title: "Oil Changes", description:
"Regular oil changes with quality filters keep your engine healthy. We use OEM and premium synthetic options.", imageSrc:
"http://img.b2bpic.net/free-photo/mechanic-using-laptop_1170-1148.jpg", imageAlt: "Oil change service"},
{
id: 4,
title: "Tire Services",
description:
"Tire rotation, balancing, alignment, and replacement. We stock quality tires for all vehicle types.",
imageSrc:
"http://img.b2bpic.net/free-photo/closeup-photoshoot-process-tyre-balancing-dark-auto-service_613910-17076.jpg?_wi=1",
imageAlt: "Tire services and maintenance",
},
title: "Tire Services", description:
"Tire rotation, balancing, alignment, and replacement. We stock quality tires for all vehicle types.", imageSrc:
"http://img.b2bpic.net/free-photo/closeup-photoshoot-process-tyre-balancing-dark-auto-service_613910-17076.jpg", imageAlt: "Tire services and maintenance"},
{
id: 5,
title: "Suspension Repair",
description:
"Shock absorber replacement, strut services, and suspension alignment for a smooth, safe ride.",
imageSrc:
"http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170027.jpg?_wi=1",
imageAlt: "Suspension system repair",
},
title: "Suspension Repair", description:
"Shock absorber replacement, strut services, and suspension alignment for a smooth, safe ride.", imageSrc:
"http://img.b2bpic.net/free-photo/male-female-mechanics-working-shop-car_23-2150170027.jpg", imageAlt: "Suspension system repair"},
{
id: 6,
title: "General Maintenance",
description:
"Preventive maintenance including fluid checks, belt inspections, and scheduled services to extend your vehicle's lifespan.",
imageSrc:
"http://img.b2bpic.net/free-photo/mechanic-repairing-engine-part_1170-1695.jpg?_wi=1",
imageAlt: "General auto maintenance",
},
title: "General Maintenance", description:
"Preventive maintenance including fluid checks, belt inspections, and scheduled services to extend your vehicle's lifespan.", imageSrc:
"http://img.b2bpic.net/free-photo/mechanic-repairing-engine-part_1170-1695.jpg", imageAlt: "General auto maintenance"},
]}
/>
</div>
@@ -217,25 +182,13 @@ export default function HomePage() {
gridVariant="uniform-all-items-equal"
metrics={[
{
id: "1",
value: "500+",
title: "Happy Customers",
description: "Trusted by local vehicle owners for quality repairs",
icon: Users,
id: "1", value: "500+", title: "Happy Customers", description: "Trusted by local vehicle owners for quality repairs", icon: Users,
},
{
id: "2",
value: "15+",
title: "Years Experience",
description: "Decades of combined automotive expertise",
icon: Award,
id: "2", value: "15+", title: "Years Experience", description: "Decades of combined automotive expertise", icon: Award,
},
{
id: "3",
value: "98%",
title: "Satisfaction Rate",
description: "Commitment to excellence and customer care",
icon: TrendingUp,
id: "3", value: "98%", title: "Satisfaction Rate", description: "Commitment to excellence and customer care", icon: TrendingUp,
},
]}
/>
@@ -251,35 +204,17 @@ export default function HomePage() {
animationType="slide-up"
testimonials={[
{
id: "1",
name: "Maria Gonzalez",
role: "Local Business Owner",
company: "El Segundo",
rating: 5,
id: "1", name: "Maria Gonzalez", role: "Local Business Owner", company: "El Segundo", rating: 5,
imageSrc:
"http://img.b2bpic.net/free-photo/portrait-waitress-standing-with-disposable-coffee-cup_107420-12313.jpg?_wi=1",
imageAlt: "happy customer portrait professional headshot",
},
"http://img.b2bpic.net/free-photo/portrait-waitress-standing-with-disposable-coffee-cup_107420-12313.jpg", imageAlt: "happy customer portrait professional headshot"},
{
id: "2",
name: "David Chen",
role: "Fleet Manager",
company: "Transportation Services",
rating: 5,
id: "2", name: "David Chen", role: "Fleet Manager", company: "Transportation Services", rating: 5,
imageSrc:
"http://img.b2bpic.net/free-photo/smiling-business-woman-looking-up-copy-space_1262-3088.jpg?_wi=1",
imageAlt: "professional woman headshot portrait confident",
},
"http://img.b2bpic.net/free-photo/smiling-business-woman-looking-up-copy-space_1262-3088.jpg", imageAlt: "professional woman headshot portrait confident"},
{
id: "3",
name: "Jessica Miller",
role: "Real Estate Agent",
company: "El Segundo",
rating: 5,
id: "3", name: "Jessica Miller", role: "Real Estate Agent", company: "El Segundo", rating: 5,
imageSrc:
"http://img.b2bpic.net/free-photo/cheerful-young-man-posing-isolated-grey_171337-10579.jpg?_wi=1",
imageAlt: "male professional headshot portrait",
},
"http://img.b2bpic.net/free-photo/cheerful-young-man-posing-isolated-grey_171337-10579.jpg", imageAlt: "male professional headshot portrait"},
]}
kpiItems={[
{ value: "98%", label: "Customer Satisfaction" },

View File

@@ -1,51 +1,64 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React, { useMemo } from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
textClassName?: string;
fontSize?: number;
fontWeight?: number | string;
letterSpacing?: number;
dominantBaseline?: 'auto' | 'text-bottom' | 'alphabetic' | 'ideographic' | 'middle' | 'central' | 'mathematical' | 'hanging';
textAnchor?: 'start' | 'middle' | 'end';
fill?: string;
fillOpacity?: number;
textDecoration?: string;
fontFamily?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = '',
textClassName = '',
fontSize = 48,
fontWeight = 700,
letterSpacing = 2,
dominantBaseline = 'middle',
textAnchor = 'middle',
fill = 'currentColor',
fillOpacity = 1,
textDecoration = 'none',
fontFamily = 'inherit',
}) => {
const viewBox = useMemo(() => {
const estimatedWidth = text.length * fontSize * 0.6 + letterSpacing * (text.length - 1);
return `0 0 ${Math.ceil(estimatedWidth)} ${Math.ceil(fontSize * 1.5)}`;
}, [text, fontSize, letterSpacing]);
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
className={className}
preserveAspectRatio="xMidYMid meet"
xmlns="http://www.w3.org/2000/svg"
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
fontSize={fontSize}
fontWeight={fontWeight}
letterSpacing={letterSpacing}
dominantBaseline={dominantBaseline}
textAnchor={textAnchor}
fill={fill}
fillOpacity={fillOpacity}
textDecoration={textDecoration}
fontFamily={fontFamily}
className={textClassName}
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;