Merge version_1 into main #2
@@ -20,7 +20,7 @@ export default function LandingPage() {
|
||||
borderRadius="rounded"
|
||||
contentWidth="small"
|
||||
sizing="mediumLargeSizeMediumTitles"
|
||||
background="circleGradient"
|
||||
background="none"
|
||||
cardStyle="glass-depth"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
@@ -43,16 +43,16 @@ export default function LandingPage() {
|
||||
<HeroCentered
|
||||
title="Where Islamabad Comes for Real Flavor"
|
||||
description="Authentic Kabuli Pulao, Shinwari Karahi, and premium platters served with the hospitality Habibi is known for."
|
||||
background={{ variant: "circleGradient" }}
|
||||
background={{ variant: "plain" }}
|
||||
avatars={[
|
||||
{ src: "http://img.b2bpic.net/free-photo/happy-friends-sitting-table-medium-shot_23-2148965375.jpg", alt: "Family dining at Habibi" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", alt: "Restaurant interior" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/close-top-view-azerbaijani-grape-leaves-dolma-served-with-yogurt_141793-2014.jpg", alt: "Signature dishes" }
|
||||
{ src: "http://img.b2bpic.net/free-photo/close-top-view-azerbaijani-grape-leaves-dolma-served-with-yogurt_141793-2014.jpg", alt: "steaming kabuli pulao Pakistani rice dish" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", alt: "luxury restaurant interior warm lighting elegant" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/happy-friends-sitting-table-medium-shot_23-2148965375.jpg", alt: "family dining restaurant warm hospitality" }
|
||||
]}
|
||||
avatarText="Serving Islamabad since 2015"
|
||||
buttons={[
|
||||
{ text: "View Menu", href: "#dishes" },
|
||||
{ text: "Reserve Table", href: "#reservation" }
|
||||
{ text: "Reserve Table", href: "#location" }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
ariaLabel="Habibi Restaurant Hero Section"
|
||||
@@ -69,7 +69,7 @@ export default function LandingPage() {
|
||||
{ value: "9+", title: "Years of Excellence" },
|
||||
{ value: "1000+", title: "Happy Families" }
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=1"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg"
|
||||
imageAlt="Habibi Restaurant Interior"
|
||||
useInvertedBackground={false}
|
||||
mediaAnimation="slide-up"
|
||||
@@ -91,19 +91,19 @@ export default function LandingPage() {
|
||||
products={[
|
||||
{
|
||||
id: "1", brand: "Habibi Premium", name: "Habibi Gold Platter", price: "PKR 2,500", rating: 5,
|
||||
reviewCount: "450+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-chicken-chicken-wings-potatoes-lemon-oil-tablecloth-cutting-board_140725-71474.jpg", imageAlt: "Habibi Gold Platter with grilled meats"
|
||||
reviewCount: "450+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-chicken-chicken-wings-potatoes-lemon-oil-tablecloth-cutting-board_140725-71474.jpg", imageAlt: "premium grilled meat platter tikka malai boti"
|
||||
},
|
||||
{
|
||||
id: "2", brand: "Habibi Classic", name: "Kabuli Pulao", price: "PKR 1,200", rating: 5,
|
||||
reviewCount: "680+", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg?_wi=1", imageAlt: "Fragrant Kabuli Pulao with meat and raisins"
|
||||
reviewCount: "680+", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg", imageAlt: "kabuli pulao fragrant rice meat carrots raisins"
|
||||
},
|
||||
{
|
||||
id: "3", brand: "Habibi Authentic", name: "Shinwari Karahi", price: "PKR 1,400", rating: 5,
|
||||
reviewCount: "520+", imageSrc: "http://img.b2bpic.net/free-photo/steamed-millet-with-vegetables_141793-17593.jpg", imageAlt: "Authentic Shinwari Karahi fresh from wok"
|
||||
reviewCount: "520+", imageSrc: "http://img.b2bpic.net/free-photo/steamed-millet-with-vegetables_141793-17593.jpg", imageAlt: "shinwari karahi wok cooking spices"
|
||||
},
|
||||
{
|
||||
id: "4", brand: "Habibi Grill", name: "Charcoal Grilled Fish", price: "PKR 1,600", rating: 4.8,
|
||||
reviewCount: "280+", imageSrc: "http://img.b2bpic.net/free-photo/fish-with-lemon-parsley_23-2147753650.jpg", imageAlt: "Premium charcoal grilled fish"
|
||||
reviewCount: "280+", imageSrc: "http://img.b2bpic.net/free-photo/fish-with-lemon-parsley_23-2147753650.jpg", imageAlt: "charcoal grilled fish bold seasoning fresh"
|
||||
}
|
||||
]}
|
||||
ariaLabel="Habibi Signature Dishes"
|
||||
@@ -122,11 +122,11 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: "1", title: "Fast Service", author: "Customer Favorite", description: "Even during busy hours, orders arrive quickly without compromising on quality or presentation.", tags: ["Service", "Speed"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=2", imageAlt: "Fast service at Habibi"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", imageAlt: "Fast service at Habibi"
|
||||
},
|
||||
{
|
||||
id: "2", title: "Signature Flavors", author: "Culinary Excellence", description: "Kabuli Pulao and Shinwari Karahi remain customer favorites, perfected through years of dedication.", tags: ["Taste", "Authentic"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg?_wi=2", imageAlt: "Signature flavor dishes"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg", imageAlt: "Signature flavor dishes"
|
||||
},
|
||||
{
|
||||
id: "3", title: "Family Friendly Atmosphere", author: "Warm Hospitality", description: "Spacious dining perfect for gatherings, celebrations, and family moments with loved ones.", tags: ["Ambiance", "Comfort"],
|
||||
@@ -134,7 +134,7 @@ export default function LandingPage() {
|
||||
},
|
||||
{
|
||||
id: "4", title: "Experienced Since 2015", author: "Market Leader", description: "Nearly a decade of serving Islamabad with consistency, quality, and authentic hospitality.", tags: ["Heritage", "Trust"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=3", imageAlt: "Habibi legacy and experience"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", imageAlt: "Habibi legacy and experience"
|
||||
}
|
||||
]}
|
||||
ariaLabel="Why Choose Habibi"
|
||||
@@ -150,22 +150,22 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Fatima Ahmed", imageSrc: "http://img.b2bpic.net/free-photo/man-portrait-posing-loft-modern-space_158595-5364.jpg", imageAlt: "Fatima Ahmed"
|
||||
id: "1", name: "Fatima Ahmed", imageSrc: "http://img.b2bpic.net/free-photo/man-portrait-posing-loft-modern-space_158595-5364.jpg", imageAlt: "professional headshot portrait man dark background"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Hassan Khan", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-black-jacket-happy-short-haired-girl-dark-suit-widely-sincerely-smiles-isolated-background_197531-18508.jpg", imageAlt: "Hassan Khan"
|
||||
id: "2", name: "Hassan Khan", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-black-jacket-happy-short-haired-girl-dark-suit-widely-sincerely-smiles-isolated-background_197531-18508.jpg", imageAlt: "professional headshot portrait woman dark background"
|
||||
},
|
||||
{
|
||||
id: "3", name: "Ayesha Malik", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1625.jpg", imageAlt: "Ayesha Malik"
|
||||
id: "3", name: "Ayesha Malik", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1625.jpg", imageAlt: "diverse professional headshot portrait male"
|
||||
},
|
||||
{
|
||||
id: "4", name: "Ahmed Saeed", imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-waitress_107420-12324.jpg", imageAlt: "Ahmed Saeed"
|
||||
id: "4", name: "Ahmed Saeed", imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-waitress_107420-12324.jpg", imageAlt: "diverse professional headshot portrait female"
|
||||
},
|
||||
{
|
||||
id: "5", name: "Zainab Hassan", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-posing-garden_23-2147562343.jpg", imageAlt: "Zainab Hassan"
|
||||
id: "5", name: "Zainab Hassan", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-posing-garden_23-2147562343.jpg", imageAlt: "young professional male portrait headshot"
|
||||
},
|
||||
{
|
||||
id: "6", name: "Muhammad Ali", imageSrc: "http://img.b2bpic.net/free-photo/portrait-attractive-smiling-woman-office_23-2148187253.jpg", imageAlt: "Muhammad Ali"
|
||||
id: "6", name: "Muhammad Ali", imageSrc: "http://img.b2bpic.net/free-photo/portrait-attractive-smiling-woman-office_23-2148187253.jpg", imageAlt: "young professional female portrait headshot"
|
||||
}
|
||||
]}
|
||||
ariaLabel="Customer Testimonials"
|
||||
@@ -200,7 +200,7 @@ export default function LandingPage() {
|
||||
]}
|
||||
textarea={{ name: "message", placeholder: "Special requests or dietary preferences...", rows: 3, required: false }}
|
||||
useInvertedBackground={true}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=4"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg"
|
||||
imageAlt="Habibi Restaurant Elegant Dining"
|
||||
mediaAnimation="slide-up"
|
||||
mediaPosition="right"
|
||||
@@ -218,7 +218,7 @@ export default function LandingPage() {
|
||||
{ label: "Location", href: "#" },
|
||||
{ label: "Hours", href: "#" },
|
||||
{ label: "Menu", href: "#" },
|
||||
{ label: "Reservations", href: "#reservation" }
|
||||
{ label: "Reservations", href: "#location" }
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,51 +1,28 @@
|
||||
"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;
|
||||
}
|
||||
|
||||
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, 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 200 60"
|
||||
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%"
|
||||
dominantBaseline="middle"
|
||||
textAnchor="middle"
|
||||
className="fill-current text-lg font-bold"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user