Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-11 03:03:08 +00:00
2 changed files with 35 additions and 46 deletions

View File

@@ -17,7 +17,7 @@ export default function LandingPage() {
borderRadius="pill"
contentWidth="small"
sizing="largeSmallSizeMediumTitles"
background="grid"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="glass"
@@ -40,12 +40,12 @@ export default function LandingPage() {
<HeroBillboardGallery
title="Handcrafted Donuts & Pastries Worth Waking Up For"
description="Fresh every morning. Friendly service. The best donuts in Vegas. We craft premium donuts with unique flavors and signature pastries daily."
background={{ variant: "grid" }}
background={{ variant: "sparkles-gradient" }}
tag="Fresh Daily"
mediaItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg?_wi=1", imageAlt: "Colorful assorted fresh donuts" },
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg", imageAlt: "Colorful assorted fresh donuts" },
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-shot-person-holding-tray-with-freshly-baked-round-cookies_181624-57599.jpg", imageAlt: "Buttery croissants and pastries" },
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg?_wi=1", imageAlt: "Specialty gourmet donuts" }
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg", imageAlt: "Specialty gourmet donuts" }
]}
buttons={[
{ text: "View Our Menu", href: "#menu" },
@@ -91,7 +91,7 @@ export default function LandingPage() {
},
{
id: "specialty", brand: "Specialty Crafted", name: "Sea Salt Caramel", price: "$3.50", rating: 5,
reviewCount: "750+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg?_wi=2", imageAlt: "Artisan sea salt caramel donut"
reviewCount: "750+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cookies-with-candies-light-blue-desk-cookie-biscuit-sweet-sugar-color_140725-55989.jpg", imageAlt: "Artisan sea salt caramel donut"
},
{
id: "pastries", brand: "Pastry Selection", name: "Chocolate Croissant", price: "$4.00", rating: 5,
@@ -121,7 +121,7 @@ export default function LandingPage() {
},
{
id: "variety", title: "Huge Selection", author: "Always Expanding", description: "From classic glazed to unique specialty flavors like Sea Salt Caramel and Dubai Chocolate. We rotate seasonal favorites and take custom requests.", tags: ["Variety", "Selection"],
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg?_wi=1", imageAlt: "Display case with variety of donuts and pastries"
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg", imageAlt: "Display case with variety of donuts and pastries"
},
{
id: "service", title: "Friendly Staff", author: "Customer First", description: "Our team is trained to be fast, welcoming, and helpful. We remember regulars and treat every customer like family.", tags: ["Service", "Friendly"],
@@ -129,7 +129,7 @@ export default function LandingPage() {
},
{
id: "value", title: "Affordable Dozens", author: "Great Pricing", description: "Get a full box of a dozen donuts at competitive prices. Perfect for office meetings, parties, or treating your family.", tags: ["Bulk", "Deals"],
imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg?_wi=2", imageAlt: "Box of fresh donuts ready to take home"
imageSrc: "http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg", imageAlt: "Box of fresh donuts ready to take home"
}
]}
/>
@@ -145,7 +145,7 @@ export default function LandingPage() {
features={[
{
id: "counter", title: "Premium Display Case", author: "Always Stocked", description: "Our signature counter showcases fresh donuts, croissants, and pastries. Stop by anytime—morning to evening.", tags: ["Display", "Fresh"],
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg?_wi=2", imageAlt: "Glass display case with fresh pastries"
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273243.jpg", imageAlt: "Glass display case with fresh pastries"
},
{
id: "space", title: "Comfortable Shop", author: "Neighborhood Favorite", description: "Warm, inviting space with friendly vibes. Great for morning coffee runs or sitting down with a fresh donut and friends.", tags: ["Space", "Welcoming"],
@@ -170,7 +170,7 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg?_wi=3"
imageSrc="http://img.b2bpic.net/free-photo/top-view-glazed-donuts_23-2148628311.jpg"
imageAlt="Dee's Donuts display of fresh pastries"
logoText="Dee's Donuts & Pastry"
copyrightText="© 2025 Dee's Donuts & Pastry. Las Vegas' favorite neighborhood bakery."

View File

@@ -1,51 +1,40 @@
"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;
letterSpacing?: number;
dominantBaseline?: 'auto' | 'text-top' | 'hanging' | 'mathematical' | 'central' | 'middle' | 'text-bottom' | 'ideographic' | 'alphabetic';
}
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,
letterSpacing = 0,
dominantBaseline = 'middle',
}) => {
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 * 2}`}
className={`w-full h-auto ${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={dominantBaseline}
fontSize={fontSize}
letterSpacing={letterSpacing}
fill="currentColor"
className="font-bold"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;