Merge version_1 into main

Merge version_1 into main
This commit was merged in pull request #2.
This commit is contained in:
2026-03-12 09:13:38 +00:00
2 changed files with 42 additions and 57 deletions

View File

@@ -20,7 +20,7 @@ export default function LandingPage() {
borderRadius="rounded"
contentWidth="small"
sizing="largeSmallSizeMediumTitles"
background="grid"
background="circleGradient"
cardStyle="solid"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="radial-glow"
@@ -46,7 +46,7 @@ export default function LandingPage() {
tag="Emergency Service Available"
tagIcon={Zap}
tagAnimation="slide-up"
background={{ variant: "grid" }}
background={{ variant: "plain" }}
buttons={[
{ text: "Call Now: 019-454 2141", href: "tel:0194542141" },
{ text: "Request Service", href: "#contact" }
@@ -54,22 +54,22 @@ export default function LandingPage() {
buttonAnimation="slide-up"
carouselItems={[
{
id: "1", imageSrc: "http://img.b2bpic.net/free-photo/man-with-tools-looking-closely-lamp-hand_259150-58241.jpg?_wi=1", imageAlt: "Professional plumber at work"
id: "1", imageSrc: "http://img.b2bpic.net/free-photo/man-with-tools-looking-closely-lamp-hand_259150-58241.jpg", imageAlt: "Professional plumber at work"
},
{
id: "2", imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990696.jpg?_wi=1", imageAlt: "Pipe repair service"
id: "2", imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990696.jpg", imageAlt: "Pipe repair service"
},
{
id: "3", imageSrc: "http://img.b2bpic.net/free-photo/builder-looking-documents-construction-site_23-2148269878.jpg?_wi=1", imageAlt: "Drain cleaning service"
id: "3", imageSrc: "http://img.b2bpic.net/free-photo/builder-looking-documents-construction-site_23-2148269878.jpg", imageAlt: "Drain cleaning service"
},
{
id: "4", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-using-electrical-connection-cable_169016-52837.jpg?_wi=1", imageAlt: "Electrical repair service"
id: "4", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-using-electrical-connection-cable_169016-52837.jpg", imageAlt: "Electrical repair service"
},
{
id: "5", imageSrc: "http://img.b2bpic.net/free-psd/plumbing-lowest-prices-banner-template_23-2148709809.jpg?_wi=1", imageAlt: "Water heater installation"
id: "5", imageSrc: "http://img.b2bpic.net/free-psd/plumbing-lowest-prices-banner-template_23-2148709809.jpg", imageAlt: "Water heater installation"
},
{
id: "6", imageSrc: "http://img.b2bpic.net/free-photo/man-with-tools-looking-closely-lamp-hand_259150-58241.jpg?_wi=2", imageAlt: "Emergency plumbing response"
id: "6", imageSrc: "http://img.b2bpic.net/free-photo/man-with-tools-looking-closely-lamp-hand_259150-58241.jpg", imageAlt: "Emergency plumbing response"
}
]}
autoPlay={true}
@@ -89,19 +89,19 @@ export default function LandingPage() {
features={[
{
id: 1,
title: "Emergency Plumbing", description: "24/7 emergency response for burst pipes, leaks, and other urgent plumbing issues", imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990696.jpg?_wi=2", imageAlt: "Emergency plumbing repair"
title: "Emergency Plumbing", description: "24/7 emergency response for burst pipes, leaks, and other urgent plumbing issues", imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-fix-problems-client-s-house_23-2150990696.jpg", imageAlt: "Emergency plumbing repair"
},
{
id: 2,
title: "Drain Cleaning", description: "Fast and effective drain unclogging and cleaning services for all types of drains", imageSrc: "http://img.b2bpic.net/free-photo/builder-looking-documents-construction-site_23-2148269878.jpg?_wi=2", imageAlt: "Professional drain cleaning"
title: "Drain Cleaning", description: "Fast and effective drain unclogging and cleaning services for all types of drains", imageSrc: "http://img.b2bpic.net/free-photo/builder-looking-documents-construction-site_23-2148269878.jpg", imageAlt: "Professional drain cleaning"
},
{
id: 3,
title: "Electrical Repair", description: "Professional electrical repair, installation, and maintenance services", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-using-electrical-connection-cable_169016-52837.jpg?_wi=2", imageAlt: "Electrical repair service"
title: "Electrical Repair", description: "Professional electrical repair, installation, and maintenance services", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-works-switchboard-using-electrical-connection-cable_169016-52837.jpg", imageAlt: "Electrical repair service"
},
{
id: 4,
title: "Water Heater Installation", description: "Expert installation and repair of water heaters for maximum efficiency", imageSrc: "http://img.b2bpic.net/free-psd/plumbing-lowest-prices-banner-template_23-2148709809.jpg?_wi=2", imageAlt: "Water heater service"
title: "Water Heater Installation", description: "Expert installation and repair of water heaters for maximum efficiency", imageSrc: "http://img.b2bpic.net/free-psd/plumbing-lowest-prices-banner-template_23-2148709809.jpg", imageAlt: "Water heater service"
}
]}
/>
@@ -181,7 +181,7 @@ export default function LandingPage() {
faqsAnimation="slide-up"
mediaAnimation="slide-up"
mediaPosition="left"
imageSrc="http://img.b2bpic.net/free-photo/man-with-tools-looking-closely-lamp-hand_259150-58241.jpg?_wi=3"
imageSrc="http://img.b2bpic.net/free-photo/man-with-tools-looking-closely-lamp-hand_259150-58241.jpg"
imageAlt="Customer support"
faqs={[
{
@@ -213,7 +213,7 @@ export default function LandingPage() {
description="Request a service or call us directly. Available 24/7 for emergencies."
tagIcon={Phone}
tagAnimation="slide-up"
background={{ variant: "grid" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Enter your phone number"
buttonText="Request Service"

View File

@@ -1,51 +1,36 @@
"use client";
import React from 'react';
import { 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<SVGSVGElement> {
text?: string;
className?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
>
<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"
}}
const SvgTextLogo = React.forwardRef<SVGSVGElement, SvgTextLogoProps>(
({ text = 'Webild', className = '', ...props }, ref) => {
return (
<svg
ref={ref}
viewBox="0 0 200 50"
className={`w-auto h-8 ${className}`}
{...props}
>
{logoText}
</text>
</svg>
);
});
<text
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline="central"
fontSize="24"
fontWeight="bold"
fill="currentColor"
>
{text}
</text>
</svg>
);
}
);
SvgTextLogo.displayName = "SvgTextLogo";
SvgTextLogo.displayName = 'SvgTextLogo';
export default SvgTextLogo;