Initial commit

This commit is contained in:
DK
2026-02-05 14:34:01 +00:00
commit 46353a9fb2
8 changed files with 1894 additions and 0 deletions

2
.env Normal file
View File

@@ -0,0 +1,2 @@
NEXT_PUBLIC_API_URL=https://dev.api.webild.io
NEXT_PUBLIC_PROJECT_ID=f125c76d-978c-40ca-b224-ceaffec9615f

View 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"

91
src/app/blog/page.tsx Normal file
View File

@@ -0,0 +1,91 @@
"use client";
import ReactLenis from "lenis/react";
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
import FooterBase from '@/components/sections/footer/FooterBase';
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="shift-hover"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="mediumLarge"
sizing="medium"
background="circleGradient"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="glass"
headingFontWeight="light"
>
<ReactLenis root>
<div className="min-h-screen bg-background">
<NavbarStyleCentered
brandName="iPhone Store"
navItems={[
{ name: "Home", id: "/" },
{ name: "Products", id: "products" },
{ name: "Specs", id: "specs" },
{ name: "Reviews", id: "testimonials" },
{ name: "Pricing", id: "pricing" },
{ name: "FAQ", id: "faq" }
]}
button={{ text: "Buy Now", href: "pricing" }}
/>
{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 & Reviews"
description="Stay updated with the latest iPhone insights, reviews, and tech news from our expert team"
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="slide-up"
carouselMode="buttons"
/>
)}
<FooterBase
logoText="iPhone Store"
copyrightText="© 2025 iPhone Store. All rights reserved."
columns={[
{
title: "Shop", items: [
{ label: "iPhone 15 Pro", href: "products" },
{ label: "iPhone 15", href: "products" },
{ label: "iPhone SE", href: "products" },
{ label: "Compare Models", href: "specs" }
]
},
{
title: "Support", items: [
{ label: "Product Specs", href: "specs" },
{ label: "FAQ", href: "faq" },
{ label: "Warranty Info", href: "faq" },
{ label: "Contact Us", href: "contact" }
]
},
{
title: "Company", items: [
{ label: "About Us", href: "https://example.com/about" },
{ label: "Blog", href: "https://example.com/blog" },
{ label: "Careers", href: "https://example.com/careers" },
{ label: "Sustainability", href: "https://example.com/sustainability" }
]
}
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

5
src/app/globals.css Normal file
View File

@@ -0,0 +1,5 @@
@import "tailwindcss";
@import "./styles/variables.css";
@import "./styles/theme.css";
@import "./styles/utilities.css";
@import "./styles/base.css";

1270
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

358
src/app/page.tsx Normal file
View File

@@ -0,0 +1,358 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import HeroBillboardDashboard from '@/components/sections/hero/HeroBillboardDashboard';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FeatureCardSix from '@/components/sections/feature/FeatureCardSix';
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
import PricingCardTwo from '@/components/sections/pricing/PricingCardTwo';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterBase from '@/components/sections/footer/FooterBase';
import { Apple, Camera, Crown, HelpCircle, Heart, Mail, Shield, Smartphone, Sparkles, Star, TrendingUp, Zap } from 'lucide-react';
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="shift-hover"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="mediumLarge"
sizing="medium"
background="circleGradient"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="glass"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarStyleCentered
brandName="iPhone Store"
navItems={[
{ name: "Products", id: "products" },
{ name: "Specs", id: "specs" },
{ name: "Reviews", id: "testimonials" },
{ name: "Pricing", id: "pricing" },
{ name: "FAQ", id: "faq" }
]}
button={{ text: "Buy Now", href: "pricing" }}
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardDashboard
tag="Premium iPhone Selection"
tagIcon={Smartphone}
title="Experience the Future in Your Hand"
description="Discover our curated collection of the latest iPhone models. Premium devices with cutting-edge technology, stunning displays, and exceptional cameras."
buttons={[
{ text: "Shop Now", href: "products" },
{ text: "Learn More", href: "specs" }
]}
background={{ variant: "radial-gradient" }}
dashboard={{
title: "iPhone Selection Hub", logoIcon: Apple,
imageSrc: "https://img.b2bpic.net/free-photo/mockup-mobile-phone-screen_53876-63379.jpg", searchPlaceholder: "Find your perfect iPhone...", buttons: [
{ text: "View All Models", href: "products" },
{ text: "Compare Specs", href: "specs" }
],
sidebarItems: [
{ icon: Smartphone, active: true },
{ icon: Zap },
{ icon: Camera }
],
stats: [
{
title: "Performance", values: ["A18 Pro", "6-core CPU", "GPU Optimized"],
description: "Latest chip technology"
},
{
title: "Camera Quality", values: ["48MP", "ProRAW", "Night Mode"],
description: "Professional-grade imaging"
},
{
title: "Battery Life", values: ["24 Hours", "Super", "Cycle"],
valuePrefix: "", description: "All-day battery with MagSafe"
}
],
chartTitle: "iPhone Sales Trend", chartData: [
{ value: 85 },
{ value: 92 },
{ value: 78 },
{ value: 95 },
{ value: 88 }
],
listTitle: "Top Features", listItems: [
{ icon: Zap, title: "A18 Pro Chip", status: "Latest" },
{ icon: Camera, title: "Advanced Camera System", status: "Pro" },
{ icon: Shield, title: "Enhanced Security", status: "Secure" }
]
}}
/>
</div>
<div id="products" data-section="products">
<ProductCardOne
title="Featured iPhones"
description="Choose from our selection of premium iPhone models, each engineered for excellence."
tag="New Arrivals"
tagIcon={Star}
textboxLayout="default"
useInvertedBackground="noInvert"
products={[
{
id: "1", name: "iPhone 15 Pro Max", price: "$1,199", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-laptop-side-view_1057-4326.jpg"
},
{
id: "2", name: "iPhone 15 Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-device-with-minimalist-monochrome-background_23-2150763338.jpg"
},
{
id: "3", name: "iPhone 15", price: "$799", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-device-with-minimalist-monochrome-background_23-2150763338.jpg"
},
{
id: "4", name: "iPhone SE", price: "$429", imageSrc: "https://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722629.jpg"
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
buttons={[{ text: "Compare Models", href: "specs" }]}
/>
</div>
<div id="specs" data-section="specs">
<FeatureCardSix
title="Why Choose Our iPhones"
description="Discover the key features that make our iPhones stand out from the competition."
tag="Product Features"
tagIcon={Zap}
textboxLayout="default"
useInvertedBackground="invertDefault"
features={[
{
id: 1,
title: "Advanced Camera System", description: "Professional-grade camera with 48MP main sensor, Night mode, and ProRAW support for stunning photography in any condition.", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-laptop-side-view_1057-4326.jpg"
},
{
id: 2,
title: "A18 Pro Chip", description: "Next-generation processor delivering unmatched speed and efficiency. Perfect for gaming, editing, and multitasking.", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-device-with-minimalist-monochrome-background_23-2150763338.jpg"
},
{
id: 3,
title: "All-Day Battery", description: "Up to 24 hours of battery life with new optimization. Stay connected from sunrise to sunrise.", imageSrc: "https://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722629.jpg"
},
{
id: 4,
title: "Stunning Display", description: "Super Retina XDR display with incredible brightness and color accuracy for an immersive visual experience.", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-laptop-side-view_1057-4326.jpg"
}
]}
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardSeven
title="iPhone Excellence by Numbers"
description="Our commitment to quality backed by impressive performance metrics."
tag="Performance Specs"
tagIcon={TrendingUp}
textboxLayout="default"
useInvertedBackground="noInvert"
metrics={[
{
id: "1", value: "48MP", title: "Main Camera Resolution", items: [
"Ultra-wide lens included", "5x optical zoom", "Night mode photography"
]
},
{
id: "2", value: "120Hz", title: "ProMotion Display", items: [
"Smooth scrolling experience", "Gaming-optimized refresh", "Power-efficient technology"
]
},
{
id: "3", value: "6GB", title: "RAM Memory", items: [
"Seamless multitasking", "App switching speed", "Performance optimization"
]
},
{
id: "4", value: "5G", title: "Connectivity Speed", items: [
"Ultra-fast downloads", "Cloud integration", "Streaming quality"
]
}
]
animationType="slide-up"
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardOne
title="What Our Customers Love"
description="Real feedback from satisfied iPhone buyers who trust our selection and service."
tag="Customer Reviews"
tagIcon={Heart}
textboxLayout="default"
useInvertedBackground="invertDefault"
gridVariant="uniform-all-items-equal"
animationType="slide-up"
testimonials={[
{
id: "1", name: "Sarah Chen", role: "Creative Director", company: "Design Studio", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/young-businesswoman-portrait-office_1262-1506.jpg"
},
{
id: "2", name: "Marcus Johnson", role: "Product Manager", company: "Tech Startup", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg"
},
{
id: "3", name: "Elena Rodriguez", role: "Photographer", company: "Visual Arts Co", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/closeup-happy-middle-aged-business-leader_1262-4823.jpg"
},
{
id: "4", name: "David Kim", role: "Software Engineer", company: "Innovation Labs", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-confident-businessman-wearing-glasses_158595-5360.jpg"
}
]}
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardTwo
title="Transparent iPhone Pricing"
description="Choose the perfect iPhone model that fits your budget and lifestyle."
tag="Best Value"
tagIcon={Sparkles}
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="slide-up"
plans={[
{
id: "se", badge: "iPhone SE", badgeIcon: Zap,
price: "$429", subtitle: "Perfect for everyday users", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Learn More", href: "specs" }
],
features: [
"5G connectivity", "A15 Bionic chip", "Single camera system", "Up to 15 hours battery", "64GB storage option"
]
},
{
id: "15", badge: "iPhone 15", badgeIcon: Star,
price: "$799", subtitle: "Great all-around smartphone", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Learn More", href: "specs" }
],
features: [
"5G Ultra Wideband", "A17 Pro chip", "Dual camera system", "Up to 20 hours battery", "256GB storage"
]
},
{
id: "15pro", badge: "iPhone 15 Pro", badgeIcon: Crown,
price: "$999", subtitle: "Professional-grade features", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Learn More", href: "specs" }
],
features: [
"5G Pro Speed", "A18 Pro chip", "48MP main camera", "Up to 24 hours battery", "ProRAW support"
]
},
{
id: "15promax", badge: "iPhone 15 Pro Max", badgeIcon: Zap,
price: "$1,199", subtitle: "Maximum power and capability", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Learn More", href: "specs" }
],
features: [
"5G Elite connectivity", "A18 Pro chip", "5x optical zoom", "Up to 30 hours battery", "1TB storage option"
]
}
]}
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitMedia
title="Frequently Asked Questions"
description="Find answers to common questions about our iPhones, pricing, and services."
tag="Help & Support"
tagIcon={HelpCircle}
textboxLayout="default"
useInvertedBackground="invertDefault"
imageSrc="https://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722646.jpg"
imageAlt="iPhone features and specifications"
mediaPosition="left"
animationType="smooth"
faqs={[
{
id: "1", title: "What is the warranty coverage on your iPhones?", content: "All our iPhones come with Apple's standard one-year limited warranty covering manufacturing defects. We also offer extended AppleCare+ options for up to 3 years of coverage including accidental damage."
},
{
id: "2", title: "Do you offer payment plans?", content: "Yes, we offer flexible payment plans through major credit cards and financing partners. You can spread payments over 12-24 months with competitive interest rates. Contact our sales team for details."
},
{
id: "3", title: "Can I trade in my old iPhone?", content: "Absolutely! We accept trade-ins for any iPhone model. The trade-in value depends on the condition and model year. You'll receive credit towards your new purchase."
},
{
id: "4", title: "What storage capacity should I choose?", content: "Choose based on your usage: 64GB for light users, 128GB for standard use, 256GB for heavy media consumption, and 512GB or 1TB for professionals who shoot ProRAW video and photos."
},
{
id: "5", title: "How long does shipping take?", content: "Standard shipping takes 3-5 business days. We also offer express 1-2 day shipping and same-day delivery in select areas. All orders are fully insured during transit."
},
{
id: "6", title: "Are there student discounts available?", content: "Yes! Students with a valid .edu email receive a 10% discount on all iPhone models. Teachers and education professionals get up to 15% off. Activate your discount at checkout."
}
]}
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
tag="Stay Connected"
tagIcon={Mail}
title="Get the Latest iPhone Updates"
description="Subscribe to our newsletter for exclusive deals, product launches, and tech tips delivered to your inbox."
background={{ variant: "sparkles-gradient" }}
useInvertedBackground="noInvert"
imageSrc="https://img.b2bpic.net/free-photo/join-us-register-newsletter-concept_53876-132697.jpg"
imageAlt="Newsletter subscription"
mediaPosition="right"
inputPlaceholder="your@email.com"
buttonText="Subscribe"
termsText="We respect your privacy. Unsubscribe at any time. By subscribing, you agree to our Terms of Service."
/>
</div>
<div id="footer" data-section="footer">
<FooterBase
logoText="iPhone Store"
copyrightText="© 2025 iPhone Store. All rights reserved."
columns={[
{
title: "Shop", items: [
{ label: "iPhone 15 Pro", href: "products" },
{ label: "iPhone 15", href: "products" },
{ label: "iPhone SE", href: "products" },
{ label: "Compare Models", href: "specs" }
]
},
{
title: "Support", items: [
{ label: "Product Specs", href: "specs" },
{ label: "FAQ", href: "faq" },
{ label: "Warranty Info", href: "faq" },
{ label: "Contact Us", href: "contact" }
]
},
{
title: "Company", items: [
{ label: "About Us", href: "https://example.com/about" },
{ label: "Blog", href: "https://example.com/blog" },
{ label: "Careers", href: "https://example.com/careers" },
{ label: "Sustainability", href: "https://example.com/sustainability" }
]
}
]}
/>
</div>
</ThemeProvider>
);
}

106
src/app/shop/page.tsx Normal file
View File

@@ -0,0 +1,106 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import FooterBase from '@/components/sections/footer/FooterBase';
import { ShoppingBag } from 'lucide-react';
export default function ShopPage() {
const products = [
{
id: "1", brand: "Apple", name: "iPhone 15 Pro Max", price: "$1,199", rating: 5,
reviewCount: "12.5k", imageSrc: "/images/iphone-15-pro-max.jpg", imageAlt: "iPhone 15 Pro Max", onProductClick: () => console.log("Product clicked")
},
{
id: "2", brand: "Apple", name: "iPhone 15 Pro", price: "$999", rating: 5,
reviewCount: "8.9k", imageSrc: "/images/iphone-15-pro.jpg", imageAlt: "iPhone 15 Pro", onProductClick: () => console.log("Product clicked")
},
{
id: "3", brand: "Apple", name: "iPhone 15", price: "$799", rating: 4,
reviewCount: "15.2k", imageSrc: "/images/iphone-15.jpg", imageAlt: "iPhone 15", onProductClick: () => console.log("Product clicked")
},
{
id: "4", brand: "Apple", name: "iPhone 15 Plus", price: "$899", rating: 4,
reviewCount: "6.7k", imageSrc: "/images/iphone-15-plus.jpg", imageAlt: "iPhone 15 Plus", onProductClick: () => console.log("Product clicked")
},
{
id: "5", brand: "Apple", name: "iPhone SE", price: "$429", rating: 4,
reviewCount: "9.1k", imageSrc: "/images/iphone-se.jpg", imageAlt: "iPhone SE", onProductClick: () => console.log("Product clicked")
},
{
id: "6", brand: "Apple", name: "iPhone 14 Pro", price: "$899", rating: 5,
reviewCount: "11.3k", imageSrc: "/images/iphone-14-pro.jpg", imageAlt: "iPhone 14 Pro", onProductClick: () => console.log("Product clicked")
}
];
return (
<ThemeProvider
defaultButtonVariant="shift-hover"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="mediumLarge"
sizing="medium"
background="circleGradient"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="glass"
headingFontWeight="light"
>
<NavbarStyleCentered
brandName="iPhone Store"
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
button={{
text: "Buy Now", href: "/"
}}
/>
<ProductCardTwo
products={products}
title="iPhone Collection"
description="Discover the latest iPhone models with cutting-edge technology and premium design"
tag="Premium Devices"
tagIcon={ShoppingBag}
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
useInvertedBackground="noInvert"
carouselMode="buttons"
/>
<FooterBase
logoText="iPhone Store"
copyrightText="© 2025 iPhone Store. All rights reserved."
columns={[
{
title: "Shop", items: [
{ label: "iPhone 15 Pro", href: "/" },
{ label: "iPhone 15", href: "/" },
{ label: "iPhone SE", href: "/" },
{ label: "Compare Models", href: "/" }
]
},
{
title: "Support", items: [
{ label: "Product Specs", href: "/" },
{ label: "FAQ", href: "/" },
{ label: "Warranty Info", href: "/" },
{ label: "Contact Us", href: "/" }
]
},
{
title: "Company", items: [
{ label: "About Us", href: "/" },
{ label: "Blog", href: "/" },
{ label: "Careers", href: "/" },
{ label: "Sustainability", href: "/" }
]
}
]}
/>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

@@ -0,0 +1,5 @@
{
"installCommand": "npm ci",
"buildCommand": "npm run build",
"outputDirectory": ".next"
}