Initial commit

This commit is contained in:
2026-02-05 16:11:22 +02:00
commit 05561fb5cb
7 changed files with 1717 additions and 0 deletions

2
.env Normal file
View File

@@ -0,0 +1,2 @@
NEXT_PUBLIC_API_URL=undefined
NEXT_PUBLIC_PROJECT_ID=569680d2-4442-484c-b112-3a709c84e2a4

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"

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

@@ -0,0 +1,97 @@
"use client";
import ReactLenis from "lenis/react";
import BlogCardOne from "@/components/sections/blog/BlogCardOne";
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="icon-arrow"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="small"
sizing="largeSmallSizeLargeTitles"
background="aurora"
cardStyle="glass-depth"
primaryButtonStyle="flat"
secondaryButtonStyle="solid"
headingFontWeight="medium"
>
<ReactLenis root>
<div className="min-h-screen bg-background">
<NavbarStyleCentered
brandName="iPhone Store"
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "products" },
{ name: "Features", id: "features" },
{ name: "Why Us", id: "metrics" },
{ name: "FAQ", id: "faq" },
{ name: "Contact", 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>
) : (
<BlogCardOne
blogs={posts}
title="Latest iPhone News & Updates"
description="Stay updated with the latest iPhone features, reviews, and technology insights from our expert team"
tag="Blog"
textboxLayout="default"
useInvertedBackground="noInvert"
carouselMode="buttons"
animationType="slide-up"
/>
)}
<FooterLogoEmphasis
logoText="iPhone Store"
columns={[
{
items: [
{ label: "Shop", href: "products" },
{ label: "Features", href: "features" },
{ label: "Pricing", href: "products" }
]
},
{
items: [
{ label: "About Us", href: "#about" },
{ label: "Support", href: "contact" },
{ label: "Contact", href: "contact" }
]
},
{
items: [
{ label: "Privacy Policy", href: "#privacy" },
{ label: "Terms of Service", href: "#terms" },
{ label: "Warranty", href: "#warranty" }
]
},
{
items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Twitter", href: "https://twitter.com" },
{ label: "Instagram", href: "https://instagram.com" }
]
}
]}
/>
</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";

1269
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

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

@@ -0,0 +1,282 @@
"use client"
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
import FaqDouble from '@/components/sections/faq/FaqDouble';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { Check, Package, Sparkles, Star, Trophy, Users } from "lucide-react";
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="icon-arrow"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="small"
sizing="largeSmallSizeLargeTitles"
background="aurora"
cardStyle="glass-depth"
primaryButtonStyle="flat"
secondaryButtonStyle="solid"
headingFontWeight="medium"
>
<div id="nav" data-section="nav">
<NavbarStyleCentered
brandName="iPhone Store"
navItems={[
{ name: "Shop", id: "products" },
{ name: "Features", id: "features" },
{ name: "Why Us", id: "metrics" },
{ name: "FAQ", id: "faq" },
{ name: "Contact", id: "contact" }
]}
button={{
text: "Buy Now", href: "products"
}}
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardGallery
title="The Future of iPhone"
description="Experience innovation in every detail. Discover the latest iPhone with cutting-edge technology, stunning design, and incredible performance."
background={{ variant: "plain" }}
tag="Latest Collection"
tagIcon={Sparkles}
buttons={[
{ text: "Shop Now", href: "products" },
{ text: "Learn More", href: "features" }
]}
mediaItems={[
{
imageSrc: "https://img.b2bpic.net/free-photo/smartphone-bokeh-background_23-2147983809.jpg", imageAlt: "iPhone latest model front view"
},
{
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", imageAlt: "iPhone premium design"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/modern-workspace-featuring-cellphone-setup_58702-17222.jpg", imageAlt: "iPhone camera system"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/female-with-phone-shopping-bags_23-2147932441.jpg", imageAlt: "iPhone display interface"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/modern-workspace-featuring-cellphone-setup_58702-17242.jpg", imageAlt: "iPhone luxury edition"
}
]}
/>
</div>
<div id="products" data-section="products">
<ProductCardThree
title="Shop iPhone Models"
description="Browse our complete selection of iPhone models. Choose the perfect device for your needs with flexible pricing and options."
tag="Available Now"
tagIcon={Check}
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
gridVariant="three-columns-all-equal-width"
products={[
{
id: "iphone-15-pro", name: "iPhone 15 Pro Max", price: "$1,199", imageSrc: "https://img.b2bpic.net/free-photo/smiling-young-woman-showing-blank-smartphone-screen_93675-132174.jpg", imageAlt: "iPhone 15 Pro Max premium smartphone", initialQuantity: 1
},
{
id: "iphone-15", name: "iPhone 15", price: "$799", imageSrc: "https://img.b2bpic.net/free-photo/arabic-phone-16_187299-46335.jpg", imageAlt: "iPhone 15 latest model", initialQuantity: 1
},
{
id: "iphone-14-plus", name: "iPhone 14 Plus", price: "$899", imageSrc: "https://img.b2bpic.net/free-vector/abstract-mobile-wallpapers_23-2147657831.jpg", imageAlt: "iPhone 14 Plus large display", initialQuantity: 1
}
]}
/>
</div>
<div id="features" data-section="features">
<FeatureCardSeven
title="Why Choose iPhone"
description="Experience the perfect blend of hardware and software, designed to work seamlessly together. Discover what makes iPhone the choice of millions worldwide."
tag="Innovation"
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="blur-reveal"
features={[
{
id: 1,
title: "Advanced Camera System", description: "Capture stunning photos and videos with our revolutionary camera system featuring advanced computational photography, night mode, and cinematic video recording.", imageSrc: "https://img.b2bpic.net/free-photo/dynamic-light-painting-background_23-2149679076.jpg", imageAlt: "Advanced camera technology"
},
{
id: 2,
title: "All-Day Battery Life", description: "Power through your entire day with industry-leading battery technology. Fast charging gets you ready to go in minutes, not hours.", imageSrc: "https://img.b2bpic.net/free-photo/camera-lens_93675-130020.jpg", imageAlt: "Battery performance and charging"
},
{
id: 3,
title: "Stunning Display", description: "Experience vibrant colors and incredible detail on our high-refresh-rate display. Every pixel is perfectly calibrated for an immersive viewing experience.", imageSrc: "https://img.b2bpic.net/free-photo/closeup-shot-black-camera-lens_181624-22497.jpg", imageAlt: "Retina display technology"
},
{
id: 4,
title: "Powerful Performance", description: "Blazing-fast processor handles everything you throw at it. From gaming to professional apps, experience unmatched performance and efficiency.", imageSrc: "https://img.b2bpic.net/free-photo/closeup-shot-black-camera-lens_181624-24059.jpg", imageAlt: "Chip performance technology"
}
]}
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardOne
title="By The Numbers"
description="Join millions of iPhone users worldwide and experience the ecosystem that just works."
tag="Global Impact"
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="scale-rotate"
gridVariant="uniform-all-items-equal"
metrics={[
{
id: "1", value: "2B+", title: "Users", description: "Active iPhone users worldwide", icon: Users
},
{
id: "2", value: "99.8%", title: "Satisfaction", description: "Customer satisfaction rate", icon: Star
},
{
id: "3", value: "150K+", title: "Apps", description: "Available on the App Store", icon: Package
},
{
id: "4", value: "#1", title: "Brand", description: "Most valued tech brand globally", icon: Trophy
}
]}
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardFifteen
testimonial="iPhone has completely transformed how I work and create. The seamless integration between hardware and software makes everything feel intuitive and powerful. I can't imagine using anything else."
rating={5}
author="Alex Morgan, Creative Professional"
avatars={[
{
src: "https://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg", alt: "User testimonial avatar 1"
},
{
src: "https://img.b2bpic.net/free-photo/happy-businessman-smiling-camera_1163-4660.jpg", alt: "User testimonial avatar 2"
},
{
src: "https://img.b2bpic.net/free-photo/portrait-smiley-business-man_23-2148514859.jpg", alt: "User testimonial avatar 3"
},
{
src: "https://img.b2bpic.net/free-photo/positive-confident-businesswoman-wearing-formal-suit-standing-with-arms-folded_74855-10328.jpg", alt: "User testimonial avatar 4"
},
{
src: "https://img.b2bpic.net/free-photo/happy-young-professional-posing-office_1262-21170.jpg", alt: "User testimonial avatar 5"
},
{
src: "https://img.b2bpic.net/free-photo/pensive-person-alone-corridor-serious_1262-1042.jpg", alt: "User testimonial avatar 6"
}
]}
useInvertedBackground="noInvert"
/>
</div>
<div id="faq" data-section="faq">
<FaqDouble
title="Frequently Asked Questions"
description="Find answers to common questions about iPhone models, features, pricing, and support."
tag="Help & Support"
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="smooth"
faqs={[
{
id: "1", title: "What is the warranty on new iPhones?", content: "All new iPhones come with a one-year limited warranty that covers hardware defects. AppleCare+ extends coverage to up to two years for accidental damage, with affordable replacement options."
},
{
id: "2", title: "Can I trade in my old iPhone?", content: "Yes! We offer competitive trade-in values for your old iPhone. Visit our store or check online for your device's value. The credit can be applied directly to your new purchase."
},
{
id: "3", title: "What payment plans are available?", content: "We offer flexible financing options including monthly installments with zero interest over 24 months. Monthly payments start at just $29.99 depending on the model selected."
},
{
id: "4", title: "Is the display really that durable?", content: "iPhone features Ceramic Shield, tougher than any smartphone glass. It provides superior protection against drops and scratches while maintaining crystal-clear display quality."
},
{
id: "5", title: "How long do iPhones last?", content: "iPhones typically last 5-7 years with proper care. We provide regular software updates for several years, ensuring your device stays secure and performs optimally."
},
{
id: "6", title: "Can I customize my iPhone?", content: "Yes! Choose from multiple color options and storage capacities. We also offer protective cases, screen protectors, and accessories to personalize your device."
}
]}
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
title="Get in Touch"
description="Have questions about iPhone? Our expert team is here to help. Contact us for product recommendations, technical support, or to place an order."
useInvertedBackground="noInvert"
imageSrc="https://img.b2bpic.net/free-photo/confident-call-center-operator-talking-with-client_74855-4059.jpg"
imageAlt="Customer service support team"
mediaPosition="right"
buttonText="Send Message"
inputs={[
{
name: "name", type: "text", placeholder: "Your Name", required: true
},
{
name: "email", type: "email", placeholder: "Your Email", required: true
},
{
name: "phone", type: "tel", placeholder: "Phone Number", required: false
},
{
name: "product", type: "text", placeholder: "Product Interest", required: false
}
]}
textarea={{
name: "message", placeholder: "How can we help you?", rows: 5,
required: true
}}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="iPhone Store"
columns={[
{
items: [
{ label: "Shop", href: "products" },
{ label: "Features", href: "features" },
{ label: "Pricing", href: "products" }
]
},
{
items: [
{ label: "About Us", href: "#about" },
{ label: "Support", href: "contact" },
{ label: "Contact", href: "contact" }
]
},
{
items: [
{ label: "Privacy Policy", href: "#privacy" },
{ label: "Terms of Service", href: "#terms" },
{ label: "Warranty", href: "#warranty" }
]
},
{
items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Twitter", href: "https://twitter.com" },
{ label: "Instagram", href: "https://instagram.com" }
]
}
]}
/>
</div>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

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