Merge version_1 into main #1

Merged
bender merged 2 commits from version_1 into main 2026-03-12 21:50:51 +00:00
2 changed files with 30 additions and 49 deletions

View File

@@ -134,28 +134,22 @@ export default function LandingPage() {
description="Real stories from real customers who've experienced La Casita del Sabor's authentic hospitality and exceptional food."
testimonials={[
{
id: "1", name: "Maria García", handle: "@maria_loves_brunch", testimonial: "This place feels like eating at grandma's house. The food is incredible, portions are huge, and the service makes you feel like family. I've been coming for months and never had a bad experience.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/woman-films-vlog-praising-bio-local-shop_482257-81629.jpg", imageAlt: "Maria García"
id: "1", name: "Maria García", handle: "@maria_loves_brunch", testimonial: "This place feels like eating at grandma's house. The food is incredible, portions are huge, and the service makes you feel like family. I've been coming for months and never had a bad experience.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/woman-films-vlog-praising-bio-local-shop_482257-81629.jpg", imageAlt: "Maria García"
},
{
id: "2", name: "James Chen", handle: "@jchen_eats", testimonial: "Finally found an authentic brunch spot in the neighborhood. Everything is fresh, homemade, and genuinely delicious. Prices are fair for the quality and generosity you get. Highly recommended!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/closeup-focus-shot-handsome-adult-man-sitting-pier_181624-28887.jpg", imageAlt: "James Chen"
id: "2", name: "James Chen", handle: "@jchen_eats", testimonial: "Finally found an authentic brunch spot in the neighborhood. Everything is fresh, homemade, and genuinely delicious. Prices are fair for the quality and generosity you get. Highly recommended!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/closeup-focus-shot-handsome-adult-man-sitting-pier_181624-28887.jpg", imageAlt: "James Chen"
},
{
id: "3", name: "Sofia Mendez", handle: "@sofia_sunday_brunch", testimonial: "The hospitality here is unmatched. Every visit feels special and personalized. They remember our usual orders and always go above and beyond. This is where we celebrate every special occasion.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-woman-cafe-drinking-coffee-date-looking-camera_197531-22708.jpg", imageAlt: "Sofia Mendez"
id: "3", name: "Sofia Mendez", handle: "@sofia_sunday_brunch", testimonial: "The hospitality here is unmatched. Every visit feels special and personalized. They remember our usual orders and always go above and beyond. This is where we celebrate every special occasion.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-woman-cafe-drinking-coffee-date-looking-camera_197531-22708.jpg", imageAlt: "Sofia Mendez"
},
{
id: "4", name: "David Kumar", handle: "@foodie_david", testimonial: "Not just another brunch restaurant. La Casita has soul. You can taste the care in every bite. The regional specialties are authentic and incredible. Worth every penny and worth the wait.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-handsome-young-man-sitting-armchair-against-grey-wall_23-2148130370.jpg", imageAlt: "David Kumar"
id: "4", name: "David Kumar", handle: "@foodie_david", testimonial: "Not just another brunch restaurant. La Casita has soul. You can taste the care in every bite. The regional specialties are authentic and incredible. Worth every penny and worth the wait.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-handsome-young-man-sitting-armchair-against-grey-wall_23-2148130370.jpg", imageAlt: "David Kumar"
},
{
id: "5", name: "The Anderson Family", handle: "@family_dining", testimonial: "Our family has made La Casita our Sunday ritual. Three generations now enjoy breakfast here together. The warm welcome, generous portions, and attention to detail make it feel like home.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-friends-taking-selfie_23-2149061577.jpg", imageAlt: "The Anderson Family dining together"
id: "5", name: "The Anderson Family", handle: "@family_dining", testimonial: "Our family has made La Casita our Sunday ritual. Three generations now enjoy breakfast here together. The warm welcome, generous portions, and attention to detail make it feel like home.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-friends-taking-selfie_23-2149061577.jpg", imageAlt: "The Anderson Family dining together"
},
{
id: "6", name: "Urban Explorers Group", handle: "@explore_local", testimonial: "Discovered this gem while exploring the neighborhood. Authentic, affordable, exceptional service. We bring all our visiting friends here now. It's the real deal—locals know what's up!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/friends-drinking-beer-eating-barbeque-outdoor-party_23-2149366176.jpg", imageAlt: "Urban explorers enjoying the restaurant"
id: "6", name: "Urban Explorers Group", handle: "@explore_local", testimonial: "Discovered this gem while exploring the neighborhood. Authentic, affordable, exceptional service. We bring all our visiting friends here now. It's the real deal—locals know what's up!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/friends-drinking-beer-eating-barbeque-outdoor-party_23-2149366176.jpg", imageAlt: "Urban explorers enjoying the restaurant"
}
]}
showRating={true}
@@ -183,7 +177,7 @@ export default function LandingPage() {
id: "4", value: "4.9★", description: "Average rating from genuine reviews"
}
]}
gridVariant="four-items-2x2-equal-grid"
gridVariant="uniform-all-items-equal"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={true}

View File

@@ -1,51 +1,38 @@
"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;
fontWeight?: string | 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: React.FC<SvgTextLogoProps> = ({
text,
className = '',
fontSize = 24,
fontWeight = 700,
fill = 'currentColor',
}) => {
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} ${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"
}}
y={fontSize}
fontSize={fontSize}
fontWeight={fontWeight}
fill={fill}
dominantBaseline="middle"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;