Initial commit

This commit is contained in:
DK
2026-02-05 14:08:46 +00:00
commit 89ec6ec8ee
8 changed files with 1778 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=49f930ed-5b57-4e04-b162-fa10eb33caab

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"

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

@@ -0,0 +1,93 @@
"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 NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import { useBlogPosts } from "@/hooks/useBlogPosts";
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="background-highlight"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmall"
background="aurora"
cardStyle="gradient-mesh"
primaryButtonStyle="flat"
secondaryButtonStyle="glass"
headingFontWeight="extrabold"
>
<ReactLenis root>
<div className="min-h-screen bg-background">
<NavbarLayoutFloatingInline
brandName="iPhone"
navItems={[
{ name: "Home", id: "/" },
{ name: "Products", id: "products" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
{ name: "Reviews", id: "testimonials" }
]}
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>
) : (
<BlogCardTwo
blogs={posts}
title="Latest iPhone News"
description="Stay updated with the latest iPhone insights, reviews, and technology updates"
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="slide-up"
carouselMode="buttons"
/>
)}
<FooterLogoEmphasis
logoText="iPhone"
columns={[
{
items: [
{ label: "iPhone 15", href: "products" },
{ label: "iPhone 15 Pro", href: "products" },
{ label: "Compare Models", href: "products" }
]
},
{
items: [
{ label: "Features", href: "features" },
{ label: "Camera", href: "features" },
{ label: "Performance", href: "features" }
]
},
{
items: [
{ label: "Support", href: "#" },
{ label: "Contact Us", href: "contact" },
{ label: "Warranty", href: "#" }
]
},
{
items: [
{ label: "About", href: "#" },
{ label: "Press", href: "#" },
{ label: "Careers", href: "#" }
]
}
]}
/>
</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";

1272
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

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

@@ -0,0 +1,243 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree';
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import PricingCardOne from '@/components/sections/pricing/PricingCardOne';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import { Zap, Sparkles, Star, Mail } from "lucide-react";
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="background-highlight"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmall"
background="aurora"
cardStyle="gradient-mesh"
primaryButtonStyle="flat"
secondaryButtonStyle="glass"
headingFontWeight="extrabold"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="iPhone"
navItems={[
{ name: "Products", id: "products" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
{ name: "Reviews", id: "testimonials" }
]}
button={{
text: "Shop Now", href: "products"
}}
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboard
title="The Future of Mobile Technology"
description="Experience the latest iPhone with revolutionary camera technology, ultra-fast processor, and all-day battery life. Designed with precision. Built to last."
background={{ variant: "plain" }}
tag="iPhone 15 Pro"
tagIcon={Zap}
buttons={[
{ text: "Explore Now", href: "products" },
{ text: "Learn More", href: "features" }
]}
imageSrc="https://img.b2bpic.net/free-psd/new-smartphone-a18-bionic-social-media-banner-design-template_47987-33085.jpg"
imageAlt="Latest iPhone with premium design"
/>
</div>
<div id="products" data-section="products">
<ProductCardThree
title="Our Latest iPhone Lineup"
description="Choose from our premium selection of iPhones, each engineered for performance and elegance."
products={[
{
id: "1", name: "iPhone 15 Pro Max", price: "$1,199", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33075.jpg", imageAlt: "iPhone 15 Pro Max with stunning 6.7-inch display"
},
{
id: "2", name: "iPhone 15 Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-photo/mockup-mobile-phone-screen_53876-63379.jpg", imageAlt: "iPhone 15 Pro with advanced camera system"
},
{
id: "3", name: "iPhone 15", price: "$799", imageSrc: "https://img.b2bpic.net/free-photo/view-electronic-product-balancing-podium_23-2150141321.jpg", imageAlt: "iPhone 15 with powerful performance"
}
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="features" data-section="features">
<FeatureCardTwentyThree
title="Industry-Leading Features"
description="Discover what makes iPhone the most advanced smartphone in the world."
tag="Technology"
tagIcon={Sparkles}
features={[
{
id: "1", title: "Advanced Camera System", tags: ["Pro Features", "Photography"],
imageSrc: "https://img.b2bpic.net/free-photo/vertical-shot-person-taking-photo-leaf-with-cellphone-camera_181624-59213.jpg", imageAlt: "Professional camera technology"
},
{
id: "2", title: "Lightning-Fast Performance", tags: ["A17 Pro Chip", "Speed"],
imageSrc: "https://img.b2bpic.net/free-photo/girl-taking-photo-yellow-house_23-2147615270.jpg", imageAlt: "High-performance processor chip"
},
{
id: "3", title: "All-Day Battery Life", tags: ["Long Battery", "Efficiency"],
imageSrc: "https://img.b2bpic.net/free-photo/senior-woman-traveling-areound-world_23-2149172097.jpg", imageAlt: "Extended battery technology"
},
{
id: "4", title: "Stunning Display Technology", tags: ["OLED Screen", "120Hz"],
imageSrc: "https://img.b2bpic.net/free-photo/woman-s-hand-taking-picture-her-friend-holding-camera_23-2147847167.jpg", imageAlt: "Advanced OLED display technology"
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardEleven
title="Trusted by Millions Worldwide"
description="See the numbers behind iPhone's success and innovation."
metrics={[
{
id: "1", value: "2B+", title: "Active Users", description: "Global iPhone user base growing every day", imageSrc: "https://img.b2bpic.net/free-photo/girl-taking-photo-yellow-house_23-2147615270.jpg", imageAlt: "Global user statistics"
},
{
id: "2", value: "98%", title: "Satisfaction Rate", description: "Customer satisfaction with iPhone products", imageSrc: "https://img.b2bpic.net/free-photo/vertical-shot-person-taking-photo-leaf-with-cellphone-camera_181624-59213.jpg", imageAlt: "Customer satisfaction metrics"
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardSix
title="What Our Customers Say"
description="Real experiences from iPhone users around the world."
testimonials={[
{
id: "1", name: "Sarah Chen", handle: "@sarahchen", testimonial: "The iPhone 15 Pro has completely transformed my photography workflow. The camera system is absolutely incredible.", imageSrc: "https://img.b2bpic.net/free-photo/selfie-portrait-videocall_23-2149186122.jpg", imageAlt: "Sarah Chen"
},
{
id: "2", name: "Marcus Johnson", handle: "@mjohnson", testimonial: "Best smartphone I've ever owned. The performance, design, and battery life are unmatched.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-man-laughing_23-2148859448.jpg", imageAlt: "Marcus Johnson"
},
{
id: "3", name: "Emma Rodriguez", handle: "@emmarod", testimonial: "The display quality is stunning. Everything looks crisp and vibrant. Worth every penny.", imageSrc: "https://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg", imageAlt: "Emma Rodriguez"
},
{
id: "4", name: "David Kim", handle: "@davidkim", testimonial: "Fast, reliable, and beautifully designed. iPhone continues to set the standard for smartphones.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-smiley-woman_23-2148827181.jpg", imageAlt: "David Kim"
},
{
id: "5", name: "Lisa Wong", handle: "@lisawong", testimonial: "The ecosystem integration is seamless. Works perfectly with my Mac and iPad.", imageSrc: "https://img.b2bpic.net/free-photo/smiling-millennial-man-looking-camera-cafe-headshot-portrait_1163-5163.jpg", imageAlt: "Lisa Wong"
},
{
id: "6", name: "James Sullivan", handle: "@jsullivan", testimonial: "Premium quality at its finest. The craftsmanship and attention to detail are exceptional.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-young-person-barbeque_23-2149271990.jpg", imageAlt: "James Sullivan"
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardOne
title="Simple, Transparent Pricing"
description="Choose the iPhone that fits your needs and budget."
plans={[
{
id: "1", badge: "Best Value", badgeIcon: Sparkles,
price: "$799", subtitle: "Perfect for everyday excellence", features: [
"6.1-inch display", "A16 Bionic chip", "Dual camera system", "All-day battery life", "Water resistant"
]
},
{
id: "2", badge: "Most Popular", badgeIcon: Star,
price: "$999", subtitle: "Premium performance and camera", features: [
"6.1-inch ProMotion display", "A17 Pro chip", "Advanced triple camera", "Extended battery life", "Titanium design"
]
},
{
id: "3", badge: "Ultimate", badgeIcon: Zap,
price: "$1,199", subtitle: "Maximum screen and power", features: [
"6.7-inch ProMotion display", "A17 Pro chip", "Professional camera system", "All-day+ battery", "Premium titanium build"
]
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
tag="Newsletter"
tagIcon={Mail}
title="Stay Updated with iPhone News"
description="Subscribe to get the latest product updates, exclusive offers, and innovative technology insights delivered to your inbox."
background={{ variant: "sparkles-gradient" }}
useInvertedBackground="noInvert"
imageSrc="https://img.b2bpic.net/free-photo/close-up-woman-taking-photograph-mobile_23-2147862937.jpg"
imageAlt="Newsletter signup section"
inputPlaceholder="Enter your email address"
buttonText="Subscribe"
termsText="We respect your privacy. Unsubscribe at any time from our marketing emails."
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="iPhone"
columns={[
{
items: [
{ label: "iPhone 15", href: "products" },
{ label: "iPhone 15 Pro", href: "products" },
{ label: "Compare Models", href: "products" }
]
},
{
items: [
{ label: "Features", href: "features" },
{ label: "Camera", href: "features" },
{ label: "Performance", href: "features" }
]
},
{
items: [
{ label: "Support", href: "#" },
{ label: "Contact Us", href: "contact" },
{ label: "Warranty", href: "#" }
]
},
{
items: [
{ label: "About", href: "#" },
{ label: "Press", href: "#" },
{ label: "Careers", href: "#" }
]
}
]}
/>
</div>
</ThemeProvider>
);
}

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

@@ -0,0 +1,101 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
export default function ShopPage() {
// Sample product data for iPhone shop
const products = [
{
id: "1", name: "iPhone 15 Pro Max", price: "$1,199", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-pro-finish-select-202309-6-1inch-naturaltitanium_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1693009279821", imageAlt: "iPhone 15 Pro Max in Natural Titanium", onProductClick: () => console.log("Viewing iPhone 15 Pro Max")
},
{
id: "2", name: "iPhone 15 Pro", price: "$999", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-pro-finish-select-202309-6-1inch-bluetitanium_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1693009279914", imageAlt: "iPhone 15 Pro in Blue Titanium", onProductClick: () => console.log("Viewing iPhone 15 Pro")
},
{
id: "3", name: "iPhone 15 Plus", price: "$899", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-finish-select-202309-6-7inch-pink_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1692923780378", imageAlt: "iPhone 15 Plus in Pink", onProductClick: () => console.log("Viewing iPhone 15 Plus")
},
{
id: "4", name: "iPhone 15", price: "$799", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-finish-select-202309-6-1inch-blue_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1692923777972", imageAlt: "iPhone 15 in Blue", onProductClick: () => console.log("Viewing iPhone 15")
},
{
id: "5", name: "iPhone 14 Pro", price: "$899", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-14-pro-finish-select-202209-6-1inch-deeppurple_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1663703841896", imageAlt: "iPhone 14 Pro in Deep Purple", onProductClick: () => console.log("Viewing iPhone 14 Pro")
},
{
id: "6", name: "iPhone 14", price: "$699", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-14-finish-select-202209-6-1inch-purple_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1661027532661", imageAlt: "iPhone 14 in Purple", onProductClick: () => console.log("Viewing iPhone 14")
}
];
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="background-highlight"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmall"
background="aurora"
cardStyle="gradient-mesh"
primaryButtonStyle="flat"
secondaryButtonStyle="glass"
headingFontWeight="extrabold"
>
<NavbarLayoutFloatingInline
brandName="iPhone"
navItems={[
{ name: "Home", id: "/" },
{ name: "Shop", id: "/shop" }
]}
button={{
text: "Shop Now", href: "/shop"
}}
/>
<main className="min-h-screen">
<ProductCardOne
products={products}
title="iPhone Collection"
description="Discover the latest iPhone models with cutting-edge technology and innovative features"
tag="Latest Models"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
useInvertedBackground="noInvert"
buttons={[
{
text: "View All Products", href: "/shop"
}
]}
/>
</main>
<FooterLogoEmphasis
logoText="iPhone"
columns={[
{
items: [
{ label: "iPhone 15", href: "/shop" },
{ label: "iPhone 15 Pro", href: "/shop" },
{ label: "Compare Models", href: "/shop" }
]
},
{
items: [
{ label: "Support" },
{ label: "Contact Us" },
{ label: "Warranty" }
]
},
{
items: [
{ label: "About" },
{ label: "Press" },
{ label: "Careers" }
]
}
]}
/>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

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