Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-11 04:47:46 +00:00
2 changed files with 56 additions and 48 deletions

View File

@@ -20,7 +20,7 @@ export default function LandingPage() {
borderRadius="soft"
contentWidth="medium"
sizing="largeSmall"
background="aurora"
background="circleGradient"
cardStyle="inset"
primaryButtonStyle="gradient"
secondaryButtonStyle="layered"
@@ -46,18 +46,18 @@ export default function LandingPage() {
tag="⭐ 4.4 Stars • 170+ Reviews"
tagIcon={Star}
tagAnimation="slide-up"
background={{ variant: "aurora" }}
background={{ variant: "plain" }}
buttons={[
{ text: "Call Now", href: "tel:(219) 690-3115" },
{ text: "Get Directions", href: "https://maps.google.com/maps?q=151+Deanna+Dr+Lowell+IN+46356" }
]}
buttonAnimation="slide-up"
carouselItems={[
{ id: "hero-1", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-pancakes-with-copy-space_23-2148454955.jpg?_wi=1", imageAlt: "Fluffy pancakes with maple syrup" },
{ id: "hero-2", imageSrc: "http://img.b2bpic.net/free-photo/eggs-benedict-with-salmon_74190-700.jpg?_wi=1", imageAlt: "Eggs Benedict with hollandaise sauce" },
{ id: "hero-3", imageSrc: "http://img.b2bpic.net/free-photo/turkish-traditional-delight-table_140725-1428.jpg?_wi=1", imageAlt: "Hearty breakfast skillet" },
{ id: "hero-4", imageSrc: "http://img.b2bpic.net/free-photo/stacked-pancakes-red-currant-berries-with-lemon-curd-wooden-background_23-2147972742.jpg?_wi=1", imageAlt: "Golden pancakes stack" },
{ id: "hero-5", imageSrc: "http://img.b2bpic.net/free-photo/girl-with-flowers_1157-8692.jpg?_wi=1", imageAlt: "Classic diner interior" },
{ id: "hero-1", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-pancakes-with-copy-space_23-2148454955.jpg", imageAlt: "Fluffy pancakes with maple syrup" },
{ id: "hero-2", imageSrc: "http://img.b2bpic.net/free-photo/eggs-benedict-with-salmon_74190-700.jpg", imageAlt: "Eggs Benedict with hollandaise sauce" },
{ id: "hero-3", imageSrc: "http://img.b2bpic.net/free-photo/turkish-traditional-delight-table_140725-1428.jpg", imageAlt: "Hearty breakfast skillet" },
{ id: "hero-4", imageSrc: "http://img.b2bpic.net/free-photo/stacked-pancakes-red-currant-berries-with-lemon-curd-wooden-background_23-2147972742.jpg", imageAlt: "Golden pancakes stack" },
{ id: "hero-5", imageSrc: "http://img.b2bpic.net/free-photo/girl-with-flowers_1157-8692.jpg", imageAlt: "Classic diner interior" },
{ id: "hero-6", imageSrc: "http://img.b2bpic.net/free-photo/belgian-waffles-with-berries-near-bouquet_23-2147717686.jpg", imageAlt: "Belgian waffle breakfast" }
]}
autoPlay={true}
@@ -78,12 +78,12 @@ export default function LandingPage() {
useInvertedBackground={false}
gridVariant="three-columns-all-equal-width"
products={[
{ id: "1", name: "Fluffy Pancakes", price: "Signature", imageSrc: "http://img.b2bpic.net/free-photo/stacked-pancakes-red-currant-berries-with-lemon-curd-wooden-background_23-2147972742.jpg?_wi=2", imageAlt: "Fluffy pancakes with syrup" },
{ id: "2", name: "Eggs Benedict", price: "Classic", imageSrc: "http://img.b2bpic.net/free-photo/eggs-benedict-with-salmon_74190-700.jpg?_wi=2", imageAlt: "Eggs Benedict with hollandaise" },
{ id: "1", name: "Fluffy Pancakes", price: "Signature", imageSrc: "http://img.b2bpic.net/free-photo/stacked-pancakes-red-currant-berries-with-lemon-curd-wooden-background_23-2147972742.jpg", imageAlt: "Fluffy pancakes with syrup" },
{ id: "2", name: "Eggs Benedict", price: "Classic", imageSrc: "http://img.b2bpic.net/free-photo/eggs-benedict-with-salmon_74190-700.jpg", imageAlt: "Eggs Benedict with hollandaise" },
{ id: "3", name: "Pigs in a Blanket", price: "Favorite", imageSrc: "http://img.b2bpic.net/free-photo/top-view-baked-pastry-with-cinnamon-plums-cup-tea-pink-desk_140725-49912.jpg", imageAlt: "Pigs in a blanket" },
{ id: "4", name: "Banana Royale Waffle", price: "Decadent", imageSrc: "http://img.b2bpic.net/free-photo/milk-apple-banana-cornflakes_1339-8401.jpg", imageAlt: "Banana Royale waffle" },
{ id: "5", name: "Monte Cristo Sandwich", price: "Classic", imageSrc: "http://img.b2bpic.net/free-photo/honey-toast_1339-2794.jpg", imageAlt: "Monte Cristo sandwich" },
{ id: "6", name: "Breakfast Skillet", price: "Hearty", imageSrc: "http://img.b2bpic.net/free-photo/turkish-traditional-delight-table_140725-1428.jpg?_wi=2", imageAlt: "Loaded breakfast skillet" }
{ id: "6", name: "Breakfast Skillet", price: "Hearty", imageSrc: "http://img.b2bpic.net/free-photo/turkish-traditional-delight-table_140725-1428.jpg", imageAlt: "Loaded breakfast skillet" }
]}
buttons={[
{ text: "View Full Menu", href: "#" }
@@ -101,13 +101,13 @@ export default function LandingPage() {
useInvertedBackground={false}
features={[
{
id: "huge-portions", title: "Huge Portions", description: "Hearty breakfast plates that keep our customers coming back. Every dish is generously sized to satisfy your appetite.", tag: "Signature", imageSrc: "http://img.b2bpic.net/free-photo/turkish-traditional-delight-table_140725-1428.jpg?_wi=3", imageAlt: "Large hearty breakfast plate"
id: "huge-portions", title: "Huge Portions", description: "Hearty breakfast plates that keep our customers coming back. Every dish is generously sized to satisfy your appetite.", tag: "Signature", imageSrc: "http://img.b2bpic.net/free-photo/turkish-traditional-delight-table_140725-1428.jpg", imageAlt: "Large hearty breakfast plate"
},
{
id: "classic-diner", title: "Classic Diner Experience", description: "A welcoming small-town breakfast atmosphere with warm hospitality. Our retro diner charm makes every visit special.", tag: "Ambiance", imageSrc: "http://img.b2bpic.net/free-photo/girl-with-flowers_1157-8692.jpg?_wi=2", imageAlt: "Cozy classic diner interior"
id: "classic-diner", title: "Classic Diner Experience", description: "A welcoming small-town breakfast atmosphere with warm hospitality. Our retro diner charm makes every visit special.", tag: "Ambiance", imageSrc: "http://img.b2bpic.net/free-photo/girl-with-flowers_1157-8692.jpg", imageAlt: "Cozy classic diner interior"
},
{
id: "friendly-service", title: "Fast & Friendly Service", description: "Breakfast served quickly with genuine smiles. Our staff treats every guest with care and attention to detail.", tag: "Service", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-pancakes-with-copy-space_23-2148454955.jpg?_wi=2", imageAlt: "Freshly served breakfast"
id: "friendly-service", title: "Fast & Friendly Service", description: "Breakfast served quickly with genuine smiles. Our staff treats every guest with care and attention to detail.", tag: "Service", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-pancakes-with-copy-space_23-2148454955.jpg", imageAlt: "Freshly served breakfast"
}
]}
/>

View File

@@ -1,51 +1,59 @@
"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;
strokeWidth?: number;
stroke?: string;
className?: string;
ariaLabel?: 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 = 32,
fontFamily = 'Arial',
fill = 'currentColor',
strokeWidth = 0,
stroke = 'none',
className = '',
ariaLabel,
}) => {
const textLength = text.length;
const estimatedWidth = textLength * fontSize * 0.6;
const estimatedHeight = fontSize * 1.5;
const padding = 10;
const width = estimatedWidth + padding * 2;
const height = estimatedHeight + padding * 2;
const x = padding + estimatedWidth / 2;
const y = padding + fontSize;
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
width={width}
height={height}
viewBox={`0 0 ${width} ${height}`}
xmlns="http://www.w3.org/2000/svg"
className={className}
aria-label={ariaLabel}
>
<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={x}
y={y}
fontSize={fontSize}
fontFamily={fontFamily}
fill={fill}
strokeWidth={strokeWidth}
stroke={stroke}
textAnchor="middle"
dominantBaseline="middle"
>
{logoText}
{text}
</text>
</svg>
);
});
SvgTextLogo.displayName = "SvgTextLogo";
};
export default SvgTextLogo;