Merge version_1 into main #2
@@ -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}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user