@burdenoff/microfe-auth 2026.514.1 → 2026.514.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/components/profile/UserProfileMenu.d.ts.map +1 -1
- package/dist/auth/components/profile/UserProfileMenu.js +63 -52
- package/dist/auth/components/profile/UserProfileMenu.js.map +1 -1
- package/dist/auth/hooks/useAuthOperations.d.ts.map +1 -1
- package/dist/auth/hooks/useAuthOperations.js +78 -70
- package/dist/auth/hooks/useAuthOperations.js.map +1 -1
- package/dist/auth/hooks/useSessionOperations.d.ts.map +1 -1
- package/dist/auth/hooks/useSessionOperations.js +2 -1
- package/dist/auth/hooks/useSessionOperations.js.map +1 -1
- package/dist/auth/pages/LoginPage.d.ts.map +1 -1
- package/dist/auth/pages/LoginPage.js +214 -246
- package/dist/auth/pages/LoginPage.js.map +1 -1
- package/dist/auth/pages/PasswordResetPage.d.ts.map +1 -1
- package/dist/auth/pages/PasswordResetPage.js +54 -53
- package/dist/auth/pages/PasswordResetPage.js.map +1 -1
- package/dist/auth/pages/RegisterPage.d.ts.map +1 -1
- package/dist/auth/pages/RegisterPage.js +206 -189
- package/dist/auth/pages/RegisterPage.js.map +1 -1
- package/dist/auth/pages/SecurityPage.d.ts.map +1 -1
- package/dist/auth/pages/SecurityPage.js +229 -248
- package/dist/auth/pages/SecurityPage.js.map +1 -1
- package/dist/auth/utils/validation.js +1 -1
- package/dist/auth/utils/validation.js.map +1 -1
- package/dist/dev/main.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,459 +3,440 @@ import { useAuthOperations as t } from "../hooks/useAuthOperations.js";
|
|
|
3
3
|
import { useAccountOperations as n } from "../hooks/useAccountOperations.js";
|
|
4
4
|
import "../hooks/index.js";
|
|
5
5
|
import { formatDate as ee } from "../utils/formatters.js";
|
|
6
|
-
import { ConfirmActionDialog as
|
|
7
|
-
import { nativeImpact as
|
|
8
|
-
import { useEffect as
|
|
9
|
-
import { useNavigate as
|
|
10
|
-
import { useI18n as
|
|
11
|
-
import { jsx as
|
|
6
|
+
import { ConfirmActionDialog as te } from "../components/ConfirmActionDialog.js";
|
|
7
|
+
import { nativeImpact as r, nativeNotify as i } from "../../utils/nativeBridge.js";
|
|
8
|
+
import { useEffect as a, useId as o, useRef as s, useState as c } from "react";
|
|
9
|
+
import { useNavigate as l } from "react-router-dom";
|
|
10
|
+
import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
11
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
12
12
|
//#region src/auth/pages/SecurityPage.tsx
|
|
13
|
-
var
|
|
13
|
+
var p = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
14
14
|
className: e,
|
|
15
15
|
fill: "none",
|
|
16
16
|
viewBox: "0 0 24 24",
|
|
17
17
|
stroke: "currentColor",
|
|
18
18
|
"aria-hidden": "true",
|
|
19
|
-
children: /* @__PURE__ */
|
|
19
|
+
children: /* @__PURE__ */ d("path", {
|
|
20
20
|
strokeLinecap: "round",
|
|
21
21
|
strokeLinejoin: "round",
|
|
22
22
|
strokeWidth: 1.5,
|
|
23
23
|
d: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"
|
|
24
24
|
})
|
|
25
|
-
}),
|
|
25
|
+
}), ne = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
26
26
|
className: e,
|
|
27
27
|
fill: "none",
|
|
28
28
|
viewBox: "0 0 24 24",
|
|
29
29
|
stroke: "currentColor",
|
|
30
30
|
"aria-hidden": "true",
|
|
31
|
-
children: /* @__PURE__ */
|
|
31
|
+
children: /* @__PURE__ */ d("path", {
|
|
32
32
|
strokeLinecap: "round",
|
|
33
33
|
strokeLinejoin: "round",
|
|
34
34
|
strokeWidth: 1.5,
|
|
35
35
|
d: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"
|
|
36
36
|
})
|
|
37
|
-
}),
|
|
37
|
+
}), re = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
38
38
|
className: e,
|
|
39
39
|
fill: "none",
|
|
40
40
|
viewBox: "0 0 24 24",
|
|
41
41
|
stroke: "currentColor",
|
|
42
42
|
"aria-hidden": "true",
|
|
43
|
-
children: /* @__PURE__ */
|
|
43
|
+
children: /* @__PURE__ */ d("path", {
|
|
44
44
|
strokeLinecap: "round",
|
|
45
45
|
strokeLinejoin: "round",
|
|
46
46
|
strokeWidth: 1.5,
|
|
47
47
|
d: "M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"
|
|
48
48
|
})
|
|
49
|
-
}),
|
|
49
|
+
}), ie = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
50
50
|
className: e,
|
|
51
51
|
fill: "none",
|
|
52
52
|
viewBox: "0 0 24 24",
|
|
53
53
|
stroke: "currentColor",
|
|
54
54
|
"aria-hidden": "true",
|
|
55
|
-
children: /* @__PURE__ */
|
|
55
|
+
children: /* @__PURE__ */ d("path", {
|
|
56
56
|
strokeLinecap: "round",
|
|
57
57
|
strokeLinejoin: "round",
|
|
58
58
|
strokeWidth: 1.5,
|
|
59
59
|
d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
|
|
60
60
|
})
|
|
61
|
-
}),
|
|
61
|
+
}), ae = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
62
62
|
className: e,
|
|
63
63
|
fill: "none",
|
|
64
64
|
viewBox: "0 0 24 24",
|
|
65
65
|
stroke: "currentColor",
|
|
66
66
|
"aria-hidden": "true",
|
|
67
|
-
children: /* @__PURE__ */
|
|
67
|
+
children: /* @__PURE__ */ d("path", {
|
|
68
68
|
strokeLinecap: "round",
|
|
69
69
|
strokeLinejoin: "round",
|
|
70
70
|
strokeWidth: 1.5,
|
|
71
71
|
d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
|
|
72
72
|
})
|
|
73
|
-
}),
|
|
73
|
+
}), m = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
74
74
|
className: e,
|
|
75
75
|
fill: "none",
|
|
76
76
|
viewBox: "0 0 24 24",
|
|
77
77
|
stroke: "currentColor",
|
|
78
78
|
"aria-hidden": "true",
|
|
79
|
-
children: /* @__PURE__ */
|
|
80
|
-
strokeLinecap: "round",
|
|
81
|
-
strokeLinejoin: "round",
|
|
82
|
-
strokeWidth: 1.5,
|
|
83
|
-
d: "M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z"
|
|
84
|
-
})
|
|
85
|
-
}), g = ({ className: e }) => /* @__PURE__ */ f("svg", {
|
|
86
|
-
className: e,
|
|
87
|
-
fill: "none",
|
|
88
|
-
viewBox: "0 0 24 24",
|
|
89
|
-
stroke: "currentColor",
|
|
90
|
-
"aria-hidden": "true",
|
|
91
|
-
children: /* @__PURE__ */ f("path", {
|
|
79
|
+
children: /* @__PURE__ */ d("path", {
|
|
92
80
|
strokeLinecap: "round",
|
|
93
81
|
strokeLinejoin: "round",
|
|
94
82
|
strokeWidth: 2,
|
|
95
83
|
d: "M9 5l7 7-7 7"
|
|
96
84
|
})
|
|
97
|
-
}),
|
|
85
|
+
}), h = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
98
86
|
className: e,
|
|
99
87
|
fill: "currentColor",
|
|
100
88
|
viewBox: "0 0 20 20",
|
|
101
89
|
"aria-hidden": "true",
|
|
102
|
-
children: /* @__PURE__ */
|
|
90
|
+
children: /* @__PURE__ */ d("path", {
|
|
103
91
|
fillRule: "evenodd",
|
|
104
92
|
d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
|
|
105
93
|
clipRule: "evenodd"
|
|
106
94
|
})
|
|
107
|
-
}),
|
|
95
|
+
}), g = ({ className: e }) => /* @__PURE__ */ d("svg", {
|
|
108
96
|
className: e,
|
|
109
97
|
fill: "currentColor",
|
|
110
98
|
viewBox: "0 0 20 20",
|
|
111
99
|
"aria-hidden": "true",
|
|
112
|
-
children: /* @__PURE__ */
|
|
100
|
+
children: /* @__PURE__ */ d("path", {
|
|
113
101
|
fillRule: "evenodd",
|
|
114
102
|
d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
|
|
115
103
|
clipRule: "evenodd"
|
|
116
104
|
})
|
|
117
|
-
}),
|
|
105
|
+
}), _ = ({ className: e }) => /* @__PURE__ */ f("svg", {
|
|
118
106
|
className: e,
|
|
119
107
|
fill: "none",
|
|
120
108
|
viewBox: "0 0 24 24",
|
|
121
109
|
"aria-hidden": "true",
|
|
122
|
-
children: [/* @__PURE__ */
|
|
110
|
+
children: [/* @__PURE__ */ d("circle", {
|
|
123
111
|
className: "opacity-25",
|
|
124
112
|
cx: "12",
|
|
125
113
|
cy: "12",
|
|
126
114
|
r: "10",
|
|
127
115
|
stroke: "currentColor",
|
|
128
116
|
strokeWidth: "4"
|
|
129
|
-
}), /* @__PURE__ */
|
|
117
|
+
}), /* @__PURE__ */ d("path", {
|
|
130
118
|
className: "opacity-75",
|
|
131
119
|
fill: "currentColor",
|
|
132
120
|
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
133
121
|
})]
|
|
134
|
-
}),
|
|
135
|
-
function
|
|
136
|
-
let { t:
|
|
137
|
-
let n =
|
|
122
|
+
}), v = "DELETE MY ACCOUNT";
|
|
123
|
+
function y() {
|
|
124
|
+
let { t: y } = u(), b = (e, t) => {
|
|
125
|
+
let n = y(e);
|
|
138
126
|
return n === e ? t : n;
|
|
139
|
-
},
|
|
127
|
+
}, x = l(), S = e((e) => e.user), { signOut: oe } = t({ disableCurrentUserQuery: !0 }), { deactivateAccount: se, deleteAccount: ce, isDeactivating: C, isDeleting: w } = n(), [T, E] = c(!1), [D, O] = c(!1), le = [
|
|
140
128
|
{
|
|
141
|
-
name:
|
|
142
|
-
description:
|
|
129
|
+
name: b("auth.security.navProfile", "User Profile"),
|
|
130
|
+
description: b("auth.security.navProfileDesc", "View and edit your profile information"),
|
|
143
131
|
path: "/auth/profile",
|
|
144
|
-
icon:
|
|
132
|
+
icon: ie,
|
|
145
133
|
color: "text-accent-teal",
|
|
146
134
|
bgColor: "bg-accent-teal-subtle"
|
|
147
135
|
},
|
|
148
136
|
{
|
|
149
|
-
name:
|
|
150
|
-
description:
|
|
137
|
+
name: b("auth.security.navMfa", "Two-Factor Authentication"),
|
|
138
|
+
description: b("auth.security.navMfaDesc", "Secure your account with TOTP"),
|
|
151
139
|
path: "/auth/mfa",
|
|
152
|
-
icon:
|
|
140
|
+
icon: ne,
|
|
153
141
|
color: "text-accent-purple",
|
|
154
142
|
bgColor: "bg-accent-purple-subtle"
|
|
155
143
|
},
|
|
156
144
|
{
|
|
157
|
-
name:
|
|
158
|
-
description:
|
|
145
|
+
name: b("auth.security.navUsers", "Users"),
|
|
146
|
+
description: b("auth.security.navUsersDesc", "Manage system users"),
|
|
159
147
|
path: "/auth/users",
|
|
160
|
-
icon:
|
|
148
|
+
icon: re,
|
|
161
149
|
color: "text-accent-indigo",
|
|
162
150
|
bgColor: "bg-accent-indigo-subtle",
|
|
163
151
|
adminOnly: !0
|
|
164
152
|
}
|
|
165
|
-
],
|
|
166
|
-
name:
|
|
167
|
-
description:
|
|
168
|
-
path: "/auth/magic-link",
|
|
169
|
-
icon: h,
|
|
170
|
-
color: "text-accent-pink",
|
|
171
|
-
bgColor: "bg-accent-pink-subtle"
|
|
172
|
-
}, {
|
|
173
|
-
name: x("auth.security.navSso", "SSO Configuration"),
|
|
174
|
-
description: x("auth.security.navSsoDesc", "Enterprise single sign-on"),
|
|
153
|
+
], ue = [{
|
|
154
|
+
name: b("auth.security.navSso", "SSO Configuration"),
|
|
155
|
+
description: b("auth.security.navSsoDesc", "Enterprise single sign-on"),
|
|
175
156
|
path: "/auth/sso",
|
|
176
|
-
icon:
|
|
157
|
+
icon: ae,
|
|
177
158
|
color: "text-accent-cyan",
|
|
178
159
|
bgColor: "bg-accent-cyan-subtle",
|
|
179
160
|
adminOnly: !0
|
|
180
|
-
}], [k, A] =
|
|
181
|
-
|
|
161
|
+
}], [k, A] = c(!1), [j, M] = c(!1), [N, P] = c(""), [F, I] = c(""), [L, R] = c(null), [z, B] = c(null), V = o(), H = o(), U = o(), W = o(), G = o(), K = o(), q = o(), J = s(null), Y = s(null), X = s(null), Z = s(null);
|
|
162
|
+
a(() => {
|
|
182
163
|
k ? X.current?.focus() : J.current?.focus();
|
|
183
|
-
}, [k]),
|
|
164
|
+
}, [k]), a(() => {
|
|
184
165
|
j ? Z.current?.focus() : Y.current?.focus();
|
|
185
166
|
}, [j]);
|
|
186
|
-
let
|
|
187
|
-
|
|
167
|
+
let de = async () => {
|
|
168
|
+
E(!0);
|
|
188
169
|
try {
|
|
189
|
-
await oe(),
|
|
170
|
+
await oe(), x("/auth/login"), O(!1);
|
|
190
171
|
} catch (e) {
|
|
191
|
-
console.error("Logout failed:", e),
|
|
172
|
+
console.error("Logout failed:", e), E(!1);
|
|
192
173
|
}
|
|
193
|
-
},
|
|
174
|
+
}, fe = async () => {
|
|
194
175
|
R(null);
|
|
195
176
|
try {
|
|
196
177
|
let e = await se(N);
|
|
197
|
-
e.success ?
|
|
178
|
+
e.success ? x("/auth/login", { replace: !0 }) : R(e.message || b("auth.security.deactivateFailed", "Failed to deactivate account"));
|
|
198
179
|
} catch (e) {
|
|
199
|
-
R(e instanceof Error ? e.message :
|
|
180
|
+
R(e instanceof Error ? e.message : b("auth.security.deactivateFailed", "Failed to deactivate account"));
|
|
200
181
|
}
|
|
201
|
-
},
|
|
202
|
-
if (R(null), F !==
|
|
203
|
-
R(
|
|
182
|
+
}, pe = async () => {
|
|
183
|
+
if (R(null), F !== v) {
|
|
184
|
+
R(b("auth.security.deleteConfirmMismatch", "Please type \"DELETE MY ACCOUNT\" to confirm"));
|
|
204
185
|
return;
|
|
205
186
|
}
|
|
206
|
-
|
|
187
|
+
r("medium");
|
|
207
188
|
try {
|
|
208
189
|
let e = await ce(N, F);
|
|
209
|
-
e.success ? (
|
|
190
|
+
e.success ? (i("success"), x("/auth/login", { replace: !0 })) : (i("error"), R(e.message || b("auth.security.deleteFailed", "Failed to delete account")));
|
|
210
191
|
} catch (e) {
|
|
211
|
-
|
|
192
|
+
i("error"), R(e instanceof Error ? e.message : b("auth.security.deleteFailed", "Failed to delete account"));
|
|
212
193
|
}
|
|
213
194
|
}, Q = () => {
|
|
214
195
|
A(!1), M(!1), P(""), I(""), R(null), B(null);
|
|
215
|
-
}, $ =
|
|
216
|
-
return /* @__PURE__ */
|
|
196
|
+
}, $ = S?.role === "SUPER_ADMIN" || S?.role === "TENANT_ADMIN" || S?.role === "ORG_ADMIN", me = le.filter((e) => !e.adminOnly || $), he = ue.filter((e) => !e.adminOnly || $);
|
|
197
|
+
return /* @__PURE__ */ f("div", {
|
|
217
198
|
className: "bg-bg-canvas p-6",
|
|
218
|
-
children: [/* @__PURE__ */
|
|
219
|
-
open:
|
|
199
|
+
children: [/* @__PURE__ */ d(te, {
|
|
200
|
+
open: D,
|
|
220
201
|
onOpenChange: O,
|
|
221
|
-
title:
|
|
222
|
-
description:
|
|
223
|
-
confirmText:
|
|
202
|
+
title: b("auth.security.signOutDialogTitle", "Sign out now?"),
|
|
203
|
+
description: b("auth.security.signOutDialogDescription", "You will be signed out of this device and returned to the login screen."),
|
|
204
|
+
confirmText: b("auth.security.signOutDialogConfirm", "Sign out"),
|
|
224
205
|
variant: "warning",
|
|
225
|
-
isPending:
|
|
226
|
-
onConfirm:
|
|
227
|
-
}), /* @__PURE__ */
|
|
206
|
+
isPending: T,
|
|
207
|
+
onConfirm: de
|
|
208
|
+
}), /* @__PURE__ */ f("main", {
|
|
228
209
|
className: "max-w-7xl mx-auto space-y-8",
|
|
229
210
|
children: [
|
|
230
|
-
/* @__PURE__ */
|
|
211
|
+
/* @__PURE__ */ f("div", {
|
|
231
212
|
className: "flex items-center gap-3",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
213
|
+
children: [/* @__PURE__ */ d("div", {
|
|
233
214
|
className: "auth-brand-badge flex h-10 w-10 items-center justify-center rounded-xl",
|
|
234
|
-
children: /* @__PURE__ */
|
|
235
|
-
}), /* @__PURE__ */
|
|
215
|
+
children: /* @__PURE__ */ d(p, { className: "w-6 h-6 text-white" })
|
|
216
|
+
}), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h1", {
|
|
236
217
|
className: "text-lg font-bold text-text-primary",
|
|
237
|
-
children:
|
|
238
|
-
}), /* @__PURE__ */
|
|
218
|
+
children: b("auth.security.title", "Security Center")
|
|
219
|
+
}), /* @__PURE__ */ d("p", {
|
|
239
220
|
className: "text-xs text-text-secondary ",
|
|
240
|
-
children:
|
|
221
|
+
children: b("auth.security.subtitle", "Account & Authentication")
|
|
241
222
|
})] })]
|
|
242
223
|
}),
|
|
243
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ d("div", {
|
|
244
225
|
className: "auth-hero-card rounded-2xl p-6",
|
|
245
|
-
children: /* @__PURE__ */
|
|
226
|
+
children: /* @__PURE__ */ f("div", {
|
|
246
227
|
className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4",
|
|
247
|
-
children: [/* @__PURE__ */
|
|
228
|
+
children: [/* @__PURE__ */ f("div", {
|
|
248
229
|
className: "flex items-center gap-4",
|
|
249
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: [/* @__PURE__ */ d("div", {
|
|
250
231
|
className: "w-14 h-14 rounded-2xl bg-bg-surface/20 backdrop-blur flex items-center justify-center",
|
|
251
|
-
children: /* @__PURE__ */
|
|
252
|
-
}), /* @__PURE__ */
|
|
232
|
+
children: /* @__PURE__ */ d(p, { className: "w-8 h-8 text-white" })
|
|
233
|
+
}), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h2", {
|
|
253
234
|
className: "text-xl font-bold",
|
|
254
|
-
children:
|
|
255
|
-
}), /* @__PURE__ */
|
|
235
|
+
children: b("auth.security.securityStatus", "Security Status")
|
|
236
|
+
}), /* @__PURE__ */ d("p", {
|
|
256
237
|
className: "opacity-80",
|
|
257
|
-
children:
|
|
238
|
+
children: S?.mfaEnabled ? b("auth.security.wellProtected", "Your account is well protected") : b("auth.security.enableMfaSuggestion", "Enable MFA for better security")
|
|
258
239
|
})] })]
|
|
259
|
-
}), /* @__PURE__ */
|
|
240
|
+
}), /* @__PURE__ */ d("div", {
|
|
260
241
|
className: "flex items-center gap-3",
|
|
261
|
-
children:
|
|
242
|
+
children: S?.mfaEnabled ? /* @__PURE__ */ f("span", {
|
|
262
243
|
className: "inline-flex items-center gap-2 px-4 py-2 rounded-xl bg-bg-surface/20 backdrop-blur text-white font-medium",
|
|
263
|
-
children: [/* @__PURE__ */
|
|
264
|
-
}) : /* @__PURE__ */
|
|
244
|
+
children: [/* @__PURE__ */ d(h, { className: "w-5 h-5 text-status-success-text" }), b("auth.security.mfaEnabled", "MFA Enabled")]
|
|
245
|
+
}) : /* @__PURE__ */ f("button", {
|
|
265
246
|
type: "button",
|
|
266
|
-
onClick: () =>
|
|
247
|
+
onClick: () => x("/auth/mfa"),
|
|
267
248
|
className: "inline-flex items-center gap-2 px-4 py-2 rounded-xl bg-bg-surface text-text-link font-semibold hover:bg-status-info-bg-subtle transition-colors shadow-lg",
|
|
268
|
-
children: [/* @__PURE__ */
|
|
249
|
+
children: [/* @__PURE__ */ d(g, { className: "w-5 h-5 text-status-warning-text" }), b("auth.security.enableMfaNow", "Enable MFA Now")]
|
|
269
250
|
})
|
|
270
251
|
})]
|
|
271
252
|
})
|
|
272
253
|
}),
|
|
273
|
-
/* @__PURE__ */
|
|
254
|
+
/* @__PURE__ */ f("div", {
|
|
274
255
|
className: "mb-8 p-6 rounded-2xl bg-bg-surface border border-border-subtle shadow-sm",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
256
|
+
children: [/* @__PURE__ */ d("h3", {
|
|
276
257
|
className: "text-lg font-semibold text-text-primary mb-4",
|
|
277
|
-
children:
|
|
278
|
-
}), /* @__PURE__ */
|
|
258
|
+
children: b("auth.security.accountInfo", "Account Information")
|
|
259
|
+
}), /* @__PURE__ */ f("dl", {
|
|
279
260
|
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",
|
|
280
261
|
children: [
|
|
281
|
-
/* @__PURE__ */
|
|
262
|
+
/* @__PURE__ */ f("div", {
|
|
282
263
|
className: "sm:col-span-2 lg:col-span-1",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
264
|
+
children: [/* @__PURE__ */ d("dt", {
|
|
284
265
|
className: "text-sm font-medium text-text-secondary",
|
|
285
|
-
children:
|
|
286
|
-
}), /* @__PURE__ */
|
|
266
|
+
children: b("auth.security.email", "Email")
|
|
267
|
+
}), /* @__PURE__ */ f("dd", {
|
|
287
268
|
className: "mt-1 text-text-primary",
|
|
288
|
-
children: [/* @__PURE__ */
|
|
269
|
+
children: [/* @__PURE__ */ d("span", {
|
|
289
270
|
className: "block truncate",
|
|
290
|
-
title:
|
|
291
|
-
children:
|
|
292
|
-
}),
|
|
271
|
+
title: S?.email,
|
|
272
|
+
children: S?.email
|
|
273
|
+
}), S?.emailVerified && /* @__PURE__ */ f("span", {
|
|
293
274
|
className: "mt-1 inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-status-success-bg-subtle text-status-success-text text-xs font-medium",
|
|
294
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ d(h, { className: "w-3 h-3" }), b("auth.security.verified", "Verified")]
|
|
295
276
|
})]
|
|
296
277
|
})]
|
|
297
278
|
}),
|
|
298
|
-
/* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("dt", {
|
|
299
280
|
className: "text-sm font-medium text-text-secondary",
|
|
300
|
-
children:
|
|
301
|
-
}), /* @__PURE__ */
|
|
281
|
+
children: b("auth.security.username", "Username")
|
|
282
|
+
}), /* @__PURE__ */ d("dd", {
|
|
302
283
|
className: "mt-1 text-text-primary truncate",
|
|
303
|
-
title:
|
|
304
|
-
children:
|
|
284
|
+
title: S?.username ?? void 0,
|
|
285
|
+
children: S?.username || "-"
|
|
305
286
|
})] }),
|
|
306
|
-
/* @__PURE__ */
|
|
287
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("dt", {
|
|
307
288
|
className: "text-sm font-medium text-text-secondary",
|
|
308
|
-
children:
|
|
309
|
-
}), /* @__PURE__ */
|
|
289
|
+
children: b("auth.security.role", "Role")
|
|
290
|
+
}), /* @__PURE__ */ d("dd", {
|
|
310
291
|
className: "mt-1",
|
|
311
|
-
children: /* @__PURE__ */
|
|
292
|
+
children: /* @__PURE__ */ d("span", {
|
|
312
293
|
className: "inline-flex px-2.5 py-0.5 rounded-full bg-accent-indigo-subtle text-accent-indigo text-xs font-medium",
|
|
313
|
-
children:
|
|
294
|
+
children: S?.role || "USER"
|
|
314
295
|
})
|
|
315
296
|
})] }),
|
|
316
|
-
/* @__PURE__ */
|
|
297
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("dt", {
|
|
317
298
|
className: "text-sm font-medium text-text-secondary",
|
|
318
|
-
children:
|
|
319
|
-
}), /* @__PURE__ */
|
|
299
|
+
children: b("auth.security.memberSince", "Member Since")
|
|
300
|
+
}), /* @__PURE__ */ d("dd", {
|
|
320
301
|
className: "mt-1 text-text-primary",
|
|
321
|
-
children:
|
|
302
|
+
children: S?.createdAt ? ee(S.createdAt) : "-"
|
|
322
303
|
})] })
|
|
323
304
|
]
|
|
324
305
|
})]
|
|
325
306
|
}),
|
|
326
|
-
/* @__PURE__ */
|
|
307
|
+
/* @__PURE__ */ f("div", {
|
|
327
308
|
className: "mb-8",
|
|
328
|
-
children: [/* @__PURE__ */
|
|
309
|
+
children: [/* @__PURE__ */ d("h3", {
|
|
329
310
|
className: "text-lg font-semibold text-text-primary mb-4",
|
|
330
|
-
children:
|
|
331
|
-
}), /* @__PURE__ */
|
|
311
|
+
children: b("auth.security.securityAuth", "Security & Authentication")
|
|
312
|
+
}), /* @__PURE__ */ d("div", {
|
|
332
313
|
className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
333
|
-
children:
|
|
314
|
+
children: me.map((e) => /* @__PURE__ */ d("button", {
|
|
334
315
|
type: "button",
|
|
335
|
-
onClick: () =>
|
|
316
|
+
onClick: () => x(e.path),
|
|
336
317
|
"aria-label": e.name,
|
|
337
318
|
className: "group relative p-5 rounded-2xl bg-bg-surface border border-border-subtle hover:border-border-default hover:shadow-lg transition-all duration-200 text-left",
|
|
338
|
-
children: /* @__PURE__ */
|
|
319
|
+
children: /* @__PURE__ */ f("div", {
|
|
339
320
|
className: "flex items-start gap-4",
|
|
340
321
|
children: [
|
|
341
|
-
/* @__PURE__ */
|
|
322
|
+
/* @__PURE__ */ d("div", {
|
|
342
323
|
className: `w-12 h-12 rounded-xl ${e.bgColor} flex items-center justify-center flex-shrink-0 transition-transform group-hover:scale-110`,
|
|
343
|
-
children: /* @__PURE__ */
|
|
324
|
+
children: /* @__PURE__ */ d(e.icon, { className: `w-6 h-6 ${e.color}` })
|
|
344
325
|
}),
|
|
345
|
-
/* @__PURE__ */
|
|
326
|
+
/* @__PURE__ */ f("div", {
|
|
346
327
|
className: "flex-1 min-w-0",
|
|
347
|
-
children: [/* @__PURE__ */
|
|
328
|
+
children: [/* @__PURE__ */ d("h4", {
|
|
348
329
|
className: "text-base font-semibold text-text-primary group-hover:text-accent-indigo transition-colors",
|
|
349
330
|
children: e.name
|
|
350
|
-
}), /* @__PURE__ */
|
|
331
|
+
}), /* @__PURE__ */ d("p", {
|
|
351
332
|
className: "mt-1 text-sm text-text-secondary ",
|
|
352
333
|
children: e.description
|
|
353
334
|
})]
|
|
354
335
|
}),
|
|
355
|
-
/* @__PURE__ */
|
|
336
|
+
/* @__PURE__ */ d(m, { className: "w-5 h-5 text-text-tertiary group-hover:text-indigo-500 transition-colors flex-shrink-0" })
|
|
356
337
|
]
|
|
357
338
|
})
|
|
358
339
|
}, e.path))
|
|
359
340
|
})]
|
|
360
341
|
}),
|
|
361
|
-
/* @__PURE__ */
|
|
342
|
+
/* @__PURE__ */ f("div", {
|
|
362
343
|
className: "mb-8",
|
|
363
|
-
children: [/* @__PURE__ */
|
|
344
|
+
children: [/* @__PURE__ */ d("h3", {
|
|
364
345
|
className: "text-lg font-semibold text-text-primary mb-4",
|
|
365
|
-
children:
|
|
366
|
-
}), /* @__PURE__ */
|
|
346
|
+
children: b("auth.security.quickActions", "Quick Actions")
|
|
347
|
+
}), /* @__PURE__ */ d("div", {
|
|
367
348
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
|
|
368
|
-
children:
|
|
349
|
+
children: he.map((e) => /* @__PURE__ */ d("button", {
|
|
369
350
|
type: "button",
|
|
370
|
-
onClick: () =>
|
|
351
|
+
onClick: () => x(e.path),
|
|
371
352
|
"aria-label": e.name,
|
|
372
353
|
className: "group relative p-5 rounded-2xl bg-bg-surface border border-border-subtle hover:border-border-default hover:shadow-lg transition-all duration-200 text-left",
|
|
373
|
-
children: /* @__PURE__ */
|
|
354
|
+
children: /* @__PURE__ */ f("div", {
|
|
374
355
|
className: "flex items-start gap-4",
|
|
375
356
|
children: [
|
|
376
|
-
/* @__PURE__ */
|
|
357
|
+
/* @__PURE__ */ d("div", {
|
|
377
358
|
className: `w-12 h-12 rounded-xl ${e.bgColor} flex items-center justify-center flex-shrink-0 transition-transform group-hover:scale-110`,
|
|
378
|
-
children: /* @__PURE__ */
|
|
359
|
+
children: /* @__PURE__ */ d(e.icon, { className: `w-6 h-6 ${e.color}` })
|
|
379
360
|
}),
|
|
380
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ f("div", {
|
|
381
362
|
className: "flex-1 min-w-0",
|
|
382
|
-
children: [/* @__PURE__ */
|
|
363
|
+
children: [/* @__PURE__ */ d("h4", {
|
|
383
364
|
className: "text-base font-semibold text-text-primary group-hover:text-accent-indigo transition-colors",
|
|
384
365
|
children: e.name
|
|
385
|
-
}), /* @__PURE__ */
|
|
366
|
+
}), /* @__PURE__ */ d("p", {
|
|
386
367
|
className: "mt-1 text-sm text-text-secondary ",
|
|
387
368
|
children: e.description
|
|
388
369
|
})]
|
|
389
370
|
}),
|
|
390
|
-
/* @__PURE__ */
|
|
371
|
+
/* @__PURE__ */ d(m, { className: "w-5 h-5 text-text-tertiary group-hover:text-indigo-500 transition-colors flex-shrink-0" })
|
|
391
372
|
]
|
|
392
373
|
})
|
|
393
374
|
}, e.path))
|
|
394
375
|
})]
|
|
395
376
|
}),
|
|
396
|
-
/* @__PURE__ */
|
|
377
|
+
/* @__PURE__ */ f("div", {
|
|
397
378
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
|
|
398
|
-
children: [/* @__PURE__ */
|
|
379
|
+
children: [/* @__PURE__ */ f("div", {
|
|
399
380
|
className: "p-6 rounded-2xl bg-bg-surface border border-border-subtle ",
|
|
400
|
-
children: [/* @__PURE__ */
|
|
381
|
+
children: [/* @__PURE__ */ d("div", {
|
|
401
382
|
className: "flex items-start justify-between",
|
|
402
|
-
children: /* @__PURE__ */
|
|
403
|
-
/* @__PURE__ */
|
|
383
|
+
children: /* @__PURE__ */ f("div", { children: [
|
|
384
|
+
/* @__PURE__ */ d("h3", {
|
|
404
385
|
className: "text-lg font-semibold text-text-primary",
|
|
405
|
-
children:
|
|
386
|
+
children: b("auth.security.password", "Password")
|
|
406
387
|
}),
|
|
407
|
-
/* @__PURE__ */
|
|
388
|
+
/* @__PURE__ */ d("p", {
|
|
408
389
|
className: "mt-1 text-sm text-text-secondary ",
|
|
409
|
-
children:
|
|
390
|
+
children: b("auth.security.updatePassword", "Update your password to keep your account secure")
|
|
410
391
|
}),
|
|
411
|
-
/* @__PURE__ */
|
|
392
|
+
/* @__PURE__ */ d("p", {
|
|
412
393
|
className: "mt-2 text-xs text-text-tertiary ",
|
|
413
|
-
children:
|
|
394
|
+
children: b("auth.security.lastChanged", "Last changed: Never")
|
|
414
395
|
})
|
|
415
396
|
] })
|
|
416
|
-
}), /* @__PURE__ */
|
|
397
|
+
}), /* @__PURE__ */ d("button", {
|
|
417
398
|
type: "button",
|
|
418
|
-
onClick: () =>
|
|
399
|
+
onClick: () => x("/auth/reset-password"),
|
|
419
400
|
className: "auth-primary-button mt-4 w-full px-5 py-2.5 font-semibold sm:w-auto",
|
|
420
|
-
children:
|
|
401
|
+
children: b("auth.security.changePassword", "Change Password")
|
|
421
402
|
})]
|
|
422
|
-
}), /* @__PURE__ */
|
|
403
|
+
}), /* @__PURE__ */ f("div", {
|
|
423
404
|
className: "p-6 rounded-2xl bg-status-error-bg-subtle border border-status-error-border",
|
|
424
405
|
children: [
|
|
425
|
-
/* @__PURE__ */
|
|
406
|
+
/* @__PURE__ */ d("h3", {
|
|
426
407
|
className: "text-lg font-semibold text-status-error-text",
|
|
427
|
-
children:
|
|
408
|
+
children: b("auth.security.dangerZone", "Danger Zone")
|
|
428
409
|
}),
|
|
429
|
-
/* @__PURE__ */
|
|
410
|
+
/* @__PURE__ */ d("p", {
|
|
430
411
|
className: "mt-1 text-sm text-status-error-text/80",
|
|
431
|
-
children:
|
|
412
|
+
children: b("auth.security.dangerWarning", "These actions affect your account. Proceed with caution.")
|
|
432
413
|
}),
|
|
433
|
-
/* @__PURE__ */
|
|
414
|
+
/* @__PURE__ */ f("div", {
|
|
434
415
|
className: "mt-4 flex flex-wrap gap-3",
|
|
435
|
-
children: [/* @__PURE__ */
|
|
416
|
+
children: [/* @__PURE__ */ d("button", {
|
|
436
417
|
ref: J,
|
|
437
418
|
type: "button",
|
|
438
419
|
onClick: () => A(!0),
|
|
439
420
|
className: "px-5 py-2.5 rounded-xl border-2 border-status-warning-border text-status-warning-text font-semibold hover:bg-status-warning-bg-subtle transition-all duration-200",
|
|
440
|
-
children:
|
|
441
|
-
}), /* @__PURE__ */
|
|
421
|
+
children: b("auth.security.deactivateAccount", "Deactivate Account")
|
|
422
|
+
}), /* @__PURE__ */ d("button", {
|
|
442
423
|
ref: Y,
|
|
443
424
|
type: "button",
|
|
444
425
|
onClick: () => M(!0),
|
|
445
426
|
className: "px-5 py-2.5 rounded-xl border-2 border-status-error-border text-status-error-text font-semibold hover:bg-status-error-bg-subtle transition-all duration-200",
|
|
446
|
-
children:
|
|
427
|
+
children: b("auth.security.deleteAccount", "Delete Account")
|
|
447
428
|
})]
|
|
448
429
|
})
|
|
449
430
|
]
|
|
450
431
|
})]
|
|
451
432
|
}),
|
|
452
|
-
k && /* @__PURE__ */
|
|
433
|
+
k && /* @__PURE__ */ d("div", {
|
|
453
434
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",
|
|
454
435
|
role: "presentation",
|
|
455
436
|
onClick: (e) => {
|
|
456
437
|
e.target === e.currentTarget && Q();
|
|
457
438
|
},
|
|
458
|
-
children: /* @__PURE__ */
|
|
439
|
+
children: /* @__PURE__ */ f("div", {
|
|
459
440
|
ref: X,
|
|
460
441
|
role: "dialog",
|
|
461
442
|
"aria-modal": "true",
|
|
@@ -463,67 +444,67 @@ function b() {
|
|
|
463
444
|
tabIndex: -1,
|
|
464
445
|
className: "w-full max-w-md bg-bg-surface rounded-2xl shadow-2xl p-6 outline-none",
|
|
465
446
|
children: [
|
|
466
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ d("h3", {
|
|
467
448
|
id: V,
|
|
468
449
|
className: "text-xl font-bold text-text-primary mb-2",
|
|
469
|
-
children:
|
|
450
|
+
children: b("auth.security.deactivateTitle", "Deactivate Account")
|
|
470
451
|
}),
|
|
471
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ d("p", {
|
|
472
453
|
className: "text-sm text-text-secondary mb-4",
|
|
473
|
-
children:
|
|
454
|
+
children: b("auth.security.deactivateDesc", "Your account will be temporarily disabled. You can reactivate it by signing in again with your credentials.")
|
|
474
455
|
}),
|
|
475
|
-
L && /* @__PURE__ */
|
|
456
|
+
L && /* @__PURE__ */ d("div", {
|
|
476
457
|
id: U,
|
|
477
458
|
role: "alert",
|
|
478
459
|
className: "mb-4 p-3 rounded-lg bg-status-error-bg-subtle text-status-error-text text-sm",
|
|
479
460
|
children: L
|
|
480
461
|
}),
|
|
481
|
-
z && /* @__PURE__ */
|
|
462
|
+
z && /* @__PURE__ */ d("div", {
|
|
482
463
|
role: "status",
|
|
483
464
|
className: "mb-4 p-3 rounded-lg bg-status-success-bg-subtle text-status-success-text text-sm",
|
|
484
465
|
children: z
|
|
485
466
|
}),
|
|
486
|
-
/* @__PURE__ */
|
|
467
|
+
/* @__PURE__ */ f("div", {
|
|
487
468
|
className: "mb-4",
|
|
488
|
-
children: [/* @__PURE__ */
|
|
469
|
+
children: [/* @__PURE__ */ d("label", {
|
|
489
470
|
htmlFor: H,
|
|
490
471
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
491
|
-
children:
|
|
492
|
-
}), /* @__PURE__ */
|
|
472
|
+
children: b("auth.security.enterPasswordConfirm", "Enter your password to confirm")
|
|
473
|
+
}), /* @__PURE__ */ d("input", {
|
|
493
474
|
id: H,
|
|
494
475
|
type: "password",
|
|
495
476
|
value: N,
|
|
496
477
|
onChange: (e) => P(e.target.value),
|
|
497
478
|
"aria-describedby": L ? U : void 0,
|
|
498
479
|
className: "w-full px-4 py-2 rounded-lg border border-border-default bg-bg-surface text-text-primary focus:ring-2 focus:ring-status-warning-bg focus:border-transparent",
|
|
499
|
-
placeholder:
|
|
480
|
+
placeholder: b("auth.security.yourPassword", "Your password")
|
|
500
481
|
})]
|
|
501
482
|
}),
|
|
502
|
-
/* @__PURE__ */
|
|
483
|
+
/* @__PURE__ */ f("div", {
|
|
503
484
|
className: "flex gap-3",
|
|
504
|
-
children: [/* @__PURE__ */
|
|
485
|
+
children: [/* @__PURE__ */ d("button", {
|
|
505
486
|
type: "button",
|
|
506
487
|
onClick: Q,
|
|
507
488
|
className: "flex-1 px-4 py-2 rounded-lg border border-border-default text-text-primary font-medium hover:bg-bg-sunken transition-colors",
|
|
508
|
-
children:
|
|
509
|
-
}), /* @__PURE__ */
|
|
489
|
+
children: b("auth.security.cancel", "Cancel")
|
|
490
|
+
}), /* @__PURE__ */ f("button", {
|
|
510
491
|
type: "button",
|
|
511
|
-
onClick: () => void
|
|
512
|
-
disabled: !N ||
|
|
492
|
+
onClick: () => void fe(),
|
|
493
|
+
disabled: !N || C,
|
|
513
494
|
className: "flex-1 px-4 py-2 rounded-lg bg-status-warning-bg text-white font-medium hover:bg-status-warning-bg-hover disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center justify-center gap-2",
|
|
514
|
-
children: [
|
|
495
|
+
children: [C && /* @__PURE__ */ d(_, { className: "w-4 h-4 animate-spin" }), b("auth.security.deactivateBtn", "Deactivate")]
|
|
515
496
|
})]
|
|
516
497
|
})
|
|
517
498
|
]
|
|
518
499
|
})
|
|
519
500
|
}),
|
|
520
|
-
j && /* @__PURE__ */
|
|
501
|
+
j && /* @__PURE__ */ d("div", {
|
|
521
502
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",
|
|
522
503
|
role: "presentation",
|
|
523
504
|
onClick: (e) => {
|
|
524
505
|
e.target === e.currentTarget && Q();
|
|
525
506
|
},
|
|
526
|
-
children: /* @__PURE__ */
|
|
507
|
+
children: /* @__PURE__ */ f("div", {
|
|
527
508
|
ref: Z,
|
|
528
509
|
role: "dialog",
|
|
529
510
|
"aria-modal": "true",
|
|
@@ -531,115 +512,115 @@ function b() {
|
|
|
531
512
|
tabIndex: -1,
|
|
532
513
|
className: "w-full max-w-md bg-bg-surface rounded-2xl shadow-2xl p-6 outline-none",
|
|
533
514
|
children: [
|
|
534
|
-
/* @__PURE__ */
|
|
515
|
+
/* @__PURE__ */ d("h3", {
|
|
535
516
|
id: W,
|
|
536
517
|
className: "text-xl font-bold text-status-error-text mb-2",
|
|
537
|
-
children:
|
|
518
|
+
children: b("auth.security.deleteTitle", "Delete Account Permanently")
|
|
538
519
|
}),
|
|
539
|
-
/* @__PURE__ */
|
|
520
|
+
/* @__PURE__ */ d("p", {
|
|
540
521
|
className: "text-sm text-text-secondary mb-4",
|
|
541
|
-
children:
|
|
522
|
+
children: b("auth.security.deleteDesc", "This action is irreversible. All your data will be permanently deleted and cannot be recovered.")
|
|
542
523
|
}),
|
|
543
|
-
L && /* @__PURE__ */
|
|
524
|
+
L && /* @__PURE__ */ d("div", {
|
|
544
525
|
id: q,
|
|
545
526
|
role: "alert",
|
|
546
527
|
className: "mb-4 p-3 rounded-lg bg-status-error-bg-subtle text-status-error-text text-sm",
|
|
547
528
|
children: L
|
|
548
529
|
}),
|
|
549
|
-
z && /* @__PURE__ */
|
|
530
|
+
z && /* @__PURE__ */ d("div", {
|
|
550
531
|
role: "status",
|
|
551
532
|
className: "mb-4 p-3 rounded-lg bg-status-success-bg-subtle text-status-success-text text-sm",
|
|
552
533
|
children: z
|
|
553
534
|
}),
|
|
554
|
-
/* @__PURE__ */
|
|
535
|
+
/* @__PURE__ */ f("div", {
|
|
555
536
|
className: "mb-4",
|
|
556
|
-
children: [/* @__PURE__ */
|
|
537
|
+
children: [/* @__PURE__ */ d("label", {
|
|
557
538
|
htmlFor: G,
|
|
558
539
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
559
|
-
children:
|
|
560
|
-
}), /* @__PURE__ */
|
|
540
|
+
children: b("auth.security.enterPasswordDelete", "Enter your password")
|
|
541
|
+
}), /* @__PURE__ */ d("input", {
|
|
561
542
|
id: G,
|
|
562
543
|
type: "password",
|
|
563
544
|
value: N,
|
|
564
545
|
onChange: (e) => P(e.target.value),
|
|
565
546
|
"aria-describedby": L ? q : void 0,
|
|
566
547
|
className: "w-full px-4 py-2 rounded-lg border border-border-default bg-bg-surface text-text-primary focus:ring-2 focus:ring-status-error-bg focus:border-transparent",
|
|
567
|
-
placeholder:
|
|
548
|
+
placeholder: b("auth.security.yourPassword", "Your password")
|
|
568
549
|
})]
|
|
569
550
|
}),
|
|
570
|
-
/* @__PURE__ */
|
|
551
|
+
/* @__PURE__ */ f("div", {
|
|
571
552
|
className: "mb-4",
|
|
572
|
-
children: [/* @__PURE__ */
|
|
553
|
+
children: [/* @__PURE__ */ f("label", {
|
|
573
554
|
htmlFor: K,
|
|
574
555
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
575
556
|
children: [
|
|
576
|
-
|
|
557
|
+
b("auth.security.type", "Type"),
|
|
577
558
|
" ",
|
|
578
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ d("code", {
|
|
579
560
|
className: "px-1 py-0.5 rounded bg-bg-sunken text-status-error-text font-mono text-sm",
|
|
580
|
-
children:
|
|
561
|
+
children: v
|
|
581
562
|
}),
|
|
582
563
|
" ",
|
|
583
|
-
|
|
564
|
+
b("auth.security.toConfirm", "to confirm")
|
|
584
565
|
]
|
|
585
|
-
}), /* @__PURE__ */
|
|
566
|
+
}), /* @__PURE__ */ d("input", {
|
|
586
567
|
id: K,
|
|
587
568
|
type: "text",
|
|
588
569
|
value: F,
|
|
589
570
|
onChange: (e) => I(e.target.value),
|
|
590
571
|
"aria-describedby": L ? q : void 0,
|
|
591
572
|
className: "w-full px-4 py-2 rounded-lg border border-border-default bg-bg-surface text-text-primary focus:ring-2 focus:ring-status-error-bg focus:border-transparent font-mono",
|
|
592
|
-
placeholder:
|
|
573
|
+
placeholder: b("auth.security.deleteConfirmPlaceholder", "DELETE MY ACCOUNT")
|
|
593
574
|
})]
|
|
594
575
|
}),
|
|
595
|
-
/* @__PURE__ */
|
|
576
|
+
/* @__PURE__ */ f("div", {
|
|
596
577
|
className: "flex gap-3",
|
|
597
|
-
children: [/* @__PURE__ */
|
|
578
|
+
children: [/* @__PURE__ */ d("button", {
|
|
598
579
|
type: "button",
|
|
599
580
|
onClick: Q,
|
|
600
581
|
className: "flex-1 px-4 py-2 rounded-lg border border-border-default text-text-primary font-medium hover:bg-bg-sunken transition-colors",
|
|
601
|
-
children:
|
|
602
|
-
}), /* @__PURE__ */
|
|
582
|
+
children: b("auth.security.cancel", "Cancel")
|
|
583
|
+
}), /* @__PURE__ */ f("button", {
|
|
603
584
|
type: "button",
|
|
604
|
-
onClick: () => void
|
|
605
|
-
disabled: !N || F !==
|
|
585
|
+
onClick: () => void pe(),
|
|
586
|
+
disabled: !N || F !== v || w,
|
|
606
587
|
className: "flex-1 px-4 py-2 rounded-lg bg-status-error-bg text-white font-medium hover:bg-status-error-bg-hover disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center justify-center gap-2",
|
|
607
|
-
children: [
|
|
588
|
+
children: [w && /* @__PURE__ */ d(_, { className: "w-4 h-4 animate-spin" }), b("auth.security.deleteForever", "Delete Forever")]
|
|
608
589
|
})]
|
|
609
590
|
})
|
|
610
591
|
]
|
|
611
592
|
})
|
|
612
593
|
}),
|
|
613
|
-
/* @__PURE__ */
|
|
594
|
+
/* @__PURE__ */ d("footer", {
|
|
614
595
|
className: "mt-12 pt-6 border-t border-border-subtle ",
|
|
615
|
-
children: /* @__PURE__ */
|
|
596
|
+
children: /* @__PURE__ */ f("div", {
|
|
616
597
|
className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 text-sm text-text-secondary ",
|
|
617
|
-
children: [/* @__PURE__ */
|
|
618
|
-
|
|
598
|
+
children: [/* @__PURE__ */ f("p", { children: [
|
|
599
|
+
b("auth.security.signedInAs", "Signed in as"),
|
|
619
600
|
" ",
|
|
620
|
-
/* @__PURE__ */
|
|
601
|
+
/* @__PURE__ */ d("span", {
|
|
621
602
|
className: "font-medium text-text-primary ",
|
|
622
|
-
children:
|
|
603
|
+
children: S?.email
|
|
623
604
|
})
|
|
624
|
-
] }), /* @__PURE__ */
|
|
605
|
+
] }), /* @__PURE__ */ f("div", {
|
|
625
606
|
className: "flex items-center gap-4",
|
|
626
607
|
children: [
|
|
627
|
-
/* @__PURE__ */
|
|
608
|
+
/* @__PURE__ */ d("button", {
|
|
628
609
|
type: "button",
|
|
629
|
-
onClick: () =>
|
|
610
|
+
onClick: () => x("/auth/login"),
|
|
630
611
|
className: "hover:text-text-primary transition-colors",
|
|
631
|
-
children:
|
|
612
|
+
children: b("auth.security.switchAccount", "Switch Account")
|
|
632
613
|
}),
|
|
633
|
-
/* @__PURE__ */
|
|
614
|
+
/* @__PURE__ */ d("span", {
|
|
634
615
|
className: "text-text-muted",
|
|
635
616
|
"aria-hidden": "true",
|
|
636
617
|
children: "|"
|
|
637
618
|
}),
|
|
638
|
-
/* @__PURE__ */
|
|
619
|
+
/* @__PURE__ */ d("button", {
|
|
639
620
|
type: "button",
|
|
640
621
|
onClick: () => O(!0),
|
|
641
622
|
className: "hover:text-status-error-text transition-colors",
|
|
642
|
-
children:
|
|
623
|
+
children: b("auth.security.signOut", "Sign Out")
|
|
643
624
|
})
|
|
644
625
|
]
|
|
645
626
|
})]
|
|
@@ -650,6 +631,6 @@ function b() {
|
|
|
650
631
|
});
|
|
651
632
|
}
|
|
652
633
|
//#endregion
|
|
653
|
-
export {
|
|
634
|
+
export { y as SecurityPage };
|
|
654
635
|
|
|
655
636
|
//# sourceMappingURL=SecurityPage.js.map
|