@burdenoff/microfe-auth 2026.830.1 → 2026.830.2

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.
Files changed (64) hide show
  1. package/dist/auth/AuthRoot.js +43 -41
  2. package/dist/auth/AuthRoot.js.map +1 -1
  3. package/dist/auth/components/AuthLayout.js +65 -67
  4. package/dist/auth/components/AuthLayout.js.map +1 -1
  5. package/dist/auth/components/CaptchaV2.js +21 -24
  6. package/dist/auth/components/CaptchaV2.js.map +1 -1
  7. package/dist/auth/components/ConfirmActionDialog.js +33 -32
  8. package/dist/auth/components/ConfirmActionDialog.js.map +1 -1
  9. package/dist/auth/components/profile/UserProfileMenu.js +44 -46
  10. package/dist/auth/components/profile/UserProfileMenu.js.map +1 -1
  11. package/dist/auth/components/workspace/WorkspaceSelector.js +62 -68
  12. package/dist/auth/components/workspace/WorkspaceSelector.js.map +1 -1
  13. package/dist/auth/pages/AuditLogPage.js +65 -68
  14. package/dist/auth/pages/AuditLogPage.js.map +1 -1
  15. package/dist/auth/pages/EmailVerifyPage.js +51 -54
  16. package/dist/auth/pages/EmailVerifyPage.js.map +1 -1
  17. package/dist/auth/pages/LoginPage.js +223 -225
  18. package/dist/auth/pages/LoginPage.js.map +1 -1
  19. package/dist/auth/pages/MagicLinkPage.js +67 -69
  20. package/dist/auth/pages/MagicLinkPage.js.map +1 -1
  21. package/dist/auth/pages/MfaSetupPage.js +85 -88
  22. package/dist/auth/pages/MfaSetupPage.js.map +1 -1
  23. package/dist/auth/pages/MfaVerifyPage.js +60 -63
  24. package/dist/auth/pages/MfaVerifyPage.js.map +1 -1
  25. package/dist/auth/pages/OAuthCallbackPage.js +37 -40
  26. package/dist/auth/pages/OAuthCallbackPage.js.map +1 -1
  27. package/dist/auth/pages/PasswordResetPage.js +102 -105
  28. package/dist/auth/pages/PasswordResetPage.js.map +1 -1
  29. package/dist/auth/pages/ReactivatePage.js +54 -57
  30. package/dist/auth/pages/ReactivatePage.js.map +1 -1
  31. package/dist/auth/pages/RegisterPage.js +171 -174
  32. package/dist/auth/pages/RegisterPage.js.map +1 -1
  33. package/dist/auth/pages/SSOClearPage.js +21 -20
  34. package/dist/auth/pages/SSOClearPage.js.map +1 -1
  35. package/dist/auth/pages/SSODepositPage.js +27 -26
  36. package/dist/auth/pages/SSODepositPage.js.map +1 -1
  37. package/dist/auth/pages/SSORelayCallbackPage.js +19 -18
  38. package/dist/auth/pages/SSORelayCallbackPage.js.map +1 -1
  39. package/dist/auth/pages/SecurityPage.js +247 -250
  40. package/dist/auth/pages/SecurityPage.js.map +1 -1
  41. package/dist/auth/pages/SessionsPage.js +95 -98
  42. package/dist/auth/pages/SessionsPage.js.map +1 -1
  43. package/dist/auth/pages/SsoCallbackPage.js +53 -56
  44. package/dist/auth/pages/SsoCallbackPage.js.map +1 -1
  45. package/dist/auth/pages/SsoConfigPage.js +296 -299
  46. package/dist/auth/pages/SsoConfigPage.js.map +1 -1
  47. package/dist/auth/pages/SsoLoginPage.js +65 -68
  48. package/dist/auth/pages/SsoLoginPage.js.map +1 -1
  49. package/dist/auth/pages/UserDetailsPage.js +124 -127
  50. package/dist/auth/pages/UserDetailsPage.js.map +1 -1
  51. package/dist/auth/pages/UserProfilePage.js +171 -174
  52. package/dist/auth/pages/UserProfilePage.js.map +1 -1
  53. package/dist/auth/pages/UsersPage.js +322 -325
  54. package/dist/auth/pages/UsersPage.js.map +1 -1
  55. package/dist/index.d.ts +1 -0
  56. package/dist/index.js +2 -1
  57. package/dist/shared/hooks/index.d.ts +1 -6
  58. package/dist/shared/hooks/useTr.d.ts +16 -0
  59. package/dist/shared/hooks/useTr.js +14 -0
  60. package/dist/shared/hooks/useTr.js.map +1 -0
  61. package/dist/translations/en.d.ts +806 -248
  62. package/dist/translations/en.js +870 -0
  63. package/dist/translations/en.js.map +1 -0
  64. package/package.json +1 -1
@@ -1,455 +1,452 @@
1
1
  import { useAuthStore as e } from "../store/authStore.js";
2
- import { useAuthOperations as t } from "../hooks/useAuthOperations.js";
3
- import { useAccountOperations as n } from "../hooks/useAccountOperations.js";
4
- import { formatDate as ee } from "../utils/formatters.js";
5
- import { ConfirmActionDialog as te } from "../components/ConfirmActionDialog.js";
6
- import { nativeImpact as ne, nativeNotify as r } from "../../utils/nativeBridge.js";
7
- import { useEffect as i, useId as a, useRef as o, useState as s } from "react";
8
- import { useNavigate as re } from "react-router";
9
- import { useI18n as ie } from "@burdenoff/fe-libs/shared/providers/shell";
10
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
11
- import { Button as u } from "@burdenoff/fe-libs/button";
12
- import { EmphasisPanel as ae, NextSteps as oe, PagePurpose as d } from "@burdenoff/fe-libs/ui";
2
+ import { useTr as t } from "../../shared/hooks/useTr.js";
3
+ import { useAuthOperations as ee } from "../hooks/useAuthOperations.js";
4
+ import { useAccountOperations as te } from "../hooks/useAccountOperations.js";
5
+ import { formatDate as ne } from "../utils/formatters.js";
6
+ import { ConfirmActionDialog as re } from "../components/ConfirmActionDialog.js";
7
+ import { nativeImpact as ie, nativeNotify as n } from "../../utils/nativeBridge.js";
8
+ import { useEffect as r, useId as i, useRef as a, useState as o } from "react";
9
+ import { useNavigate as ae } from "react-router";
10
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
11
+ import { Button as l } from "@burdenoff/fe-libs/button";
12
+ import { EmphasisPanel as u, NextSteps as d, PagePurpose as f } from "@burdenoff/fe-libs/ui";
13
13
  //#region src/auth/pages/SecurityPage.tsx
14
- var f = ({ className: e }) => /* @__PURE__ */ c("svg", {
14
+ var p = ({ className: e }) => /* @__PURE__ */ s("svg", {
15
15
  className: e,
16
16
  fill: "none",
17
17
  viewBox: "0 0 24 24",
18
18
  stroke: "currentColor",
19
19
  "aria-hidden": "true",
20
- children: /* @__PURE__ */ c("path", {
20
+ children: /* @__PURE__ */ s("path", {
21
21
  strokeLinecap: "round",
22
22
  strokeLinejoin: "round",
23
23
  strokeWidth: 1.5,
24
24
  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"
25
25
  })
26
- }), p = ({ className: e }) => /* @__PURE__ */ c("svg", {
26
+ }), m = ({ className: e }) => /* @__PURE__ */ s("svg", {
27
27
  className: e,
28
28
  fill: "none",
29
29
  viewBox: "0 0 24 24",
30
30
  stroke: "currentColor",
31
31
  "aria-hidden": "true",
32
- children: /* @__PURE__ */ c("path", {
32
+ children: /* @__PURE__ */ s("path", {
33
33
  strokeLinecap: "round",
34
34
  strokeLinejoin: "round",
35
35
  strokeWidth: 1.5,
36
36
  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"
37
37
  })
38
- }), m = ({ className: e }) => /* @__PURE__ */ c("svg", {
38
+ }), oe = ({ className: e }) => /* @__PURE__ */ s("svg", {
39
39
  className: e,
40
40
  fill: "none",
41
41
  viewBox: "0 0 24 24",
42
42
  stroke: "currentColor",
43
43
  "aria-hidden": "true",
44
- children: /* @__PURE__ */ c("path", {
44
+ children: /* @__PURE__ */ s("path", {
45
45
  strokeLinecap: "round",
46
46
  strokeLinejoin: "round",
47
47
  strokeWidth: 1.5,
48
48
  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"
49
49
  })
50
- }), se = ({ className: e }) => /* @__PURE__ */ c("svg", {
50
+ }), se = ({ className: e }) => /* @__PURE__ */ s("svg", {
51
51
  className: e,
52
52
  fill: "none",
53
53
  viewBox: "0 0 24 24",
54
54
  stroke: "currentColor",
55
55
  "aria-hidden": "true",
56
- children: /* @__PURE__ */ c("path", {
56
+ children: /* @__PURE__ */ s("path", {
57
57
  strokeLinecap: "round",
58
58
  strokeLinejoin: "round",
59
59
  strokeWidth: 1.5,
60
60
  d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
61
61
  })
62
- }), ce = ({ className: e }) => /* @__PURE__ */ c("svg", {
62
+ }), ce = ({ className: e }) => /* @__PURE__ */ s("svg", {
63
63
  className: e,
64
64
  fill: "none",
65
65
  viewBox: "0 0 24 24",
66
66
  stroke: "currentColor",
67
67
  "aria-hidden": "true",
68
- children: /* @__PURE__ */ c("path", {
68
+ children: /* @__PURE__ */ s("path", {
69
69
  strokeLinecap: "round",
70
70
  strokeLinejoin: "round",
71
71
  strokeWidth: 1.5,
72
72
  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"
73
73
  })
74
- }), h = ({ className: e }) => /* @__PURE__ */ c("svg", {
74
+ }), h = ({ className: e }) => /* @__PURE__ */ s("svg", {
75
75
  className: e,
76
76
  fill: "none",
77
77
  viewBox: "0 0 24 24",
78
78
  stroke: "currentColor",
79
79
  "aria-hidden": "true",
80
- children: /* @__PURE__ */ c("path", {
80
+ children: /* @__PURE__ */ s("path", {
81
81
  strokeLinecap: "round",
82
82
  strokeLinejoin: "round",
83
83
  strokeWidth: 2,
84
84
  d: "M9 5l7 7-7 7"
85
85
  })
86
- }), g = ({ className: e }) => /* @__PURE__ */ c("svg", {
86
+ }), g = ({ className: e }) => /* @__PURE__ */ s("svg", {
87
87
  className: e,
88
88
  fill: "currentColor",
89
89
  viewBox: "0 0 20 20",
90
90
  "aria-hidden": "true",
91
- children: /* @__PURE__ */ c("path", {
91
+ children: /* @__PURE__ */ s("path", {
92
92
  fillRule: "evenodd",
93
93
  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",
94
94
  clipRule: "evenodd"
95
95
  })
96
- }), _ = ({ className: e }) => /* @__PURE__ */ c("svg", {
96
+ }), le = ({ className: e }) => /* @__PURE__ */ s("svg", {
97
97
  className: e,
98
98
  fill: "currentColor",
99
99
  viewBox: "0 0 20 20",
100
100
  "aria-hidden": "true",
101
- children: /* @__PURE__ */ c("path", {
101
+ children: /* @__PURE__ */ s("path", {
102
102
  fillRule: "evenodd",
103
103
  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",
104
104
  clipRule: "evenodd"
105
105
  })
106
- }), v = ({ className: e }) => /* @__PURE__ */ l("svg", {
106
+ }), _ = ({ className: e }) => /* @__PURE__ */ c("svg", {
107
107
  className: e,
108
108
  fill: "none",
109
109
  viewBox: "0 0 24 24",
110
110
  "aria-hidden": "true",
111
- children: [/* @__PURE__ */ c("circle", {
111
+ children: [/* @__PURE__ */ s("circle", {
112
112
  className: "opacity-25",
113
113
  cx: "12",
114
114
  cy: "12",
115
115
  r: "10",
116
116
  stroke: "currentColor",
117
117
  strokeWidth: "4"
118
- }), /* @__PURE__ */ c("path", {
118
+ }), /* @__PURE__ */ s("path", {
119
119
  className: "opacity-75",
120
120
  fill: "currentColor",
121
121
  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"
122
122
  })]
123
- }), y = "DELETE MY ACCOUNT";
124
- function b({ enableAdminRoutes: b = !1 }) {
125
- let { t: le } = ie(), x = (e, t) => {
126
- let n = le(e);
127
- return n === e ? t : n;
128
- }, S = re(), C = e((e) => e.user), { signOut: w } = t({ disableCurrentUserQuery: !0 }), { deactivateAccount: T, deleteAccount: ue, isDeactivating: E, isDeleting: D } = n(), [de, O] = s(!1), [fe, k] = s(!1), pe = [
123
+ }), v = "DELETE MY ACCOUNT";
124
+ function y({ enableAdminRoutes: y = !1 }) {
125
+ let b = t(), x = ae(), S = e((e) => e.user), { signOut: C } = ee({ disableCurrentUserQuery: !0 }), { deactivateAccount: w, deleteAccount: T, isDeactivating: E, isDeleting: D } = te(), [ue, O] = o(!1), [de, k] = o(!1), fe = [
129
126
  {
130
- name: x("auth.security.navProfile", "User Profile"),
131
- description: x("auth.security.navProfileDesc", "View and edit your profile information"),
127
+ name: b("auth.security.navProfile", "User Profile"),
128
+ description: b("auth.security.navProfileDesc", "View and edit your profile information"),
132
129
  path: "/auth/profile",
133
130
  icon: se,
134
131
  color: "text-accent-teal",
135
132
  bgColor: "bg-accent-teal-subtle"
136
133
  },
137
134
  {
138
- name: x("auth.security.navMfa", "Two-Factor Authentication"),
139
- description: x("auth.security.navMfaDesc", "Secure your account with TOTP"),
135
+ name: b("auth.security.navMfa", "Two-Factor Authentication"),
136
+ description: b("auth.security.navMfaDesc", "Secure your account with TOTP"),
140
137
  path: "/auth/mfa",
141
- icon: p,
138
+ icon: m,
142
139
  color: "text-accent-purple",
143
140
  bgColor: "bg-accent-purple-subtle"
144
141
  },
145
142
  {
146
- name: x("auth.security.navUsers", "Users"),
147
- description: x("auth.security.navUsersDesc", "Manage system users"),
143
+ name: b("auth.security.navUsers", "Users"),
144
+ description: b("auth.security.navUsersDesc", "Manage system users"),
148
145
  path: "/auth/users",
149
- icon: m,
146
+ icon: oe,
150
147
  color: "text-accent-indigo",
151
148
  bgColor: "bg-accent-indigo-subtle",
152
149
  adminOnly: !0
153
150
  }
154
- ], me = [{
155
- name: x("auth.security.navSso", "SSO Configuration"),
156
- description: x("auth.security.navSsoDesc", "Enterprise single sign-on"),
151
+ ], pe = [{
152
+ name: b("auth.security.navSso", "SSO Configuration"),
153
+ description: b("auth.security.navSsoDesc", "Enterprise single sign-on"),
157
154
  path: "/auth/sso",
158
155
  icon: ce,
159
156
  color: "text-accent-cyan",
160
157
  bgColor: "bg-accent-cyan-subtle",
161
158
  adminOnly: !0
162
- }], [A, j] = s(!1), [M, N] = s(!1), [P, F] = s(""), [I, L] = s(""), [R, z] = s(null), [B, he] = s(null), V = a(), H = a(), U = a(), W = a(), G = a(), K = a(), q = a(), J = o(null), Y = o(null), X = o(null), Z = o(null);
163
- i(() => {
159
+ }], [A, j] = o(!1), [M, N] = o(!1), [P, F] = o(""), [I, L] = o(""), [R, z] = o(null), [B, me] = o(null), V = i(), H = i(), U = i(), W = i(), G = i(), K = i(), q = i(), J = a(null), Y = a(null), X = a(null), Z = a(null);
160
+ r(() => {
164
161
  A ? X.current?.focus() : J.current?.focus();
165
- }, [A]), i(() => {
162
+ }, [A]), r(() => {
166
163
  M ? Z.current?.focus() : Y.current?.focus();
167
164
  }, [M]);
168
- let ge = async () => {
165
+ let he = async () => {
169
166
  O(!0);
170
167
  try {
171
- await w(), S("/auth/login"), k(!1);
168
+ await C(), x("/auth/login"), k(!1);
172
169
  } catch (e) {
173
170
  console.error("Logout failed:", e), O(!1);
174
171
  }
175
- }, _e = async () => {
172
+ }, ge = async () => {
176
173
  z(null);
177
174
  try {
178
- let e = await T(P);
179
- e.success ? S("/auth/login", { replace: !0 }) : z(e.message || x("auth.security.deactivateFailed", "Failed to deactivate account"));
175
+ let e = await w(P);
176
+ e.success ? x("/auth/login", { replace: !0 }) : z(e.message || b("auth.security.deactivateFailed", "Failed to deactivate account"));
180
177
  } catch (e) {
181
- z(e instanceof Error ? e.message : x("auth.security.deactivateFailed", "Failed to deactivate account"));
178
+ z(e instanceof Error ? e.message : b("auth.security.deactivateFailed", "Failed to deactivate account"));
182
179
  }
183
- }, ve = async () => {
184
- if (z(null), I !== y) {
185
- z(x("auth.security.deleteConfirmMismatch", "Please type \"DELETE MY ACCOUNT\" to confirm"));
180
+ }, _e = async () => {
181
+ if (z(null), I !== v) {
182
+ z(b("auth.security.deleteConfirmMismatch", "Please type \"DELETE MY ACCOUNT\" to confirm"));
186
183
  return;
187
184
  }
188
- ne("medium");
185
+ ie("medium");
189
186
  try {
190
- let e = await ue(P, I);
191
- e.success ? (r("success"), S("/auth/login", { replace: !0 })) : (r("error"), z(e.message || x("auth.security.deleteFailed", "Failed to delete account")));
187
+ let e = await T(P, I);
188
+ e.success ? (n("success"), x("/auth/login", { replace: !0 })) : (n("error"), z(e.message || b("auth.security.deleteFailed", "Failed to delete account")));
192
189
  } catch (e) {
193
- r("error"), z(e instanceof Error ? e.message : x("auth.security.deleteFailed", "Failed to delete account"));
190
+ n("error"), z(e instanceof Error ? e.message : b("auth.security.deleteFailed", "Failed to delete account"));
194
191
  }
195
192
  }, Q = () => {
196
- j(!1), N(!1), F(""), L(""), z(null), he(null);
197
- }, $ = C?.role === "SUPER_ADMIN" || C?.role === "TENANT_ADMIN" || C?.role === "ORG_ADMIN", ye = pe.filter((e) => !e.adminOnly || b && $), be = me.filter((e) => !e.adminOnly || b && $);
198
- return /* @__PURE__ */ l("div", {
193
+ j(!1), N(!1), F(""), L(""), z(null), me(null);
194
+ }, $ = S?.role === "SUPER_ADMIN" || S?.role === "TENANT_ADMIN" || S?.role === "ORG_ADMIN", ve = fe.filter((e) => !e.adminOnly || y && $), ye = pe.filter((e) => !e.adminOnly || y && $);
195
+ return /* @__PURE__ */ c("div", {
199
196
  className: "bg-bg-canvas p-6",
200
- children: [/* @__PURE__ */ c(te, {
201
- open: fe,
197
+ children: [/* @__PURE__ */ s(re, {
198
+ open: de,
202
199
  onOpenChange: k,
203
- title: x("auth.security.signOutDialogTitle", "Sign out now?"),
204
- description: x("auth.security.signOutDialogDescription", "You will be signed out of this device and returned to the login screen."),
205
- confirmText: x("auth.security.signOutDialogConfirm", "Sign out"),
200
+ title: b("auth.security.signOutDialogTitle", "Sign out now?"),
201
+ description: b("auth.security.signOutDialogDescription", "You will be signed out of this device and returned to the login screen."),
202
+ confirmText: b("auth.security.signOutDialogConfirm", "Sign out"),
206
203
  variant: "warning",
207
- isPending: de,
208
- onConfirm: ge
209
- }), /* @__PURE__ */ l("main", {
204
+ isPending: ue,
205
+ onConfirm: he
206
+ }), /* @__PURE__ */ c("main", {
210
207
  className: "max-w-7xl mx-auto space-y-8",
211
208
  children: [
212
- /* @__PURE__ */ l("div", {
209
+ /* @__PURE__ */ c("div", {
213
210
  className: "flex items-center gap-3",
214
211
  "data-tour": "auth-security-header",
215
- children: [/* @__PURE__ */ c("div", {
212
+ children: [/* @__PURE__ */ s("div", {
216
213
  className: "auth-brand-badge flex size-10 items-center justify-center rounded-xl",
217
- children: /* @__PURE__ */ c(f, { className: "size-6 text-white" })
218
- }), /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
214
+ children: /* @__PURE__ */ s(p, { className: "size-6 text-white" })
215
+ }), /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h1", {
219
216
  className: "text-lg font-bold text-text-primary",
220
- children: x("auth.security.title", "Security Center")
221
- }), /* @__PURE__ */ c("p", {
217
+ children: b("auth.security.title", "Security Center")
218
+ }), /* @__PURE__ */ s("p", {
222
219
  className: "text-xs text-text-secondary ",
223
- children: x("auth.security.subtitle", "Account & Authentication")
220
+ children: b("auth.security.subtitle", "Account & Authentication")
224
221
  })] })]
225
222
  }),
226
- /* @__PURE__ */ c(d, {
223
+ /* @__PURE__ */ s(f, {
227
224
  "data-tour": "auth-security-purpose",
228
- children: x("auth.security.purpose", "Your one place to keep your account safe: turn on two-factor authentication, change your password, review who can act on your behalf, and manage or close your account.")
225
+ children: b("auth.security.purpose", "Your one place to keep your account safe: turn on two-factor authentication, change your password, review who can act on your behalf, and manage or close your account.")
229
226
  }),
230
- /* @__PURE__ */ c(ae, {
227
+ /* @__PURE__ */ s(u, {
231
228
  className: "p-6",
232
229
  "data-tour": "auth-security-status-banner",
233
- children: /* @__PURE__ */ l("div", {
230
+ children: /* @__PURE__ */ c("div", {
234
231
  className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4",
235
- children: [/* @__PURE__ */ l("div", {
232
+ children: [/* @__PURE__ */ c("div", {
236
233
  className: "flex items-center gap-4",
237
- children: [/* @__PURE__ */ c("div", {
234
+ children: [/* @__PURE__ */ s("div", {
238
235
  className: "size-14 rounded-2xl bg-accent-soft flex items-center justify-center",
239
- children: /* @__PURE__ */ c(f, { className: "size-8 text-[var(--color-action-primary-bg)]" })
240
- }), /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h2", {
236
+ children: /* @__PURE__ */ s(p, { className: "size-8 text-[var(--color-action-primary-bg)]" })
237
+ }), /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h2", {
241
238
  className: "text-xl font-bold text-text-primary",
242
- children: x("auth.security.securityStatus", "Security Status")
243
- }), /* @__PURE__ */ c("p", {
239
+ children: b("auth.security.securityStatus", "Security Status")
240
+ }), /* @__PURE__ */ s("p", {
244
241
  className: "text-text-secondary",
245
- children: C?.mfaEnabled ? x("auth.security.wellProtected", "Your account is well protected") : x("auth.security.enableMfaSuggestion", "Enable MFA for better security")
242
+ children: S?.mfaEnabled ? b("auth.security.wellProtected", "Your account is well protected") : b("auth.security.enableMfaSuggestion", "Enable MFA for better security")
246
243
  })] })]
247
- }), /* @__PURE__ */ c("div", {
244
+ }), /* @__PURE__ */ s("div", {
248
245
  className: "flex items-center gap-3",
249
- children: C?.mfaEnabled ? /* @__PURE__ */ l("span", {
246
+ children: S?.mfaEnabled ? /* @__PURE__ */ c("span", {
250
247
  className: "inline-flex items-center gap-2 px-4 py-2 rounded-xl bg-status-success-bg-subtle text-status-success-text font-medium",
251
- children: [/* @__PURE__ */ c(g, { className: "size-5 text-status-success-text" }), x("auth.security.mfaEnabled", "MFA Enabled")]
252
- }) : /* @__PURE__ */ l(u, {
248
+ children: [/* @__PURE__ */ s(g, { className: "size-5 text-status-success-text" }), b("auth.security.mfaEnabled", "MFA Enabled")]
249
+ }) : /* @__PURE__ */ c(l, {
253
250
  type: "button",
254
- onClick: () => S("/auth/mfa"),
251
+ onClick: () => x("/auth/mfa"),
255
252
  variant: "default",
256
253
  className: "font-semibold",
257
- children: [/* @__PURE__ */ c(_, { className: "size-5" }), x("auth.security.enableMfaNow", "Enable MFA Now")]
254
+ children: [/* @__PURE__ */ s(le, { className: "size-5" }), b("auth.security.enableMfaNow", "Enable MFA Now")]
258
255
  })
259
256
  })]
260
257
  })
261
258
  }),
262
- /* @__PURE__ */ l("div", {
259
+ /* @__PURE__ */ c("div", {
263
260
  className: "mb-8 p-6 rounded-2xl bg-bg-surface border border-border-subtle shadow-sm",
264
261
  "data-tour": "auth-account-info-card",
265
- children: [/* @__PURE__ */ c("h3", {
262
+ children: [/* @__PURE__ */ s("h3", {
266
263
  className: "text-lg font-semibold text-text-primary mb-4",
267
- children: x("auth.security.accountInfo", "Account Information")
268
- }), /* @__PURE__ */ l("dl", {
264
+ children: b("auth.security.accountInfo", "Account Information")
265
+ }), /* @__PURE__ */ c("dl", {
269
266
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",
270
267
  children: [
271
- /* @__PURE__ */ l("div", {
268
+ /* @__PURE__ */ c("div", {
272
269
  className: "sm:col-span-2 lg:col-span-1",
273
- children: [/* @__PURE__ */ c("dt", {
270
+ children: [/* @__PURE__ */ s("dt", {
274
271
  className: "text-sm font-medium text-text-secondary",
275
- children: x("auth.security.email", "Email")
276
- }), /* @__PURE__ */ l("dd", {
272
+ children: b("auth.security.email", "Email")
273
+ }), /* @__PURE__ */ c("dd", {
277
274
  className: "mt-1 text-text-primary",
278
- children: [/* @__PURE__ */ c("span", {
275
+ children: [/* @__PURE__ */ s("span", {
279
276
  className: "block truncate",
280
- title: C?.email,
281
- children: C?.email
282
- }), C?.emailVerified && /* @__PURE__ */ l("span", {
277
+ title: S?.email,
278
+ children: S?.email
279
+ }), S?.emailVerified && /* @__PURE__ */ c("span", {
283
280
  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",
284
- children: [/* @__PURE__ */ c(g, { className: "size-3" }), x("auth.security.verified", "Verified")]
281
+ children: [/* @__PURE__ */ s(g, { className: "size-3" }), b("auth.security.verified", "Verified")]
285
282
  })]
286
283
  })]
287
284
  }),
288
- /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("dt", {
285
+ /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("dt", {
289
286
  className: "text-sm font-medium text-text-secondary",
290
- children: x("auth.security.username", "Username")
291
- }), /* @__PURE__ */ c("dd", {
287
+ children: b("auth.security.username", "Username")
288
+ }), /* @__PURE__ */ s("dd", {
292
289
  className: "mt-1 text-text-primary truncate",
293
- title: C?.username ?? void 0,
294
- children: C?.username || "-"
290
+ title: S?.username ?? void 0,
291
+ children: S?.username || "-"
295
292
  })] }),
296
- /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("dt", {
293
+ /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("dt", {
297
294
  className: "text-sm font-medium text-text-secondary",
298
- children: x("auth.security.role", "Role")
299
- }), /* @__PURE__ */ c("dd", {
295
+ children: b("auth.security.role", "Role")
296
+ }), /* @__PURE__ */ s("dd", {
300
297
  className: "mt-1",
301
- children: /* @__PURE__ */ c("span", {
298
+ children: /* @__PURE__ */ s("span", {
302
299
  className: "inline-flex px-2.5 py-0.5 rounded-full bg-accent-indigo-subtle text-accent-indigo text-xs font-medium",
303
- children: C?.role || "USER"
300
+ children: S?.role || "USER"
304
301
  })
305
302
  })] }),
306
- /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("dt", {
303
+ /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("dt", {
307
304
  className: "text-sm font-medium text-text-secondary",
308
- children: x("auth.security.memberSince", "Member Since")
309
- }), /* @__PURE__ */ c("dd", {
305
+ children: b("auth.security.memberSince", "Member Since")
306
+ }), /* @__PURE__ */ s("dd", {
310
307
  className: "mt-1 text-text-primary",
311
- children: C?.createdAt ? ee(C.createdAt) : "-"
308
+ children: S?.createdAt ? ne(S.createdAt) : "-"
312
309
  })] })
313
310
  ]
314
311
  })]
315
312
  }),
316
- /* @__PURE__ */ l("div", {
313
+ /* @__PURE__ */ c("div", {
317
314
  className: "mb-8",
318
- children: [/* @__PURE__ */ c("h3", {
315
+ children: [/* @__PURE__ */ s("h3", {
319
316
  className: "text-lg font-semibold text-text-primary mb-4",
320
- children: x("auth.security.securityAuth", "Security & Authentication")
321
- }), /* @__PURE__ */ c("div", {
317
+ children: b("auth.security.securityAuth", "Security & Authentication")
318
+ }), /* @__PURE__ */ s("div", {
322
319
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",
323
320
  "data-tour": "auth-security-nav-grid",
324
- children: ye.map((e) => /* @__PURE__ */ c("button", {
321
+ children: ve.map((e) => /* @__PURE__ */ s("button", {
325
322
  type: "button",
326
- onClick: () => S(e.path),
323
+ onClick: () => x(e.path),
327
324
  "aria-label": e.name,
328
325
  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",
329
- children: /* @__PURE__ */ l("div", {
326
+ children: /* @__PURE__ */ c("div", {
330
327
  className: "flex items-start gap-4",
331
328
  children: [
332
- /* @__PURE__ */ c("div", {
329
+ /* @__PURE__ */ s("div", {
333
330
  className: `size-12 rounded-xl ${e.bgColor} flex items-center justify-center flex-shrink-0 transition-transform`,
334
- children: /* @__PURE__ */ c(e.icon, { className: `size-6 ${e.color}` })
331
+ children: /* @__PURE__ */ s(e.icon, { className: `size-6 ${e.color}` })
335
332
  }),
336
- /* @__PURE__ */ l("div", {
333
+ /* @__PURE__ */ c("div", {
337
334
  className: "flex-1 min-w-0",
338
- children: [/* @__PURE__ */ c("h4", {
335
+ children: [/* @__PURE__ */ s("h4", {
339
336
  className: "text-base font-semibold text-text-primary group-hover:text-accent-indigo transition-colors",
340
337
  children: e.name
341
- }), /* @__PURE__ */ c("p", {
338
+ }), /* @__PURE__ */ s("p", {
342
339
  className: "mt-1 text-sm text-text-secondary ",
343
340
  children: e.description
344
341
  })]
345
342
  }),
346
- /* @__PURE__ */ c(h, { className: "size-5 text-text-tertiary group-hover:text-indigo-500 transition-colors flex-shrink-0" })
343
+ /* @__PURE__ */ s(h, { className: "size-5 text-text-tertiary group-hover:text-indigo-500 transition-colors flex-shrink-0" })
347
344
  ]
348
345
  })
349
346
  }, e.path))
350
347
  })]
351
348
  }),
352
- /* @__PURE__ */ l("div", {
349
+ /* @__PURE__ */ c("div", {
353
350
  className: "mb-8",
354
- children: [/* @__PURE__ */ c("h3", {
351
+ children: [/* @__PURE__ */ s("h3", {
355
352
  className: "text-lg font-semibold text-text-primary mb-4",
356
- children: x("auth.security.quickActions", "Quick Actions")
357
- }), /* @__PURE__ */ c("div", {
353
+ children: b("auth.security.quickActions", "Quick Actions")
354
+ }), /* @__PURE__ */ s("div", {
358
355
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
359
- children: be.map((e) => /* @__PURE__ */ c("button", {
356
+ children: ye.map((e) => /* @__PURE__ */ s("button", {
360
357
  type: "button",
361
- onClick: () => S(e.path),
358
+ onClick: () => x(e.path),
362
359
  "aria-label": e.name,
363
360
  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",
364
- children: /* @__PURE__ */ l("div", {
361
+ children: /* @__PURE__ */ c("div", {
365
362
  className: "flex items-start gap-4",
366
363
  children: [
367
- /* @__PURE__ */ c("div", {
364
+ /* @__PURE__ */ s("div", {
368
365
  className: `size-12 rounded-xl ${e.bgColor} flex items-center justify-center flex-shrink-0 transition-transform`,
369
- children: /* @__PURE__ */ c(e.icon, { className: `size-6 ${e.color}` })
366
+ children: /* @__PURE__ */ s(e.icon, { className: `size-6 ${e.color}` })
370
367
  }),
371
- /* @__PURE__ */ l("div", {
368
+ /* @__PURE__ */ c("div", {
372
369
  className: "flex-1 min-w-0",
373
- children: [/* @__PURE__ */ c("h4", {
370
+ children: [/* @__PURE__ */ s("h4", {
374
371
  className: "text-base font-semibold text-text-primary group-hover:text-accent-indigo transition-colors",
375
372
  children: e.name
376
- }), /* @__PURE__ */ c("p", {
373
+ }), /* @__PURE__ */ s("p", {
377
374
  className: "mt-1 text-sm text-text-secondary ",
378
375
  children: e.description
379
376
  })]
380
377
  }),
381
- /* @__PURE__ */ c(h, { className: "size-5 text-text-tertiary group-hover:text-indigo-500 transition-colors flex-shrink-0" })
378
+ /* @__PURE__ */ s(h, { className: "size-5 text-text-tertiary group-hover:text-indigo-500 transition-colors flex-shrink-0" })
382
379
  ]
383
380
  })
384
381
  }, e.path))
385
382
  })]
386
383
  }),
387
- /* @__PURE__ */ l("div", {
384
+ /* @__PURE__ */ c("div", {
388
385
  className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
389
- children: [/* @__PURE__ */ l("div", {
386
+ children: [/* @__PURE__ */ c("div", {
390
387
  className: "p-6 rounded-2xl bg-bg-surface border border-border-subtle",
391
388
  "data-tour": "auth-password-section",
392
- children: [/* @__PURE__ */ c("div", {
389
+ children: [/* @__PURE__ */ s("div", {
393
390
  className: "flex items-start justify-between",
394
- children: /* @__PURE__ */ l("div", { children: [
395
- /* @__PURE__ */ c("h3", {
391
+ children: /* @__PURE__ */ c("div", { children: [
392
+ /* @__PURE__ */ s("h3", {
396
393
  className: "text-lg font-semibold text-text-primary",
397
- children: x("auth.security.password", "Password")
394
+ children: b("auth.security.password", "Password")
398
395
  }),
399
- /* @__PURE__ */ c("p", {
396
+ /* @__PURE__ */ s("p", {
400
397
  className: "mt-1 text-sm text-text-secondary ",
401
- children: x("auth.security.updatePassword", "Update your password to keep your account secure")
398
+ children: b("auth.security.updatePassword", "Update your password to keep your account secure")
402
399
  }),
403
- /* @__PURE__ */ c("p", {
400
+ /* @__PURE__ */ s("p", {
404
401
  className: "mt-2 text-xs text-text-tertiary ",
405
- children: x("auth.security.lastChanged", "Last changed: Never")
402
+ children: b("auth.security.lastChanged", "Last changed: Never")
406
403
  })
407
404
  ] })
408
- }), /* @__PURE__ */ c(u, {
405
+ }), /* @__PURE__ */ s(l, {
409
406
  type: "button",
410
- onClick: () => S("/auth/reset-password"),
407
+ onClick: () => x("/auth/reset-password"),
411
408
  variant: "default",
412
409
  className: "mt-4 w-full font-semibold sm:w-auto",
413
- children: x("auth.security.changePassword", "Change Password")
410
+ children: b("auth.security.changePassword", "Change Password")
414
411
  })]
415
- }), /* @__PURE__ */ l("div", {
412
+ }), /* @__PURE__ */ c("div", {
416
413
  className: "p-6 rounded-2xl bg-status-error-bg-subtle border border-status-error-border",
417
414
  "data-tour": "auth-danger-zone",
418
415
  children: [
419
- /* @__PURE__ */ c("h3", {
416
+ /* @__PURE__ */ s("h3", {
420
417
  className: "text-lg font-semibold text-status-error-text",
421
- children: x("auth.security.dangerZone", "Danger Zone")
418
+ children: b("auth.security.dangerZone", "Danger Zone")
422
419
  }),
423
- /* @__PURE__ */ c("p", {
420
+ /* @__PURE__ */ s("p", {
424
421
  className: "mt-1 text-sm text-status-error-text/80",
425
- children: x("auth.security.dangerWarning", "These actions affect your account. Proceed with caution.")
422
+ children: b("auth.security.dangerWarning", "These actions affect your account. Proceed with caution.")
426
423
  }),
427
- /* @__PURE__ */ l("div", {
424
+ /* @__PURE__ */ c("div", {
428
425
  className: "mt-4 flex flex-wrap gap-3",
429
- children: [/* @__PURE__ */ c("button", {
426
+ children: [/* @__PURE__ */ s("button", {
430
427
  ref: J,
431
428
  type: "button",
432
429
  onClick: () => j(!0),
433
430
  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",
434
- children: x("auth.security.deactivateAccount", "Deactivate Account")
435
- }), /* @__PURE__ */ c("button", {
431
+ children: b("auth.security.deactivateAccount", "Deactivate Account")
432
+ }), /* @__PURE__ */ s("button", {
436
433
  ref: Y,
437
434
  type: "button",
438
435
  onClick: () => N(!0),
439
436
  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",
440
- children: x("auth.security.deleteAccount", "Delete Account")
437
+ children: b("auth.security.deleteAccount", "Delete Account")
441
438
  })]
442
439
  })
443
440
  ]
444
441
  })]
445
442
  }),
446
- A && /* @__PURE__ */ c("div", {
443
+ A && /* @__PURE__ */ s("div", {
447
444
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",
448
445
  role: "presentation",
449
446
  onClick: (e) => {
450
447
  e.target === e.currentTarget && Q();
451
448
  },
452
- children: /* @__PURE__ */ l("div", {
449
+ children: /* @__PURE__ */ c("div", {
453
450
  ref: X,
454
451
  role: "dialog",
455
452
  "aria-modal": "true",
@@ -457,70 +454,70 @@ function b({ enableAdminRoutes: b = !1 }) {
457
454
  tabIndex: -1,
458
455
  className: "w-full max-w-md bg-bg-surface rounded-2xl shadow-2xl p-6 outline-none",
459
456
  children: [
460
- /* @__PURE__ */ c("h3", {
457
+ /* @__PURE__ */ s("h3", {
461
458
  id: V,
462
459
  className: "text-xl font-bold text-text-primary mb-2",
463
- children: x("auth.security.deactivateTitle", "Deactivate Account")
460
+ children: b("auth.security.deactivateTitle", "Deactivate Account")
464
461
  }),
465
- /* @__PURE__ */ c("p", {
462
+ /* @__PURE__ */ s("p", {
466
463
  className: "text-sm text-text-secondary mb-4",
467
- children: x("auth.security.deactivateDesc", "Your account will be temporarily disabled. You can reactivate it by signing in again with your credentials.")
464
+ children: b("auth.security.deactivateDesc", "Your account will be temporarily disabled. You can reactivate it by signing in again with your credentials.")
468
465
  }),
469
- R && /* @__PURE__ */ c("div", {
466
+ R && /* @__PURE__ */ s("div", {
470
467
  id: U,
471
468
  role: "alert",
472
469
  className: "mb-4 p-3 rounded-lg bg-status-error-bg-subtle text-status-error-text text-sm",
473
470
  children: R
474
471
  }),
475
- B && /* @__PURE__ */ c("output", {
472
+ B && /* @__PURE__ */ s("output", {
476
473
  className: "block mb-4 p-3 rounded-lg bg-status-success-bg-subtle text-status-success-text text-sm",
477
474
  children: B
478
475
  }),
479
- /* @__PURE__ */ l("div", {
476
+ /* @__PURE__ */ c("div", {
480
477
  className: "mb-4",
481
- children: [/* @__PURE__ */ c("label", {
478
+ children: [/* @__PURE__ */ s("label", {
482
479
  htmlFor: H,
483
480
  className: "block text-sm font-medium text-text-primary mb-1",
484
- children: x("auth.security.enterPasswordConfirm", "Enter your password to confirm")
485
- }), /* @__PURE__ */ c("input", {
481
+ children: b("auth.security.enterPasswordConfirm", "Enter your password to confirm")
482
+ }), /* @__PURE__ */ s("input", {
486
483
  id: H,
487
484
  type: "password",
488
485
  value: P,
489
486
  onChange: (e) => F(e.target.value),
490
487
  "aria-required": "true",
491
- "aria-label": x("auth.security.enterPasswordConfirm", "Enter your password to confirm"),
488
+ "aria-label": b("auth.security.enterPasswordConfirm", "Enter your password to confirm"),
492
489
  "aria-describedby": R ? U : void 0,
493
490
  "aria-invalid": !!R,
494
491
  autoComplete: "current-password",
495
492
  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",
496
- placeholder: x("auth.security.yourPassword", "Your password")
493
+ placeholder: b("auth.security.yourPassword", "Your password")
497
494
  })]
498
495
  }),
499
- /* @__PURE__ */ l("div", {
496
+ /* @__PURE__ */ c("div", {
500
497
  className: "flex gap-3",
501
- children: [/* @__PURE__ */ c("button", {
498
+ children: [/* @__PURE__ */ s("button", {
502
499
  type: "button",
503
500
  onClick: Q,
504
501
  className: "flex-1 px-4 py-2 rounded-lg border border-border-default text-text-primary font-medium hover:bg-bg-sunken transition-colors",
505
- children: x("auth.security.cancel", "Cancel")
506
- }), /* @__PURE__ */ l("button", {
502
+ children: b("auth.security.cancel", "Cancel")
503
+ }), /* @__PURE__ */ c("button", {
507
504
  type: "button",
508
- onClick: () => void _e(),
505
+ onClick: () => void ge(),
509
506
  disabled: !P || E,
510
507
  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",
511
- children: [E && /* @__PURE__ */ c(v, { className: "size-4 animate-spin" }), x("auth.security.deactivateBtn", "Deactivate")]
508
+ children: [E && /* @__PURE__ */ s(_, { className: "size-4 animate-spin" }), b("auth.security.deactivateBtn", "Deactivate")]
512
509
  })]
513
510
  })
514
511
  ]
515
512
  })
516
513
  }),
517
- M && /* @__PURE__ */ c("div", {
514
+ M && /* @__PURE__ */ s("div", {
518
515
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",
519
516
  role: "presentation",
520
517
  onClick: (e) => {
521
518
  e.target === e.currentTarget && Q();
522
519
  },
523
- children: /* @__PURE__ */ l("div", {
520
+ children: /* @__PURE__ */ c("div", {
524
521
  ref: Z,
525
522
  role: "dialog",
526
523
  "aria-modal": "true",
@@ -528,146 +525,146 @@ function b({ enableAdminRoutes: b = !1 }) {
528
525
  tabIndex: -1,
529
526
  className: "w-full max-w-md bg-bg-surface rounded-2xl shadow-2xl p-6 outline-none",
530
527
  children: [
531
- /* @__PURE__ */ c("h3", {
528
+ /* @__PURE__ */ s("h3", {
532
529
  id: W,
533
530
  className: "text-xl font-bold text-status-error-text mb-2",
534
- children: x("auth.security.deleteTitle", "Delete Account Permanently")
531
+ children: b("auth.security.deleteTitle", "Delete Account Permanently")
535
532
  }),
536
- /* @__PURE__ */ c("p", {
533
+ /* @__PURE__ */ s("p", {
537
534
  className: "text-sm text-text-secondary mb-4",
538
- children: x("auth.security.deleteDesc", "This action is irreversible. All your data will be permanently deleted and cannot be recovered.")
535
+ children: b("auth.security.deleteDesc", "This action is irreversible. All your data will be permanently deleted and cannot be recovered.")
539
536
  }),
540
- R && /* @__PURE__ */ c("div", {
537
+ R && /* @__PURE__ */ s("div", {
541
538
  id: q,
542
539
  role: "alert",
543
540
  className: "mb-4 p-3 rounded-lg bg-status-error-bg-subtle text-status-error-text text-sm",
544
541
  children: R
545
542
  }),
546
- B && /* @__PURE__ */ c("output", {
543
+ B && /* @__PURE__ */ s("output", {
547
544
  className: "block mb-4 p-3 rounded-lg bg-status-success-bg-subtle text-status-success-text text-sm",
548
545
  children: B
549
546
  }),
550
- /* @__PURE__ */ l("div", {
547
+ /* @__PURE__ */ c("div", {
551
548
  className: "mb-4",
552
- children: [/* @__PURE__ */ c("label", {
549
+ children: [/* @__PURE__ */ s("label", {
553
550
  htmlFor: G,
554
551
  className: "block text-sm font-medium text-text-primary mb-1",
555
- children: x("auth.security.enterPasswordDelete", "Enter your password")
556
- }), /* @__PURE__ */ c("input", {
552
+ children: b("auth.security.enterPasswordDelete", "Enter your password")
553
+ }), /* @__PURE__ */ s("input", {
557
554
  id: G,
558
555
  type: "password",
559
556
  value: P,
560
557
  onChange: (e) => F(e.target.value),
561
558
  "aria-required": "true",
562
- "aria-label": x("auth.security.enterPasswordDelete", "Enter your password"),
559
+ "aria-label": b("auth.security.enterPasswordDelete", "Enter your password"),
563
560
  "aria-describedby": R ? q : void 0,
564
561
  "aria-invalid": !!R,
565
562
  autoComplete: "current-password",
566
563
  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: x("auth.security.yourPassword", "Your password")
564
+ placeholder: b("auth.security.yourPassword", "Your password")
568
565
  })]
569
566
  }),
570
- /* @__PURE__ */ l("div", {
567
+ /* @__PURE__ */ c("div", {
571
568
  className: "mb-4",
572
- children: [/* @__PURE__ */ l("label", {
569
+ children: [/* @__PURE__ */ c("label", {
573
570
  htmlFor: K,
574
571
  className: "block text-sm font-medium text-text-primary mb-1",
575
572
  children: [
576
- x("auth.security.type", "Type"),
573
+ b("auth.security.type", "Type"),
577
574
  " ",
578
- /* @__PURE__ */ c("code", {
575
+ /* @__PURE__ */ s("code", {
579
576
  className: "px-1 py-0.5 rounded bg-bg-sunken text-status-error-text font-mono text-sm",
580
- children: y
577
+ children: v
581
578
  }),
582
579
  " ",
583
- x("auth.security.toConfirm", "to confirm")
580
+ b("auth.security.toConfirm", "to confirm")
584
581
  ]
585
- }), /* @__PURE__ */ c("input", {
582
+ }), /* @__PURE__ */ s("input", {
586
583
  id: K,
587
584
  type: "text",
588
585
  value: I,
589
586
  onChange: (e) => L(e.target.value),
590
587
  "aria-required": "true",
591
- "aria-label": x("auth.security.deleteConfirmAriaLabel", "Type DELETE MY ACCOUNT to confirm"),
588
+ "aria-label": b("auth.security.deleteConfirmAriaLabel", "Type DELETE MY ACCOUNT to confirm"),
592
589
  "aria-describedby": R ? q : void 0,
593
- "aria-invalid": I.length > 0 && I !== y,
590
+ "aria-invalid": I.length > 0 && I !== v,
594
591
  autoComplete: "off",
595
592
  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",
596
- placeholder: x("auth.security.deleteConfirmPlaceholder", "DELETE MY ACCOUNT")
593
+ placeholder: b("auth.security.deleteConfirmPlaceholder", "DELETE MY ACCOUNT")
597
594
  })]
598
595
  }),
599
- /* @__PURE__ */ l("div", {
596
+ /* @__PURE__ */ c("div", {
600
597
  className: "flex gap-3",
601
- children: [/* @__PURE__ */ c("button", {
598
+ children: [/* @__PURE__ */ s("button", {
602
599
  type: "button",
603
600
  onClick: Q,
604
601
  className: "flex-1 px-4 py-2 rounded-lg border border-border-default text-text-primary font-medium hover:bg-bg-sunken transition-colors",
605
- children: x("auth.security.cancel", "Cancel")
606
- }), /* @__PURE__ */ l("button", {
602
+ children: b("auth.security.cancel", "Cancel")
603
+ }), /* @__PURE__ */ c("button", {
607
604
  type: "button",
608
- onClick: () => void ve(),
609
- disabled: !P || I !== y || D,
605
+ onClick: () => void _e(),
606
+ disabled: !P || I !== v || D,
610
607
  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",
611
- children: [D && /* @__PURE__ */ c(v, { className: "size-4 animate-spin" }), x("auth.security.deleteForever", "Delete Forever")]
608
+ children: [D && /* @__PURE__ */ s(_, { className: "size-4 animate-spin" }), b("auth.security.deleteForever", "Delete Forever")]
612
609
  })]
613
610
  })
614
611
  ]
615
612
  })
616
613
  }),
617
- /* @__PURE__ */ c(oe, {
614
+ /* @__PURE__ */ s(d, {
618
615
  storageKey: "auth-security",
619
616
  steps: [
620
- ...C?.mfaEnabled ? [] : [{
617
+ ...S?.mfaEnabled ? [] : [{
621
618
  id: "enable-mfa",
622
- label: x("auth.security.nextEnableMfa", "Turn on two-factor authentication"),
623
- description: x("auth.security.nextEnableMfaDesc", "The single biggest step you can take to protect your account."),
624
- onClick: () => S("/auth/mfa")
619
+ label: b("auth.security.nextEnableMfa", "Turn on two-factor authentication"),
620
+ description: b("auth.security.nextEnableMfaDesc", "The single biggest step you can take to protect your account."),
621
+ onClick: () => x("/auth/mfa")
625
622
  }],
626
623
  {
627
624
  id: "review-profile",
628
- label: x("auth.security.nextProfile", "Review your profile details"),
629
- description: x("auth.security.nextProfileDesc", "Make sure your name, email, and contact info are current."),
630
- onClick: () => S("/auth/profile")
625
+ label: b("auth.security.nextProfile", "Review your profile details"),
626
+ description: b("auth.security.nextProfileDesc", "Make sure your name, email, and contact info are current."),
627
+ onClick: () => x("/auth/profile")
631
628
  },
632
629
  {
633
630
  id: "change-password",
634
- label: x("auth.security.nextPassword", "Update your password"),
635
- description: x("auth.security.nextPasswordDesc", "Set a strong, unique password if you haven't recently."),
636
- onClick: () => S("/auth/reset-password")
631
+ label: b("auth.security.nextPassword", "Update your password"),
632
+ description: b("auth.security.nextPasswordDesc", "Set a strong, unique password if you haven't recently."),
633
+ onClick: () => x("/auth/reset-password")
637
634
  }
638
635
  ]
639
636
  }),
640
- /* @__PURE__ */ c("footer", {
637
+ /* @__PURE__ */ s("footer", {
641
638
  className: "mt-12 pt-6 border-t border-border-subtle ",
642
- children: /* @__PURE__ */ l("div", {
639
+ children: /* @__PURE__ */ c("div", {
643
640
  className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 text-sm text-text-secondary ",
644
641
  "data-tour": "auth-footer-actions",
645
- children: [/* @__PURE__ */ l("p", { children: [
646
- x("auth.security.signedInAs", "Signed in as"),
642
+ children: [/* @__PURE__ */ c("p", { children: [
643
+ b("auth.security.signedInAs", "Signed in as"),
647
644
  " ",
648
- /* @__PURE__ */ c("span", {
645
+ /* @__PURE__ */ s("span", {
649
646
  className: "font-medium text-text-primary ",
650
- children: C?.email
647
+ children: S?.email
651
648
  })
652
- ] }), /* @__PURE__ */ l("div", {
649
+ ] }), /* @__PURE__ */ c("div", {
653
650
  className: "flex items-center gap-4",
654
651
  children: [
655
- /* @__PURE__ */ c("button", {
652
+ /* @__PURE__ */ s("button", {
656
653
  type: "button",
657
- onClick: () => S("/auth/login"),
654
+ onClick: () => x("/auth/login"),
658
655
  className: "hover:text-text-primary transition-colors",
659
- children: x("auth.security.switchAccount", "Switch Account")
656
+ children: b("auth.security.switchAccount", "Switch Account")
660
657
  }),
661
- /* @__PURE__ */ c("span", {
658
+ /* @__PURE__ */ s("span", {
662
659
  className: "text-text-muted",
663
660
  "aria-hidden": "true",
664
661
  children: "|"
665
662
  }),
666
- /* @__PURE__ */ c("button", {
663
+ /* @__PURE__ */ s("button", {
667
664
  type: "button",
668
665
  onClick: () => k(!0),
669
666
  className: "hover:text-status-error-text transition-colors",
670
- children: x("auth.security.signOut", "Sign Out")
667
+ children: b("auth.security.signOut", "Sign Out")
671
668
  })
672
669
  ]
673
670
  })]
@@ -678,6 +675,6 @@ function b({ enableAdminRoutes: b = !1 }) {
678
675
  });
679
676
  }
680
677
  //#endregion
681
- export { b as SecurityPage };
678
+ export { y as SecurityPage };
682
679
 
683
680
  //# sourceMappingURL=SecurityPage.js.map