Initial commit

This commit is contained in:
2026-02-05 15:58:07 +02:00
commit 2d2fef5bc8
7 changed files with 1729 additions and 0 deletions

2
.env Normal file
View File

@@ -0,0 +1,2 @@
NEXT_PUBLIC_API_URL=undefined
NEXT_PUBLIC_PROJECT_ID=7f255730-9211-4e00-8d87-439077e37402

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 BlogCardThree from '@/components/sections/blog/BlogCardThree';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import { useBlogPosts } from "@/hooks/useBlogPosts";
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="smallMedium"
sizing="mediumSizeLargeTitles"
background="aurora"
cardStyle="outline"
primaryButtonStyle="shadow"
secondaryButtonStyle="layered"
headingFontWeight="normal"
>
<ReactLenis root>
<div className="min-h-screen bg-background">
<NavbarLayoutFloatingInline
brandName="iPhone Store"
navItems={[
{ name: "Home", id: "/" },
{ name: "Models", id: "products" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
{ name: "Contact", id: "contact" }
]}
button={{ text: "Shop Now", href: "#products" }}
/>
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center">
<p className="text-foreground">Loading posts...</p>
</div>
) : (
<BlogCardThree
blogs={posts}
title="Latest iPhone News"
description="Stay updated with the latest iPhone features, updates, and insights from our team"
tag="Blog"
textboxLayout="default"
useInvertedBackground="noInvert"
carouselMode="buttons"
animationType="slide-up"
uniformGridCustomHeightClasses="min-h-[600px]"
/>
)}
<FooterBaseReveal
columns={[
{
title: "Shop", items: [
{ label: "iPhone Models", href: "products" },
{ label: "Accessories", href: "#" },
{ label: "Trade-In", href: "#" },
{ label: "Financing", href: "#" }
]
},
{
title: "Support", items: [
{ label: "Help & Support", href: "#" },
{ label: "Warranty", href: "#" },
{ label: "Contact Us", href: "contact" },
{ label: "Status", href: "#" }
]
},
{
title: "Company", items: [
{ label: "About Us", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Privacy", href: "#" },
{ label: "Terms", href: "#" }
]
}
]}
copyrightText="© 2025 iPhone Store. All rights reserved."
/>
</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";

1264
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

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

@@ -0,0 +1,305 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import HeroSignup from '@/components/sections/hero/HeroSignup';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FeatureCardTwelve from '@/components/sections/feature/FeatureCardTwelve';
import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import { Bell, Crown, DollarSign, Heart, Smartphone, Sparkles, Star, TrendingUp, Zap } from "lucide-react";
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="smallMedium"
sizing="mediumSizeLargeTitles"
background="aurora"
cardStyle="outline"
primaryButtonStyle="shadow"
secondaryButtonStyle="layered"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="iPhone Store"
navItems={[
{ name: "Models", id: "products" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
{ name: "Contact", id: "contact" }
]}
button={{
text: "Shop Now", href: "#products"
}}
/>
</div>
<div id="hero" data-section="hero">
<HeroSignup
title="Experience Innovation in Your Hand"
description="Discover the latest iPhone models with cutting-edge technology, stunning displays, and revolutionary cameras. Pre-order now and be among the first to experience the future."
tag="Latest Release"
tagIcon={Sparkles}
background={{ variant: "sparkles-gradient" }}
inputPlaceholder="Enter your email"
buttonText="Get Notified"
/>
</div>
<div id="products" data-section="products">
<ProductCardOne
title="Our Latest iPhone Models"
description="Explore our premium collection of the newest iPhone models, each engineered for performance and elegance."
tag="Featured Models"
tagIcon={Smartphone}
products={[
{
id: "1", name: "iPhone 15", price: "$799", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33087.jpg", imageAlt: "iPhone 15 smartphone"
},
{
id: "2", name: "iPhone 15 Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-psd/smartphone-16-pro-discount-sale-banner-social-media-design-template_47987-25305.jpg", imageAlt: "iPhone 15 Pro with titanium design"
},
{
id: "3", name: "iPhone 14", price: "$699", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-story-design-template_47987-33775.jpg", imageAlt: "iPhone 14 smartphone"
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="invertDefault"
/>
</div>
<div id="features" data-section="features">
<FeatureCardTwelve
title="Why Choose iPhone?"
description="Superior technology meets elegant design in every detail"
tag="Premium Features"
tagIcon={Zap}
features={[
{
id: "display", label: "Display", title: "Stunning Visual Experience", items: [
"Super Retina XDR technology", "Dynamic Island innovation", "120Hz ProMotion display", "Always-On Retina screen"
],
buttons: [
{
text: "Learn More", href: "#"
}
]
},
{
id: "camera", label: "Camera", title: "Professional Photography", items: [
"Advanced computational photography", "Cinematic mode recording", "ProRAW and ProRes support", "Night mode excellence"
],
buttons: [
{
text: "Explore Camera", href: "#"
}
]
},
{
id: "performance", label: "Performance", title: "Blazing Fast Computing", items: [
"A17 Pro chip architecture", "Industry-leading processing speed", "Exceptional battery efficiency", "Thermal management system"
],
buttons: [
{
text: "View Specs", href: "#"
}
]
}
]}
animationType="opacity"
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardEight
title="Flexible Pricing Options"
description="Choose the perfect plan that fits your needs and budget"
tag="Transparent Pricing"
tagIcon={DollarSign}
plans={[
{
id: "base", badge: "Popular", badgeIcon: Star,
price: "$799", subtitle: "iPhone 15 - Entry Level", buttons: [
{
text: "Select Plan", href: "#"
}
],
features: [
"128GB Storage", "A17 chip", "Advanced dual camera", "Night mode", "All-day battery", "12-month warranty"
]
},
{
id: "pro", badge: "Best Value", badgeIcon: Sparkles,
price: "$999", subtitle: "iPhone 15 Pro - Professional", buttons: [
{
text: "Select Plan", href: "#"
}
],
features: [
"256GB Storage", "A17 Pro chip", "ProRAW support", "Telephoto lens", "ProMotion display", "Premium titanium design", "24-month warranty"
]
},
{
id: "max", badge: "Ultimate", badgeIcon: Crown,
price: "$1,199", subtitle: "iPhone 15 Pro Max - Maximum", buttons: [
{
text: "Select Plan", href: "#"
}
],
features: [
"512GB Storage", "A17 Pro chip", "Advanced ProRAW", "Dual telephoto", "120Hz display", "Titanium construction", "Extended 36-month warranty"
]
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="invertDefault"
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardSix
title="What Our Customers Say"
description="Real experiences from thousands of satisfied iPhone users worldwide"
tag="Customer Reviews"
tagIcon={Heart}
testimonials={[
{
id: "1", name: "Sarah Johnson", handle: "@sarahjtech", testimonial: "The iPhone 15 Pro has completely transformed my mobile photography. The camera system is absolutely incredible and the performance is blazing fast. Best phone I've ever owned.", imageSrc: "https://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg", imageAlt: "Sarah Johnson"
},
{
id: "2", name: "Michael Chen", handle: "@mikechen_dev", testimonial: "Outstanding build quality and design. The titanium finish feels premium, and the display is crisp and responsive. Every feature is thoughtfully implemented. Highly recommend!", imageSrc: "https://img.b2bpic.net/free-photo/business-woman-banner-concept-with-copy-space_23-2149601533.jpg", imageAlt: "Michael Chen"
},
{
id: "3", name: "Emily Rodriguez", handle: "@emilyrodriguez", testimonial: "The battery life on this phone is insane. I'm getting a full day of heavy usage without any issues. The A17 Pro chip makes everything buttery smooth. Love it!", imageSrc: "https://img.b2bpic.net/free-photo/happy-business-woman-white-shirt_23-2148095748.jpg", imageAlt: "Emily Rodriguez"
},
{
id: "4", name: "David Kim", handle: "@davidkim_creative", testimonial: "As a content creator, the video capabilities are phenomenal. ProRes recording, cinematic mode, and advanced editing tools all in my pocket. This is a game-changer for mobile production.", imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-female-economist-working-office_23-2150251746.jpg", imageAlt: "David Kim"
},
{
id: "5", name: "Jessica Martinez", handle: "@jessicam_design", testimonial: "The display is absolutely stunning. Colors are vibrant, blacks are deep, and the 120Hz refresh rate makes scrolling a joy. Worth every penny for a power user like me.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-pretty-smiling-woman-posing-white-background_231208-1813.jpg", imageAlt: "Jessica Martinez"
},
{
id: "6", name: "Alex Thompson", handle: "@alexthompson", testimonial: "Customer service was outstanding. Device arrived faster than expected, and the setup process was seamless. iPhone ecosystem is truly integrated and user-friendly. Impressed!", imageSrc: "https://img.b2bpic.net/free-photo/portrait-young-entrepreneur-woman_23-2148898746.jpg", imageAlt: "Alex Thompson"
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
speed={40}
topMarqueeDirection="left"
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardEleven
title="iPhone Excellence by Numbers"
description="Industry-leading performance and customer satisfaction metrics"
tag="Our Success"
tagIcon={TrendingUp}
metrics={[
{
id: "1", value: "2.2B+", title: "Active Users", description: "Millions of satisfied customers worldwide", imageSrc: "https://img.b2bpic.net/free-photo/mockup-mobile-phone-screen_53876-63379.jpg"
},
{
id: "2", value: "98%", title: "Satisfaction Rate", description: "Customer happiness and loyalty metrics", imageSrc: "https://img.b2bpic.net/free-photo/people-holding-colorful-smartphones_23-2151969201.jpg"
},
{
id: "3", value: "50%", title: "Faster Processing", description: "Performance improvement over previous generation", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33075.jpg"
},
{
id: "4", value: "72h+", title: "Battery Endurance", description: "Extended battery life with optimized power management", imageSrc: "https://img.b2bpic.net/free-photo/proud-joyful-charming-cheerful-blond-european-woman-stylish-silver-shiny-dress-hold-hand-waist-co_1258-134478.jpg"
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="invertDefault"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
tag="Stay Connected"
title="Get the Latest iPhone Updates"
description="Subscribe to our newsletter and be the first to know about new releases, exclusive offers, and special promotions. Join our community of tech enthusiasts."
tagIcon={Bell}
background={{ variant: "sparkles-gradient" }}
useInvertedBackground="noInvert"
imageSrc="https://img.b2bpic.net/free-photo/business-woman-talking-phone-staying-late-night-office_1303-27089.jpg"
imageAlt="Latest iPhone technology"
mediaPosition="right"
inputPlaceholder="your@email.com"
buttonText="Subscribe"
termsText="We respect your privacy. Unsubscribe at any time."
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
columns={[
{
title: "Shop", items: [
{
label: "iPhone Models", href: "products"
},
{
label: "Accessories", href: "#"
},
{
label: "Trade-In", href: "#"
},
{
label: "Financing", href: "#"
}
]
},
{
title: "Support", items: [
{
label: "Help & Support", href: "#"
},
{
label: "Warranty", href: "#"
},
{
label: "Contact Us", href: "contact"
},
{
label: "Status", href: "#"
}
]
},
{
title: "Company", items: [
{
label: "About Us", href: "#"
},
{
label: "Careers", href: "#"
},
{
label: "Privacy", href: "#"
},
{
label: "Terms", href: "#"
}
]
}
]}
copyrightText="© 2025 iPhone Store. All rights reserved."
/>
</div>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

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