From bdfce1a46d077dc77d0d40ba3f7798e9e0fba809 Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 13 Mar 2026 06:05:03 +0000 Subject: [PATCH 1/2] Update src/app/page.tsx --- src/app/page.tsx | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index f1ed82f..7f852dc 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -18,7 +18,7 @@ export default function LandingPage() { borderRadius="rounded" contentWidth="small" sizing="large" - background="fluid" + background="circleGradient" cardStyle="soft-shadow" primaryButtonStyle="radial-glow" secondaryButtonStyle="solid" @@ -44,18 +44,18 @@ export default function LandingPage() { description="Experience the art of classic barbering meets modern style. At Millennium Barber Shop, we deliver precision cuts, expert styling, and timeless craftsmanship that makes every visit memorable." tag="Est. 2010" tagAnimation="slide-up" - background={{ variant: "fluid" }} + background={{ variant: "plain" }} leftCarouselItems={[ - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=5c9jyl&_wi=1", imageAlt: "Modern fade haircut" }, - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c5fwxv&_wi=1", imageAlt: "Classic gentleman style" }, - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v81zqo&_wi=1", imageAlt: "Contemporary undercut" }, - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=qvo4nm&_wi=1", imageAlt: "Textured crop style" } + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=5c9jyl", imageAlt: "Modern fade haircut" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c5fwxv", imageAlt: "Classic gentleman style" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v81zqo", imageAlt: "Contemporary undercut" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=qvo4nm", imageAlt: "Textured crop style" } ]} rightCarouselItems={[ { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=1cqpn2", imageAlt: "Barber shop interior" }, - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v00jax&_wi=1", imageAlt: "Professional haircut" }, - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=x1r0ry&_wi=1", imageAlt: "Beard trim service" }, - { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=mv1e4w&_wi=1", imageAlt: "Classic shave service" } + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v00jax", imageAlt: "Professional haircut" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=x1r0ry", imageAlt: "Beard trim service" }, + { imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=mv1e4w", imageAlt: "Classic shave service" } ]} buttons={[ { text: "Book Now", href: "contact" }, @@ -79,6 +79,7 @@ export default function LandingPage() { imageAlt="Master barber at work" useInvertedBackground={false} mediaAnimation="slide-up" + metricsAnimation="slide-up" /> @@ -93,13 +94,13 @@ export default function LandingPage() { useInvertedBackground={false} features={[ { - title: "Classic Haircuts", description: "Expert scissor work and precision cutting tailored to your style and face shape.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v00jax&_wi=2", imageAlt: "Professional haircut service" + title: "Classic Haircuts", description: "Expert scissor work and precision cutting tailored to your style and face shape.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v00jax", imageAlt: "Professional haircut service" }, { - title: "Beard Grooming", description: "Complete beard styling, trimming, and shaping with premium beard products.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=x1r0ry&_wi=2", imageAlt: "Professional beard trim" + title: "Beard Grooming", description: "Complete beard styling, trimming, and shaping with premium beard products.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=x1r0ry", imageAlt: "Professional beard trim" }, { - title: "Traditional Shaving", description: "Luxurious straight razor shaves with hot towel treatments and premium aftercare.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=mv1e4w&_wi=2", imageAlt: "Classic barber shave experience" + title: "Traditional Shaving", description: "Luxurious straight razor shaves with hot towel treatments and premium aftercare.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=mv1e4w", imageAlt: "Classic barber shave experience" } ]} /> @@ -117,19 +118,19 @@ export default function LandingPage() { products={[ { id: "cut-1", brand: "Modern Style", name: "Sharp Fade Cut", price: "Starting at $35", rating: 5, - reviewCount: "2.3k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=5c9jyl&_wi=2", imageAlt: "Sharp fade haircut" + reviewCount: "2.3k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=5c9jyl", imageAlt: "Sharp fade haircut" }, { id: "cut-2", brand: "Classic Look", name: "Gentleman's Cut", price: "Starting at $40", rating: 5, - reviewCount: "1.9k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c5fwxv&_wi=2", imageAlt: "Classic gentleman haircut" + reviewCount: "1.9k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=c5fwxv", imageAlt: "Classic gentleman haircut" }, { id: "cut-3", brand: "Contemporary", name: "Modern Undercut", price: "Starting at $40", rating: 5, - reviewCount: "2.1k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v81zqo&_wi=2", imageAlt: "Contemporary undercut style" + reviewCount: "2.1k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=v81zqo", imageAlt: "Contemporary undercut style" }, { id: "cut-4", brand: "Textured", name: "Crop Cut", price: "Starting at $35", rating: 5, - reviewCount: "1.8k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=qvo4nm&_wi=2", imageAlt: "Textured crop haircut" + reviewCount: "1.8k", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=qvo4nm", imageAlt: "Textured crop haircut" } ]} /> @@ -182,7 +183,7 @@ export default function LandingPage() { tag="Stay Connected" title="Get Exclusive Grooming Tips & Offers" description="Subscribe to our newsletter for the latest trends in men's grooming, special promotions, and insider tips from our expert barbers." - background={{ variant: "fluid" }} + background={{ variant: "plain" }} useInvertedBackground={false} inputPlaceholder="Enter your email" buttonText="Subscribe" From 6dc76594017bf5831985fc2a60c202a1526ac866 Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 13 Mar 2026 06:05:03 +0000 Subject: [PATCH 2/2] Update src/components/shared/SvgTextLogo/SvgTextLogo.tsx --- .../shared/SvgTextLogo/SvgTextLogo.tsx | 75 ++++++++----------- 1 file changed, 33 insertions(+), 42 deletions(-) diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..af80abd 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,50 +1,41 @@ -"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"; +export 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); - - return ( - - ( + ({ text = "Logo", className = "", ...props }, ref) => { + return ( + - {logoText} - - - ); -}); + + + + + + + + {text} + + + ); + } +); SvgTextLogo.displayName = "SvgTextLogo";