<template>\r
- <form class="flex w-full max-w-[500px]" v-on:submit.prevent="search">\r
- <input\r
- type="text"\r
- class="rounded rounded-r-none border border-theme-border bg-theme-background-elevated px-3 py-2 w-full focus:outline-none focus:ring-1"\r
- placeholder="Search"\r
- />\r
+ <form class="flex w-full max-w-[500px]" @submit.prevent="search">\r
+ <TextInput placeholder="Search" class="rounded-r-none" />\r
<ButtonComponent\r
:iconPath="mdilMagnify"\r
iconSize="1.75em"\r
import { mdilMagnify } from "@mdi/light-js";\r
\r
import ButtonComponent from "./ButtonComponent.vue";\r
+import TextInput from "./TextInput.vue";\r
\r
function search() {\r
console.log("searching..."); // TODO: Implement search functionality\r
-<template>Login</template>
+<template>
+ <div class="flex h-full flex-col items-center justify-center">
+ <Logo class="mb-5" />
+ <form @submit.prevent="login" class="flex max-w-80 flex-col items-center">
+ <TextInput placeholder="Username" class="mb-1" required />
+ <TextInput placeholder="Password" type="password" class="mb-1" required />
+ <TextInput placeholder="2FA Code" class="mb-1" required />
+ <div class="mb-4 flex">
+ <input
+ type="checkbox"
+ id="remember-me"
+ v-model="rememberMe"
+ class="mr-1"
+ />
+ <label for="remember-me">Remember Me</label>
+ </div>
+ <ButtonComponent :iconPath="mdilLogin" label="Log In" />
+ </form>
+ </div>
+</template>
+
+<script setup>
+import { mdilLogin } from "@mdi/light-js";
+import { ref } from "vue";
+
+import ButtonComponent from "../components/ButtonComponent.vue";
+import Logo from "../components/Logo.vue";
+import TextInput from "../components/TextInput.vue";
+
+const rememberMe = ref(false);
+
+function login() {
+ console.log("logging in..."); // TODO: Implement login functionality
+}
+</script>