From c99d853264f72129371679894e622b131f3fdbf3 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 23:47:11 +0000 Subject: [PATCH 1/2] Update src/app/page.tsx --- src/app/page.tsx | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index b096c04..ad79312 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -21,7 +21,7 @@ export default function LandingPage() { borderRadius="soft" contentWidth="small" sizing="large" - background="floatingGradient" + background="circleGradient" cardStyle="soft-shadow" primaryButtonStyle="gradient" secondaryButtonStyle="radial-glow" @@ -47,17 +47,17 @@ export default function LandingPage() { description="Discover the art of premium wagyu preparation in an atmosphere of refined elegance. Our master chefs bring decades of tradition to every perfectly seared bite." tag="Premium Dining" tagIcon={Sparkles} - background={{ variant: "floatingGradient" }} + background={{ variant: "sparkles-gradient" }} buttons={[ { text: "Reserve Your Table", href: "contact" }, { text: "View Our Menu", href: "menu" } ]} mediaItems={[ { imageSrc: "http://img.b2bpic.net/free-photo/grilled-sausage-with-bread-grilled-pepper-tomato_140725-6671.jpg", imageAlt: "Premium Japanese steakhouse interior" }, - { imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg?_wi=1", imageAlt: "Artfully plated wagyu beef" }, - { imageSrc: "http://img.b2bpic.net/free-photo/front-view-chef-white-apron-sprinkled-salt-onto-fresh-fish-pomegranate-seeds-bowl-pepper-grinder-table_179666-44298.jpg?_wi=1", imageAlt: "Master teppanyaki chef in action" }, - { imageSrc: "http://img.b2bpic.net/free-photo/high-angle-cups-flowers-arrangement_23-2149706156.jpg?_wi=1", imageAlt: "Premium sake collection" }, - { imageSrc: "http://img.b2bpic.net/free-photo/table-assortment-with-plant-view_23-2148914893.jpg?_wi=1", imageAlt: "Luxurious dining ambiance" } + { imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg", imageAlt: "Artfully plated wagyu beef" }, + { imageSrc: "http://img.b2bpic.net/free-photo/front-view-chef-white-apron-sprinkled-salt-onto-fresh-fish-pomegranate-seeds-bowl-pepper-grinder-table_179666-44298.jpg", imageAlt: "Master teppanyaki chef in action" }, + { imageSrc: "http://img.b2bpic.net/free-photo/high-angle-cups-flowers-arrangement_23-2149706156.jpg", imageAlt: "Premium sake collection" }, + { imageSrc: "http://img.b2bpic.net/free-photo/table-assortment-with-plant-view_23-2148914893.jpg", imageAlt: "Luxurious dining ambiance" } ]} /> @@ -72,10 +72,11 @@ export default function LandingPage() { { value: "25+", title: "Years of Culinary Mastery" }, { value: "A5 Certified", title: "Premium Wagyu Selection" } ]} - imageSrc="http://img.b2bpic.net/free-photo/table-assortment-with-plant-view_23-2148914893.jpg?_wi=2" + imageSrc="http://img.b2bpic.net/free-photo/table-assortment-with-plant-view_23-2148914893.jpg" imageAlt="Elegant steakhouse dining room" useInvertedBackground={false} mediaAnimation="slide-up" + metricsAnimation="slide-up" /> @@ -90,9 +91,9 @@ export default function LandingPage() { animationType="slide-up" gridVariant="three-columns-all-equal-width" products={[ - { id: "1", brand: "Kurogane Premium", name: "A5 Wagyu Ribeye", price: "$185", rating: 5, reviewCount: "847", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg?_wi=2", imageAlt: "A5 Wagyu Ribeye" }, - { id: "2", brand: "Kurogane Premium", name: "Signature Striploin", price: "$165", rating: 5, reviewCount: "623", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg?_wi=3", imageAlt: "Signature Striploin" }, - { id: "3", brand: "Kurogane Premium", name: "Tenderloin Masterpiece", price: "$195", rating: 5, reviewCount: "512", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg?_wi=4", imageAlt: "Tenderloin Masterpiece" } + { id: "1", brand: "Kurogane Premium", name: "A5 Wagyu Ribeye", price: "$185", rating: 5, reviewCount: "847", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg", imageAlt: "A5 Wagyu Ribeye" }, + { id: "2", brand: "Kurogane Premium", name: "Signature Striploin", price: "$165", rating: 5, reviewCount: "623", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg", imageAlt: "Signature Striploin" }, + { id: "3", brand: "Kurogane Premium", name: "Tenderloin Masterpiece", price: "$195", rating: 5, reviewCount: "512", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg", imageAlt: "Tenderloin Masterpiece" } ]} /> @@ -105,9 +106,9 @@ export default function LandingPage() { textboxLayout="default" useInvertedBackground={false} features={[ - { id: 1, tag: "Step One", title: "Curated Welcome", subtitle: "Exceptional first impressions", description: "Your journey begins with personalized seating and a selection of premium sake pairings. Our sommelier will guide you through selections that complement your chosen beef cuts perfectly.", imageSrc: "http://img.b2bpic.net/free-photo/table-assortment-with-plant-view_23-2148914893.jpg?_wi=3", imageAlt: "Welcome seating at Kurogane" }, - { id: 2, tag: "Step Two", title: "Master Chef Performance", subtitle: "Culinary artistry before your eyes", description: "Watch as our teppanyaki masters skillfully prepare your beef on traditional iron griddles, searing premium wagyu to perfection with precise knife techniques honed over decades of practice.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-chef-white-apron-sprinkled-salt-onto-fresh-fish-pomegranate-seeds-bowl-pepper-grinder-table_179666-44298.jpg?_wi=2", imageAlt: "Chef preparing teppanyaki" }, - { id: 3, tag: "Step Three", title: "Artful Presentation", subtitle: "Taste meets visual perfection", description: "Each dish is presented as edible art, with carefully arranged wagyu complemented by seasonal vegetables and premium accompaniments. The plate is as beautiful as it is delicious.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg?_wi=5", imageAlt: "Beautifully plated wagyu" } + { id: 1, tag: "Step One", title: "Curated Welcome", subtitle: "Exceptional first impressions", description: "Your journey begins with personalized seating and a selection of premium sake pairings. Our sommelier will guide you through selections that complement your chosen beef cuts perfectly.", imageSrc: "http://img.b2bpic.net/free-photo/table-assortment-with-plant-view_23-2148914893.jpg", imageAlt: "Welcome seating at Kurogane" }, + { id: 2, tag: "Step Two", title: "Master Chef Performance", subtitle: "Culinary artistry before your eyes", description: "Watch as our teppanyaki masters skillfully prepare your beef on traditional iron griddles, searing premium wagyu to perfection with precise knife techniques honed over decades of practice.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-chef-white-apron-sprinkled-salt-onto-fresh-fish-pomegranate-seeds-bowl-pepper-grinder-table_179666-44298.jpg", imageAlt: "Chef preparing teppanyaki" }, + { id: 3, tag: "Step Three", title: "Artful Presentation", subtitle: "Taste meets visual perfection", description: "Each dish is presented as edible art, with carefully arranged wagyu complemented by seasonal vegetables and premium accompaniments. The plate is as beautiful as it is delicious.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-rib-steak-with-garlic-cinnamon-ax-stand_141793-12212.jpg", imageAlt: "Beautifully plated wagyu" } ]} /> @@ -157,7 +158,7 @@ export default function LandingPage() { useInvertedBackground={false} mediaAnimation="slide-up" faqsAnimation="slide-up" - imageSrc="http://img.b2bpic.net/free-photo/high-angle-cups-flowers-arrangement_23-2149706156.jpg?_wi=2" + imageSrc="http://img.b2bpic.net/free-photo/high-angle-cups-flowers-arrangement_23-2149706156.jpg" imageAlt="Premium sake selection" mediaPosition="left" faqs={[ @@ -175,7 +176,7 @@ export default function LandingPage() { title="Secure Your Culinary Masterpiece" description="Reserve your table at Kurogane and prepare for an unforgettable evening of premium Japanese steakhouse dining." tagIcon={Calendar} - background={{ variant: "floatingGradient" }} + background={{ variant: "sparkles-gradient" }} useInvertedBackground={false} inputPlaceholder="Your email address" buttonText="Reserve Table" -- 2.49.1 From f8cf1b47fc4d72141233579bcfbf984eafb53af2 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 23:47:12 +0000 Subject: [PATCH 2/2] Update src/components/shared/SvgTextLogo/SvgTextLogo.tsx --- .../shared/SvgTextLogo/SvgTextLogo.tsx | 92 ++++++++++++------- 1 file changed, 58 insertions(+), 34 deletions(-) diff --git a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx index f214190..e013152 100644 --- a/src/components/shared/SvgTextLogo/SvgTextLogo.tsx +++ b/src/components/shared/SvgTextLogo/SvgTextLogo.tsx @@ -1,51 +1,75 @@ -"use client"; - -import { memo } from "react"; -import useSvgTextLogo from "./useSvgTextLogo"; -import { cls } from "@/lib/utils"; +import React, { useEffect, useRef } from 'react'; interface SvgTextLogoProps { - logoText: string; - adjustHeightFactor?: number; - verticalAlign?: "top" | "center"; + text: string; className?: string; + fontSize?: number; + fontWeight?: number | string; + letterSpacing?: number; + fill?: string; + animationDuration?: number; } -const SvgTextLogo = memo(function SvgTextLogo({ - logoText, - adjustHeightFactor, - verticalAlign = "top", - className = "", -}) { - const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor); +const SvgTextLogo: React.FC = ({ + text, + className = '', + fontSize = 48, + fontWeight = 700, + letterSpacing = 2, + fill = 'currentColor', + animationDuration = 0.6, +}) => { + const svgRef = useRef(null); + + useEffect(() => { + if (!svgRef.current) return; + + const svg = svgRef.current; + const textElement = svg.querySelector('text'); + if (!textElement) return; + + const bbox = textElement.getBBox(); + svg.setAttribute('viewBox', `${bbox.x - 10} ${bbox.y - 10} ${bbox.width + 20} ${bbox.height + 20}`); + }, [text]); return ( + - {logoText} + {text} ); -}); - -SvgTextLogo.displayName = "SvgTextLogo"; +}; export default SvgTextLogo; -- 2.49.1