Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 20:57:56 +00:00
2 changed files with 60 additions and 132 deletions

View File

@@ -9,8 +9,9 @@ import FeatureBento from "@/components/sections/feature/FeatureBento";
import ProductCardThree from "@/components/sections/product/ProductCardThree";
import TeamCardFive from "@/components/sections/team/TeamCardFive";
import TestimonialCardTen from "@/components/sections/testimonial/TestimonialCardTen";
import ContactCenter from "@/components/sections/contact/ContactCenter";
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
import { Anchor, Sparkles, Users, Star } from "lucide-react";
import { Anchor, Sparkles, Users, Star, QrCode } from "lucide-react";
export default function HomePage() {
const navItems = [
@@ -23,8 +24,7 @@ export default function HomePage() {
const footerColumns = [
{
title: "Quick Links",
items: [
title: "Quick Links", items: [
{ label: "Home", href: "/" },
{ label: "Menu", href: "/menu" },
{ label: "Reservations", href: "/reservations" },
@@ -32,8 +32,7 @@ export default function HomePage() {
],
},
{
title: "Hours",
items: [
title: "Hours", items: [
{ label: "Lunch: 12:00 - 15:30", href: "#" },
{ label: "Dinner: 19:00 - 23:00", href: "#" },
{ label: "Closed Mondays", href: "#" },
@@ -41,8 +40,7 @@ export default function HomePage() {
],
},
{
title: "Contact",
items: [
title: "Contact", items: [
{ label: "📞 +34 986 123 456", href: "tel:+34986123456" },
{ label: "📧 info@bahiavigo.es", href: "mailto:info@bahiavigo.es" },
{ label: "📍 Vigo, Galicia", href: "#" },
@@ -50,8 +48,7 @@ export default function HomePage() {
],
},
{
title: "Follow Us",
items: [
title: "Follow Us", items: [
{ label: "Instagram", href: "https://instagram.com" },
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Twitter", href: "https://twitter.com" },
@@ -89,7 +86,7 @@ export default function HomePage() {
{ text: "View Menu", href: "/menu" },
]}
background={{ variant: "sparkles-gradient" }}
imageSrc="http://img.b2bpic.net/free-photo/top-view-fresh-mix-seafood-table_23-2148290485.jpg?_wi=1"
imageSrc="http://img.b2bpic.net/free-photo/top-view-fresh-mix-seafood-table_23-2148290485.jpg"
imageAlt="Restaurante Bahía De Vigo upscale dining room"
mediaAnimation="blur-reveal"
frameStyle="card"
@@ -112,6 +109,7 @@ export default function HomePage() {
useInvertedBackground={true}
mediaAnimation="slide-up"
tagAnimation="opacity"
metricsAnimation="opacity"
/>
</div>
@@ -123,20 +121,11 @@ export default function HomePage() {
tagIcon={Sparkles}
features={[
{
title: "Fresh Atlantic Seafood",
description: "Daily fresh catches from sustainable Atlantic fishing, hand-selected for quality and flavor",
bentoComponent: "globe",
},
title: "Fresh Atlantic Seafood", description: "Daily fresh catches from sustainable Atlantic fishing, hand-selected for quality and flavor", bentoComponent: "globe"},
{
title: "Elegant Ambiance",
description: "Intimate dining rooms with ocean-inspired décor, perfect for romantic dinners and special occasions",
bentoComponent: "animated-bar-chart",
},
title: "Elegant Ambiance", description: "Intimate dining rooms with ocean-inspired décor, perfect for romantic dinners and special occasions", bentoComponent: "animated-bar-chart"},
{
title: "Expert Service",
description: "Professionally trained staff dedicated to creating an unforgettable dining experience",
bentoComponent: "map",
},
title: "Expert Service", description: "Professionally trained staff dedicated to creating an unforgettable dining experience", bentoComponent: "map"},
]}
textboxLayout="default"
animationType="slide-up"
@@ -150,26 +139,11 @@ export default function HomePage() {
description="Explore our most celebrated dishes, crafted with passion and the finest ingredients"
products={[
{
id: "1",
name: "Pulpo a la Gallega",
price: "€24.00",
imageSrc: "http://img.b2bpic.net/free-photo/platter-squids-garnished-with-lemon-served-white-table_140725-2564.jpg?_wi=1",
imageAlt: "Traditional Pulpo a la Gallega grilled octopus",
},
id: "1", name: "Pulpo a la Gallega", price: "€24.00", imageSrc: "http://img.b2bpic.net/free-photo/platter-squids-garnished-with-lemon-served-white-table_140725-2564.jpg", imageAlt: "Traditional Pulpo a la Gallega grilled octopus"},
{
id: "2",
name: "Paella de Mariscos",
price: "€32.00",
imageSrc: "http://img.b2bpic.net/free-photo/food-celebrating-world-tapas-day_23-2149361466.jpg?_wi=1",
imageAlt: "Premium Paella de Mariscos seafood rice",
},
id: "2", name: "Paella de Mariscos", price: "€32.00", imageSrc: "http://img.b2bpic.net/free-photo/food-celebrating-world-tapas-day_23-2149361466.jpg", imageAlt: "Premium Paella de Mariscos seafood rice"},
{
id: "3",
name: "Mejillones a la Marinera",
price: "€18.00",
imageSrc: "http://img.b2bpic.net/free-photo/fresh-mussel-shells-with-lemon-slices_23-2148375665.jpg?_wi=1",
imageAlt: "Fresh Mejillones a la Marinera mussels",
},
id: "3", name: "Mejillones a la Marinera", price: "€18.00", imageSrc: "http://img.b2bpic.net/free-photo/fresh-mussel-shells-with-lemon-slices_23-2148375665.jpg", imageAlt: "Fresh Mejillones a la Marinera mussels"},
]}
gridVariant="three-columns-all-equal-width"
textboxLayout="default"
@@ -184,33 +158,13 @@ export default function HomePage() {
description="The passionate culinary experts and hospitality professionals behind every memorable meal"
team={[
{
id: "1",
name: "Chef Marco Santiago",
role: "Executive Chef",
imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934692.jpg",
imageAlt: "Chef Marco Santiago",
},
id: "1", name: "Chef Marco Santiago", role: "Executive Chef", imageSrc: "http://img.b2bpic.net/free-photo/male-chef-kitchen-cooking_23-2148934692.jpg", imageAlt: "Chef Marco Santiago"},
{
id: "2",
name: "Chef Ana Méndez",
role: "Sous Chef",
imageSrc: "http://img.b2bpic.net/free-photo/chef-putting-sliced-cheese-salad_23-2148516913.jpg",
imageAlt: "Chef Ana Méndez",
},
id: "2", name: "Chef Ana Méndez", role: "Sous Chef", imageSrc: "http://img.b2bpic.net/free-photo/chef-putting-sliced-cheese-salad_23-2148516913.jpg", imageAlt: "Chef Ana Méndez"},
{
id: "3",
name: "Carlos Fernández",
role: "Restaurant Manager",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-barista-boy-cafe_23-2148436242.jpg",
imageAlt: "Carlos Fernández",
},
id: "3", name: "Carlos Fernández", role: "Restaurant Manager", imageSrc: "http://img.b2bpic.net/free-photo/front-view-barista-boy-cafe_23-2148436242.jpg", imageAlt: "Carlos Fernández"},
{
id: "4",
name: "Sofia Rodriguez",
role: "Head Server",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-as-bartender_23-2150347023.jpg",
imageAlt: "Sofia Rodriguez",
},
id: "4", name: "Sofia Rodriguez", role: "Head Server", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-as-bartender_23-2150347023.jpg", imageAlt: "Sofia Rodriguez"},
]}
textboxLayout="default"
animationType="scale-rotate"
@@ -226,41 +180,13 @@ export default function HomePage() {
description="What our valued guests have to say about their dining experience at Bahía De Vigo"
testimonials={[
{
id: "1",
title: "Exceptional Culinary Journey",
quote: "The freshness of the seafood and the expertise of the preparation left us speechless. Every bite was a revelation of authentic Galician flavors.",
name: "Elena Núñez",
role: "Food Critic",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-spending-time-together_23-2149152906.jpg",
imageAlt: "Elena Núñez",
},
id: "1", title: "Exceptional Culinary Journey", quote: "The freshness of the seafood and the expertise of the preparation left us speechless. Every bite was a revelation of authentic Galician flavors.", name: "Elena Núñez", role: "Food Critic", imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-spending-time-together_23-2149152906.jpg", imageAlt: "Elena Núñez"},
{
id: "2",
title: "A True Gem",
quote: "We celebrated our anniversary here, and it was absolutely perfect. The service was impeccable and the pulpo a la gallega was divine.",
name: "Roberto García",
role: "Restaurant Enthusiast",
imageSrc: "http://img.b2bpic.net/free-photo/indoor-portrait-gorgeous-young-caucasian-female-student-with-perfect-healthy-skin_273609-9035.jpg",
imageAlt: "Roberto García",
},
id: "2", title: "A True Gem", quote: "We celebrated our anniversary here, and it was absolutely perfect. The service was impeccable and the pulpo a la gallega was divine.", name: "Roberto García", role: "Restaurant Enthusiast", imageSrc: "http://img.b2bpic.net/free-photo/indoor-portrait-gorgeous-young-caucasian-female-student-with-perfect-healthy-skin_273609-9035.jpg", imageAlt: "Roberto García"},
{
id: "3",
title: "Worth Every Visit",
quote: "The ambiance, the food, the wine selection everything about Bahía De Vigo speaks to quality and passion. We come back every month.",
name: "María López",
role: "Regular Guest",
imageSrc: "http://img.b2bpic.net/free-photo/having-lunch-spacious-restaurant_52683-117480.jpg",
imageAlt: "María López",
},
id: "3", title: "Worth Every Visit", quote: "The ambiance, the food, the wine selection everything about Bahía De Vigo speaks to quality and passion. We come back every month.", name: "María López", role: "Regular Guest", imageSrc: "http://img.b2bpic.net/free-photo/having-lunch-spacious-restaurant_52683-117480.jpg", imageAlt: "María López"},
{
id: "4",
title: "Pure Authenticity",
quote: "This restaurant captures the essence of coastal Galicia. The flavors are authentic, the staff knowledgeable, and the experience unforgettable.",
name: "Diego Moreno",
role: "Travel Journalist",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-with-tablet_23-2149927583.jpg",
imageAlt: "Diego Moreno",
},
id: "4", title: "Pure Authenticity", quote: "This restaurant captures the essence of coastal Galicia. The flavors are authentic, the staff knowledgeable, and the experience unforgettable.", name: "Diego Moreno", role: "Travel Journalist", imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-with-tablet_23-2149927583.jpg", imageAlt: "Diego Moreno"},
]}
textboxLayout="default"
useInvertedBackground={true}
@@ -269,6 +195,20 @@ export default function HomePage() {
/>
</div>
<div id="contact" data-section="contact" className="py-20 w-full max-w-6xl mx-auto px-4">
<ContactCenter
tag="Get In Touch"
title="Scan QR for Online Reservations"
description="Join us for an unforgettable dining experience. Scan the QR code below to make your reservation instantly, or contact us directly for group bookings and special requests."
tagIcon={QrCode}
background={{ variant: "radial-gradient" }}
useInvertedBackground={false}
inputPlaceholder="Enter your email"
buttonText="Reserve Table"
termsText="Scan the QR code to access our full reservation system. By reserving, you agree to our cancellation policy."
/>
</div>
<div id="footer" data-section="footer" className="bg-foreground text-background py-16 w-full max-w-6xl mx-auto px-4">
<FooterBaseCard
logoText="Bahía De Vigo"

View File

@@ -1,51 +1,39 @@
"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;
fontSize?: number;
fontFamily?: string;
fill?: string;
className?: string;
}
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,
fontSize = 48,
fontFamily = 'Arial, sans-serif',
fill = '#000000',
className,
}) => {
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 ${text.length * (fontSize * 0.6)} ${fontSize * 1.5}`}
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="50%"
y="50%"
textAnchor="middle"
dominantBaseline="middle"
fontSize={fontSize}
fontFamily={fontFamily}
fill={fill}
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;