Merge version_1 into main #2

Merged
bender merged 9 commits from version_1 into main 2026-02-24 16:16:01 +00:00
9 changed files with 166 additions and 267 deletions

View File

@@ -18,7 +18,7 @@ export default function BlogPage() {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"

View File

@@ -15,7 +15,7 @@ export default function ContactPage() {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -45,7 +45,7 @@ export default function ContactPage() {
description="Subscribe to our newsletter for new arrivals, shop news, and special events. Plus, followers get exclusive first access to the best finds."
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
imageSrc="https://img.b2bpic.net/free-photo/summer-objects_23-2147647062.jpg?_wi=2"
imageSrc="https://img.b2bpic.net/free-photo/summer-objects_23-2147647062.jpg"
mediaAnimation="slide-up"
mediaPosition="right"
inputPlaceholder="your.email@example.com"
@@ -65,24 +65,17 @@ export default function ContactPage() {
carouselMode="buttons"
features={[
{
title: "Call or Text",
description: "619-578-2944 for appointments, questions, or quick updates",
bentoComponent: "orbiting-icons",
centerIcon: Phone,
title: "Call or Text", description: "619-578-2944 for appointments, questions, or quick updates", bentoComponent: "orbiting-icons", centerIcon: Phone,
items: [
{ icon: Clock, ring: 1 },
{ icon: MapPin, ring: 2 }
]
},
{
title: "Email Us",
description: "info@laloupevintage.com for detailed inquiries and business matters",
bentoComponent: "globe"
title: "Email Us", description: "info@laloupevintage.com for detailed inquiries and business matters", bentoComponent: "globe"
},
{
title: "Follow on Instagram",
description: "@laloupevintage for daily updates, new arrivals, and behind-the-scenes content",
bentoComponent: "globe"
title: "Follow on Instagram", description: "@laloupevintage for daily updates, new arrivals, and behind-the-scenes content", bentoComponent: "globe"
}
]}
/>
@@ -99,14 +92,10 @@ export default function ContactPage() {
carouselMode="buttons"
features={[
{
title: "Store Location",
description: "3337 Adams Avenue, San Diego, CA 92116 in Normal Heights",
bentoComponent: "globe"
title: "Store Location", description: "3337 Adams Avenue, San Diego, CA 92116 in Normal Heights", bentoComponent: "globe"
},
{
title: "Store Hours",
description: "Open daily 12:00 PM - 7:00 PM, seven days a week",
bentoComponent: "globe"
title: "Store Hours", description: "Open daily 12:00 PM - 7:00 PM, seven days a week", bentoComponent: "globe"
}
]}
/>

View File

@@ -16,7 +16,7 @@ export default function FaqPage() {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -61,21 +61,15 @@ export default function FaqPage() {
features={[
{
id: 1,
title: "What eras do you carry?",
description: "We specialize in late 1960s through 1990s vintage clothing and accessories—everything from groovy 60s to rad 90s vibes.",
imageSrc: "/placeholders/placeholder1.webp?_wi=1"
title: "What eras do you carry?", description: "We specialize in late 1960s through 1990s vintage clothing and accessories—everything from groovy 60s to rad 90s vibes.", imageSrc: "/placeholders/placeholder1.webp"
},
{
id: 2,
title: "Do you buy clothing every day?",
description: "We require appointments to buy—most are booked a week or more in advance. Check our Open Buy Day schedule for no-appointment options.",
imageSrc: "/placeholders/placeholder1.webp?_wi=2"
title: "Do you buy clothing every day?", description: "We require appointments to buy—most are booked a week or more in advance. Check our Open Buy Day schedule for no-appointment options.", imageSrc: "/placeholders/placeholder1.webp"
},
{
id: 3,
title: "Can I walk in to sell?",
description: "Not currently. We don't always have buyers on site. Book an appointment or come to Open Buy Day for selling opportunities.",
imageSrc: "/placeholders/placeholder1.webp?_wi=3"
title: "Can I walk in to sell?", description: "Not currently. We don't always have buyers on site. Book an appointment or come to Open Buy Day for selling opportunities.", imageSrc: "/placeholders/placeholder1.webp"
}
]}
/>
@@ -87,25 +81,13 @@ export default function FaqPage() {
description="Key information about our policies and processes at a glance."
metrics={[
{
id: "1",
value: "40",
title: "Item Limit",
description: "Maximum items per Open Buy Day visit",
icon: Calendar
id: "1", value: "40", title: "Item Limit", description: "Maximum items per Open Buy Day visit", icon: Calendar
},
{
id: "2",
value: "30",
title: "Cash Rate",
description: "Percentage of value paid in cash",
icon: DollarSign
id: "2", value: "30", title: "Cash Rate", description: "Percentage of value paid in cash", icon: DollarSign
},
{
id: "3",
value: "50",
title: "Trade Rate",
description: "Percentage of value given in trade credit",
icon: HelpCircle
id: "3", value: "50", title: "Trade Rate", description: "Percentage of value given in trade credit", icon: HelpCircle
}
]}
gridVariant="uniform-all-items-equal"

View File

@@ -5,37 +5,24 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const ibmPlexSans = IBM_Plex_Sans({
variable: "--font-ibm-plex-sans",
subsets: ["latin"],
variable: "--font-ibm-plex-sans", subsets: ["latin"],
weight: ["100", "200", "300", "400", "500", "600", "700"],
});
export const metadata: Metadata = {
title: "La Loupe Vintage | Late 60s90s Vintage Shop in San Diego",
description: "Curated wearable vintage from the 1960s1990s in San Diego. Shop, sell, or trade at La Loupe Vintage on Adams Ave.",
keywords: "San Diego vintage, Adams Ave vintage, 60s 70s 80s 90s vintage, buy sell trade vintage San Diego, curated vintage denim, vintage clothing, retro fashion",
metadataBase: new URL("https://www.laloupevintage.com"),
title: "La Loupe Vintage | Late 60s90s Vintage Shop in San Diego", description: "Curated wearable vintage from the 1960s1990s in San Diego. Shop, sell, or trade at La Loupe Vintage on Adams Ave.", keywords: "San Diego vintage, Adams Ave vintage, 60s 70s 80s 90s vintage, buy sell trade vintage San Diego, curated vintage denim, vintage clothing, retro fashion", metadataBase: new URL("https://www.laloupevintage.com"),
alternates: {
canonical: "https://www.laloupevintage.com"
},
openGraph: {
title: "La Loupe Vintage | Late 60s90s Vintage Shop in San Diego",
description: "Curated, wearable vintage in San Diego. Shop denim, tees, dresses, and one-of-a-kind pieces from the 60s90s. Buy, sell, or trade.",
url: "https://www.laloupevintage.com",
siteName: "La Loupe Vintage",
type: "website",
images: [
title: "La Loupe Vintage | Late 60s90s Vintage Shop in San Diego", description: "Curated, wearable vintage in San Diego. Shop denim, tees, dresses, and one-of-a-kind pieces from the 60s90s. Buy, sell, or trade.", url: "https://www.laloupevintage.com", siteName: "La Loupe Vintage", type: "website", images: [
{
url: "https://img.b2bpic.net/free-photo/image-dressing-room-with-male-clothes_74855-21545.jpg",
alt: "La Loupe Vintage storefront"
url: "https://img.b2bpic.net/free-photo/image-dressing-room-with-male-clothes_74855-21545.jpg", alt: "La Loupe Vintage storefront"
}
]
},
twitter: {
card: "summary_large_image",
title: "La Loupe Vintage | Late 60s90s Vintage Shop in San Diego",
description: "Curated, wearable vintage in San Diego. Shop, sell, or trade.",
images: ["https://img.b2bpic.net/free-photo/image-dressing-room-with-male-clothes_74855-21545.jpg"]
card: "summary_large_image", title: "La Loupe Vintage | Late 60s90s Vintage Shop in San Diego", description: "Curated, wearable vintage in San Diego. Shop, sell, or trade.", images: ["https://img.b2bpic.net/free-photo/image-dressing-room-with-male-clothes_74855-21545.jpg"]
},
robots: {
index: true,

View File

@@ -20,7 +20,7 @@ export default function HomePage() {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -48,7 +48,7 @@ export default function HomePage() {
description="Curated, wearable vintage in San Diego—denim, tees, dresses, and the kind of pieces you'll actually live in. Swing by our shop on Adams Ave or browse our latest finds online."
tag="Open Daily 12pm7pm"
tagIcon={Clock}
background={{ variant: "aurora" }}
background={{ variant: "glowing-orb" }}
kpis={[
{ value: "60s90s", label: "Eras Curated" },
{ value: "San Diego", label: "Local & Loved" },
@@ -85,25 +85,13 @@ export default function HomePage() {
description="Trusted by vintage lovers and sellers across San Diego"
metrics={[
{
id: "1",
value: "500",
title: "Happy Sellers",
description: "Creators bringing their pieces to life",
icon: Users
id: "1", value: "500", title: "Happy Sellers", description: "Creators bringing their pieces to life", icon: Users
},
{
id: "2",
value: "30",
title: "Cash Payout",
description: "Fair value for your vintage finds",
icon: DollarSign
id: "2", value: "30", title: "Cash Payout", description: "Fair value for your vintage finds", icon: DollarSign
},
{
id: "3",
value: "50",
title: "Trade Credit",
description: "Even better—put it towards new gems",
icon: Zap
id: "3", value: "50", title: "Trade Credit", description: "Even better—put it towards new gems", icon: Zap
}
]}
gridVariant="uniform-all-items-equal"
@@ -124,21 +112,15 @@ export default function HomePage() {
features={[
{
id: 1,
title: "Book an Appointment",
description: "Schedule a time that works for you. We require appointments (one per week max). Most appointments are a week or more in advance. No same-day appointments.",
imageSrc: "https://img.b2bpic.net/free-vector/calendar-template-design_742173-22539.jpg?_wi=1"
title: "Book an Appointment", description: "Schedule a time that works for you. We require appointments (one per week max). Most appointments are a week or more in advance. No same-day appointments.", imageSrc: "https://img.b2bpic.net/free-vector/calendar-template-design_742173-22539.jpg"
},
{
id: 2,
title: "Bring Your Pieces",
description: "Up to 40 items per visit. Bring your best finds—denim, tees, dresses, jackets, anything wearable from the 60s90s. We focus on pieces we know our customers love.",
imageSrc: "https://img.b2bpic.net/free-photo/hand-woven-geometric-denim-area-rug-wooden-floor_169016-48934.jpg?_wi=1"
title: "Bring Your Pieces", description: "Up to 40 items per visit. Bring your best finds—denim, tees, dresses, jackets, anything wearable from the 60s90s. We focus on pieces we know our customers love.", imageSrc: "https://img.b2bpic.net/free-photo/hand-woven-geometric-denim-area-rug-wooden-floor_169016-48934.jpg"
},
{
id: 3,
title: "Get Paid or Trade",
description: "Receive 30% cash value or 50% trade credit toward items in our shop. Quick evaluation, fair pricing, and support for keeping vintage in circulation.",
imageSrc: "https://img.b2bpic.net/free-photo/overhead-shot-person-collecting-donations-church-black-white_181624-42670.jpg?_wi=1"
title: "Get Paid or Trade", description: "Receive 30% cash value or 50% trade credit toward items in our shop. Quick evaluation, fair pricing, and support for keeping vintage in circulation.", imageSrc: "https://img.b2bpic.net/free-photo/overhead-shot-person-collecting-donations-church-black-white_181624-42670.jpg"
}
]}
/>
@@ -155,24 +137,16 @@ export default function HomePage() {
carouselMode="buttons"
features={[
{
title: "Vintage Denim",
description: "Classic cuts and authentic washes from every decade",
bentoComponent: "globe"
title: "Vintage Denim", description: "Classic cuts and authentic washes from every decade", bentoComponent: "globe"
},
{
title: "Graphic Tees",
description: "Band tees, vintage prints, and retro vibes",
bentoComponent: "globe"
title: "Graphic Tees", description: "Band tees, vintage prints, and retro vibes", bentoComponent: "globe"
},
{
title: "Dresses & Skirts",
description: "From mod 60s to 90s slip dresses",
bentoComponent: "globe"
title: "Dresses & Skirts", description: "From mod 60s to 90s slip dresses", bentoComponent: "globe"
},
{
title: "Accessories",
description: "Bags, belts, scarves, and styling pieces",
bentoComponent: "globe"
title: "Accessories", description: "Bags, belts, scarves, and styling pieces", bentoComponent: "globe"
}
]}
/>

View File

@@ -16,7 +16,7 @@ export default function SellWithUsPage() {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -61,21 +61,15 @@ export default function SellWithUsPage() {
features={[
{
id: 1,
title: "Book an Appointment",
description: "Schedule a time that works for you. We require appointments (one per week max). Most appointments are a week or more in advance. No same-day appointments.",
imageSrc: "https://img.b2bpic.net/free-vector/calendar-template-design_742173-22539.jpg?_wi=2"
title: "Book an Appointment", description: "Schedule a time that works for you. We require appointments (one per week max). Most appointments are a week or more in advance. No same-day appointments.", imageSrc: "https://img.b2bpic.net/free-vector/calendar-template-design_742173-22539.jpg"
},
{
id: 2,
title: "Bring Your Pieces",
description: "Up to 40 items per visit. Bring your best finds—denim, tees, dresses, jackets, anything wearable from the 60s90s. We focus on pieces we know our customers love.",
imageSrc: "https://img.b2bpic.net/free-photo/hand-woven-geometric-denim-area-rug-wooden-floor_169016-48934.jpg?_wi=2"
title: "Bring Your Pieces", description: "Up to 40 items per visit. Bring your best finds—denim, tees, dresses, jackets, anything wearable from the 60s90s. We focus on pieces we know our customers love.", imageSrc: "https://img.b2bpic.net/free-photo/hand-woven-geometric-denim-area-rug-wooden-floor_169016-48934.jpg"
},
{
id: 3,
title: "Get Paid or Trade",
description: "Receive 30% cash value or 50% trade credit toward items in our shop. Quick evaluation, fair pricing, and support for keeping vintage in circulation.",
imageSrc: "https://img.b2bpic.net/free-photo/overhead-shot-person-collecting-donations-church-black-white_181624-42670.jpg?_wi=2"
title: "Get Paid or Trade", description: "Receive 30% cash value or 50% trade credit toward items in our shop. Quick evaluation, fair pricing, and support for keeping vintage in circulation.", imageSrc: "https://img.b2bpic.net/free-photo/overhead-shot-person-collecting-donations-church-black-white_181624-42670.jpg"
}
]}
/>
@@ -87,25 +81,13 @@ export default function SellWithUsPage() {
description="We offer competitive rates with flexible payment options to suit your needs."
metrics={[
{
id: "1",
value: "30",
title: "Cash Payout",
description: "Immediate payment for your vintage finds",
icon: DollarSign
id: "1", value: "30", title: "Cash Payout", description: "Immediate payment for your vintage finds", icon: DollarSign
},
{
id: "2",
value: "50",
title: "Trade Credit",
description: "Better value when shopping with us",
icon: Percent
id: "2", value: "50", title: "Trade Credit", description: "Better value when shopping with us", icon: Percent
},
{
id: "3",
value: "40",
title: "Item Limit",
description: "Maximum items per appointment",
icon: Calendar
id: "3", value: "40", title: "Item Limit", description: "Maximum items per appointment", icon: Calendar
}
]}
gridVariant="uniform-all-items-equal"

View File

@@ -83,7 +83,7 @@ function ProductPageContent({ params }: ProductPageProps) {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -132,7 +132,7 @@ function ProductPageContent({ params }: ProductPageProps) {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -188,7 +188,7 @@ function ProductPageContent({ params }: ProductPageProps) {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"

View File

@@ -1,135 +1,127 @@
"use client";
import { Suspense } from "react";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import TextAbout from '@/components/sections/about/TextAbout';
import FeatureBento from '@/components/sections/feature/FeatureBento';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Instagram, Phone, Mail } from 'lucide-react';
import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog";
import { useProductCatalog } from "@/hooks/useProductCatalog";
import { useState } from "react";
function ShopPageContent() {
const {
products,
isLoading,
search,
setSearch,
filters,
} = useProductCatalog({ basePath: "/shop" });
const [cartOpen, setCartOpen] = useState(false);
if (isLoading) {
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="semibold"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "shop" },
{ name: "Sell With Us", id: "sell" },
{ name: "Visit", id: "visit" },
{ name: "FAQ", id: "faq" }
]}
brandName="La Loupe Vintage"
bottomLeftText="San Diego, CA 92116"
bottomRightText="619-578-2944"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<main className="min-h-screen flex items-center justify-center pt-20">
<p className="text-foreground">Loading products...</p>
</main>
<div id="footer" data-section="footer">
<FooterCard
logoText="La Loupe Vintage"
copyrightText="© 2025 La Loupe Vintage | Buy • Sell • Trade — Late 60s90s Vintage"
socialLinks={[
{ icon: Instagram, href: "https://www.instagram.com/laloupevintage/", ariaLabel: "Follow us on Instagram" },
{ icon: Phone, href: "tel:619-578-2944", ariaLabel: "Call us" },
{ icon: Mail, href: "mailto:info@laloupevintage.com", ariaLabel: "Email us" }
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="semibold"
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "shop" },
{ name: "Sell With Us", id: "sell" },
{ name: "Visit", id: "visit" },
{ name: "FAQ", id: "faq" }
]}
brandName="La Loupe Vintage"
bottomLeftText="San Diego, CA 92116"
bottomRightText="619-578-2944"
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<div id="productCatalog" data-section="productCatalog">
<ProductCatalog
layout="page"
products={products}
searchValue={search}
onSearchChange={setSearch}
searchPlaceholder="Search products..."
filters={filters}
emptyMessage="No products found"
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="La Loupe Vintage"
copyrightText="© 2025 La Loupe Vintage | Buy • Sell • Trade — Late 60s90s Vintage"
socialLinks={[
{ icon: Instagram, href: "https://www.instagram.com/laloupevintage/", ariaLabel: "Follow us on Instagram" },
{ icon: Phone, href: "tel:619-578-2944", ariaLabel: "Call us" },
{ icon: Mail, href: "mailto:info@laloupevintage.com", ariaLabel: "Email us" }
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
import { Instagram, Phone, Mail, Package, Zap, Filter } from "lucide-react";
export default function ShopPage() {
return (
<Suspense>
<ShopPageContent />
</Suspense>
);
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="semibold"
>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" },
{ name: "Sell With Us", id: "/sell-with-us" },
{ name: "Visit", id: "/visit" },
{ name: "FAQ", id: "/faq" },
{ name: "Contact", id: "/contact" }
]}
brandName="La Loupe Vintage"
bottomLeftText="San Diego, CA 92116"
bottomRightText="619-578-2944"
/>
</div>
<div id="shop-intro" data-section="shop-intro">
<TextAbout
tag="Shop Vintage"
title="Discover curated vintage pieces from the 60s through 90s. Each item is handpicked for quality, style, and that perfect vintage vibe you've been searching for."
useInvertedBackground={false}
buttons={[
{ text: "Filter & Search", href: "#" },
{ text: "View All Categories", href: "#" }
]}
/>
</div>
<div id="categories" data-section="categories">
<FeatureBento
title="Shop by Category"
description="Browse our carefully organized collections and find exactly what you're looking for."
tag="All Categories"
textboxLayout="default"
animationType="slide-up"
useInvertedBackground={true}
carouselMode="buttons"
features={[
{
title: "Vintage Clothing", description: "Authentic pieces from every era", bentoComponent: "globe"
},
{
title: "Denim Collection", description: "Classic jeans, jackets, and denim pieces", bentoComponent: "orbiting-icons", centerIcon: Package,
items: [
{ icon: Zap, ring: 1 },
{ icon: Filter, ring: 2 }
]
},
{
title: "Tops & Tees", description: "Band tees, vintage blouses, and unique tops", bentoComponent: "globe"
},
{
title: "Dresses & Skirts", description: "From mini to maxi, 60s mod to 90s slip", bentoComponent: "globe"
},
{
title: "Accessories", description: "Bags, belts, scarves, and jewelry", bentoComponent: "globe"
},
{
title: "Gift Cards", description: "Perfect for the vintage lover in your life", bentoComponent: "globe"
}
]}
/>
</div>
<div id="greeting-cards" data-section="greeting-cards">
<FeatureBento
title="Greeting Cards"
description="Unique, quirky greeting cards perfect for any occasion. Each card is $6.00 with special box sets available."
tag="Cards & Gifts"
textboxLayout="default"
animationType="blur-reveal"
useInvertedBackground={false}
carouselMode="buttons"
features={[
{
title: "Sweetest Weirdo", description: "Perfect for that special someone who's wonderfully unique", bentoComponent: "globe"
},
{
title: "Dragon Love", description: "For those who love fantasy and whimsical creatures", bentoComponent: "globe"
},
{
title: "Radical Gnome Box Set", description: "Complete collection of gnome cards for $22.00", bentoComponent: "globe"
},
{
title: "Dancing Queen", description: "Celebrate the disco lover in your life", bentoComponent: "globe"
}
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="La Loupe Vintage"
copyrightText="© 2025 La Loupe Vintage | Buy • Sell • Trade — Late 60s90s Vintage"
socialLinks={[
{ icon: Instagram, href: "https://www.instagram.com/laloupevintage/", ariaLabel: "Follow us on Instagram" },
{ icon: Phone, href: "tel:619-578-2944", ariaLabel: "Call us" },
{ icon: Mail, href: "mailto:info@laloupevintage.com", ariaLabel: "Email us" }
]}
/>
</div>
</ThemeProvider>
);
}

View File

@@ -16,7 +16,7 @@ export default function VisitPage() {
borderRadius="pill"
contentWidth="medium"
sizing="mediumLarge"
background="aurora"
background="circleGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -61,24 +61,17 @@ export default function VisitPage() {
carouselMode="buttons"
features={[
{
title: "Location & Parking",
description: "3337 Adams Avenue in Normal Heights. Street and nearby lot parking available.",
bentoComponent: "orbiting-icons",
centerIcon: MapPin,
title: "Location & Parking", description: "3337 Adams Avenue in Normal Heights. Street and nearby lot parking available.", bentoComponent: "orbiting-icons", centerIcon: MapPin,
items: [
{ icon: Clock, ring: 1 },
{ icon: Phone, ring: 2 }
]
},
{
title: "Store Hours",
description: "Open daily 12:00 PM - 7:00 PM. Consistent hours every day of the week.",
bentoComponent: "globe"
title: "Store Hours", description: "Open daily 12:00 PM - 7:00 PM. Consistent hours every day of the week.", bentoComponent: "globe"
},
{
title: "Contact Info",
description: "Call us at 619-578-2944 or email info@laloupevintage.com",
bentoComponent: "globe"
title: "Contact Info", description: "Call us at 619-578-2944 or email info@laloupevintage.com", bentoComponent: "globe"
}
]}
/>
@@ -92,7 +85,7 @@ export default function VisitPage() {
description="Have questions about specific items, sizing, or want to know what's new? Drop us a line and we'll help you make the most of your visit."
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={false}
imageSrc="https://img.b2bpic.net/free-photo/summer-objects_23-2147647062.jpg?_wi=1"
imageSrc="https://img.b2bpic.net/free-photo/summer-objects_23-2147647062.jpg"
mediaAnimation="slide-up"
mediaPosition="right"
inputPlaceholder="your.email@example.com"