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=ced0cfb6-4b4f-45f5-ae70-aff0d5820400
|
||||||
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"
|
||||||
92
src/app/blog/page.tsx
Normal file
92
src/app/blog/page.tsx
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import BlogCardThree from '@/components/sections/blog/BlogCardThree';
|
||||||
|
import FooterMedia from '@/components/sections/footer/FooterMedia';
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
|
import { useBlogPosts } from "@/hooks/useBlogPosts";
|
||||||
|
|
||||||
|
export default function BlogPage() {
|
||||||
|
const { posts, isLoading } = useBlogPosts();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="icon-arrow"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeMediumTitles"
|
||||||
|
background="circleGradient"
|
||||||
|
cardStyle="layered-gradient"
|
||||||
|
primaryButtonStyle="shadow"
|
||||||
|
secondaryButtonStyle="glass"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div className="min-h-screen bg-background">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="iPhone"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Models", id: "products" },
|
||||||
|
{ name: "Features", id: "features" },
|
||||||
|
{ name: "Tech Specs", id: "specs" },
|
||||||
|
{ name: "Reviews", id: "testimonials" },
|
||||||
|
{ 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="Featured iPhone Insights"
|
||||||
|
description="Discover the latest technology insights and iPhone developments"
|
||||||
|
tag="Tech Blog"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
carouselMode="buttons"
|
||||||
|
animationType="slide-up"
|
||||||
|
uniformGridCustomHeightClasses="min-h-[600px]"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<FooterMedia
|
||||||
|
imageSrc="https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-story-design-template_47987-33775.jpg"
|
||||||
|
imageAlt="iPhone premium product showcase"
|
||||||
|
logoText="iPhone"
|
||||||
|
copyrightText="© 2025 iPhone. All rights reserved."
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Shop", items: [
|
||||||
|
{ label: "iPhone Models", href: "products" },
|
||||||
|
{ label: "Compare", href: "specs" },
|
||||||
|
{ label: "Pricing", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Support", items: [
|
||||||
|
{ label: "Technical Support", href: "#" },
|
||||||
|
{ label: "Warranty", href: "#" },
|
||||||
|
{ label: "Returns", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Contact", href: "contact" },
|
||||||
|
{ label: "Privacy Policy", 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";
|
||||||
1268
src/app/layout.tsx
Normal file
1268
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
218
src/app/page.tsx
Normal file
218
src/app/page.tsx
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
|
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||||
|
import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
||||||
|
import FeatureCardSix from '@/components/sections/feature/FeatureCardSix';
|
||||||
|
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
|
||||||
|
import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen';
|
||||||
|
import ContactSplit from '@/components/sections/contact/ContactSplit';
|
||||||
|
import FooterMedia from '@/components/sections/footer/FooterMedia';
|
||||||
|
|
||||||
|
export default function LandingPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="icon-arrow"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="medium"
|
||||||
|
sizing="mediumLargeSizeMediumTitles"
|
||||||
|
background="circleGradient"
|
||||||
|
cardStyle="layered-gradient"
|
||||||
|
primaryButtonStyle="shadow"
|
||||||
|
secondaryButtonStyle="glass"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarLayoutFloatingOverlay
|
||||||
|
brandName="iPhone"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Models", id: "products" },
|
||||||
|
{ name: "Features", id: "features" },
|
||||||
|
{ name: "Tech Specs", id: "specs" },
|
||||||
|
{ name: "Reviews", id: "testimonials" },
|
||||||
|
{ name: "Contact", id: "contact" }
|
||||||
|
]}
|
||||||
|
button={{
|
||||||
|
text: "Shop Now", href: "#products"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroBillboardCarousel
|
||||||
|
title="The Future of Innovation"
|
||||||
|
description="Experience cutting-edge technology with the latest iPhone. Precision engineering meets stunning design."
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
tag="Latest Release"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Explore Models", href: "products" },
|
||||||
|
{ text: "Learn More", href: "features" }
|
||||||
|
]}
|
||||||
|
mediaItems={[
|
||||||
|
{ imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-story-design-template_47987-33775.jpg", imageAlt: "iPhone Pro Max latest model" },
|
||||||
|
{ imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33087.jpg", imageAlt: "iPhone display and screen technology" },
|
||||||
|
{ imageSrc: "https://img.b2bpic.net/free-photo/people-holding-colorful-smartphones_23-2151969201.jpg", imageAlt: "iPhone advanced camera system" },
|
||||||
|
{ imageSrc: "https://img.b2bpic.net/free-psd/smartphone-16-pro-discount-sale-banner-social-media-design-template_47987-25305.jpg", imageAlt: "iPhone premium design and materials" },
|
||||||
|
{ imageSrc: "https://img.b2bpic.net/free-photo/smartphone-nature-concept_23-2150246099.jpg", imageAlt: "iPhone elegant product showcase" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="products" data-section="products">
|
||||||
|
<ProductCardThree
|
||||||
|
title="iPhone Models"
|
||||||
|
description="Choose from our premium selection of iPhone models tailored to your needs."
|
||||||
|
tag="Shop"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
animationType="slide-up"
|
||||||
|
gridVariant="three-columns-all-equal-width"
|
||||||
|
products={[
|
||||||
|
{
|
||||||
|
id: "iphone-pro", name: "iPhone Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-photo/low-angle-man-using-smartphone-outdoors_23-2150747684.jpg", imageAlt: "iPhone Pro premium model", initialQuantity: 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "iphone-standard", name: "iPhone", price: "$799", imageSrc: "https://img.b2bpic.net/free-photo/two-people-holding-smartphones-looking-camera_23-2151969203.jpg", imageAlt: "iPhone standard model", initialQuantity: 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "iphone-mini", name: "iPhone Mini", price: "$699", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-nature-concept_23-2150246096.jpg", imageAlt: "iPhone Mini compact model", initialQuantity: 1
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="features" data-section="features">
|
||||||
|
<FeatureCardSix
|
||||||
|
title="Advanced Features"
|
||||||
|
description="Discover what makes iPhone the most advanced smartphone in the world."
|
||||||
|
tag="Technology"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: "Pro Camera System", description: "Advanced dual-camera system with computational photography and professional-grade video capture. Capture every moment with incredible detail and clarity.", imageSrc: "https://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg", imageAlt: "iPhone camera system feature"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: "Lightning-Fast Performance", description: "Powered by the latest A-series chip with breakthrough performance and machine learning capabilities. Experience seamless multitasking and gaming.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-using-smartphone-with-pop-socket-outdoors_23-2150168486.jpg", imageAlt: "iPhone performance and processor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
title: "Premium Design", description: "Crafted from aerospace-grade aluminum and precision-milled glass. Elegant minimalism meets durability with water and dust resistance.", imageSrc: "https://img.b2bpic.net/free-vector/smartphone-template-with-camera-interface_1361-1529.jpg", imageAlt: "iPhone premium design and materials"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="specs" data-section="specs">
|
||||||
|
<MetricCardEleven
|
||||||
|
title="By The Numbers"
|
||||||
|
description="Industry-leading specifications and performance metrics that set iPhone apart."
|
||||||
|
tag="Specs"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
animationType="slide-up"
|
||||||
|
metrics={[
|
||||||
|
{
|
||||||
|
id: "1", value: "6.7\"", title: "Super Retina Display", description: "ProMotion 120Hz for smooth scrolling", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33087.jpg", imageAlt: "iPhone display specifications"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", value: "48MP", title: "Main Camera", description: "Ultra-high resolution imaging with AI processing", imageSrc: "https://img.b2bpic.net/free-photo/people-holding-colorful-smartphones_23-2151969201.jpg", imageAlt: "iPhone camera megapixels"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", value: "All Day", title: "Battery Life", description: "Exceptional longevity with smart power management", imageSrc: "https://img.b2bpic.net/free-psd/smartphone-16-pro-discount-sale-banner-social-media-design-template_47987-25305.jpg", imageAlt: "iPhone battery performance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", value: "10 Gbps", title: "Data Transfer", description: "Ultra-fast connectivity for seamless workflows", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-story-design-template_47987-33775.jpg", imageAlt: "iPhone connectivity speed"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="testimonials" data-section="testimonials">
|
||||||
|
<TestimonialCardSixteen
|
||||||
|
title="What Customers Love"
|
||||||
|
description="Read authentic reviews from iPhone users who've experienced our premium smartphones."
|
||||||
|
tag="Reviews"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
animationType="slide-up"
|
||||||
|
testimonials={[
|
||||||
|
{
|
||||||
|
id: "1", name: "Sarah Chen", role: "Photographer", company: "Creative Studios", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/front-view-business-woman-suit_23-2148603018.jpg", imageAlt: "Sarah Chen customer portrait"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", name: "Marcus Johnson", role: "Tech Entrepreneur", company: "Innovation Labs", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/close-up-portrait-young-bearded-man-white-shirt-jacket-posing-camera-with-broad-smile-isolated-gray_171337-629.jpg", imageAlt: "Marcus Johnson customer portrait"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", name: "Emma Rodriguez", role: "Content Creator", company: "Media Productions", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg", imageAlt: "Emma Rodriguez customer portrait"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", name: "David Williams", role: "Business Executive", company: "Tech Ventures", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/portrait-smiley-woman_23-2148827181.jpg", imageAlt: "David Williams customer portrait"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
kpiItems={[
|
||||||
|
{ value: "98%", label: "Customer Satisfaction" },
|
||||||
|
{ value: "50M+", label: "Active Users" },
|
||||||
|
{ value: "15+", label: "Years of Innovation" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="contact" data-section="contact">
|
||||||
|
<ContactSplit
|
||||||
|
tag="Newsletter"
|
||||||
|
title="Stay Updated"
|
||||||
|
description="Subscribe to our newsletter for exclusive offers, product launches, and iPhone tips."
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
imageSrc="https://img.b2bpic.net/free-photo/blond-woman-texting-her-phone_53876-20860.jpg"
|
||||||
|
imageAlt="iPhone technology workspace"
|
||||||
|
mediaPosition="right"
|
||||||
|
inputPlaceholder="Enter your email"
|
||||||
|
buttonText="Subscribe"
|
||||||
|
termsText="We respect your privacy. Unsubscribe at any time from any newsletter."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterMedia
|
||||||
|
imageSrc="https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-story-design-template_47987-33775.jpg"
|
||||||
|
imageAlt="iPhone premium product showcase"
|
||||||
|
logoText="iPhone"
|
||||||
|
copyrightText="© 2025 iPhone. All rights reserved."
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Shop", items: [
|
||||||
|
{ label: "iPhone Models", href: "products" },
|
||||||
|
{ label: "Compare", href: "specs" },
|
||||||
|
{ label: "Pricing", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Support", items: [
|
||||||
|
{ label: "Technical Support", href: "#" },
|
||||||
|
{ label: "Warranty", href: "#" },
|
||||||
|
{ label: "Returns", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Contact", href: "contact" },
|
||||||
|
{ label: "Privacy Policy", 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