Compare commits

...

2 Commits

4 changed files with 136 additions and 110 deletions

View File

@ -1,75 +1,90 @@
'use client' "use client";
import { useState } from 'react' import { useState } from "react";
import { Button } from "@/components/ui/button" import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input" import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label" import { Label } from "@/components/ui/label";
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import {
import { FaGoogle } from 'react-icons/fa' Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { FaGoogle } from "react-icons/fa";
export default function SignInPage() { export default function SignInPage() {
const [email, setEmail] = useState('') const [email, setEmail] = useState("");
const [password, setPassword] = useState('') const [password, setPassword] = useState("");
const handleSubmit = (e: React.FormEvent) => { const handleSubmit = (e: React.FormEvent) => {
e.preventDefault() e.preventDefault();
// Handle sign-in logic here // Handle sign-in logic here
console.log('Sign in attempted with:', email, password) console.log("Sign in attempted with:", email, password);
} };
return ( return (
<div className="flex items-center justify-center min-h-screen bg-gray-100"> <div className='flex items-center justify-center min-h-screen bg-gray-100'>
<Card className="w-full max-w-md"> <Card className='w-full max-w-md'>
<CardHeader> <CardHeader>
<CardTitle>Sign In</CardTitle> <CardTitle>Sign In</CardTitle>
<CardDescription>Enter your credentials to access your account</CardDescription> <CardDescription>
Enter your credentials to access your account
</CardDescription>
</CardHeader> </CardHeader>
<CardContent> <CardContent>
<form onSubmit={handleSubmit} className="space-y-4"> <form onSubmit={handleSubmit} className='space-y-4'>
<div className="space-y-2"> <div className='space-y-2'>
<Label htmlFor="email">Email</Label> <Label htmlFor='email'>Email</Label>
<Input <Input
id="email" id='email'
type="email" type='email'
placeholder="your@email.com" placeholder='your@email.com'
value={email} value={email}
onChange={(e) => setEmail(e.target.value)} onChange={(e) => setEmail(e.target.value)}
required required
/> />
</div> </div>
<div className="space-y-2"> <div className='space-y-2'>
<Label htmlFor="password">Password</Label> <Label htmlFor='password'>Password</Label>
<Input <Input
id="password" id='password'
type="password" type='password'
value={password} value={password}
onChange={(e) => setPassword(e.target.value)} onChange={(e) => setPassword(e.target.value)}
required required
/> />
</div> </div>
<Button type="submit" className="w-full">Sign In</Button> <Button type='submit' className='w-full'>
Sign In
</Button>
</form> </form>
</CardContent> </CardContent>
<CardFooter className="flex flex-col space-y-4"> <CardFooter className='flex flex-col space-y-4'>
<div className="relative w-full"> <div className='relative w-full'>
<div className="absolute inset-0 flex items-center"> <div className='absolute inset-0 flex items-center'>
<span className="w-full border-t" /> <span className='w-full border-t' />
</div> </div>
<div className="relative flex justify-center text-xs uppercase"> <div className='relative flex justify-center text-xs uppercase'>
<span className="bg-white px-2 text-muted-foreground">Or continue with</span> <span className='bg-white px-2 text-muted-foreground'>
Or continue with
</span>
</div> </div>
</div> </div>
<div className="grid grid-cols-2 gap-4"> <div className='grid grid-cols-2 gap-4'>
<Button variant="outline" onClick={() => console.log('SSO login')}> <Button variant='outline' onClick={() => console.log("SSO login")}>
SSO SSO
</Button> </Button>
<Button variant="outline" onClick={() => console.log('Google login')}> <Button
<FaGoogle className="mr-2 h-4 w-4" /> Google variant='outline'
</Button> onClick={() => console.log("Google login")}
>
<FaGoogle className='mr-2 h-4 w-4' /> Google
</Button> </Button>
</div>
</CardFooter> </CardFooter>
</Card> </Card>
</div> </div>
) );
} }

99
package-lock.json generated
View File

@ -44,7 +44,7 @@
"embla-carousel-react": "8.5.1", "embla-carousel-react": "8.5.1",
"input-otp": "1.4.1", "input-otp": "1.4.1",
"lucide-react": "^0.454.0", "lucide-react": "^0.454.0",
"next": "14.2.16", "next": "14.2.24",
"next-themes": "^0.4.4", "next-themes": "^0.4.4",
"react": "^18", "react": "^18",
"react-day-picker": "8.10.1", "react-day-picker": "8.10.1",
@ -192,17 +192,19 @@
} }
}, },
"node_modules/@next/env": { "node_modules/@next/env": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.24.tgz",
"integrity": "sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag==" "integrity": "sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==",
"license": "MIT"
}, },
"node_modules/@next/swc-darwin-arm64": { "node_modules/@next/swc-darwin-arm64": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.24.tgz",
"integrity": "sha512-uFT34QojYkf0+nn6MEZ4gIWQ5aqGF11uIZ1HSxG+cSbj+Mg3+tYm8qXYd3dKN5jqKUm5rBVvf1PBRO/MeQ6rxw==", "integrity": "sha512-7Tdi13aojnAZGpapVU6meVSpNzgrFwZ8joDcNS8cJVNuP3zqqrLqeory9Xec5TJZR/stsGJdfwo8KeyloT3+rQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@ -212,12 +214,13 @@
} }
}, },
"node_modules/@next/swc-darwin-x64": { "node_modules/@next/swc-darwin-x64": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.24.tgz",
"integrity": "sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g==", "integrity": "sha512-lXR2WQqUtu69l5JMdTwSvQUkdqAhEWOqJEYUQ21QczQsAlNOW2kWZCucA6b3EXmPbcvmHB1kSZDua/713d52xg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@ -227,12 +230,13 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-gnu": { "node_modules/@next/swc-linux-arm64-gnu": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.24.tgz",
"integrity": "sha512-yhkNA36+ECTC91KSyZcgWgKrYIyDnXZj8PqtJ+c2pMvj45xf7y/HrgI17hLdrcYamLfVt7pBaJUMxADtPaczHA==", "integrity": "sha512-nxvJgWOpSNmzidYvvGDfXwxkijb6hL9+cjZx1PVG6urr2h2jUqBALkKjT7kpfurRWicK6hFOvarmaWsINT1hnA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@ -242,12 +246,13 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-musl": { "node_modules/@next/swc-linux-arm64-musl": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.24.tgz",
"integrity": "sha512-X2YSyu5RMys8R2lA0yLMCOCtqFOoLxrq2YbazFvcPOE4i/isubYjkh+JCpRmqYfEuCVltvlo+oGfj/b5T2pKUA==", "integrity": "sha512-PaBgOPhqa4Abxa3y/P92F3kklNPsiFjcjldQGT7kFmiY5nuFn8ClBEoX8GIpqU1ODP2y8P6hio6vTomx2Vy0UQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@ -257,12 +262,13 @@
} }
}, },
"node_modules/@next/swc-linux-x64-gnu": { "node_modules/@next/swc-linux-x64-gnu": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.24.tgz",
"integrity": "sha512-9AGcX7VAkGbc5zTSa+bjQ757tkjr6C/pKS7OK8cX7QEiK6MHIIezBLcQ7gQqbDW2k5yaqba2aDtaBeyyZh1i6Q==", "integrity": "sha512-vEbyadiRI7GOr94hd2AB15LFVgcJZQWu7Cdi9cWjCMeCiUsHWA0U5BkGPuoYRnTxTn0HacuMb9NeAmStfBCLoQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@ -272,12 +278,13 @@
} }
}, },
"node_modules/@next/swc-linux-x64-musl": { "node_modules/@next/swc-linux-x64-musl": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.24.tgz",
"integrity": "sha512-Klgeagrdun4WWDaOizdbtIIm8khUDQJ/5cRzdpXHfkbY91LxBXeejL4kbZBrpR/nmgRrQvmz4l3OtttNVkz2Sg==", "integrity": "sha512-df0FC9ptaYsd8nQCINCzFtDWtko8PNRTAU0/+d7hy47E0oC17tI54U/0NdGk7l/76jz1J377dvRjmt6IUdkpzQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@ -287,12 +294,13 @@
} }
}, },
"node_modules/@next/swc-win32-arm64-msvc": { "node_modules/@next/swc-win32-arm64-msvc": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.24.tgz",
"integrity": "sha512-PwW8A1UC1Y0xIm83G3yFGPiOBftJK4zukTmk7DI1CebyMOoaVpd8aSy7K6GhobzhkjYvqS/QmzcfsWG2Dwizdg==", "integrity": "sha512-ZEntbLjeYAJ286eAqbxpZHhDFYpYjArotQ+/TW9j7UROh0DUmX7wYDGtsTPpfCV8V+UoqHBPU7q9D4nDNH014Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@ -302,12 +310,13 @@
} }
}, },
"node_modules/@next/swc-win32-ia32-msvc": { "node_modules/@next/swc-win32-ia32-msvc": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.24.tgz",
"integrity": "sha512-jhPl3nN0oKEshJBNDAo0etGMzv0j3q3VYorTSFqH1o3rwv1MQRdor27u1zhkgsHPNeY1jxcgyx1ZsCkDD1IHgg==", "integrity": "sha512-9KuS+XUXM3T6v7leeWU0erpJ6NsFIwiTFD5nzNg8J5uo/DMIPvCp3L1Ao5HjbHX0gkWPB1VrKoo/Il4F0cGK2Q==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@ -317,12 +326,13 @@
} }
}, },
"node_modules/@next/swc-win32-x64-msvc": { "node_modules/@next/swc-win32-x64-msvc": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.16.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.24.tgz",
"integrity": "sha512-OA7NtfxgirCjfqt+02BqxC3MIgM/JaGjw9tOe4fyZgPsqfseNiMPnCRP44Pfs+Gpo9zPN+SXaFsgP6vk8d571A==", "integrity": "sha512-cXcJ2+x0fXQ2CntaE00d7uUH+u1Bfp/E0HsNQH79YiLaZE5Rbm7dZzyAYccn3uICM7mw+DxoMqEfGXZtF4Fgaw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@ -3104,11 +3114,12 @@
} }
}, },
"node_modules/next": { "node_modules/next": {
"version": "14.2.16", "version": "14.2.24",
"resolved": "https://registry.npmjs.org/next/-/next-14.2.16.tgz", "resolved": "https://registry.npmjs.org/next/-/next-14.2.24.tgz",
"integrity": "sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==", "integrity": "sha512-En8VEexSJ0Py2FfVnRRh8gtERwDRaJGNvsvad47ShkC2Yi8AXQPXEA2vKoDJlGFSj5WE5SyF21zNi4M5gyi+SQ==",
"license": "MIT",
"dependencies": { "dependencies": {
"@next/env": "14.2.16", "@next/env": "14.2.24",
"@swc/helpers": "0.5.5", "@swc/helpers": "0.5.5",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579", "caniuse-lite": "^1.0.30001579",
@ -3123,15 +3134,15 @@
"node": ">=18.17.0" "node": ">=18.17.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@next/swc-darwin-arm64": "14.2.16", "@next/swc-darwin-arm64": "14.2.24",
"@next/swc-darwin-x64": "14.2.16", "@next/swc-darwin-x64": "14.2.24",
"@next/swc-linux-arm64-gnu": "14.2.16", "@next/swc-linux-arm64-gnu": "14.2.24",
"@next/swc-linux-arm64-musl": "14.2.16", "@next/swc-linux-arm64-musl": "14.2.24",
"@next/swc-linux-x64-gnu": "14.2.16", "@next/swc-linux-x64-gnu": "14.2.24",
"@next/swc-linux-x64-musl": "14.2.16", "@next/swc-linux-x64-musl": "14.2.24",
"@next/swc-win32-arm64-msvc": "14.2.16", "@next/swc-win32-arm64-msvc": "14.2.24",
"@next/swc-win32-ia32-msvc": "14.2.16", "@next/swc-win32-ia32-msvc": "14.2.24",
"@next/swc-win32-x64-msvc": "14.2.16" "@next/swc-win32-x64-msvc": "14.2.24"
}, },
"peerDependencies": { "peerDependencies": {
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.1.0",

View File

@ -45,7 +45,7 @@
"embla-carousel-react": "8.5.1", "embla-carousel-react": "8.5.1",
"input-otp": "1.4.1", "input-otp": "1.4.1",
"lucide-react": "^0.454.0", "lucide-react": "^0.454.0",
"next": "14.2.16", "next": "14.2.24",
"next-themes": "^0.4.4", "next-themes": "^0.4.4",
"react": "^18", "react": "^18",
"react-day-picker": "8.10.1", "react-day-picker": "8.10.1",

View File

@ -90,15 +90,15 @@
"@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14" "@jridgewell/sourcemap-codec" "^1.4.14"
"@next/env@14.2.16": "@next/env@14.2.24":
version "14.2.16" version "14.2.24"
resolved "https://registry.npmjs.org/@next/env/-/env-14.2.16.tgz" resolved "https://registry.npmjs.org/@next/env/-/env-14.2.24.tgz"
integrity sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag== integrity sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==
"@next/swc-darwin-x64@14.2.16": "@next/swc-darwin-x64@14.2.24":
version "14.2.16" version "14.2.24"
resolved "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.16.tgz" resolved "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.24.tgz"
integrity sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g== integrity sha512-lXR2WQqUtu69l5JMdTwSvQUkdqAhEWOqJEYUQ21QczQsAlNOW2kWZCucA6b3EXmPbcvmHB1kSZDua/713d52xg==
"@nodelib/fs.scandir@2.1.5": "@nodelib/fs.scandir@2.1.5":
version "2.1.5" version "2.1.5"
@ -1503,12 +1503,12 @@ next-themes@^0.4.4:
resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.4.4.tgz" resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.4.4.tgz"
integrity sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ== integrity sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==
next@14.2.16: next@14.2.24:
version "14.2.16" version "14.2.24"
resolved "https://registry.npmjs.org/next/-/next-14.2.16.tgz" resolved "https://registry.npmjs.org/next/-/next-14.2.24.tgz"
integrity sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA== integrity sha512-En8VEexSJ0Py2FfVnRRh8gtERwDRaJGNvsvad47ShkC2Yi8AXQPXEA2vKoDJlGFSj5WE5SyF21zNi4M5gyi+SQ==
dependencies: dependencies:
"@next/env" "14.2.16" "@next/env" "14.2.24"
"@swc/helpers" "0.5.5" "@swc/helpers" "0.5.5"
busboy "1.6.0" busboy "1.6.0"
caniuse-lite "^1.0.30001579" caniuse-lite "^1.0.30001579"
@ -1516,15 +1516,15 @@ next@14.2.16:
postcss "8.4.31" postcss "8.4.31"
styled-jsx "5.1.1" styled-jsx "5.1.1"
optionalDependencies: optionalDependencies:
"@next/swc-darwin-arm64" "14.2.16" "@next/swc-darwin-arm64" "14.2.24"
"@next/swc-darwin-x64" "14.2.16" "@next/swc-darwin-x64" "14.2.24"
"@next/swc-linux-arm64-gnu" "14.2.16" "@next/swc-linux-arm64-gnu" "14.2.24"
"@next/swc-linux-arm64-musl" "14.2.16" "@next/swc-linux-arm64-musl" "14.2.24"
"@next/swc-linux-x64-gnu" "14.2.16" "@next/swc-linux-x64-gnu" "14.2.24"
"@next/swc-linux-x64-musl" "14.2.16" "@next/swc-linux-x64-musl" "14.2.24"
"@next/swc-win32-arm64-msvc" "14.2.16" "@next/swc-win32-arm64-msvc" "14.2.24"
"@next/swc-win32-ia32-msvc" "14.2.16" "@next/swc-win32-ia32-msvc" "14.2.24"
"@next/swc-win32-x64-msvc" "14.2.16" "@next/swc-win32-x64-msvc" "14.2.24"
node-releases@^2.0.19: node-releases@^2.0.19:
version "2.0.19" version "2.0.19"