Initial commit
This commit is contained in:
2
.env
Normal file
2
.env
Normal file
@@ -0,0 +1,2 @@
|
||||
NEXT_PUBLIC_API_URL=undefined
|
||||
NEXT_PUBLIC_PROJECT_ID=0bfe2bef-9453-4b5e-a132-1e16263257b8
|
||||
57
.gitea/workflows/build.yml
Normal file
57
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
name: Code Check
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
branch:
|
||||
description: 'Branch to check'
|
||||
required: true
|
||||
default: 'main'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
|
||||
steps:
|
||||
- name: Checkout branch
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ gitea.event.inputs.branch }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm ci --prefer-offline --no-audit 2>&1 | tee install.log
|
||||
env:
|
||||
NODE_OPTIONS: '--max-old-space-size=4096'
|
||||
|
||||
- name: TypeScript check
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm run typecheck 2>&1 | tee build.log
|
||||
|
||||
- name: ESLint check
|
||||
run: |
|
||||
set -euo pipefail
|
||||
npm run lint 2>&1 | tee build.log
|
||||
|
||||
- name: Upload build log on failure
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: build-log
|
||||
path: build.log
|
||||
if-no-files-found: ignore
|
||||
|
||||
- name: Check completed
|
||||
if: success()
|
||||
run: echo "Typecheck and lint passed successfully"
|
||||
98
src/app/blog/page.tsx
Normal file
98
src/app/blog/page.tsx
Normal file
@@ -0,0 +1,98 @@
|
||||
"use client";
|
||||
|
||||
import ReactLenis from "lenis/react";
|
||||
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||
import { useBlogPosts } from "@/hooks/useBlogPosts";
|
||||
|
||||
export default function BlogPage() {
|
||||
const { posts, isLoading } = useBlogPosts();
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="elastic-effect"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="pill"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="mediumLarge"
|
||||
background="none"
|
||||
cardStyle="gradient-radial"
|
||||
primaryButtonStyle="primary-glow"
|
||||
secondaryButtonStyle="layered"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div className="min-h-screen bg-background">
|
||||
<NavbarStyleCentered
|
||||
brandName="iPhone"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Products", id: "products" },
|
||||
{ name: "Features", id: "features" },
|
||||
{ name: "Reviews", id: "reviews" },
|
||||
{ name: "Specs", id: "specs" },
|
||||
{ name: "Support", id: "contact" }
|
||||
]}
|
||||
button={{ text: "Buy Now", href: "products" }}
|
||||
/>
|
||||
|
||||
{isLoading ? (
|
||||
<div className="w-content-width mx-auto py-20 text-center">
|
||||
<p className="text-foreground">Loading posts...</p>
|
||||
</div>
|
||||
) : (
|
||||
<BlogCardTwo
|
||||
blogs={posts}
|
||||
title="Latest iPhone News"
|
||||
description="Stay updated with the latest iPhone news, tips, and reviews"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
carouselMode="buttons"
|
||||
animationType="slide-up"
|
||||
/>
|
||||
)}
|
||||
|
||||
<FooterLogoEmphasis
|
||||
logoText="iPhone"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "Shop", href: "products" },
|
||||
{ label: "Mac", href: "#" },
|
||||
{ label: "iPad", href: "#" },
|
||||
{ label: "Apple Watch", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Support", href: "contact" },
|
||||
{ label: "AppleCare", href: "#" },
|
||||
{ label: "Service", href: "#" },
|
||||
{ label: "Repair", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "About", href: "#" },
|
||||
{ label: "Careers", href: "#" },
|
||||
{ label: "Press", href: "#" },
|
||||
{ label: "Contact", href: "contact" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Privacy", href: "#" },
|
||||
{ label: "Legal", href: "#" },
|
||||
{ label: "Terms", href: "#" },
|
||||
{ label: "Cookies", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
5
src/app/globals.css
Normal file
5
src/app/globals.css
Normal file
@@ -0,0 +1,5 @@
|
||||
@import "tailwindcss";
|
||||
@import "./styles/variables.css";
|
||||
@import "./styles/theme.css";
|
||||
@import "./styles/utilities.css";
|
||||
@import "./styles/base.css";
|
||||
1267
src/app/layout.tsx
Normal file
1267
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
338
src/app/page.tsx
Normal file
338
src/app/page.tsx
Normal file
@@ -0,0 +1,338 @@
|
||||
"use client"
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||
import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';
|
||||
import ProductCardFour from '@/components/sections/product/ProductCardFour';
|
||||
import FeatureCardTwentyFive from '@/components/sections/feature/FeatureCardTwentyFive';
|
||||
import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
|
||||
import PricingCardTwo from '@/components/sections/pricing/PricingCardTwo';
|
||||
import TestimonialCardThirteen from '@/components/sections/testimonial/TestimonialCardThirteen';
|
||||
import ContactFaq from '@/components/sections/contact/ContactFaq';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { Award, Battery, Camera, Crown, Heart, Package, Phone, Quote, Shield, Smartphone, Sparkles, Star, TrendingUp, Users, Zap } from 'lucide-react';
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="elastic-effect"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="pill"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="mediumLarge"
|
||||
background="none"
|
||||
cardStyle="gradient-radial"
|
||||
primaryButtonStyle="primary-glow"
|
||||
secondaryButtonStyle="layered"
|
||||
headingFontWeight="light"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
navItems={[
|
||||
{ name: "Products", id: "products" },
|
||||
{ name: "Features", id: "features" },
|
||||
{ name: "Reviews", id: "reviews" },
|
||||
{ name: "Specs", id: "specs" },
|
||||
{ name: "Support", id: "contact" }
|
||||
]}
|
||||
button={{ text: "Buy Now", href: "products" }}
|
||||
brandName="iPhone"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardGallery
|
||||
background={{ variant: "plain" }}
|
||||
title="The Ultimate iPhone Experience"
|
||||
description="Discover the latest iPhone technology with stunning cameras, powerful performance, and all-day battery life."
|
||||
tag="New Releases"
|
||||
tagIcon={Sparkles}
|
||||
mediaItems={[
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/pack-three-mobiles-with-elegant-colored-wallpapers_23-2147667014.jpg", imageAlt: "iPhone Pro Max in titanium"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/abstract-mobile-wallpapers-pack_23-2147658285.jpg", imageAlt: "iPhone Pro showing advanced camera system"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/colorful-defocused-mobile-wallpapers_23-2147658286.jpg", imageAlt: "iPhone Pro Max display"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/pack-three-unfocused-mobile-wallpapers_23-2147659772.jpg", imageAlt: "iPhone SE compact design"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-vector/pack-three-mobiles-with-elegant-colored-wallpapers_23-2147667014.jpg", imageAlt: "iPhone with ceramic shield protection"
|
||||
}
|
||||
]}
|
||||
buttons={[
|
||||
{ text: "Shop Now", href: "products" },
|
||||
{ text: "Learn More", href: "features" }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<ProductCardFour
|
||||
title="Our iPhone Collection"
|
||||
description="Premium smartphones designed for every need and budget"
|
||||
tag="Latest Models"
|
||||
tagIcon={Package}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="invertDefault"
|
||||
animationType="slide-up"
|
||||
gridVariant="uniform-all-items-equal"
|
||||
products={[
|
||||
{
|
||||
id: "iphone-15-pro", name: "iPhone 15 Pro", price: "$999", variant: "Titanium | 5 Colors", imageSrc: "https://img.b2bpic.net/free-vector/abstract-mobile-wallpapers-pack_23-2147658285.jpg", imageAlt: "iPhone 15 Pro"
|
||||
},
|
||||
{
|
||||
id: "iphone-15-pro-max", name: "iPhone 15 Pro Max", price: "$1,099", variant: "Titanium | 5 Colors", imageSrc: "https://img.b2bpic.net/free-vector/colorful-defocused-mobile-wallpapers_23-2147658286.jpg", imageAlt: "iPhone 15 Pro Max"
|
||||
},
|
||||
{
|
||||
id: "iphone-15", name: "iPhone 15", price: "$799", variant: "Multiple Colors | 6 Options", imageSrc: "https://img.b2bpic.net/free-vector/pack-three-mobiles-with-elegant-colored-wallpapers_23-2147667014.jpg", imageAlt: "iPhone 15"
|
||||
},
|
||||
{
|
||||
id: "iphone-se", name: "iPhone SE", price: "$429", variant: "Classic Design | 3 Colors", imageSrc: "https://img.b2bpic.net/free-vector/pack-three-unfocused-mobile-wallpapers_23-2147659772.jpg", imageAlt: "iPhone SE"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<FeatureCardTwentyFive
|
||||
title="Cutting-Edge Features"
|
||||
description="Experience revolutionary technology in every interaction"
|
||||
tag="Technology"
|
||||
tagIcon={Zap}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
animationType="depth-3d"
|
||||
features={[
|
||||
{
|
||||
title: "Pro Camera System", description: "Capture stunning photos and videos with our advanced computational photography", icon: Camera,
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg", imageAlt: "Camera system technology"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg", imageAlt: "Low light photography capability"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Super Retina XDR Display", description: "Brilliant, vibrant colors with exceptional brightness and contrast", icon: Smartphone,
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-using-smartphone-with-pop-socket-outdoors_23-2150168486.jpg", imageAlt: "OLED display technology"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-using-smartphone-with-pop-socket-outdoors_23-2150168486.jpg", imageAlt: "High refresh rate performance"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "All-Day Battery Life", description: "Stay connected with industry-leading battery performance and fast charging", icon: Battery,
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/close-up-hands-taking-coffee-photos_23-2149294500.jpg", imageAlt: "Battery efficiency"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/close-up-hands-taking-coffee-photos_23-2149294500.jpg", imageAlt: "Wireless charging capability"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Premium Design", description: "Crafted with surgical-grade stainless steel and durable materials", icon: Award,
|
||||
mediaItems: [
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/senior-woman-traveling-areound-world_23-2149172097.jpg", imageAlt: "Premium materials"
|
||||
},
|
||||
{
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/senior-woman-traveling-areound-world_23-2149172097.jpg", imageAlt: "Ceramic shield protection"
|
||||
}
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricCardOne
|
||||
title="Why Choose iPhone"
|
||||
description="Industry-leading performance and customer satisfaction"
|
||||
tag="Statistics"
|
||||
tagIcon={TrendingUp}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="invertDefault"
|
||||
animationType="slide-up"
|
||||
gridVariant="uniform-all-items-equal"
|
||||
metrics={[
|
||||
{
|
||||
id: "1", value: "98%", title: "satisfaction", description: "Customer satisfaction rating", icon: Heart
|
||||
},
|
||||
{
|
||||
id: "2", value: "2B+", title: "users", description: "Active iPhone users worldwide", icon: Users
|
||||
},
|
||||
{
|
||||
id: "3", value: "10+", title: "years", description: "Software update support", icon: Shield
|
||||
},
|
||||
{
|
||||
id: "4", value: "#1", title: "rated", description: "Most trusted smartphone brand", icon: Star
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="specs" data-section="specs">
|
||||
<PricingCardTwo
|
||||
title="Choose Your Perfect Model"
|
||||
description="Find the iPhone that fits your lifestyle and budget"
|
||||
tag="Specifications"
|
||||
tagIcon={Smartphone}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
animationType="slide-up"
|
||||
plans={[
|
||||
{
|
||||
id: "1", badge: "iPhone 15 Pro Max", badgeIcon: Crown,
|
||||
price: "$1,099", subtitle: "The ultimate flagship experience", buttons: [
|
||||
{ text: "Buy Now", href: "contact" },
|
||||
{ text: "Compare", href: "contact" }
|
||||
],
|
||||
features: [
|
||||
"6.7-inch Super Retina XDR display", "Advanced Pro camera system", "A17 Pro chip with 8GB RAM", "Titanium design with ceramic shield", "All-day battery + fast charging", "Emergency SOS via satellite"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "2", badge: "iPhone 15 Pro", badgeIcon: Zap,
|
||||
price: "$999", subtitle: "Professional performance and power", buttons: [
|
||||
{ text: "Buy Now", href: "contact" },
|
||||
{ text: "Compare", href: "contact" }
|
||||
],
|
||||
features: [
|
||||
"6.1-inch Super Retina XDR display", "Pro camera system", "A17 Pro chip with 8GB RAM", "Titanium design with ceramic shield", "All-day battery + fast charging", "Advanced LiDAR scanner"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "3", badge: "iPhone 15", badgeIcon: Sparkles,
|
||||
price: "$799", subtitle: "Powerful and vibrant", buttons: [
|
||||
{ text: "Buy Now", href: "contact" },
|
||||
{ text: "Compare", href: "contact" }
|
||||
],
|
||||
features: [
|
||||
"6.1-inch Liquid Retina display", "Dual camera system", "A16 Bionic chip with 6GB RAM", "Aluminum design with glass back", "All-day battery + fast charging", "Dynamic Island"
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="reviews" data-section="reviews">
|
||||
<TestimonialCardThirteen
|
||||
title="What Customers Love"
|
||||
description="Real reviews from iPhone users around the world"
|
||||
tag="Reviews"
|
||||
tagIcon={Quote}
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="invertDefault"
|
||||
animationType="slide-up"
|
||||
showRating={true}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Chen", handle: "@sarahtech", testimonial: "The camera quality is absolutely incredible. Night mode photos look like they're taken in daylight. Best upgrade I've made.", rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg", imageAlt: "Sarah Chen"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Marcus Johnson", handle: "@techreviewer", testimonial: "Battery life easily gets me through a full day of heavy use. The performance is lightning-fast and smooth.", rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-face-portrait-wearing-suit_53876-148135.jpg", imageAlt: "Marcus Johnson"
|
||||
},
|
||||
{
|
||||
id: "3", name: "Elena Rodriguez", handle: "@designlover", testimonial: "The design is stunning. The titanium finish feels premium and durable. Worth every penny.", rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg", imageAlt: "Elena Rodriguez"
|
||||
},
|
||||
{
|
||||
id: "4", name: "David Kim", handle: "@videographer", testimonial: "ProRes video recording changed my mobile filmmaking workflow. The stabilization is exceptional.", rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/happy-businessman-smiling-camera_1163-4660.jpg", imageAlt: "David Kim"
|
||||
},
|
||||
{
|
||||
id: "5", name: "Jessica Williams", handle: "@appledeveloper", testimonial: "As a developer, the A17 Pro chip handles everything I throw at it. Apps launch instantly and multitasking is seamless.", rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/close-up-portrait-caucasian-unshaved-man-eyeglasses-looking-camera-with-sincere-smile-isolated-gray_171337-630.jpg", imageAlt: "Jessica Williams"
|
||||
},
|
||||
{
|
||||
id: "6", name: "Thomas Brown", handle: "@mobilegamer", testimonial: "Gaming performance is unmatched. Frame rates stay consistent even in demanding games with maxed-out graphics.", rating: 5,
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/portrait-business-woman-office_1398-6.jpg", imageAlt: "Thomas Brown"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactFaq
|
||||
ctaTitle="Ready to upgrade?"
|
||||
ctaDescription="Get expert advice and find the perfect iPhone for your needs. Contact our sales team today."
|
||||
ctaButton={{ text: "Start Shopping", href: "products" }}
|
||||
ctaIcon={Phone}
|
||||
useInvertedBackground="noInvert"
|
||||
animationType="slide-up"
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "What's the difference between iPhone 15 Pro and Pro Max?", content: "The main differences are screen size (6.1\" vs 6.7\"), battery capacity, and camera zoom capabilities. The Pro Max offers enhanced battery life and superior optical zoom performance. Both share the same powerful A17 Pro chip and advanced camera system."
|
||||
},
|
||||
{
|
||||
id: "2", title: "How long do iPhones typically last?", content: "iPhones are designed to last many years with proper care. Apple provides up to 10+ years of software updates, ensuring your device remains secure and feature-rich. Battery health gradually decreases over time but can be replaced."
|
||||
},
|
||||
{
|
||||
id: "3", title: "Do iPhones come with a charger?", content: "Recent iPhone models do not include a charger in the box, but they're compatible with any USB-C charger. Fast charging requires a 20W or higher USB-C power adapter, sold separately or available as add-ons."
|
||||
},
|
||||
{
|
||||
id: "4", title: "Is AppleCare+ worth it?", content: "AppleCare+ provides two years of hardware coverage, accidental damage protection, and priority support. It's recommended if you want comprehensive protection against drops, water damage, and hardware failures beyond the standard warranty."
|
||||
},
|
||||
{
|
||||
id: "5", title: "Can I trade in my old iPhone?", content: "Yes! Apple offers trade-in programs where you can get instant credit toward a new iPhone. The credit value depends on your device's condition and model. You can also recycle old devices responsibly."
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
logoText="iPhone"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "Shop", href: "products" },
|
||||
{ label: "Mac", href: "#" },
|
||||
{ label: "iPad", href: "#" },
|
||||
{ label: "Apple Watch", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Support", href: "contact" },
|
||||
{ label: "AppleCare", href: "#" },
|
||||
{ label: "Service", href: "#" },
|
||||
{ label: "Repair", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "About", href: "#" },
|
||||
{ label: "Careers", href: "#" },
|
||||
{ label: "Press", href: "#" },
|
||||
{ label: "Contact", href: "contact" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Privacy", href: "#" },
|
||||
{ label: "Legal", href: "#" },
|
||||
{ label: "Terms", href: "#" },
|
||||
{ label: "Cookies", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
5
vercel.json
Normal file
5
vercel.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"installCommand": "npm ci",
|
||||
"buildCommand": "npm run build",
|
||||
"outputDirectory": ".next"
|
||||
}
|
||||
Reference in New Issue
Block a user