feat(auth,privacy,web): step-by-step login, privacy settings persistence, TOTP QR, and API docs
Some checks failed
CI / test (push) Failing after 22s

This commit is contained in:
2026-03-08 12:09:53 +03:00
parent 1546ae7381
commit 79baadb522
19 changed files with 2034 additions and 79 deletions

View File

@@ -6,12 +6,12 @@
:root {
--bm-font-size: 16px;
--bm-bg-primary: #101e30;
--bm-bg-secondary: #162233;
--bm-bg-tertiary: #19283a;
--bm-text-color: #e5edf9;
--bm-panel-bg: rgba(19, 31, 47, 0.9);
--bm-panel-border: rgba(146, 174, 208, 0.14);
--bm-bg-primary: #0e1621;
--bm-bg-secondary: #111b27;
--bm-bg-tertiary: #0f1a26;
--bm-text-color: #e6edf5;
--bm-panel-bg: rgba(23, 33, 43, 0.96);
--bm-panel-border: rgba(120, 146, 171, 0.22);
}
html,
@@ -25,8 +25,8 @@ body {
font-family: "Manrope", "Segoe UI", sans-serif;
font-size: var(--bm-font-size, 16px);
background:
radial-gradient(circle at 22% 18%, rgba(36, 68, 117, 0.35), transparent 26%),
radial-gradient(circle at 82% 12%, rgba(24, 95, 102, 0.25), transparent 30%),
radial-gradient(circle at 16% 12%, rgba(45, 85, 132, 0.24), transparent 28%),
radial-gradient(circle at 88% 16%, rgba(36, 112, 122, 0.14), transparent 30%),
linear-gradient(180deg, var(--bm-bg-primary) 0%, var(--bm-bg-secondary) 55%, var(--bm-bg-tertiary) 100%);
color: var(--bm-text-color);
}
@@ -43,9 +43,9 @@ body {
.tg-chat-wallpaper {
background:
radial-gradient(circle at 14% 18%, rgba(59, 130, 246, 0.09), transparent 30%),
radial-gradient(circle at 86% 74%, rgba(34, 197, 94, 0.07), transparent 33%),
linear-gradient(160deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.015) 100%);
radial-gradient(circle at 14% 18%, rgba(51, 144, 236, 0.1), transparent 32%),
radial-gradient(circle at 86% 74%, rgba(66, 124, 173, 0.09), transparent 35%),
linear-gradient(160deg, rgba(255, 255, 255, 0.018) 0%, rgba(255, 255, 255, 0.01) 100%);
}
.tg-scrollbar::-webkit-scrollbar {
@@ -53,47 +53,132 @@ body {
}
.tg-scrollbar::-webkit-scrollbar-thumb {
background: rgba(126, 159, 201, 0.35);
background: rgba(113, 145, 177, 0.45);
border-radius: 999px;
}
html[data-theme="dark"] .bg-slate-900\/95,
html[data-theme="dark"] .bg-slate-900\/90,
html[data-theme="dark"] .bg-slate-900\/80,
html[data-theme="dark"] .bg-slate-900\/70,
html[data-theme="dark"] .bg-slate-900\/65,
html[data-theme="dark"] .bg-slate-900\/60,
html[data-theme="dark"] .bg-slate-900\/50,
html[data-theme="dark"] .bg-slate-900 {
background-color: rgba(23, 33, 43, 0.95) !important;
}
html[data-theme="dark"] .bg-slate-800\/80,
html[data-theme="dark"] .bg-slate-800\/70,
html[data-theme="dark"] .bg-slate-800\/60,
html[data-theme="dark"] .bg-slate-800\/50,
html[data-theme="dark"] .bg-slate-800 {
background-color: rgba(28, 40, 52, 0.95) !important;
}
html[data-theme="dark"] .bg-slate-700\/80,
html[data-theme="dark"] .bg-slate-700\/70,
html[data-theme="dark"] .bg-slate-700\/60,
html[data-theme="dark"] .bg-slate-700 {
background-color: rgba(44, 58, 73, 0.95) !important;
}
html[data-theme="dark"] .border-slate-700\/80,
html[data-theme="dark"] .border-slate-700\/70,
html[data-theme="dark"] .border-slate-700\/60,
html[data-theme="dark"] .border-slate-700\/50,
html[data-theme="dark"] .border-slate-700,
html[data-theme="dark"] .border-slate-800\/60,
html[data-theme="dark"] .border-slate-800,
html[data-theme="dark"] .border-slate-900 {
border-color: rgba(88, 114, 138, 0.42) !important;
}
html[data-theme="dark"] .text-slate-100 {
color: #f3f7fb !important;
}
html[data-theme="dark"] .text-slate-200 {
color: #d9e4ef !important;
}
html[data-theme="dark"] .text-slate-300 {
color: #b9cbdd !important;
}
html[data-theme="dark"] .text-slate-400 {
color: #92a8bd !important;
}
html[data-theme="dark"] .hover\:bg-slate-800\/70:hover,
html[data-theme="dark"] .hover\:bg-slate-800\/65:hover,
html[data-theme="dark"] .hover\:bg-slate-800\/60:hover,
html[data-theme="dark"] .hover\:bg-slate-800:hover,
html[data-theme="dark"] .hover\:bg-slate-700\/80:hover,
html[data-theme="dark"] .hover\:bg-slate-700:hover {
background-color: rgba(46, 62, 79, 0.96) !important;
}
html[data-theme="dark"] .bg-sky-500,
html[data-theme="dark"] .bg-sky-500\/30 {
background-color: rgba(51, 144, 236, 0.92) !important;
}
html[data-theme="dark"] .hover\:bg-sky-400:hover {
background-color: rgba(88, 167, 244, 0.95) !important;
}
html[data-theme="dark"] .text-slate-950 {
color: #04101d !important;
}
html[data-theme="dark"] .from-sky-500\/95 {
--tw-gradient-from: rgba(51, 144, 236, 0.94) var(--tw-gradient-from-position) !important;
}
html[data-theme="dark"] .to-sky-600\/90 {
--tw-gradient-to: rgba(40, 124, 209, 0.94) var(--tw-gradient-to-position) !important;
}
html[data-theme="light"] {
--bm-bg-primary: #eaf1fb;
--bm-bg-secondary: #f3f7fd;
--bm-bg-tertiary: #fbfdff;
--bm-text-color: #0f172a;
--bm-panel-bg: rgba(255, 255, 255, 0.96);
--bm-panel-border: rgba(15, 23, 42, 0.14);
--bm-bg-primary: #dfe5ec;
--bm-bg-secondary: #e8edf4;
--bm-bg-tertiary: #eff3f8;
--bm-text-color: #1b2733;
--bm-panel-bg: rgba(255, 255, 255, 0.98);
--bm-panel-border: rgba(82, 105, 128, 0.24);
}
html[data-theme="light"] .tg-chat-wallpaper {
background:
radial-gradient(circle at 14% 18%, rgba(59, 130, 246, 0.09), transparent 32%),
radial-gradient(circle at 86% 74%, rgba(14, 165, 233, 0.06), transparent 35%),
linear-gradient(160deg, rgba(148, 163, 184, 0.08) 0%, rgba(148, 163, 184, 0.03) 100%);
radial-gradient(circle at 14% 18%, rgba(51, 144, 236, 0.08), transparent 32%),
radial-gradient(circle at 86% 74%, rgba(93, 129, 163, 0.07), transparent 35%),
linear-gradient(160deg, rgba(125, 144, 164, 0.09) 0%, rgba(125, 144, 164, 0.02) 100%);
}
html[data-theme="light"] .bg-slate-900\/95,
html[data-theme="light"] .bg-slate-900\/90,
html[data-theme="light"] .bg-slate-900\/80,
html[data-theme="light"] .bg-slate-900\/70,
html[data-theme="light"] .bg-slate-900\/65,
html[data-theme="light"] .bg-slate-900\/60,
html[data-theme="light"] .bg-slate-900 {
background-color: rgba(255, 255, 255, 0.97) !important;
background-color: rgba(255, 255, 255, 0.98) !important;
}
html[data-theme="light"] .bg-slate-800\/80,
html[data-theme="light"] .bg-slate-800\/70,
html[data-theme="light"] .bg-slate-800\/60,
html[data-theme="light"] .bg-slate-800\/50,
html[data-theme="light"] .bg-slate-800 {
background-color: rgba(241, 245, 249, 0.95) !important;
background-color: rgba(242, 246, 251, 0.97) !important;
}
html[data-theme="light"] .bg-slate-700\/80,
html[data-theme="light"] .bg-slate-700\/70,
html[data-theme="light"] .bg-slate-700\/60,
html[data-theme="light"] .bg-slate-700 {
background-color: rgba(226, 232, 240, 0.95) !important;
background-color: rgba(225, 233, 242, 0.97) !important;
}
html[data-theme="light"] .border-slate-700\/80,
@@ -101,39 +186,39 @@ html[data-theme="light"] .border-slate-700\/70,
html[data-theme="light"] .border-slate-700\/60,
html[data-theme="light"] .border-slate-700\/50,
html[data-theme="light"] .border-slate-700 {
border-color: rgba(71, 85, 105, 0.28) !important;
border-color: rgba(96, 120, 145, 0.3) !important;
}
html[data-theme="light"] .text-slate-100 {
color: #0f172a !important;
color: #1b2733 !important;
}
html[data-theme="light"] .text-slate-200 {
color: #1e293b !important;
color: #223446 !important;
}
html[data-theme="light"] .text-slate-300 {
color: #334155 !important;
color: #385066 !important;
}
html[data-theme="light"] .text-slate-400 {
color: #64748b !important;
color: #5e748b !important;
}
html[data-theme="light"] .text-slate-500 {
color: #94a3b8 !important;
color: #7f95ab !important;
}
html[data-theme="light"] .hover\:bg-slate-800\/70:hover,
html[data-theme="light"] .hover\:bg-slate-800\/65:hover,
html[data-theme="light"] .hover\:bg-slate-800\/60:hover,
html[data-theme="light"] .hover\:bg-slate-800:hover {
background-color: rgba(226, 232, 240, 0.95) !important;
background-color: rgba(230, 237, 245, 0.98) !important;
}
html[data-theme="light"] .hover\:bg-slate-700\/80:hover,
html[data-theme="light"] .hover\:bg-slate-700:hover {
background-color: rgba(203, 213, 225, 0.9) !important;
background-color: rgba(214, 224, 235, 0.98) !important;
}
html[data-theme="light"] .tg-panel {
@@ -163,15 +248,23 @@ html[data-theme="light"] .text-black {
}
html[data-theme="light"] .bg-sky-500\/30 {
background-color: rgba(14, 165, 233, 0.2) !important;
background-color: rgba(51, 144, 236, 0.22) !important;
}
html[data-theme="light"] .bg-sky-500 {
background-color: #3390ec !important;
}
html[data-theme="light"] .hover\:bg-sky-400:hover {
background-color: #59a7f4 !important;
}
html[data-theme="light"] .text-sky-100 {
color: #0369a1 !important;
color: #1f79d8 !important;
}
html[data-theme="light"] .text-sky-300 {
color: #075985 !important;
color: #2669ad !important;
}
html[data-theme="light"] .text-red-400,
@@ -190,31 +283,31 @@ html[data-theme="light"] .text-emerald-400 {
html[data-theme="light"] .border-slate-800\/60,
html[data-theme="light"] .border-slate-800,
html[data-theme="light"] .border-slate-900 {
border-color: rgba(71, 85, 105, 0.2) !important;
border-color: rgba(96, 120, 145, 0.24) !important;
}
html[data-theme="light"] .bg-slate-900\/50 {
background-color: rgba(248, 250, 252, 0.95) !important;
background-color: rgba(247, 250, 253, 0.98) !important;
}
html[data-theme="light"] .bg-slate-800\/50 {
background-color: rgba(241, 245, 249, 0.88) !important;
background-color: rgba(238, 244, 250, 0.94) !important;
}
html[data-theme="light"] .text-slate-600 {
color: #475569 !important;
color: #496078 !important;
}
html[data-theme="light"] .text-slate-700 {
color: #334155 !important;
color: #3e5267 !important;
}
html[data-theme="light"] .text-slate-800 {
color: #1e293b !important;
color: #2c3e52 !important;
}
html[data-theme="light"] .text-slate-900 {
color: #0f172a !important;
color: #1d2f42 !important;
}
html[data-theme="light"] .bg-white {
@@ -222,21 +315,29 @@ html[data-theme="light"] .bg-white {
}
html[data-theme="light"] .bg-slate-100 {
background-color: #f1f5f9 !important;
background-color: #eef3f8 !important;
}
html[data-theme="light"] .bg-slate-200 {
background-color: #e2e8f0 !important;
background-color: #dde7f1 !important;
}
html[data-theme="light"] .border-slate-600,
html[data-theme="light"] .border-slate-500 {
border-color: rgba(100, 116, 139, 0.35) !important;
border-color: rgba(100, 122, 145, 0.35) !important;
}
html[data-theme="light"] .ring-slate-700,
html[data-theme="light"] .ring-slate-600 {
--tw-ring-color: rgba(100, 116, 139, 0.35) !important;
--tw-ring-color: rgba(74, 126, 184, 0.35) !important;
}
html[data-theme="light"] .from-sky-500\/95 {
--tw-gradient-from: rgba(51, 144, 236, 0.95) var(--tw-gradient-from-position) !important;
}
html[data-theme="light"] .to-sky-600\/90 {
--tw-gradient-to: rgba(47, 132, 221, 0.92) var(--tw-gradient-to-position) !important;
}
html[data-theme="light"] .text-slate-100,