@mesob/auth-react 0.3.4 → 0.4.0
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/components/auth/auth-layout.d.ts +1 -1
- package/dist/components/auth/auth-layout.js +10 -2
- package/dist/components/auth/auth-layout.js.map +1 -1
- package/dist/components/auth/countdown.js +8 -6
- package/dist/components/auth/countdown.js.map +1 -1
- package/dist/components/auth/forgot-password.js +21 -19
- package/dist/components/auth/forgot-password.js.map +1 -1
- package/dist/components/auth/reset-password-form.js +22 -21
- package/dist/components/auth/reset-password-form.js.map +1 -1
- package/dist/components/auth/set-password.d.ts +9 -0
- package/dist/components/auth/set-password.js +527 -0
- package/dist/components/auth/set-password.js.map +1 -0
- package/dist/components/auth/sign-in.js +45 -26
- package/dist/components/auth/sign-in.js.map +1 -1
- package/dist/components/auth/sign-up.js +25 -29
- package/dist/components/auth/sign-up.js.map +1 -1
- package/dist/components/auth/verification-form.js +24 -27
- package/dist/components/auth/verification-form.js.map +1 -1
- package/dist/components/auth/verify-email.js +40 -31
- package/dist/components/auth/verify-email.js.map +1 -1
- package/dist/components/auth/verify-phone.js +40 -31
- package/dist/components/auth/verify-phone.js.map +1 -1
- package/dist/components/authorization/deny.d.ts +11 -0
- package/dist/components/authorization/deny.js +52 -0
- package/dist/components/authorization/deny.js.map +1 -0
- package/dist/components/authorization/grant.d.ts +12 -0
- package/dist/components/authorization/grant.js +57 -0
- package/dist/components/authorization/grant.js.map +1 -0
- package/dist/components/iam/permission-selector.d.ts +19 -0
- package/dist/components/iam/permission-selector.js +122 -0
- package/dist/components/iam/permission-selector.js.map +1 -0
- package/dist/components/iam/permissions.js +21 -33
- package/dist/components/iam/permissions.js.map +1 -1
- package/dist/components/iam/role-detail-layout.d.ts +11 -0
- package/dist/components/iam/role-detail-layout.js +137 -0
- package/dist/components/iam/role-detail-layout.js.map +1 -0
- package/dist/components/iam/role-detail-page.d.ts +9 -0
- package/dist/components/iam/role-detail-page.js +229 -0
- package/dist/components/iam/role-detail-page.js.map +1 -0
- package/dist/components/iam/role-permissions-page.d.ts +8 -0
- package/dist/components/iam/role-permissions-page.js +397 -0
- package/dist/components/iam/role-permissions-page.js.map +1 -0
- package/dist/components/iam/roles.js +20 -10
- package/dist/components/iam/roles.js.map +1 -1
- package/dist/components/iam/tenants.js +9 -2
- package/dist/components/iam/tenants.js.map +1 -1
- package/dist/components/iam/users.js +10 -9
- package/dist/components/iam/users.js.map +1 -1
- package/dist/components/profile/account.js +110 -19
- package/dist/components/profile/account.js.map +1 -1
- package/dist/components/profile/change-email-form.js +26 -29
- package/dist/components/profile/change-email-form.js.map +1 -1
- package/dist/components/profile/change-phone-form.js +26 -29
- package/dist/components/profile/change-phone-form.js.map +1 -1
- package/dist/components/profile/change-profile.d.ts +2 -1
- package/dist/components/profile/change-profile.js +16 -8
- package/dist/components/profile/change-profile.js.map +1 -1
- package/dist/components/profile/otp-verification-modal.js +24 -27
- package/dist/components/profile/otp-verification-modal.js.map +1 -1
- package/dist/components/profile/security.js +88 -57
- package/dist/components/profile/security.js.map +1 -1
- package/dist/components/profile/verify-change-email-form.js +24 -27
- package/dist/components/profile/verify-change-email-form.js.map +1 -1
- package/dist/components/profile/verify-change-phone-form.js +24 -27
- package/dist/components/profile/verify-change-phone-form.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +1897 -821
- package/dist/index.js.map +1 -1
- package/dist/pages/auth/forgot-password.d.ts +7 -0
- package/dist/pages/auth/forgot-password.js +784 -0
- package/dist/pages/auth/forgot-password.js.map +1 -0
- package/dist/pages/auth/layout.d.ts +8 -0
- package/dist/pages/auth/layout.js +562 -0
- package/dist/pages/auth/layout.js.map +1 -0
- package/dist/pages/auth/reset-password.d.ts +10 -0
- package/dist/pages/auth/reset-password.js +913 -0
- package/dist/pages/auth/reset-password.js.map +1 -0
- package/dist/pages/auth/set-password.d.ts +10 -0
- package/dist/pages/auth/set-password.js +946 -0
- package/dist/pages/auth/set-password.js.map +1 -0
- package/dist/pages/auth/sign-in.d.ts +10 -0
- package/dist/pages/auth/sign-in.js +984 -0
- package/dist/pages/auth/sign-in.js.map +1 -0
- package/dist/pages/auth/sign-up.d.ts +10 -0
- package/dist/pages/auth/sign-up.js +940 -0
- package/dist/pages/auth/sign-up.js.map +1 -0
- package/dist/pages/auth/verify-email.d.ts +10 -0
- package/dist/pages/auth/verify-email.js +950 -0
- package/dist/pages/auth/verify-email.js.map +1 -0
- package/dist/pages/auth/verify-phone.d.ts +10 -0
- package/dist/pages/auth/verify-phone.js +964 -0
- package/dist/pages/auth/verify-phone.js.map +1 -0
- package/dist/pages/iam/permissions.d.ts +5 -0
- package/dist/pages/iam/permissions.js +308 -0
- package/dist/pages/iam/permissions.js.map +1 -0
- package/dist/pages/iam/role-detail-layout.d.ts +12 -0
- package/dist/pages/iam/role-detail-layout.js +145 -0
- package/dist/pages/iam/role-detail-layout.js.map +1 -0
- package/dist/pages/iam/role-detail.d.ts +12 -0
- package/dist/pages/iam/role-detail.js +241 -0
- package/dist/pages/iam/role-detail.js.map +1 -0
- package/dist/pages/iam/role-permissions.d.ts +12 -0
- package/dist/pages/iam/role-permissions.js +409 -0
- package/dist/pages/iam/role-permissions.js.map +1 -0
- package/dist/pages/iam/role-users.d.ts +12 -0
- package/dist/pages/iam/role-users.js +825 -0
- package/dist/pages/iam/role-users.js.map +1 -0
- package/dist/pages/iam/roles.d.ts +5 -0
- package/dist/pages/iam/roles.js +684 -0
- package/dist/pages/iam/roles.js.map +1 -0
- package/dist/pages/iam/sessions.d.ts +5 -0
- package/dist/pages/iam/sessions.js +315 -0
- package/dist/pages/iam/sessions.js.map +1 -0
- package/dist/pages/iam/tenant-detail.d.ts +10 -0
- package/dist/pages/iam/tenant-detail.js +186 -0
- package/dist/pages/iam/tenant-detail.js.map +1 -0
- package/dist/pages/iam/tenants.d.ts +5 -0
- package/dist/pages/iam/tenants.js +610 -0
- package/dist/pages/iam/tenants.js.map +1 -0
- package/dist/pages/iam/user-activity.d.ts +10 -0
- package/dist/pages/iam/user-activity.js +850 -0
- package/dist/pages/iam/user-activity.js.map +1 -0
- package/dist/pages/iam/user-detail-layout.d.ts +12 -0
- package/dist/pages/iam/user-detail-layout.js +106 -0
- package/dist/pages/iam/user-detail-layout.js.map +1 -0
- package/dist/pages/iam/user-detail.d.ts +10 -0
- package/dist/pages/iam/user-detail.js +102 -0
- package/dist/pages/iam/user-detail.js.map +1 -0
- package/dist/pages/iam/users.d.ts +5 -0
- package/dist/pages/iam/users.js +1275 -0
- package/dist/pages/iam/users.js.map +1 -0
- package/dist/pages/profile/account.d.ts +5 -0
- package/dist/pages/profile/account.js +182 -0
- package/dist/pages/profile/account.js.map +1 -0
- package/dist/pages/profile/layout.d.ts +8 -0
- package/dist/pages/profile/layout.js +133 -0
- package/dist/pages/profile/layout.js.map +1 -0
- package/dist/pages/profile/security.d.ts +5 -0
- package/dist/pages/profile/security.js +1539 -0
- package/dist/pages/profile/security.js.map +1 -0
- package/dist/{types-vcfvnAzQ.d.ts → types-g9QcNRxT.d.ts} +13 -7
- package/package.json +102 -3
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
// src/components/profile/
|
|
4
|
-
import {
|
|
5
|
-
Button as Button4,
|
|
6
|
-
Collapsible,
|
|
7
|
-
CollapsibleContent,
|
|
8
|
-
CollapsibleTrigger
|
|
9
|
-
} from "@mesob/ui/components";
|
|
10
|
-
import { IconChevronDown } from "@tabler/icons-react";
|
|
11
|
-
import { useState as useState5 } from "react";
|
|
3
|
+
// src/components/profile/security.tsx
|
|
4
|
+
import { Badge, Card, CardContent, Separator } from "@mesob/ui/components";
|
|
12
5
|
|
|
13
6
|
// src/provider.tsx
|
|
14
7
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
@@ -80,6 +73,16 @@ function useConfig() {
|
|
|
80
73
|
return context;
|
|
81
74
|
}
|
|
82
75
|
|
|
76
|
+
// src/components/profile/change-email-form.tsx
|
|
77
|
+
import {
|
|
78
|
+
Button as Button3,
|
|
79
|
+
Collapsible,
|
|
80
|
+
CollapsibleContent,
|
|
81
|
+
CollapsibleTrigger
|
|
82
|
+
} from "@mesob/ui/components";
|
|
83
|
+
import { IconChevronDown } from "@tabler/icons-react";
|
|
84
|
+
import { useState as useState5 } from "react";
|
|
85
|
+
|
|
83
86
|
// src/components/profile/request-change-email-form.tsx
|
|
84
87
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
85
88
|
import { Button, Input, Label, Spinner } from "@mesob/ui/components";
|
|
@@ -342,7 +345,7 @@ import {
|
|
|
342
345
|
// src/components/auth/verification-form.tsx
|
|
343
346
|
import { zodResolver as zodResolver2 } from "@hookform/resolvers/zod";
|
|
344
347
|
import {
|
|
345
|
-
Button as
|
|
348
|
+
Button as Button2,
|
|
346
349
|
Form,
|
|
347
350
|
FormControl,
|
|
348
351
|
FormField,
|
|
@@ -351,8 +354,7 @@ import {
|
|
|
351
354
|
FormMessage,
|
|
352
355
|
InputOTP,
|
|
353
356
|
InputOTPGroup,
|
|
354
|
-
InputOTPSlot
|
|
355
|
-
Spinner as Spinner3
|
|
357
|
+
InputOTPSlot
|
|
356
358
|
} from "@mesob/ui/components";
|
|
357
359
|
import { useForm as useForm2 } from "react-hook-form";
|
|
358
360
|
import { z as z2 } from "zod";
|
|
@@ -372,7 +374,7 @@ function useTranslator(namespace) {
|
|
|
372
374
|
}
|
|
373
375
|
|
|
374
376
|
// src/components/auth/countdown.tsx
|
|
375
|
-
import {
|
|
377
|
+
import { Spinner as Spinner2 } from "@mesob/ui/components";
|
|
376
378
|
import { useEffect as useEffect2, useState as useState3 } from "react";
|
|
377
379
|
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
378
380
|
var Countdown = ({
|
|
@@ -408,17 +410,19 @@ var Countdown = ({
|
|
|
408
410
|
setIsResending(false);
|
|
409
411
|
}
|
|
410
412
|
};
|
|
413
|
+
const busy = isResending || resending;
|
|
411
414
|
if (seconds > 0) {
|
|
412
|
-
return /* @__PURE__ */ jsx3(
|
|
415
|
+
return /* @__PURE__ */ jsx3("p", { className: "text-sm text-muted-foreground", children: t("resendIn", { seconds }) });
|
|
413
416
|
}
|
|
414
417
|
return /* @__PURE__ */ jsxs2(
|
|
415
|
-
|
|
418
|
+
"button",
|
|
416
419
|
{
|
|
417
|
-
|
|
420
|
+
type: "button",
|
|
418
421
|
onClick: handleResend,
|
|
419
|
-
disabled:
|
|
422
|
+
disabled: busy,
|
|
423
|
+
className: "text-sm text-primary hover:underline disabled:opacity-50 flex items-center gap-1",
|
|
420
424
|
children: [
|
|
421
|
-
|
|
425
|
+
busy && /* @__PURE__ */ jsx3(Spinner2, { className: "h-3 w-3" }),
|
|
422
426
|
t("resend")
|
|
423
427
|
]
|
|
424
428
|
}
|
|
@@ -438,13 +442,12 @@ var VerificationForm = ({
|
|
|
438
442
|
const t = useTranslator("Auth.verification");
|
|
439
443
|
const form = useForm2({
|
|
440
444
|
resolver: zodResolver2(verificationSchema(t)),
|
|
441
|
-
defaultValues: {
|
|
442
|
-
code: ""
|
|
443
|
-
}
|
|
445
|
+
defaultValues: { code: "" }
|
|
444
446
|
});
|
|
445
447
|
const handleSubmit = form.handleSubmit(async (values) => {
|
|
446
448
|
await onSubmit(values);
|
|
447
449
|
});
|
|
450
|
+
const codeLength = form.watch("code").length;
|
|
448
451
|
return /* @__PURE__ */ jsx4(Form, { ...form, children: /* @__PURE__ */ jsxs3(
|
|
449
452
|
"form",
|
|
450
453
|
{
|
|
@@ -482,21 +485,18 @@ var VerificationForm = ({
|
|
|
482
485
|
] })
|
|
483
486
|
}
|
|
484
487
|
),
|
|
485
|
-
/* @__PURE__ */
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
}
|
|
498
|
-
)
|
|
499
|
-
] })
|
|
488
|
+
/* @__PURE__ */ jsx4(
|
|
489
|
+
Button2,
|
|
490
|
+
{
|
|
491
|
+
type: "submit",
|
|
492
|
+
form: "verification-form",
|
|
493
|
+
className: "w-full",
|
|
494
|
+
disabled: isLoading || codeLength !== 6,
|
|
495
|
+
loading: isLoading,
|
|
496
|
+
children: t("form.confirm")
|
|
497
|
+
}
|
|
498
|
+
),
|
|
499
|
+
/* @__PURE__ */ jsx4("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx4(Countdown, { onResend, resending: isLoading }) })
|
|
500
500
|
]
|
|
501
501
|
}
|
|
502
502
|
) });
|
|
@@ -700,7 +700,7 @@ function ChangeEmailForm() {
|
|
|
700
700
|
CollapsibleTrigger,
|
|
701
701
|
{
|
|
702
702
|
render: /* @__PURE__ */ jsx7(
|
|
703
|
-
|
|
703
|
+
Button3,
|
|
704
704
|
{
|
|
705
705
|
variant: "ghost",
|
|
706
706
|
className: "w-full justify-between p-4 h-auto"
|
|
@@ -742,13 +742,13 @@ function ChangeEmailForm() {
|
|
|
742
742
|
// src/components/profile/change-password-form.tsx
|
|
743
743
|
import { zodResolver as zodResolver3 } from "@hookform/resolvers/zod";
|
|
744
744
|
import {
|
|
745
|
-
Button as
|
|
745
|
+
Button as Button4,
|
|
746
746
|
Collapsible as Collapsible2,
|
|
747
747
|
CollapsibleContent as CollapsibleContent2,
|
|
748
748
|
CollapsibleTrigger as CollapsibleTrigger2,
|
|
749
749
|
Input as Input2,
|
|
750
750
|
Label as Label2,
|
|
751
|
-
Spinner as
|
|
751
|
+
Spinner as Spinner3
|
|
752
752
|
} from "@mesob/ui/components";
|
|
753
753
|
import { IconChevronDown as IconChevronDown2, IconEye as IconEye2, IconEyeOff as IconEyeOff2 } from "@tabler/icons-react";
|
|
754
754
|
import { useState as useState6 } from "react";
|
|
@@ -844,7 +844,7 @@ function ChangePasswordForm() {
|
|
|
844
844
|
CollapsibleTrigger2,
|
|
845
845
|
{
|
|
846
846
|
render: /* @__PURE__ */ jsx8(
|
|
847
|
-
|
|
847
|
+
Button4,
|
|
848
848
|
{
|
|
849
849
|
variant: "ghost",
|
|
850
850
|
className: "w-full justify-between p-4 h-auto"
|
|
@@ -947,7 +947,7 @@ function ChangePasswordForm() {
|
|
|
947
947
|
] }),
|
|
948
948
|
/* @__PURE__ */ jsxs6("div", { className: "flex justify-end gap-2", children: [
|
|
949
949
|
/* @__PURE__ */ jsx8(
|
|
950
|
-
|
|
950
|
+
Button4,
|
|
951
951
|
{
|
|
952
952
|
type: "button",
|
|
953
953
|
variant: "outline",
|
|
@@ -959,8 +959,8 @@ function ChangePasswordForm() {
|
|
|
959
959
|
children: "Cancel"
|
|
960
960
|
}
|
|
961
961
|
),
|
|
962
|
-
/* @__PURE__ */ jsxs6(
|
|
963
|
-
isSubmitting && /* @__PURE__ */ jsx8(
|
|
962
|
+
/* @__PURE__ */ jsxs6(Button4, { type: "submit", disabled: isSubmitting, children: [
|
|
963
|
+
isSubmitting && /* @__PURE__ */ jsx8(Spinner3, { className: "mr-2 h-4 w-4" }),
|
|
964
964
|
"Change Password"
|
|
965
965
|
] })
|
|
966
966
|
] })
|
|
@@ -972,7 +972,7 @@ function ChangePasswordForm() {
|
|
|
972
972
|
|
|
973
973
|
// src/components/profile/change-phone-form.tsx
|
|
974
974
|
import {
|
|
975
|
-
Button as
|
|
975
|
+
Button as Button6,
|
|
976
976
|
Collapsible as Collapsible3,
|
|
977
977
|
CollapsibleContent as CollapsibleContent3,
|
|
978
978
|
CollapsibleTrigger as CollapsibleTrigger3
|
|
@@ -982,7 +982,7 @@ import { useState as useState9 } from "react";
|
|
|
982
982
|
|
|
983
983
|
// src/components/profile/request-change-phone-form.tsx
|
|
984
984
|
import { zodResolver as zodResolver4 } from "@hookform/resolvers/zod";
|
|
985
|
-
import { Button as
|
|
985
|
+
import { Button as Button5, Input as Input3, Label as Label3, Spinner as Spinner4 } from "@mesob/ui/components";
|
|
986
986
|
import { IconEye as IconEye3, IconEyeOff as IconEyeOff3 } from "@tabler/icons-react";
|
|
987
987
|
import { useEffect as useEffect3, useState as useState7 } from "react";
|
|
988
988
|
import { useForm as useForm4 } from "react-hook-form";
|
|
@@ -1240,7 +1240,7 @@ function RequestChangePhoneForm({
|
|
|
1240
1240
|
] }),
|
|
1241
1241
|
/* @__PURE__ */ jsxs7("div", { className: "flex justify-end gap-2", children: [
|
|
1242
1242
|
/* @__PURE__ */ jsx9(
|
|
1243
|
-
|
|
1243
|
+
Button5,
|
|
1244
1244
|
{
|
|
1245
1245
|
type: "button",
|
|
1246
1246
|
variant: "outline",
|
|
@@ -1249,8 +1249,8 @@ function RequestChangePhoneForm({
|
|
|
1249
1249
|
children: "Cancel"
|
|
1250
1250
|
}
|
|
1251
1251
|
),
|
|
1252
|
-
/* @__PURE__ */ jsxs7(
|
|
1253
|
-
isLoading && /* @__PURE__ */ jsx9(
|
|
1252
|
+
/* @__PURE__ */ jsxs7(Button5, { type: "submit", disabled: isLoading, children: [
|
|
1253
|
+
isLoading && /* @__PURE__ */ jsx9(Spinner4, { className: "mr-2 h-4 w-4" }),
|
|
1254
1254
|
isChecking ? "Checking\u2026" : buttonText
|
|
1255
1255
|
] })
|
|
1256
1256
|
] })
|
|
@@ -1423,7 +1423,7 @@ function ChangePhoneForm() {
|
|
|
1423
1423
|
CollapsibleTrigger3,
|
|
1424
1424
|
{
|
|
1425
1425
|
render: /* @__PURE__ */ jsx11(
|
|
1426
|
-
|
|
1426
|
+
Button6,
|
|
1427
1427
|
{
|
|
1428
1428
|
variant: "ghost",
|
|
1429
1429
|
className: "w-full justify-between p-4 h-auto"
|
|
@@ -1465,15 +1465,46 @@ function ChangePhoneForm() {
|
|
|
1465
1465
|
// src/components/profile/security.tsx
|
|
1466
1466
|
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1467
1467
|
function Security() {
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
/* @__PURE__ */ jsx12("
|
|
1468
|
+
const { user } = useSession();
|
|
1469
|
+
return /* @__PURE__ */ jsxs9("div", { className: "mx-auto flex w-full max-w-6xl flex-col gap-6", children: [
|
|
1470
|
+
/* @__PURE__ */ jsxs9("div", { className: "relative overflow-hidden rounded-[2rem] border border-border/60 bg-gradient-to-br from-background via-background to-amber-500/5 p-6 shadow-sm", children: [
|
|
1471
|
+
/* @__PURE__ */ jsx12("div", { className: "absolute left-0 top-0 h-32 w-32 rounded-full bg-primary/10 blur-3xl" }),
|
|
1472
|
+
/* @__PURE__ */ jsxs9("div", { className: "relative flex flex-col gap-4", children: [
|
|
1473
|
+
/* @__PURE__ */ jsxs9("div", { className: "flex flex-wrap gap-2", children: [
|
|
1474
|
+
/* @__PURE__ */ jsx12(Badge, { variant: "outline", children: "Security center" }),
|
|
1475
|
+
/* @__PURE__ */ jsx12(Badge, { variant: "secondary", children: user?.emailVerified || user?.phoneVerified ? "Recovery methods available" : "Add a recovery method" })
|
|
1476
|
+
] }),
|
|
1477
|
+
/* @__PURE__ */ jsxs9("div", { className: "space-y-2", children: [
|
|
1478
|
+
/* @__PURE__ */ jsx12("h1", { className: "text-2xl font-semibold tracking-tight", children: "Security" }),
|
|
1479
|
+
/* @__PURE__ */ jsx12("p", { className: "max-w-2xl text-sm text-muted-foreground", children: "Password, email, and phone updates all live here. Keep recovery channels current so account recovery stays predictable." })
|
|
1480
|
+
] })
|
|
1481
|
+
] })
|
|
1472
1482
|
] }),
|
|
1473
|
-
/* @__PURE__ */ jsxs9("div", { className: "
|
|
1474
|
-
/* @__PURE__ */ jsx12(
|
|
1475
|
-
|
|
1476
|
-
|
|
1483
|
+
/* @__PURE__ */ jsxs9("div", { className: "grid gap-4 lg:grid-cols-[0.85fr_1.4fr]", children: [
|
|
1484
|
+
/* @__PURE__ */ jsx12(Card, { className: "rounded-[1.75rem] border-border/60 shadow-sm", children: /* @__PURE__ */ jsxs9(CardContent, { className: "space-y-5 p-6", children: [
|
|
1485
|
+
/* @__PURE__ */ jsxs9("div", { className: "space-y-1", children: [
|
|
1486
|
+
/* @__PURE__ */ jsx12("div", { className: "text-sm font-medium text-muted-foreground", children: "Verification state" }),
|
|
1487
|
+
/* @__PURE__ */ jsx12("div", { className: "text-lg font-semibold", children: "Recovery readiness" })
|
|
1488
|
+
] }),
|
|
1489
|
+
/* @__PURE__ */ jsx12(Separator, {}),
|
|
1490
|
+
/* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
|
|
1491
|
+
/* @__PURE__ */ jsxs9("div", { className: "rounded-2xl border border-border/60 bg-muted/20 p-4", children: [
|
|
1492
|
+
/* @__PURE__ */ jsx12("div", { className: "text-sm font-medium", children: "Email" }),
|
|
1493
|
+
/* @__PURE__ */ jsx12("div", { className: "mt-1 text-sm text-muted-foreground", children: user?.email ?? "No email added" }),
|
|
1494
|
+
/* @__PURE__ */ jsx12("div", { className: "mt-3", children: /* @__PURE__ */ jsx12(Badge, { variant: "outline", children: user?.emailVerified ? "Verified" : "Unverified" }) })
|
|
1495
|
+
] }),
|
|
1496
|
+
/* @__PURE__ */ jsxs9("div", { className: "rounded-2xl border border-border/60 bg-muted/20 p-4", children: [
|
|
1497
|
+
/* @__PURE__ */ jsx12("div", { className: "text-sm font-medium", children: "Phone" }),
|
|
1498
|
+
/* @__PURE__ */ jsx12("div", { className: "mt-1 text-sm text-muted-foreground", children: user?.phone ?? "No phone added" }),
|
|
1499
|
+
/* @__PURE__ */ jsx12("div", { className: "mt-3", children: /* @__PURE__ */ jsx12(Badge, { variant: "outline", children: user?.phoneVerified ? "Verified" : "Unverified" }) })
|
|
1500
|
+
] })
|
|
1501
|
+
] })
|
|
1502
|
+
] }) }),
|
|
1503
|
+
/* @__PURE__ */ jsxs9("div", { className: "space-y-4", children: [
|
|
1504
|
+
/* @__PURE__ */ jsx12(ChangePasswordForm, {}),
|
|
1505
|
+
/* @__PURE__ */ jsx12(ChangeEmailForm, {}),
|
|
1506
|
+
/* @__PURE__ */ jsx12(ChangePhoneForm, {})
|
|
1507
|
+
] })
|
|
1477
1508
|
] })
|
|
1478
1509
|
] });
|
|
1479
1510
|
}
|