Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 17:50:45 +00:00
2 changed files with 49 additions and 57 deletions

View File

@@ -31,9 +31,9 @@ export default function LandingPage() {
navItems={[
{ name: "Services", id: "services" },
{ name: "About", id: "about" },
{ name: "Reviews", id: "reviews" },
{ name: "Reviews", id: "testimonials" },
{ name: "Contact", id: "contact" },
{ name: "Book Now", id: "booking" }
{ name: "Book Now", id: "hero" }
]}
brandName="Tayab Kuwait"
bottomLeftText="Salmiya, Kuwait"
@@ -54,10 +54,10 @@ export default function LandingPage() {
imageSrc: "http://img.b2bpic.net/free-photo/trained-worker-dissasembling-air-conditioner-outer-front-grill-order-start-servicing-broken-internal-parts-knowleadgeable-engineer-comissioned-by-home-owner-maintenance-hvac-system_482257-70163.jpg", imageAlt: "Professional AC Installation"
},
{
imageSrc: "http://img.b2bpic.net/free-photo/focused-male-plant-engineer-hardhat-glasses-operating-industrial-machine-pushing-buttons-control-panel_74855-16376.jpg?_wi=1", imageAlt: "Emergency AC Repair Service"
imageSrc: "http://img.b2bpic.net/free-photo/focused-male-plant-engineer-hardhat-glasses-operating-industrial-machine-pushing-buttons-control-panel_74855-16376.jpg", imageAlt: "Emergency AC Repair Service"
},
{
imageSrc: "http://img.b2bpic.net/free-photo/repairman-doing-condenser-investigations_482257-90985.jpg?_wi=1", imageAlt: "HVAC Maintenance Service"
imageSrc: "http://img.b2bpic.net/free-photo/repairman-doing-condenser-investigations_482257-90985.jpg", imageAlt: "HVAC Maintenance Service"
}
]}
autoplayDelay={5000}
@@ -76,11 +76,11 @@ export default function LandingPage() {
{ value: "200+", title: "Satisfied Customers" },
{ value: "24/7", title: "Emergency Service Available" }
]}
imageSrc="http://img.b2bpic.net/free-photo/abstract-minimal-background-with-floor_23-2149207747.jpg?_wi=1"
imageSrc="http://img.b2bpic.net/free-photo/abstract-minimal-background-with-floor_23-2149207747.jpg"
imageAlt="Tayab HVAC Professional Team"
useInvertedBackground={true}
mediaAnimation="slide-up"
tagAnimation="entrance-slide"
tagAnimation="slide-up"
/>
</div>
@@ -89,15 +89,15 @@ export default function LandingPage() {
features={[
{
id: "repair", title: "Emergency AC Repair", tags: ["24/7 Service", "Same-Day Response"],
imageSrc: "http://img.b2bpic.net/free-photo/focused-male-plant-engineer-hardhat-glasses-operating-industrial-machine-pushing-buttons-control-panel_74855-16376.jpg?_wi=2", imageAlt: "Emergency AC Repair Service"
imageSrc: "http://img.b2bpic.net/free-photo/focused-male-plant-engineer-hardhat-glasses-operating-industrial-machine-pushing-buttons-control-panel_74855-16376.jpg", imageAlt: "Emergency AC Repair Service"
},
{
id: "maintenance", title: "Preventative Maintenance", tags: ["Monthly Contracts", "Extended Warranty"],
imageSrc: "http://img.b2bpic.net/free-photo/repairman-doing-condenser-investigations_482257-90985.jpg?_wi=2", imageAlt: "HVAC Maintenance Plans"
imageSrc: "http://img.b2bpic.net/free-photo/repairman-doing-condenser-investigations_482257-90985.jpg", imageAlt: "HVAC Maintenance Plans"
},
{
id: "installation", title: "Professional Installation", tags: ["Latest Units", "Expert Setup"],
imageSrc: "http://img.b2bpic.net/free-photo/abstract-minimal-background-with-floor_23-2149207747.jpg?_wi=2", imageAlt: "AC Installation Service"
imageSrc: "http://img.b2bpic.net/free-photo/abstract-minimal-background-with-floor_23-2149207747.jpg", imageAlt: "AC Installation Service"
}
]}
animationType="slide-up"
@@ -139,28 +139,22 @@ export default function LandingPage() {
<TestimonialCardThirteen
testimonials={[
{
id: "1", name: "Fatima Al-Shammari", handle: "@fatima_salmiya", testimonial: "The fastest service I've ever experienced! Tayab fixed my AC in 30 minutes on a Friday afternoon. Highly recommended!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-bearded-man_1098-22109.jpg", imageAlt: "Fatima Al-Shammari"
id: "1", name: "Fatima Al-Shammari", handle: "@fatima_salmiya", testimonial: "The fastest service I've ever experienced! Tayab fixed my AC in 30 minutes on a Friday afternoon. Highly recommended!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/cheerful-bearded-man_1098-22109.jpg", imageAlt: "Fatima Al-Shammari"
},
{
id: "2", name: "Mohammed Al-Mutairi", handle: "@m_almutairi", testimonial: "Professional technicians, transparent pricing, no hidden charges. My whole building uses Tayab now!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-adult-woman-smiling_23-2148454569.jpg", imageAlt: "Mohammed Al-Mutairi"
id: "2", name: "Mohammed Al-Mutairi", handle: "@m_almutairi", testimonial: "Professional technicians, transparent pricing, no hidden charges. My whole building uses Tayab now!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-adult-woman-smiling_23-2148454569.jpg", imageAlt: "Mohammed Al-Mutairi"
},
{
id: "3", name: "Sarah Johnson", handle: "@sarah_expat_kw", testimonial: "As an expat, I was worried about getting scammed. Tayab explained everything clearly and fixed my AC properly. Very trustworthy!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-young-woman-showing-thumbs-up_74855-4031.jpg", imageAlt: "Sarah Johnson"
id: "3", name: "Sarah Johnson", handle: "@sarah_expat_kw", testimonial: "As an expat, I was worried about getting scammed. Tayab explained everything clearly and fixed my AC properly. Very trustworthy!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/cheerful-young-woman-showing-thumbs-up_74855-4031.jpg", imageAlt: "Sarah Johnson"
},
{
id: "4", name: "Ahmed Al-Rashid", handle: "@ahmedbuilding", testimonial: "We have a maintenance contract with Tayab for our commercial building. Reliable, professional, and always on time.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/confident-businessman-smiling_107420-84733.jpg", imageAlt: "Ahmed Al-Rashid"
id: "4", name: "Ahmed Al-Rashid", handle: "@ahmedbuilding", testimonial: "We have a maintenance contract with Tayab for our commercial building. Reliable, professional, and always on time.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/confident-businessman-smiling_107420-84733.jpg", imageAlt: "Ahmed Al-Rashid"
},
{
id: "5", name: "Layla Habib", handle: "@layla_home_kw", testimonial: "My AC broke during the hottest day of summer. Tayab answered immediately and came within 45 minutes. Lifesaver!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/happy-time-with-friends_1098-12600.jpg", imageAlt: "Layla Habib"
id: "5", name: "Layla Habib", handle: "@layla_home_kw", testimonial: "My AC broke during the hottest day of summer. Tayab answered immediately and came within 45 minutes. Lifesaver!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/happy-time-with-friends_1098-12600.jpg", imageAlt: "Layla Habib"
},
{
id: "6", name: "Tariq Al-Enezi", handle: "@tariq_facilities", testimonial: "Best HVAC service in Kuwait. Competitive pricing, expert team, and comprehensive warranty on all services.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/business-composition-with-modern-style_23-2147900150.jpg", imageAlt: "Tariq Al-Enezi"
id: "6", name: "Tariq Al-Enezi", handle: "@tariq_facilities", testimonial: "Best HVAC service in Kuwait. Competitive pricing, expert team, and comprehensive warranty on all services.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/business-composition-with-modern-style_23-2147900150.jpg", imageAlt: "Tariq Al-Enezi"
}
]}
showRating={true}

View File

@@ -1,51 +1,49 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
fontSize?: number;
fontFamily?: string;
fontWeight?: number;
fill?: string;
letterSpacing?: number;
textAnchor?: 'start' | 'middle' | 'end';
dominantBaseline?: 'auto' | 'baseline' | 'ideographic' | 'middle' | 'central' | 'hanging' | 'mathematical';
}
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 = '',
fontSize = 48,
fontFamily = 'Arial, sans-serif',
fontWeight = 700,
fill = 'currentColor',
letterSpacing = 0,
textAnchor = 'middle',
dominantBaseline = 'central'
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox="0 0 300 100"
className={className}
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="150"
y="50"
fontSize={fontSize}
fontFamily={fontFamily}
fontWeight={fontWeight}
fill={fill}
letterSpacing={letterSpacing}
textAnchor={textAnchor}
dominantBaseline={dominantBaseline}
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;