diff --git a/next.config.ts b/next.config.ts
index 94647ad..164b423 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -2,6 +2,16 @@ import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
output: 'standalone',
+ images: {
+ remotePatterns: [
+ {
+ protocol: 'https',
+ hostname: 'img1.wikia.nocookie.net',
+ port: '',
+ pathname: '/**',
+ },
+ ],
+ },
};
export default nextConfig;
diff --git a/package.json b/package.json
index 1a21262..967e5f5 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,8 @@
"@fortawesome/free-regular-svg-icons": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.2",
+ "@radix-ui/react-label": "^2.1.6",
+ "@radix-ui/react-hover-card": "^1.1.13",
"@radix-ui/react-slot": "^1.2.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx
index b843b45..987846c 100644
--- a/src/app/login/page.tsx
+++ b/src/app/login/page.tsx
@@ -2,9 +2,16 @@ import { auth } from '@/auth';
import SSOLogin from '@/components/user/sso-login-button';
import LoginForm from '@/components/user/login-form';
import { redirect } from 'next/navigation';
+import { Button } from '@/components/ui/button';
+import Image from 'next/image';
import '@/app/globals.css';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
+import {
+ HoverCard,
+ HoverCardTrigger,
+ HoverCardContent,
+} from '@/components/ui/hover-card';
export default async function LoginPage() {
const session = await auth();
@@ -15,20 +22,35 @@ export default async function LoginPage() {
return (
-
-
- Login
-
-
-
+
+
+
+ Login
+
+
+
-
+
- {process.env.AUTH_AUTHENTIK_ISSUER && (
-
- )}
-
-
+ {process.env.AUTH_AUTHENTIK_ISSUER && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
);
}
diff --git a/src/components/labeled-input.tsx b/src/components/labeled-input.tsx
index af8879e..7b4768a 100644
--- a/src/components/labeled-input.tsx
+++ b/src/components/labeled-input.tsx
@@ -1,4 +1,5 @@
import { Input } from '@/components/ui/input';
+import { Label } from '@/components/ui/label';
export default function LabeledInput({
type,
@@ -11,17 +12,17 @@ export default function LabeledInput({
placeholder?: string;
value?: string;
}) {
- const randomId = Math.random().toString(36).substring(2, 15);
+ const elementId = Math.random().toString(36).substring(2, 15);
return (
-
-
+
+
);
diff --git a/src/components/ui/hover-card.tsx b/src/components/ui/hover-card.tsx
new file mode 100644
index 0000000..5c120a9
--- /dev/null
+++ b/src/components/ui/hover-card.tsx
@@ -0,0 +1,44 @@
+'use client';
+
+import * as React from 'react';
+import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
+
+import { cn } from '@/lib/utils';
+
+function HoverCard({
+ ...props
+}: React.ComponentProps
) {
+ return ;
+}
+
+function HoverCardTrigger({
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ );
+}
+
+function HoverCardContent({
+ className,
+ align = 'center',
+ sideOffset = 4,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+
+
+ );
+}
+
+export { HoverCard, HoverCardTrigger, HoverCardContent };
diff --git a/src/components/ui/label.tsx b/src/components/ui/label.tsx
new file mode 100644
index 0000000..6bc5f71
--- /dev/null
+++ b/src/components/ui/label.tsx
@@ -0,0 +1,24 @@
+'use client';
+
+import * as React from 'react';
+import * as LabelPrimitive from '@radix-ui/react-label';
+
+import { cn } from '@/lib/utils';
+
+function Label({
+ className,
+ ...props
+}: React.ComponentProps) {
+ return (
+
+ );
+}
+
+export { Label };
diff --git a/src/components/user/login-form.tsx b/src/components/user/login-form.tsx
index 47e1945..20438e8 100644
--- a/src/components/user/login-form.tsx
+++ b/src/components/user/login-form.tsx
@@ -3,7 +3,7 @@ import { Button } from '@/components/ui/button';
export default function LoginForm() {
return (
-