-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
86 lines (77 loc) · 3.74 KB
/
index.html
File metadata and controls
86 lines (77 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="Liching">
<meta name="author" content="Liching">
<meta property="og:see_also" content="https://liching.pages.dev/">
<link rel="author" href="https://liching.pages.dev/">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FlowNote — Todo & Notes</title>
<meta name="description" content="FlowNote combines the best of todo lists and note-taking in one focused app." />
<!-- Fonts: General Sans (body) + JetBrains Mono (code) -->
<link href="https://api.fontshare.com/v2/css?f[]=general-sans@400,500,600,700&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "FlowNote",
"applicationCategory": "ProductivityApplication",
"creator": {
"@type": "SoftwareApplication",
"name": "Liching",
"url": "https://liching.pages.dev/"
}
}
</script>
<!-- FIXED: was index-AIi2cw5bQ.css (extra Q), correct filename is index-AIi2cw5b.css -->
<link rel="stylesheet" crossorigin href="./assets/index-AIi2cw5b.css">
</head>
<body>
<div id="login-overlay" style="position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
<div style="width:min(430px,92vw);background:#fff;border-radius:12px;padding:24px;box-shadow:0 12px 32px rgba(0,0,0,.2);color:#111;">
<h1 style="margin:0 0 10px;font-size:1.4rem;">FlowNote login</h1>
<p style="margin:0 0 10px;font-size:.95rem;color:#333;">Enter your app password.</p>
<input id="login-password" type="password" placeholder="Password" style="width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:1rem;margin-bottom:10px;outline:none;" />
<button id="login-btn" style="width:100%;padding:10px 12px;border:none;border-radius:8px;background:#0f62fe;color:#fff;font-size:0.95rem;font-weight:600;cursor:pointer;">Login</button>
</div>
</div>
<div id="root" style="display:none"></div>
<script src="./assets/auth-secret.js"></script>
<script>
const secret = window.FLOWNOTE_LOGIN_SECRET || 'notepad';
const loginScreen = document.getElementById('login-overlay');
const root = document.getElementById('root');
const error = document.getElementById('login-error');
const input = document.getElementById('login-password');
const button = document.getElementById('login-btn');
const sessionKey = 'flownote_authed';
function unlock() {
loginScreen.style.display = 'none';
root.style.display = 'block';
sessionStorage.setItem(sessionKey, '1');
}
function fail(msg) {
error.textContent = msg;
input.focus();
}
button.addEventListener('click', () => {
const value = input.value.trim();
if (value === secret) {
unlock();
} else {
fail('Incorrect password. Try again.');
}
});
input.addEventListener('keyup', (e) => {
if (e.key === 'Enter') button.click();
});
// Auto-unlock if already authenticated this session
if (sessionStorage.getItem(sessionKey) === '1') unlock();
</script>
<script type="module" crossorigin src="./assets/index-CV2p19bQ.js"></script>
</body>
</html>