diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx new file mode 100644 index 0000000..c13de22 --- /dev/null +++ b/src/app/dashboard/page.tsx @@ -0,0 +1,62 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import { useState } from "react"; +import { LayoutDashboard, Package, BarChart3, Settings, UserCircle, Menu, X } from "lucide-react"; + +export default function DashboardPage() { + const [isSidebarOpen, setIsSidebarOpen] = useState(true); + + const menuItems = [ + { name: "Overview", icon: LayoutDashboard }, + { name: "Inventory", icon: Package }, + { name: "Analytics", icon: BarChart3 }, + { name: "Settings", icon: Settings }, + ]; + + return ( + + + {/* Sidebar */} + + + {/* Main Content */} + + + Dashboard + + + Admin User + + + + + + {[1, 2, 3].map((i) => ( + + Metric {i} + 1,234 + + ))} + + + + + + ); +} \ No newline at end of file diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx new file mode 100644 index 0000000..e198421 --- /dev/null +++ b/src/app/login/page.tsx @@ -0,0 +1,34 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import { useState } from "react"; +import Input from '@/components/form/Input'; +import ButtonExpandHover from '@/components/button/ButtonExpandHover'; + +export default function LoginPage() { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + + const handleLogin = async () => { + const response = await fetch("/api/auth/login/", { + method: "POST", headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ email, password }), + }); + if (response.ok) window.location.href = "/dashboard"; + }; + + return ( + + + + Login + + + + Don't have an account? Register + Forgot password? + + + + ); +} \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index be89105..a778972 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,14 +2,15 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import ReactLenis from "lenis/react"; -import ContactText from '@/components/sections/contact/ContactText'; -import FeatureCardNineteen from '@/components/sections/feature/FeatureCardNineteen'; -import FooterBase from '@/components/sections/footer/FooterBase'; -import HeroSplit from '@/components/sections/hero/HeroSplit'; -import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven'; -import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline'; -import ProductCardTwo from '@/components/sections/product/ProductCardTwo'; -import TestimonialCardTwelve from '@/components/sections/testimonial/TestimonialCardTwelve'; +import ContactSplit from '@/components/sections/contact/ContactSplit'; +import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree'; +import FooterCard from '@/components/sections/footer/FooterCard'; +import HeroBillboardScroll from '@/components/sections/hero/HeroBillboardScroll'; +import MetricCardOne from '@/components/sections/metrics/MetricCardOne'; +import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; +import ProductCardThree from '@/components/sections/product/ProductCardThree'; +import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen'; +import { Cpu, BarChart3, Users, Zap } from "lucide-react"; export default function LandingPage() { return ( @@ -17,342 +18,109 @@ export default function LandingPage() { defaultButtonVariant="text-stagger" defaultTextAnimation="background-highlight" borderRadius="rounded" - contentWidth="small" - sizing="mediumLargeSizeMediumTitles" - background="noiseDiagonalGradient" - cardStyle="gradient-mesh" + contentWidth="medium" + sizing="mediumLargeSizeLargeTitles" + background="fluid" + cardStyle="glass-elevated" primaryButtonStyle="primary-glow" secondaryButtonStyle="layered" - headingFontWeight="medium" + headingFontWeight="semibold" > - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + ); -} +} \ No newline at end of file diff --git a/src/app/password-reset/page.tsx b/src/app/password-reset/page.tsx new file mode 100644 index 0000000..9fa5dd8 --- /dev/null +++ b/src/app/password-reset/page.tsx @@ -0,0 +1,29 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import { useState } from "react"; +import Input from '@/components/form/Input'; +import ButtonExpandHover from '@/components/button/ButtonExpandHover'; + +export default function PasswordResetPage() { + const [email, setEmail] = useState(""); + + const handleReset = async () => { + await fetch("/api/auth/password-reset/", { + method: "POST", headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ email }), + }); + }; + + return ( + + + + Reset Password + + + + + + ); +} \ No newline at end of file diff --git a/src/app/register/page.tsx b/src/app/register/page.tsx new file mode 100644 index 0000000..c5c05c1 --- /dev/null +++ b/src/app/register/page.tsx @@ -0,0 +1,32 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import { useState } from "react"; +import Input from '@/components/form/Input'; +import ButtonExpandHover from '@/components/button/ButtonExpandHover'; + +export default function RegisterPage() { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + + const handleRegister = async () => { + await fetch("/api/auth/register/", { + method: "POST", headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ email, password }), + }); + window.location.href = "/login"; + }; + + return ( + + + + Create Account + + + + + + + ); +} \ No newline at end of file diff --git a/src/app/styles/variables.css b/src/app/styles/variables.css index 32083d5..c713e74 100644 --- a/src/app/styles/variables.css +++ b/src/app/styles/variables.css @@ -10,15 +10,15 @@ --accent: #ffffff; --background-accent: #ffffff; */ - --background: #e3deea; - --card: #ffffff; - --foreground: #27231f; - --primary-cta: #27231f; + --background: #050012; + --card: #101030; + --foreground: #f0e6ff; + --primary-cta: #8b5cf6; --primary-cta-text: #e3deea; - --secondary-cta: #ffffff; + --secondary-cta: #1d123b; --secondary-cta-text: #27231f; - --accent: #c68a62; - --background-accent: #c68a62; + --accent: #c89bff; + --background-accent: #312e81; /* text sizing - set by ThemeProvider */ /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
1,234