Big changes
This commit is contained in:
parent
4240ad38e2
commit
e3f0d63fec
99 changed files with 8804 additions and 1731 deletions
|
|
@ -3,9 +3,11 @@ import { computed, ref } from "vue";
|
|||
import { useRouter } from "vue-router";
|
||||
|
||||
import AppAlert from "@/components/ui/AppAlert.vue";
|
||||
import AppBrandMark from "@/components/ui/AppBrandMark.vue";
|
||||
import AppButton from "@/components/ui/AppButton.vue";
|
||||
import AppCard from "@/components/ui/AppCard.vue";
|
||||
import AppInput from "@/components/ui/AppInput.vue";
|
||||
import AppThemePicker from "@/components/ui/AppThemePicker.vue";
|
||||
import { ApiRequestError } from "@/lib/api/errors";
|
||||
import { useAuthStore } from "@/stores/auth";
|
||||
|
||||
|
|
@ -54,46 +56,22 @@ async function onSubmit(): Promise<void> {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="relative h-[100dvh] max-h-[100dvh] overflow-y-auto overflow-x-hidden bg-surface-app">
|
||||
<div class="pointer-events-none absolute inset-0">
|
||||
<div class="absolute -top-20 left-[-8rem] h-72 w-72 rounded-full bg-brand-300/30 blur-3xl" />
|
||||
<div class="absolute bottom-[-7rem] right-[-6rem] h-80 w-80 rounded-full bg-success-300/25 blur-3xl" />
|
||||
<div class="absolute left-1/3 top-1/3 h-52 w-52 rounded-full bg-warning-300/20 blur-3xl" />
|
||||
<div class="relative h-[100dvh] max-h-[100dvh] overflow-hidden bg-surface-app">
|
||||
<div class="absolute right-4 top-4 z-10 sm:right-6 sm:top-6">
|
||||
<AppThemePicker compact id-prefix="login-theme" />
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="relative mx-auto grid min-h-full w-full max-w-6xl items-center gap-8 px-4 py-6 sm:px-6 lg:grid-cols-[minmax(0,1fr)_26rem] lg:px-8"
|
||||
>
|
||||
<section class="hidden space-y-5 lg:block">
|
||||
<p class="inline-flex items-center rounded-full border border-stroke-strong bg-surface-card/70 px-3 py-1 text-xs font-medium uppercase tracking-[0.12em] text-ink-muted">
|
||||
Scholarr Control Center
|
||||
</p>
|
||||
<h1 class="max-w-xl font-display text-4xl font-semibold tracking-tight text-ink-primary">
|
||||
Scholar tracking with reliable operational controls.
|
||||
</h1>
|
||||
<p class="max-w-xl text-base leading-relaxed text-ink-muted">
|
||||
Use your account to review ingestion runs, publication changes, and continuation queue diagnostics from a
|
||||
single workspace.
|
||||
</p>
|
||||
<ul class="grid max-w-xl gap-2 text-sm text-ink-muted">
|
||||
<li class="rounded-lg border border-stroke-default bg-surface-card/60 px-3 py-2">
|
||||
Session-based authentication with CSRF enforcement.
|
||||
</li>
|
||||
<li class="rounded-lg border border-stroke-default bg-surface-card/60 px-3 py-2">
|
||||
Run and queue diagnostics are available for support workflows.
|
||||
</li>
|
||||
<li class="rounded-lg border border-stroke-default bg-surface-card/60 px-3 py-2">
|
||||
Theme-aware interface with light and dark mode support.
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<div class="pointer-events-none absolute inset-0">
|
||||
<div class="absolute -top-28 right-[-8rem] h-72 w-72 rounded-full bg-brand-300/25 blur-3xl" />
|
||||
<div class="absolute bottom-[-8rem] left-[-7rem] h-80 w-80 rounded-full bg-info-300/20 blur-3xl" />
|
||||
</div>
|
||||
|
||||
<AppCard class="w-full max-w-md justify-self-end space-y-6 border-stroke-default/80 bg-surface-card/90 backdrop-blur">
|
||||
<div class="space-y-2">
|
||||
<h1 class="font-display text-3xl font-semibold tracking-tight text-ink-primary">Sign In</h1>
|
||||
<p class="text-sm text-secondary">
|
||||
Sign in to access scholar tracking, publication updates, and run diagnostics.
|
||||
</p>
|
||||
<div class="relative mx-auto grid h-full w-full max-w-md items-center px-4 py-8 sm:px-6">
|
||||
<AppCard class="space-y-6 border-stroke-default/80 bg-surface-card/90 p-6 backdrop-blur sm:p-7">
|
||||
<div class="grid justify-items-center gap-2 text-center">
|
||||
<AppBrandMark size="xl" />
|
||||
<p class="font-display text-2xl font-semibold tracking-tight text-ink-primary">scholarr</p>
|
||||
<h1 class="text-sm font-medium uppercase tracking-[0.12em] text-ink-secondary">Sign in</h1>
|
||||
</div>
|
||||
|
||||
<AppAlert v-if="errorMessage" tone="danger">
|
||||
|
|
@ -106,7 +84,7 @@ async function onSubmit(): Promise<void> {
|
|||
<form class="grid gap-4" @submit.prevent="onSubmit">
|
||||
<label class="grid gap-2 text-sm font-medium text-ink-secondary">
|
||||
<span>Email</span>
|
||||
<AppInput id="login-email" v-model="email" type="email" autocomplete="email" />
|
||||
<AppInput id="login-email" v-model="email" type="email" autocomplete="email" autofocus />
|
||||
</label>
|
||||
|
||||
<label class="grid gap-2 text-sm font-medium text-ink-secondary">
|
||||
|
|
@ -123,6 +101,10 @@ async function onSubmit(): Promise<void> {
|
|||
{{ pending ? "Signing in..." : "Sign in" }}
|
||||
</AppButton>
|
||||
</form>
|
||||
|
||||
<p class="text-center text-xs text-secondary">
|
||||
Use your assigned account credentials.
|
||||
</p>
|
||||
</AppCard>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue