Files
2d2c9d66-70a0-4ea4-900e-555…/src/app/page.tsx
2026-05-23 21:31:50 +00:00

328 lines
10 KiB
TypeScript

"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FaqSplitText from '@/components/sections/faq/FaqSplitText';
import FeatureBorderGlow from '@/components/sections/feature/featureBorderGlow/FeatureBorderGlow';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import HeroOverlayTestimonial from '@/components/sections/hero/HeroOverlayTestimonial';
import MetricCardThree from '@/components/sections/metrics/MetricCardThree';
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import SplitAbout from '@/components/sections/about/SplitAbout';
import { Award, Fish, Flame, Leaf, MapPin, ShoppingBag, Users } from "lucide-react";
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="small"
sizing="mediumSizeLargeTitles"
background="floatingGradient"
cardStyle="glass-elevated"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{
name: "Home",
id: "hero",
},
{
name: "Products",
id: "categories",
},
{
name: "About",
id: "experience",
},
{
name: "Contact",
id: "contact",
},
]}
brandName="New Spiceland"
/>
</div>
<div id="hero" data-section="hero">
<HeroOverlayTestimonial
title="Where Authentic Flavors Meet Everyday Freshness"
description="Premium Indian & Sri Lankan groceries, fresh produce, spices, and seafood — all in one place."
testimonials={[
{
name: "Sarah Johnson",
handle: "@sarahj",
testimonial: "Wide selection of Indian & Sri Lankan groceries… excellent customer service",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-women-doing-groceries_23-2149284867.jpg",
},
{
name: "Michael Chen",
handle: "@mchen",
testimonial: "Best place for spices… always helpful and nice",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-young-woman-shopping-food_23-2149187348.jpg",
},
{
name: "Emily Rodriguez",
handle: "@emilyr",
testimonial: "Affordable, high-quality, fresh fish and vegetables",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/cute-little-girl-supermarket_1157-21969.jpg",
},
{
name: "David Kim",
handle: "@davidk",
testimonial: "Fresh, authentic flavors and the staff feels like family",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/couple-looking-inside-paper-bag-with-groceries_23-2148114194.jpg",
},
{
name: "Priya Sharma",
handle: "@priyas",
testimonial: "Everything I need in one trip, the quality is unmatched",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/handsome-young-man-shopping-salesman-stretching-out-orange-shopping-bag-client-looking-aside-stan_1258-152518.jpg",
},
]}
buttons={[
{
text: "Explore Products",
href: "#categories",
},
{
text: "Visit Us Today",
href: "#contact",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/assorted-spices-kitchen-table_114579-6286.jpg"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/close-up-women-doing-their-groceries_23-2149284866.jpg",
alt: "Close up on women doing their groceries",
},
{
src: "http://img.b2bpic.net/free-photo/young-women-traveling-by-bike_23-2149284877.jpg",
alt: "Young women traveling by bike",
},
{
src: "http://img.b2bpic.net/free-photo/close-up-young-women-doing-groceries_23-2149284863.jpg",
alt: "Close up on young women doing groceries",
},
{
src: "http://img.b2bpic.net/free-photo/two-men-drinking-homemade-wine-women-taking-photos_482257-77533.jpg",
alt: "Two men drinking homemade wine and women taking photos",
},
{
src: "http://img.b2bpic.net/free-photo/young-woman-chooses-fruits-supermarket_169016-19497.jpg",
alt: "A young woman chooses fruits in a supermarket",
},
]}
avatarText="Join our community of happy local shoppers"
/>
</div>
<div id="categories" data-section="categories">
<FeatureBorderGlow
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
features={[
{
icon: Leaf,
title: "Fresh Produce",
description: "Farm-fresh vegetables and fruits delivered daily for your kitchen.",
},
{
icon: Flame,
title: "Premium Spices",
description: "Authentic, fragrant spices imported directly to bring depth to your curries.",
},
{
icon: Fish,
title: "Fresh Seafood",
description: "High-quality, cleaned fresh fish and meat sourced for quality.",
},
{
icon: ShoppingBag,
title: "Snacks & Essentials",
description: "A curated variety of traditional snacks and pantry staples you know and love.",
},
]}
title="Explore Our Signature Categories"
description="Hand-picked essentials, brought to you with the freshness of home."
/>
</div>
<div id="value-props" data-section="value-props">
<SplitAbout
textboxLayout="split"
useInvertedBackground={true}
title="Why Choose New Spiceland?"
description="We believe groceries should be more than just errands—they should be a celebration of your culture and your kitchen."
bulletPoints={[
{
title: "Authentic Variety",
description: "Hard-to-find ingredients curated from India and Sri Lanka.",
},
{
title: "Uncompromised Freshness",
description: "Quality assurance across all fresh produce and seafood categories.",
},
{
title: "Expert Friendly Staff",
description: "Always ready to help you find that perfect spice or ingredient.",
},
]}
mediaAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/fresh-organic-vegetables-wooden-boards-background-top-view-healthy-food-concept_613910-6220.jpg"
imageAlt="fresh organic vegetables market display"
/>
</div>
<div id="experience" data-section="experience">
<MetricCardThree
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
metrics={[
{
id: "m1",
icon: MapPin,
title: "Our Location",
value: "5790SheppardAve E.",
},
{
id: "m2",
icon: Award,
title: "Authentic Brands",
value: "200+",
},
{
id: "m3",
icon: Users,
title: "Happy Families",
value: "5k+",
},
]}
title="Not Just a Store — A Cultural Experience"
description="More than shelves and aisles, we aim to recreate the feeling of a vibrant home market."
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitText
useInvertedBackground={true}
faqs={[
{
id: "f1",
title: "Do you deliver?",
content: "Yes, we offer local delivery options for our grocery customers.",
},
{
id: "f2",
title: "What are the store hours?",
content: "We are open daily from 8:00 AM to 9:00 PM.",
},
{
id: "f3",
title: "Are your ingredients authentic?",
content: "Absolutely. We pride ourselves on sourcing products directly from India and Sri Lanka.",
},
]}
sideTitle="Common Questions"
sideDescription="Need help finding an item or checking store hours? Here are the answers."
faqsAnimation="slide-up"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={false}
title="Visit New Spiceland Today"
description="Located in the heart of your neighborhood. Stop by for the freshest ingredients in town."
inputs={[
{
name: "name",
type: "text",
placeholder: "Your Name",
},
{
name: "email",
type: "email",
placeholder: "Your Email",
},
]}
textarea={{
name: "message",
placeholder: "Questions or specific requests?",
rows: 4,
}}
imageSrc="http://img.b2bpic.net/free-photo/farmer-delivers-organic-food-bio-shop_482257-76483.jpg"
imageAlt="warm welcoming grocery store entrance"
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="New Spiceland"
columns={[
{
title: "Shop",
items: [
{
label: "Produce",
href: "#categories",
},
{
label: "Spices",
href: "#categories",
},
{
label: "Seafood",
href: "#categories",
},
],
},
{
title: "Company",
items: [
{
label: "About Us",
href: "#experience",
},
{
label: "Contact",
href: "#contact",
},
],
},
{
title: "Legal",
items: [
{
label: "Privacy Policy",
href: "#",
},
{
label: "Terms of Use",
href: "#",
},
],
},
]}
copyrightText="© 2024 New Spiceland Super Market. All rights reserved."
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}