Merge version_1 into main #2
132
src/app/page.tsx
132
src/app/page.tsx
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user