Merge version_1 into main #2
@@ -9,7 +9,7 @@ import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
|
||||
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
|
||||
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
|
||||
import { Anchor, Calendar, Chef, Heart, Leaf, Sparkles, Star, Trees, UtensilsCrossed } from 'lucide-react';
|
||||
import { Anchor, Calendar, Heart, Leaf, Sparkles, Star, Trees, UtensilsCrossed } from 'lucide-react';
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
@@ -19,7 +19,7 @@ export default function LandingPage() {
|
||||
borderRadius="soft"
|
||||
contentWidth="smallMedium"
|
||||
sizing="largeSmallSizeMediumTitles"
|
||||
background="grid"
|
||||
background="circleGradient"
|
||||
cardStyle="soft-shadow"
|
||||
primaryButtonStyle="primary-glow"
|
||||
secondaryButtonStyle="layered"
|
||||
@@ -74,7 +74,7 @@ export default function LandingPage() {
|
||||
description="Exceptional Seafood Freshness"
|
||||
subdescription="Warm hospitality meets refined elegance in our garden setting"
|
||||
icon={Leaf}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg?_wi=1"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg"
|
||||
imageAlt="Peaceful garden dining at Chez Achour"
|
||||
mediaAnimation="blur-reveal"
|
||||
useInvertedBackground={false}
|
||||
@@ -93,13 +93,13 @@ export default function LandingPage() {
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
products={[
|
||||
{
|
||||
id: "1", name: "Fresh Lobster", price: "Market Price", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg?_wi=1", imageAlt: "Fresh Mediterranean lobster"
|
||||
id: "1", name: "Fresh Lobster", price: "Market Price", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg", imageAlt: "Fresh Mediterranean lobster"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Seafood Pasta", price: "28 TND", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg?_wi=1", imageAlt: "Mediterranean seafood pasta"
|
||||
id: "2", name: "Seafood Pasta", price: "28 TND", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg", imageAlt: "Mediterranean seafood pasta"
|
||||
},
|
||||
{
|
||||
id: "3", name: "Langoustines", price: "32 TND", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg?_wi=1", imageAlt: "Grilled langoustines"
|
||||
id: "3", name: "Langoustines", price: "32 TND", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg", imageAlt: "Grilled langoustines"
|
||||
},
|
||||
{
|
||||
id: "4", name: "Grilled Fish Daily Catch", price: "Market Price", imageSrc: "http://img.b2bpic.net/free-photo/seabass-barramundi-fish-meat-steak_74190-5984.jpg", imageAlt: "Daily catch grilled fish"
|
||||
@@ -120,11 +120,11 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: 1,
|
||||
title: "Romantic Garden Setting", description: "Intimate outdoor dining surrounded by Mediterranean greenery and soft evening lighting. The perfect backdrop for couples seeking an unforgettable evening.", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg?_wi=1", imageAlt: "Romantic garden dining ambiance"
|
||||
title: "Romantic Garden Setting", description: "Intimate outdoor dining surrounded by Mediterranean greenery and soft evening lighting. The perfect backdrop for couples seeking an unforgettable evening.", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg", imageAlt: "Romantic garden dining ambiance"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "Peaceful Escape in Hammamet", description: "Arrive early to enjoy the tranquil setting before the restaurant fills with the lively energy of the evening. A true oasis within the city.", imageSrc: "http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg?_wi=2", imageAlt: "Peaceful garden retreat"
|
||||
title: "Peaceful Escape in Hammamet", description: "Arrive early to enjoy the tranquil setting before the restaurant fills with the lively energy of the evening. A true oasis within the city.", imageSrc: "http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg", imageAlt: "Peaceful garden retreat"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
@@ -140,19 +140,19 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Johnson, Tourist from France", date: "Date: 15 October 2024", title: "An exceptional experience!", quote: "The seafood freshness is incredible and the flavors are authentic. The garden setting is magical. A must-visit in Hammamet. We came twice during our week-long stay.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Sarah Johnson", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg?_wi=2", imageAlt: "Fresh Mediterranean lobster"
|
||||
id: "1", name: "Sarah Johnson, Tourist from France", date: "Date: 15 October 2024", title: "An exceptional experience!", quote: "The seafood freshness is incredible and the flavors are authentic. The garden setting is magical. A must-visit in Hammamet. We came twice during our week-long stay.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Sarah Johnson", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg", imageAlt: "Fresh Mediterranean lobster"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Michel Dubois, Local Regular", date: "Date: 22 September 2024", title: "Phenomenal atmosphere and service", quote: "The outdoor seating is cozy and refined. The waiters are attentive and genuinely friendly. Every visit feels special. This is where I bring my family for celebrations.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-positive-people-having-dinner-together_23-2148454185.jpg", avatarAlt: "Michel Dubois", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg?_wi=2", imageAlt: "Garden dining evening"
|
||||
id: "2", name: "Michel Dubois, Local Regular", date: "Date: 22 September 2024", title: "Phenomenal atmosphere and service", quote: "The outdoor seating is cozy and refined. The waiters are attentive and genuinely friendly. Every visit feels special. This is where I bring my family for celebrations.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-positive-people-having-dinner-together_23-2148454185.jpg", avatarAlt: "Michel Dubois", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg", imageAlt: "Garden dining evening"
|
||||
},
|
||||
{
|
||||
id: "3", name: "Amira Hassan, Local Foodie", date: "Date: 8 November 2024", title: "Beautiful setting, excellent service, delicious", quote: "Beautiful setting, excellent service, and delicious cuisine. A place we highly recommend to anyone visiting Hammamet. The chef truly respects the ingredients.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/wine-glass_74190-1311.jpg", avatarAlt: "Amira Hassan", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg?_wi=2", imageAlt: "Seafood pasta dish"
|
||||
id: "3", name: "Amira Hassan, Local Foodie", date: "Date: 8 November 2024", title: "Beautiful setting, excellent service, delicious", quote: "Beautiful setting, excellent service, and delicious cuisine. A place we highly recommend to anyone visiting Hammamet. The chef truly respects the ingredients.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/wine-glass_74190-1311.jpg", avatarAlt: "Amira Hassan", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg", imageAlt: "Seafood pasta dish"
|
||||
},
|
||||
{
|
||||
id: "4", name: "Marco Rossi, Italian Visitor", date: "Date: 3 December 2024", title: "Mediterranean authenticity at its finest", quote: "As someone from Italy, I appreciate authentic Mediterranean cuisine. Chez Achour delivers on every level. The fresh lobster and simple preparation allows the quality of ingredients to shine.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/front-view-female-chef-with-apron-covering-raw-fish-slices-with-flour-fresh-vegetables-wood-board-flour-bowl-kitchen-table_179666-44317.jpg", avatarAlt: "Marco Rossi", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg?_wi=2", imageAlt: "Langoustines dish"
|
||||
id: "4", name: "Marco Rossi, Italian Visitor", date: "Date: 3 December 2024", title: "Mediterranean authenticity at its finest", quote: "As someone from Italy, I appreciate authentic Mediterranean cuisine. Chez Achour delivers on every level. The fresh lobster and simple preparation allows the quality of ingredients to shine.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/front-view-female-chef-with-apron-covering-raw-fish-slices-with-flour-fresh-vegetables-wood-board-flour-bowl-kitchen-table_179666-44317.jpg", avatarAlt: "Marco Rossi", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg", imageAlt: "Langoustines dish"
|
||||
},
|
||||
{
|
||||
id: "5", name: "Elena Patel, Special Occasion Guest", date: "Date: 20 November 2024", title: "Perfect for celebrations", quote: "We celebrated our anniversary here and it was unforgettable. The garden ambiance, the food, the service – everything was perfect. We've already booked for next year!", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Elena Patel", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg?_wi=3", imageAlt: "Garden dining celebration"
|
||||
id: "5", name: "Elena Patel, Special Occasion Guest", date: "Date: 20 November 2024", title: "Perfect for celebrations", quote: "We celebrated our anniversary here and it was unforgettable. The garden ambiance, the food, the service – everything was perfect. We've already booked for next year!", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Elena Patel", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg", imageAlt: "Garden dining celebration"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
@@ -161,13 +161,13 @@ export default function LandingPage() {
|
||||
<div id="philosophy" data-section="philosophy">
|
||||
<TestimonialAboutCard
|
||||
tag="Our Philosophy"
|
||||
tagIcon={Chef}
|
||||
tagIcon={Anchor}
|
||||
tagAnimation="slide-up"
|
||||
title="Respecting The Sea"
|
||||
description="Simple Preparation. Fresh Ingredients."
|
||||
subdescription="True hospitality starts with exceptional quality"
|
||||
icon={Anchor}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg?_wi=3"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg"
|
||||
imageAlt="Fresh seafood at Chez Achour"
|
||||
mediaAnimation="blur-reveal"
|
||||
useInvertedBackground={false}
|
||||
@@ -181,7 +181,7 @@ export default function LandingPage() {
|
||||
tagAnimation="slide-up"
|
||||
title="Chez Achour Fills Quickly"
|
||||
description="Especially on weekends and holidays. Secure your table now and experience one of Hammamet's most loved seafood restaurants."
|
||||
background={{ variant: "grid" }}
|
||||
background={{ variant: "plain" }}
|
||||
buttons={[
|
||||
{ text: "Reserve Now", href: "tel:+216XXXXXXXXX" },
|
||||
{ text: "Call Restaurant", href: "tel:+216XXXXXXXXX" }
|
||||
|
||||
@@ -1,51 +1,45 @@
|
||||
"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 | string;
|
||||
letterSpacing?: number;
|
||||
fill?: string;
|
||||
}
|
||||
|
||||
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
|
||||
logoText,
|
||||
adjustHeightFactor,
|
||||
verticalAlign = "top",
|
||||
className = "",
|
||||
}) {
|
||||
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
|
||||
|
||||
const SvgTextLogo = ({
|
||||
text,
|
||||
className = '',
|
||||
fontSize = 32,
|
||||
fontFamily = 'system-ui, -apple-system, sans-serif',
|
||||
fontWeight = 700,
|
||||
letterSpacing = 0,
|
||||
fill = 'currentColor',
|
||||
}: SvgTextLogoProps) => {
|
||||
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"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
>
|
||||
<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={fontSize * 0.1}
|
||||
y={fontSize}
|
||||
fontSize={fontSize}
|
||||
fontFamily={fontFamily}
|
||||
fontWeight={fontWeight}
|
||||
letterSpacing={letterSpacing}
|
||||
fill={fill}
|
||||
dominantBaseline="middle"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user