mirror of
https://github.com/perstarkse/minne.git
synced 2026-07-08 22:05:15 +02:00
5cca8dee01
Avoid nested forms in the scratchpad editor, centralize modal lifecycle in modal.js, return HTMX partials from archive, and add template compile plus layout snapshots.
104 lines
3.5 KiB
Plaintext
104 lines
3.5 KiB
Plaintext
---
|
||
source: html-router/tests/router_integration.rs
|
||
expression: body
|
||
---
|
||
<!DOCTYPE html>
|
||
<html lang="en" data-theme="light" data-theme-preference="system">
|
||
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||
<title>Minne - Sign in</title>
|
||
|
||
|
||
<!-- Preload critical assets -->
|
||
<link rel="preload" href="/assets/htmx.min.js" as="script">
|
||
<link rel="preload" href="/assets/style.css" as="style">
|
||
|
||
<!-- Core styles -->
|
||
<link rel="stylesheet" href="/assets/style.css">
|
||
|
||
<!-- Scripts -->
|
||
<script src="/assets/htmx.min.js" defer></script>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', function () {
|
||
htmx.config.globalViewTransitions = true;
|
||
htmx.config.selfRequestsOnly = false;
|
||
});
|
||
</script>
|
||
<script src="/assets/htmx-ext-sse.js" defer></script>
|
||
<script src="/assets/theme-toggle.js" defer></script>
|
||
<script src="/assets/toast.js" defer></script>
|
||
<script src="/assets/marked.min.js" defer></script>
|
||
<script src="/assets/knowledge-graph.js" defer></script>
|
||
<script src="/assets/design-polish.js" defer></script>
|
||
<script src="/assets/modal.js" defer></script>
|
||
<script src="/assets/admin-prompt-reset.js" defer></script>
|
||
|
||
<!-- Global View Transition -->
|
||
<meta name="view-transition" content="same-origin" />
|
||
|
||
<!-- Icons -->
|
||
<link rel="icon" href="/assets/icon/favicon.ico">
|
||
<link rel="apple-touch-icon" href="/assets/icon/apple-touch-icon.png" media="(device-width: 320px)">
|
||
|
||
<!-- PWA -->
|
||
<link rel="manifest" href="/assets/manifest.json">
|
||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||
|
||
|
||
|
||
</head>
|
||
|
||
|
||
<div class="min-h-[100dvh] flex flex-col items-center justify-center">
|
||
|
||
<div class="container mx-auto px-4 sm:max-w-md flex-1 flex items-center justify-center">
|
||
<div class="w-full nb-card p-5">
|
||
<div class="flex items-center justify-between mb-3">
|
||
<div class="brand-mark text-3xl font-extrabold tracking-tight">MINNE</div>
|
||
<span class="nb-badge">Sign In</span>
|
||
</div>
|
||
<div class="u-hairline mb-3"></div>
|
||
|
||
<form hx-post="/signin" hx-swap="none" class="flex flex-col gap-2">
|
||
<label class="w-full">
|
||
<div class="text-xs uppercase tracking-wide opacity-70 mb-1">Email</div>
|
||
<input name="email" type="email" placeholder="Email" class="nb-input w-full validator" required />
|
||
<div class="validator-hint hidden text-xs opacity-70 mt-1">Enter valid email address</div>
|
||
</label>
|
||
|
||
<label class="w-full">
|
||
<div class="text-xs uppercase tracking-wide opacity-70 mb-1">Password</div>
|
||
<input name="password" type="password" class="nb-input w-full validator" required placeholder="Password"
|
||
minlength="8" />
|
||
</label>
|
||
|
||
<div class="form-control mt-1">
|
||
<label class="label cursor-pointer justify-start gap-3">
|
||
<input type="checkbox" name="remember_me" class="nb-checkbox" />
|
||
<span class="label-text">Remember me</span>
|
||
</label>
|
||
</div>
|
||
|
||
|
||
<div class="form-control mt-1">
|
||
<button id="submit-btn" class="nb-btn nb-cta w-full">Login</button>
|
||
</div>
|
||
</form>
|
||
|
||
<div class="u-hairline my-3"></div>
|
||
<div class="text-center text-sm">
|
||
Don’t have an account?
|
||
<a href="/signup" hx-boost="true" class="nb-link">Sign up</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div id="toast-container" class="fixed bottom-4 right-4 z-50 space-y-2"></div>
|
||
|
||
|
||
</html>
|