NEXUS-1: Initial commit of Nexus

This commit is contained in:
Blake Ridgway
2026-07-14 05:53:25 -05:00
commit 16fe2bf928
22 changed files with 1739 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
{{define "content"}}
<div id="auth-form">
<h2 class="text-xl font-semibold text-white mb-6">Create your account</h2>
{{if .Error}}
<div class="bg-red-500/10 border border-red-500/30 text-red-400 rounded-lg px-4 py-3 mb-6 text-sm animate-fade-in" role="alert">
{{.Error}}
</div>
{{end}}
<form
hx-post="/signup"
hx-target="#auth-form"
hx-swap="outerHTML"
hx-disabled-elt="button[type=submit], input"
class="space-y-5"
>
<div>
<label for="display_name" class="block text-sm font-medium text-slate-300 mb-1.5">Full name</label>
<input
type="text"
id="display_name"
name="display_name"
value="{{.DisplayName}}"
required
autofocus
autocomplete="name"
class="w-full px-4 py-2.5 bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition-colors"
placeholder="Jane Smith"
>
</div>
<div>
<label for="email" class="block text-sm font-medium text-slate-300 mb-1.5">Email address</label>
<input
type="email"
id="email"
name="email"
value="{{.Email}}"
required
autocomplete="email"
class="w-full px-4 py-2.5 bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition-colors"
placeholder="you@example.com"
>
</div>
<div>
<label for="password" class="block text-sm font-medium text-slate-300 mb-1.5">Password</label>
<input
type="password"
id="password"
name="password"
required
minlength="8"
autocomplete="new-password"
class="w-full px-4 py-2.5 bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition-colors"
placeholder="At least 8 characters"
>
</div>
<div>
<label for="password_confirm" class="block text-sm font-medium text-slate-300 mb-1.5">Confirm password</label>
<input
type="password"
id="password_confirm"
name="password_confirm"
required
minlength="8"
autocomplete="new-password"
class="w-full px-4 py-2.5 bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition-colors"
placeholder="Repeat your password"
>
</div>
<button
type="submit"
class="w-full py-2.5 px-4 bg-indigo-600 hover:bg-indigo-500 text-white font-medium rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 focus:ring-offset-slate-800 disabled:opacity-50 disabled:cursor-not-allowed"
>
<span class="htmx-indicator">Create account</span>
<span class="htmx-request hidden">Creating account...</span>
</button>
</form>
<p class="text-center text-slate-400 text-sm mt-6">
Already have an account?
<a href="/login" class="text-indigo-400 hover:text-indigo-300 font-medium transition-colors">Sign in</a>
</p>
</div>
{{end}}