@schemavaults/auth-ui 0.6.88 → 0.7.5

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 (48) hide show
  1. package/dist/components/CreateOrganizationForm/CreateOrganizationForm.js +3 -3
  2. package/dist/components/CreateOrganizationForm/CreateOrganizationForm.js.map +1 -1
  3. package/dist/components/MfaChallengeForm/index.d.ts +2 -0
  4. package/dist/components/MfaChallengeForm/index.js +2 -0
  5. package/dist/components/MfaChallengeForm/index.js.map +1 -0
  6. package/dist/components/MfaChallengeForm/mfa-challenge-form.d.ts +10 -0
  7. package/dist/components/MfaChallengeForm/mfa-challenge-form.js +61 -0
  8. package/dist/components/MfaChallengeForm/mfa-challenge-form.js.map +1 -0
  9. package/dist/components/MfaRegenerateRecoveryCodesDialog/index.d.ts +2 -0
  10. package/dist/components/MfaRegenerateRecoveryCodesDialog/index.js +2 -0
  11. package/dist/components/MfaRegenerateRecoveryCodesDialog/index.js.map +1 -0
  12. package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.d.ts +7 -0
  13. package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.js +33 -0
  14. package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.js.map +1 -0
  15. package/dist/components/MfaRemoveFactorDialog/index.d.ts +2 -0
  16. package/dist/components/MfaRemoveFactorDialog/index.js +2 -0
  17. package/dist/components/MfaRemoveFactorDialog/index.js.map +1 -0
  18. package/dist/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.d.ts +8 -0
  19. package/dist/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.js +28 -0
  20. package/dist/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.js.map +1 -0
  21. package/dist/components/MfaSettingsCard/index.d.ts +2 -0
  22. package/dist/components/MfaSettingsCard/index.js +2 -0
  23. package/dist/components/MfaSettingsCard/index.js.map +1 -0
  24. package/dist/components/MfaSettingsCard/mfa-settings-card.d.ts +6 -0
  25. package/dist/components/MfaSettingsCard/mfa-settings-card.js +21 -0
  26. package/dist/components/MfaSettingsCard/mfa-settings-card.js.map +1 -0
  27. package/dist/components/PendingInvitationsTable/AcceptDeclineOrgInvitationButtons.d.ts +5 -0
  28. package/dist/components/PendingInvitationsTable/AcceptDeclineOrgInvitationButtons.js +51 -0
  29. package/dist/components/PendingInvitationsTable/AcceptDeclineOrgInvitationButtons.js.map +1 -0
  30. package/dist/components/PendingInvitationsTable/columns.js +6 -50
  31. package/dist/components/PendingInvitationsTable/columns.js.map +1 -1
  32. package/dist/components/RecoveryCodesPanel/index.d.ts +2 -0
  33. package/dist/components/RecoveryCodesPanel/index.js +2 -0
  34. package/dist/components/RecoveryCodesPanel/index.js.map +1 -0
  35. package/dist/components/RecoveryCodesPanel/recovery-codes-panel.d.ts +8 -0
  36. package/dist/components/RecoveryCodesPanel/recovery-codes-panel.js +37 -0
  37. package/dist/components/RecoveryCodesPanel/recovery-codes-panel.js.map +1 -0
  38. package/dist/components/TotpEnrollmentDialog/index.d.ts +2 -0
  39. package/dist/components/TotpEnrollmentDialog/index.js +2 -0
  40. package/dist/components/TotpEnrollmentDialog/index.js.map +1 -0
  41. package/dist/components/TotpEnrollmentDialog/totp-enrollment-dialog.d.ts +7 -0
  42. package/dist/components/TotpEnrollmentDialog/totp-enrollment-dialog.js +57 -0
  43. package/dist/components/TotpEnrollmentDialog/totp-enrollment-dialog.js.map +1 -0
  44. package/dist/components/index.d.ts +12 -0
  45. package/dist/components/index.js +6 -0
  46. package/dist/components/index.js.map +1 -1
  47. package/package.json +3 -3
  48. package/tsconfig.json +0 -25
@@ -101,12 +101,12 @@ export function CreateOrganizationForm({ onSuccess, ...props }) {
101
101
  }
102
102
  toast({
103
103
  variant: "default",
104
- title: "Created new organization successfully",
104
+ title: "Created new organization successfully!",
105
+ description: `The organization '${values.organization_id}' should now exist.`,
105
106
  });
106
107
  clearOrganizationsCache();
107
- const submittedOrgId = values.organization_id;
108
108
  form.reset();
109
- onSuccess(submittedOrgId);
109
+ onSuccess(values.organization_id);
110
110
  return;
111
111
  });
112
112
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateOrganizationForm.js","sourceRoot":"","sources":["../../../src/components/CreateOrganizationForm/CreateOrganizationForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateOrganizationForm.js","sourceRoot":"","sources":["../../../src/components/CreateOrganizationForm/CreateOrganizationForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { MfaChallengeForm, default } from "./mfa-challenge-form";
2
+ export type { MfaChallengeFormProps } from "./mfa-challenge-form";
@@ -0,0 +1,2 @@
1
+ export { MfaChallengeForm, default } from "./mfa-challenge-form";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MfaChallengeForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type FC } from "react";
2
+ export interface MfaChallengeFormProps {
3
+ challenge_id: string;
4
+ client_app_id: string;
5
+ expires_at?: number;
6
+ onAuthenticated: (authorization_code: string) => Promise<void> | void;
7
+ onChallengeExpired?: () => void;
8
+ }
9
+ export declare const MfaChallengeForm: FC<MfaChallengeFormProps>;
10
+ export default MfaChallengeForm;
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Input, } from "@schemavaults/ui";
5
+ import { useMfa } from "@schemavaults/auth-react-provider";
6
+ export const MfaChallengeForm = ({ challenge_id, client_app_id, expires_at, onAuthenticated, onChallengeExpired, }) => {
7
+ const { submitChallenge } = useMfa();
8
+ const [useRecovery, setUseRecovery] = useState(false);
9
+ const [value, setValue] = useState("");
10
+ const [error, setError] = useState(null);
11
+ const [submitting, setSubmitting] = useState(false);
12
+ const handleSubmit = async (e) => {
13
+ e.preventDefault();
14
+ setError(null);
15
+ setSubmitting(true);
16
+ try {
17
+ const proof = useRecovery
18
+ ? ({ type: "recovery_code", recovery_code: value })
19
+ : ({ type: "totp", code: value });
20
+ const result = await submitChallenge(challenge_id, client_app_id, proof);
21
+ if (result.kind === "authenticated") {
22
+ await onAuthenticated(result.authorization_code);
23
+ return;
24
+ }
25
+ if (result.kind === "challenge_expired") {
26
+ setError(result.message ||
27
+ "Too many attempts. Please log in again to start a new challenge.");
28
+ if (onChallengeExpired)
29
+ onChallengeExpired();
30
+ return;
31
+ }
32
+ if (result.kind === "failure") {
33
+ setError(result.message || "Verification failed");
34
+ return;
35
+ }
36
+ setError(`Unexpected response kind: ${result.kind}`);
37
+ }
38
+ catch (e) {
39
+ setError(e instanceof Error ? e.message : "Failed to submit code");
40
+ }
41
+ finally {
42
+ setSubmitting(false);
43
+ }
44
+ };
45
+ const expiresLabel = typeof expires_at === "number"
46
+ ? `Expires ${new Date(expires_at).toLocaleTimeString()}`
47
+ : null;
48
+ return (_jsxs(Card, { className: "w-full max-w-md", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Verify it's you" }), _jsxs(CardDescription, { children: [useRecovery
49
+ ? "Enter one of your recovery codes."
50
+ : "Enter the 6-digit code from your authenticator app.", expiresLabel ? ` ${expiresLabel}.` : null] })] }), _jsxs("form", { onSubmit: handleSubmit, children: [_jsxs(CardContent, { className: "space-y-3", children: [_jsx(Input, { inputMode: useRecovery ? "text" : "numeric", autoComplete: "one-time-code", value: value, onChange: (e) => setValue(useRecovery
51
+ ? e.target.value
52
+ : e.target.value.replace(/\D+/g, "").slice(0, 6)), placeholder: useRecovery ? "abcde-fghij" : "123456", "data-testid": "mfa-challenge-input" }), _jsx("button", { type: "button", className: "text-sm underline text-muted-foreground", onClick: () => {
53
+ setUseRecovery((p) => !p);
54
+ setValue("");
55
+ setError(null);
56
+ }, "data-testid": "mfa-challenge-toggle-recovery", children: useRecovery
57
+ ? "Use authenticator app instead"
58
+ : "Use a recovery code instead" }), error && _jsx("p", { className: "text-sm text-destructive", children: error })] }), _jsx(CardFooter, { children: _jsx(Button, { type: "submit", disabled: submitting || value.length === 0, "data-testid": "mfa-challenge-submit", children: submitting ? "Verifying…" : "Verify" }) })] })] }));
59
+ };
60
+ export default MfaChallengeForm;
61
+ //# sourceMappingURL=mfa-challenge-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfa-challenge-form.js","sourceRoot":"","sources":["../../../src/components/MfaChallengeForm/mfa-challenge-form.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { MfaRegenerateRecoveryCodesDialog, default, } from "./mfa-regenerate-recovery-codes-dialog";
2
+ export type { MfaRegenerateRecoveryCodesDialogProps } from "./mfa-regenerate-recovery-codes-dialog";
@@ -0,0 +1,2 @@
1
+ export { MfaRegenerateRecoveryCodesDialog, default, } from "./mfa-regenerate-recovery-codes-dialog";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MfaRegenerateRecoveryCodesDialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,OAAO,GACR,MAAM,wCAAwC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type FC } from "react";
2
+ export interface MfaRegenerateRecoveryCodesDialogProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ }
6
+ export declare const MfaRegenerateRecoveryCodesDialog: FC<MfaRegenerateRecoveryCodesDialogProps>;
7
+ export default MfaRegenerateRecoveryCodesDialog;
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, } from "@schemavaults/ui";
5
+ import { useMfa } from "@schemavaults/auth-react-provider";
6
+ import { RecoveryCodesPanel } from "../RecoveryCodesPanel";
7
+ export const MfaRegenerateRecoveryCodesDialog = ({ open, onClose }) => {
8
+ const { regenerateRecoveryCodes } = useMfa();
9
+ const [code, setCode] = useState("");
10
+ const [submitting, setSubmitting] = useState(false);
11
+ const [error, setError] = useState(null);
12
+ const [newCodes, setNewCodes] = useState(null);
13
+ const [acknowledged, setAcknowledged] = useState(false);
14
+ const handleConfirm = async () => {
15
+ setSubmitting(true);
16
+ setError(null);
17
+ try {
18
+ const res = await regenerateRecoveryCodes(code);
19
+ setNewCodes(res.recovery_codes);
20
+ }
21
+ catch (e) {
22
+ setError(e instanceof Error ? e.message : "Failed to regenerate codes");
23
+ }
24
+ finally {
25
+ setSubmitting(false);
26
+ }
27
+ };
28
+ return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Regenerate recovery codes" }), _jsx(DialogDescription, { children: newCodes
29
+ ? "Save the new codes. The previous set is no longer valid."
30
+ : "Enter your current 6-digit authenticator code to generate a new set of recovery codes. This invalidates all previous codes." })] }), newCodes ? (_jsx(RecoveryCodesPanel, { codes: newCodes, onAcknowledge: setAcknowledged })) : (_jsxs(_Fragment, { children: [_jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-regenerate-code-input" }), error && _jsx("p", { className: "text-sm text-destructive", children: error })] })), _jsx(DialogFooter, { children: newCodes ? (_jsx(Button, { onClick: onClose, disabled: !acknowledged, "data-testid": "mfa-regenerate-done", children: "Done" })) : (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: onClose, disabled: submitting, children: "Cancel" }), _jsx(Button, { onClick: handleConfirm, disabled: submitting || code.length !== 6, "data-testid": "mfa-regenerate-confirm", children: submitting ? "Generating…" : "Generate new codes" })] })) })] }) }));
31
+ };
32
+ export default MfaRegenerateRecoveryCodesDialog;
33
+ //# sourceMappingURL=mfa-regenerate-recovery-codes-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfa-regenerate-recovery-codes-dialog.js","sourceRoot":"","sources":["../../../src/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { MfaRemoveFactorDialog, default, } from "./mfa-remove-factor-dialog";
2
+ export type { MfaRemoveFactorDialogProps } from "./mfa-remove-factor-dialog";
@@ -0,0 +1,2 @@
1
+ export { MfaRemoveFactorDialog, default, } from "./mfa-remove-factor-dialog";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MfaRemoveFactorDialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,OAAO,GACR,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type FC } from "react";
2
+ export interface MfaRemoveFactorDialogProps {
3
+ open: boolean;
4
+ factor_id: string;
5
+ onClose: () => void;
6
+ }
7
+ export declare const MfaRemoveFactorDialog: FC<MfaRemoveFactorDialogProps>;
8
+ export default MfaRemoveFactorDialog;
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, } from "@schemavaults/ui";
5
+ import { useMfa } from "@schemavaults/auth-react-provider";
6
+ export const MfaRemoveFactorDialog = ({ open, factor_id, onClose, }) => {
7
+ const { removeFactor } = useMfa();
8
+ const [code, setCode] = useState("");
9
+ const [submitting, setSubmitting] = useState(false);
10
+ const [error, setError] = useState(null);
11
+ const handleConfirm = async () => {
12
+ setSubmitting(true);
13
+ setError(null);
14
+ try {
15
+ await removeFactor(factor_id, code);
16
+ onClose();
17
+ }
18
+ catch (e) {
19
+ setError(e instanceof Error ? e.message : "Failed to remove factor");
20
+ }
21
+ finally {
22
+ setSubmitting(false);
23
+ }
24
+ };
25
+ return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Remove authenticator" }), _jsx(DialogDescription, { children: "Enter your current 6-digit authenticator code to confirm. Removing the authenticator also invalidates your recovery codes." })] }), _jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-remove-factor-code" }), error && _jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: onClose, disabled: submitting, children: "Cancel" }), _jsx(Button, { variant: "destructive", onClick: handleConfirm, disabled: submitting || code.length !== 6, "data-testid": "mfa-remove-factor-confirm", children: submitting ? "Removing…" : "Remove" })] })] }) }));
26
+ };
27
+ export default MfaRemoveFactorDialog;
28
+ //# sourceMappingURL=mfa-remove-factor-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfa-remove-factor-dialog.js","sourceRoot":"","sources":["../../../src/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAQ3D,MAAM,CAAC,MAAM,qBAAqB,GAAmC,CAAC,EACpE,IAAI,EACJ,SAAS,EACT,OAAO,GACR,EAAgB,EAAE;IACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;QACvE,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,YACtD,MAAC,aAAa,eACZ,MAAC,YAAY,eACX,KAAC,WAAW,uCAAmC,EAC/C,KAAC,iBAAiB,6IAIE,IACP,EACf,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,YAAY,EAAC,eAAe,EAC5B,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAC5D,WAAW,EAAC,QAAQ,iBACR,wBAAwB,GACpC,EACD,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,EAC7D,MAAC,YAAY,eACX,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,uBAEvD,EACT,KAAC,MAAM,IACL,OAAO,EAAC,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,iBAC7B,2BAA2B,YAEtC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,GAC7B,IACI,IACD,GACT,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MfaSettingsCard, default } from "./mfa-settings-card";
2
+ export type { MfaSettingsCardProps } from "./mfa-settings-card";
@@ -0,0 +1,2 @@
1
+ export { MfaSettingsCard, default } from "./mfa-settings-card";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MfaSettingsCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type FC } from "react";
2
+ export interface MfaSettingsCardProps {
3
+ className?: string;
4
+ }
5
+ export declare const MfaSettingsCard: FC<MfaSettingsCardProps>;
6
+ export default MfaSettingsCard;
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cn, } from "@schemavaults/ui";
5
+ import { useMfa } from "@schemavaults/auth-react-provider";
6
+ import { ShieldCheck, ShieldAlert } from "lucide-react";
7
+ import { TotpEnrollmentDialog } from "../TotpEnrollmentDialog";
8
+ import { MfaRemoveFactorDialog } from "../MfaRemoveFactorDialog";
9
+ import { MfaRegenerateRecoveryCodesDialog } from "../MfaRegenerateRecoveryCodesDialog";
10
+ export const MfaSettingsCard = ({ className, }) => {
11
+ const { status, isLoading } = useMfa();
12
+ const [enrolling, setEnrolling] = useState(false);
13
+ const [removing, setRemoving] = useState(false);
14
+ const [regenerating, setRegenerating] = useState(false);
15
+ const enabled = !!status?.enabled;
16
+ return (_jsxs(Card, { className: cn("w-full", className), children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [enabled ? (_jsx(ShieldCheck, { className: "h-5 w-5 text-emerald-600" })) : (_jsx(ShieldAlert, { className: "h-5 w-5 text-muted-foreground" })), "Multi-Factor Authentication"] }), _jsx(CardDescription, { children: enabled
17
+ ? "An authenticator app is required at sign-in."
18
+ : "Add a second factor to protect your account." })] }), _jsx(CardContent, { children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Loading status\u2026" })) : enabled ? (_jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { children: [_jsx("strong", { children: "Status:" }), " Enabled (TOTP)"] }), typeof status?.recovery_codes_remaining === "number" && (_jsxs("div", { children: [_jsx("strong", { children: "Recovery codes remaining:" }), " ", status.recovery_codes_remaining] })), typeof status?.verified_at === "number" && (_jsxs("div", { className: "text-muted-foreground", children: ["Enabled on", " ", new Date(status.verified_at).toLocaleString()] }))] })) : (_jsx("p", { className: "text-sm text-muted-foreground", children: "MFA is not currently enabled on your account." })) }), _jsx(CardFooter, { className: "flex flex-wrap gap-2", children: enabled ? (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => setRegenerating(true), disabled: regenerating, children: "Regenerate recovery codes" }), _jsx(Button, { variant: "destructive", onClick: () => setRemoving(true), disabled: removing, children: "Remove authenticator" })] })) : (_jsx(Button, { onClick: () => setEnrolling(true), disabled: enrolling, children: "Set up authenticator app" })) }), enrolling && (_jsx(TotpEnrollmentDialog, { open: enrolling, onClose: () => setEnrolling(false) })), removing && status?.factor_id && (_jsx(MfaRemoveFactorDialog, { open: removing, factor_id: status.factor_id, onClose: () => setRemoving(false) })), regenerating && (_jsx(MfaRegenerateRecoveryCodesDialog, { open: regenerating, onClose: () => setRegenerating(false) }))] }));
19
+ };
20
+ export default MfaSettingsCard;
21
+ //# sourceMappingURL=mfa-settings-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfa-settings-card.js","sourceRoot":"","sources":["../../../src/components/MfaSettingsCard/mfa-settings-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,MAAM,EACN,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAMvF,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,EACxD,SAAS,GACV,EAAgB,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;IAElC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,aACtC,MAAC,UAAU,eACT,MAAC,SAAS,IAAC,SAAS,EAAC,yBAAyB,aAC3C,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,WAAW,IAAC,SAAS,EAAC,0BAA0B,GAAG,CACrD,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,SAAS,EAAC,+BAA+B,GAAG,CAC1D,mCAES,EACZ,KAAC,eAAe,cACb,OAAO;4BACN,CAAC,CAAC,8CAA8C;4BAChD,CAAC,CAAC,8CAA8C,GAClC,IACP,EACb,KAAC,WAAW,cACT,SAAS,CAAC,CAAC,CAAC,CACX,YAAG,SAAS,EAAC,+BAA+B,qCAAoB,CACjE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,eAAK,SAAS,EAAC,mBAAmB,aAChC,0BACE,uCAAwB,uBACpB,EACL,OAAO,MAAM,EAAE,wBAAwB,KAAK,QAAQ,IAAI,CACvD,0BACE,yDAA0C,EAAC,GAAG,EAC7C,MAAM,CAAC,wBAAwB,IAC5B,CACP,EACA,OAAO,MAAM,EAAE,WAAW,KAAK,QAAQ,IAAI,CAC1C,eAAK,SAAS,EAAC,uBAAuB,2BACzB,GAAG,EACb,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,IAC1C,CACP,IACG,CACP,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,+BAA+B,8DAExC,CACL,GACW,EACd,KAAC,UAAU,IAAC,SAAS,EAAC,sBAAsB,YACzC,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EACpC,QAAQ,EAAE,YAAY,0CAGf,EACT,KAAC,MAAM,IACL,OAAO,EAAC,aAAa,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAChC,QAAQ,EAAE,QAAQ,qCAGX,IACR,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,yCAErD,CACV,GACU,EACZ,SAAS,IAAI,CACZ,KAAC,oBAAoB,IACnB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GAClC,CACH,EACA,QAAQ,IAAI,MAAM,EAAE,SAAS,IAAI,CAChC,KAAC,qBAAqB,IACpB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GACjC,CACH,EACA,YAAY,IAAI,CACf,KAAC,gCAAgC,IAC/B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,GACrC,CACH,IACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ReactElement } from "react";
2
+ import type { UserPendingInvitation } from "@schemavaults/auth-common";
3
+ export default function AcceptDeclineOrgInvitationButtons({ invitation, }: {
4
+ invitation: UserPendingInvitation;
5
+ }): ReactElement;
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Button, useToast } from "@schemavaults/ui";
5
+ import { Check, Loader2, X } from "lucide-react";
6
+ import { clearPendingInvitationsCache } from "./usePendingInvitations";
7
+ import { useSWRConfig } from "swr";
8
+ export default function AcceptDeclineOrgInvitationButtons({ invitation, }) {
9
+ const organization_id = invitation.organization_id;
10
+ const invitation_id = invitation.invitation_id;
11
+ const { toast } = useToast();
12
+ const { mutate } = useSWRConfig();
13
+ const [isLoading, setIsLoading] = useState(null);
14
+ const handleResponse = async (action) => {
15
+ setIsLoading(action);
16
+ try {
17
+ const response = await fetch(`/api/organizations/${organization_id}/invitations/${invitation_id}`, {
18
+ method: "PATCH",
19
+ credentials: "include",
20
+ headers: {
21
+ "Content-Type": "application/json",
22
+ },
23
+ body: JSON.stringify({ action }),
24
+ });
25
+ const body = await response.json();
26
+ if (!response.ok || !body.success) {
27
+ throw new Error(body.message || `Failed to ${action} invitation`);
28
+ }
29
+ toast({
30
+ title: action === "accept" ? "Joined organization!" : "Invitation declined",
31
+ description: action === "accept"
32
+ ? `You are now a member of ${invitation.organization_name}`
33
+ : `You declined the invitation to ${invitation.organization_name}`,
34
+ });
35
+ // Refresh the invitations list
36
+ clearPendingInvitationsCache(mutate);
37
+ }
38
+ catch (error) {
39
+ toast({
40
+ variant: "destructive",
41
+ title: `Failed to ${action} invitation`,
42
+ description: error instanceof Error ? error.message : "An unknown error occurred",
43
+ });
44
+ }
45
+ finally {
46
+ setIsLoading(null);
47
+ }
48
+ };
49
+ return (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Button, { id: `accept-invitation-[${invitation_id}]-for-org-[${organization_id}]`, variant: "default", size: "sm", onClick: () => handleResponse("accept"), disabled: isLoading !== null, children: [isLoading === "accept" ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(Check, { className: "h-4 w-4" })), _jsx("span", { className: "ml-1", children: "Accept" })] }), _jsxs(Button, { id: `decline-invitation-[${invitation_id}]-for-org-[${organization_id}]`, variant: "outline", size: "sm", onClick: () => handleResponse("decline"), disabled: isLoading !== null, children: [isLoading === "decline" ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(X, { className: "h-4 w-4" })), _jsx("span", { className: "ml-1", children: "Decline" })] })] }));
50
+ }
51
+ //# sourceMappingURL=AcceptDeclineOrgInvitationButtons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcceptDeclineOrgInvitationButtons.js","sourceRoot":"","sources":["../../../src/components/PendingInvitationsTable/AcceptDeclineOrgInvitationButtons.tsx"],"names":[],"mappings":"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"}
@@ -1,52 +1,8 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- import { Checkbox, useToast, Button } from "@schemavaults/ui";
5
- import { Check, X, Loader2 } from "lucide-react";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Checkbox } from "@schemavaults/ui";
6
4
  import { LocalDateTime } from "../../lib/LocalDateTime";
7
- import { useSWRConfig } from "swr";
8
- import { clearPendingInvitationsCache } from "./usePendingInvitations";
9
- function AcceptDeclineButtons({ invitation, }) {
10
- const { toast } = useToast();
11
- const { mutate } = useSWRConfig();
12
- const [isLoading, setIsLoading] = useState(null);
13
- const handleResponse = async (action) => {
14
- setIsLoading(action);
15
- try {
16
- const response = await fetch(`/api/organizations/${invitation.organization_id}/invitations/${invitation.invitation_id}`, {
17
- method: "PATCH",
18
- credentials: "include",
19
- headers: {
20
- "Content-Type": "application/json",
21
- },
22
- body: JSON.stringify({ action }),
23
- });
24
- const body = await response.json();
25
- if (!response.ok || !body.success) {
26
- throw new Error(body.message || `Failed to ${action} invitation`);
27
- }
28
- toast({
29
- title: action === "accept" ? "Joined organization!" : "Invitation declined",
30
- description: action === "accept"
31
- ? `You are now a member of ${invitation.organization_name}`
32
- : `You declined the invitation to ${invitation.organization_name}`,
33
- });
34
- // Refresh the invitations list
35
- clearPendingInvitationsCache(mutate);
36
- }
37
- catch (error) {
38
- toast({
39
- variant: "destructive",
40
- title: `Failed to ${action} invitation`,
41
- description: error instanceof Error ? error.message : "An unknown error occurred",
42
- });
43
- }
44
- finally {
45
- setIsLoading(null);
46
- }
47
- };
48
- return (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Button, { variant: "default", size: "sm", onClick: () => handleResponse("accept"), disabled: isLoading !== null, children: [isLoading === "accept" ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(Check, { className: "h-4 w-4" })), _jsx("span", { className: "ml-1", children: "Accept" })] }), _jsxs(Button, { variant: "outline", size: "sm", onClick: () => handleResponse("decline"), disabled: isLoading !== null, children: [isLoading === "decline" ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : (_jsx(X, { className: "h-4 w-4" })), _jsx("span", { className: "ml-1", children: "Decline" })] })] }));
49
- }
5
+ import AcceptDeclineOrgInvitationButtons from "./AcceptDeclineOrgInvitationButtons";
50
6
  export const columns = [
51
7
  {
52
8
  id: "select",
@@ -72,7 +28,7 @@ export const columns = [
72
28
  header: "Invited At",
73
29
  cell: ({ row }) => {
74
30
  const invitation = row.original;
75
- return _jsx(LocalDateTime, { value: invitation.created_at, showSeconds: false });
31
+ return (_jsx(LocalDateTime, { value: invitation.created_at, showSeconds: false }));
76
32
  },
77
33
  },
78
34
  {
@@ -81,7 +37,7 @@ export const columns = [
81
37
  header: "Expires At",
82
38
  cell: ({ row }) => {
83
39
  const invitation = row.original;
84
- return _jsx(LocalDateTime, { value: invitation.expires_at, showSeconds: false });
40
+ return (_jsx(LocalDateTime, { value: invitation.expires_at, showSeconds: false }));
85
41
  },
86
42
  },
87
43
  {
@@ -89,7 +45,7 @@ export const columns = [
89
45
  header: "Actions",
90
46
  cell: function PendingInvitationsTableRowActionsCell({ row, }) {
91
47
  const invitation = row.original;
92
- return _jsx(AcceptDeclineButtons, { invitation: invitation });
48
+ return _jsx(AcceptDeclineOrgInvitationButtons, { invitation: invitation });
93
49
  },
94
50
  },
95
51
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/PendingInvitationsTable/columns.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/PendingInvitationsTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,iCAAiC,MAAM,qCAAqC,CAAC;AAEpF,MAAM,CAAC,MAAM,OAAO,GAAuC;IACzD;QACE,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,QAAQ,IACP,OAAO,EACL,KAAK,CAAC,wBAAwB,EAAE;gBAChC,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,eAAe,CAAC,EAExD,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAClC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAE/B,YAAY,GACvB,CACH;QACD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,gBACrD,YAAY,GACvB,CACH;QACD,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;KACpB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,WAAW,EAAE,mBAAmB;QAChC,MAAM,EAAE,cAAc;KACvB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE,YAAY;KACrB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;YAC9B,MAAM,UAAU,GAA0B,GAAG,CAAC,QAAQ,CAAC;YACvD,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,GAAI,CACpE,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;YAC9B,MAAM,UAAU,GAA0B,GAAG,CAAC,QAAQ,CAAC;YACvD,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,GAAI,CACpE,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS,qCAAqC,CAAC,EACnD,GAAG,GACJ;YACC,MAAM,UAAU,GAA0B,GAAG,CAAC,QAAQ,CAAC;YACvD,OAAO,KAAC,iCAAiC,IAAC,UAAU,EAAE,UAAU,GAAI,CAAC;QACvE,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RecoveryCodesPanel, default } from "./recovery-codes-panel";
2
+ export type { RecoveryCodesPanelProps } from "./recovery-codes-panel";
@@ -0,0 +1,2 @@
1
+ export { RecoveryCodesPanel, default } from "./recovery-codes-panel";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RecoveryCodesPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type FC } from "react";
2
+ export interface RecoveryCodesPanelProps {
3
+ codes: readonly string[];
4
+ onAcknowledge?: (acknowledged: boolean) => void;
5
+ className?: string;
6
+ }
7
+ export declare const RecoveryCodesPanel: FC<RecoveryCodesPanelProps>;
8
+ export default RecoveryCodesPanel;
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useCallback } from "react";
4
+ import { Button, Checkbox, cn, } from "@schemavaults/ui";
5
+ import { ClipboardCopy, Download } from "lucide-react";
6
+ export const RecoveryCodesPanel = ({ codes, onAcknowledge, className, }) => {
7
+ const [acknowledged, setAcknowledged] = useState(false);
8
+ const handleAck = useCallback((next) => {
9
+ setAcknowledged(next);
10
+ if (onAcknowledge)
11
+ onAcknowledge(next);
12
+ }, [onAcknowledge]);
13
+ const handleCopy = useCallback(async () => {
14
+ try {
15
+ await navigator.clipboard.writeText(codes.join("\n"));
16
+ }
17
+ catch (e) {
18
+ console.warn("Failed to copy recovery codes", e);
19
+ }
20
+ }, [codes]);
21
+ const handleDownload = useCallback(() => {
22
+ const blob = new Blob([codes.join("\n")], {
23
+ type: "text/plain;charset=utf-8",
24
+ });
25
+ const url = URL.createObjectURL(blob);
26
+ const a = document.createElement("a");
27
+ a.href = url;
28
+ a.download = "schemavaults-mfa-recovery-codes.txt";
29
+ document.body.appendChild(a);
30
+ a.click();
31
+ document.body.removeChild(a);
32
+ URL.revokeObjectURL(url);
33
+ }, [codes]);
34
+ return (_jsxs("div", { className: cn("space-y-3", className), children: [_jsx("div", { className: "rounded border border-amber-300 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-200", children: "These recovery codes are shown only once. Save them now \u2014 each can be used in place of an authenticator code if you lose your device." }), _jsx("div", { "data-testid": "mfa-recovery-codes-list", className: "grid grid-cols-2 gap-2 rounded border bg-muted p-3 font-mono text-sm", children: codes.map((code, idx) => (_jsx("div", { className: "select-all", children: code }, `${code}-${idx}`))) }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs(Button, { variant: "outline", type: "button", onClick: handleCopy, children: [_jsx(ClipboardCopy, { className: "mr-2 h-4 w-4" }), "Copy all"] }), _jsxs(Button, { variant: "outline", type: "button", onClick: handleDownload, children: [_jsx(Download, { className: "mr-2 h-4 w-4" }), "Download .txt"] })] }), _jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx(Checkbox, { id: "mfa-recovery-codes-acknowledge", checked: acknowledged, onCheckedChange: (v) => handleAck(v === true), "data-testid": "mfa-recovery-codes-acknowledge" }), _jsx("label", { htmlFor: "mfa-recovery-codes-acknowledge", children: "I have saved these recovery codes somewhere safe." })] })] }));
35
+ };
36
+ export default RecoveryCodesPanel;
37
+ //# sourceMappingURL=recovery-codes-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery-codes-panel.js","sourceRoot":"","sources":["../../../src/components/RecoveryCodesPanel/recovery-codes-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { TotpEnrollmentDialog, default } from "./totp-enrollment-dialog";
2
+ export type { TotpEnrollmentDialogProps } from "./totp-enrollment-dialog";
@@ -0,0 +1,2 @@
1
+ export { TotpEnrollmentDialog, default } from "./totp-enrollment-dialog";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/TotpEnrollmentDialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type FC } from "react";
2
+ export interface TotpEnrollmentDialogProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ }
6
+ export declare const TotpEnrollmentDialog: FC<TotpEnrollmentDialogProps>;
7
+ export default TotpEnrollmentDialog;
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState, } from "react";
4
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, } from "@schemavaults/ui";
5
+ import { useMfa } from "@schemavaults/auth-react-provider";
6
+ import { RecoveryCodesPanel } from "../RecoveryCodesPanel";
7
+ export const TotpEnrollmentDialog = ({ open, onClose, }) => {
8
+ const { enrollTotp, confirmTotpEnrollment } = useMfa();
9
+ const [step, setStep] = useState("loading");
10
+ const [enrollment, setEnrollment] = useState(null);
11
+ const [code, setCode] = useState("");
12
+ const [recoveryCodes, setRecoveryCodes] = useState([]);
13
+ const [error, setError] = useState(null);
14
+ const [submitting, setSubmitting] = useState(false);
15
+ const [acknowledged, setAcknowledged] = useState(false);
16
+ useEffect(() => {
17
+ let cancelled = false;
18
+ if (open && step === "loading") {
19
+ void enrollTotp()
20
+ .then((res) => {
21
+ if (cancelled)
22
+ return;
23
+ setEnrollment(res);
24
+ setStep("scan");
25
+ })
26
+ .catch((e) => {
27
+ if (cancelled)
28
+ return;
29
+ setError(e instanceof Error ? e.message : "Failed to start enrollment");
30
+ setStep("error");
31
+ });
32
+ }
33
+ return () => {
34
+ cancelled = true;
35
+ };
36
+ }, [open, step, enrollTotp]);
37
+ const handleConfirm = async () => {
38
+ if (!enrollment)
39
+ return;
40
+ setSubmitting(true);
41
+ setError(null);
42
+ try {
43
+ const result = await confirmTotpEnrollment(enrollment.factor_id, code);
44
+ setRecoveryCodes(result.recovery_codes);
45
+ setStep("recovery");
46
+ }
47
+ catch (e) {
48
+ setError(e instanceof Error ? e.message : "Failed to confirm authenticator code");
49
+ }
50
+ finally {
51
+ setSubmitting(false);
52
+ }
53
+ };
54
+ return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Set up an authenticator app" }), _jsx(DialogDescription, { children: "Scan the QR code with your authenticator app, then enter the 6-digit code it generates." })] }), step === "loading" && (_jsx("p", { className: "text-sm text-muted-foreground", children: "Starting enrollment\u2026" })), step === "error" && (_jsx("p", { className: "text-sm text-destructive", children: error ?? "Unknown error" })), step === "scan" && enrollment && (_jsxs("div", { className: "space-y-3", children: [_jsx("img", { src: enrollment.qr_code_data_url, alt: "TOTP QR code", className: "mx-auto h-56 w-56", "data-testid": "mfa-enroll-qr" }), _jsxs("details", { className: "text-xs text-muted-foreground", children: [_jsx("summary", { className: "cursor-pointer", children: "Can't scan? Show secret" }), _jsx("code", { className: "mt-1 block break-all rounded bg-muted p-2 font-mono", children: enrollment.secret })] }), _jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-enroll-code-input" }), error && _jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: onClose, disabled: submitting, children: "Cancel" }), _jsx(Button, { onClick: handleConfirm, disabled: submitting || code.length !== 6, "data-testid": "mfa-enroll-confirm", children: submitting ? "Verifying…" : "Verify code" })] })] })), step === "recovery" && (_jsxs("div", { className: "space-y-3", children: [_jsx(RecoveryCodesPanel, { codes: recoveryCodes, onAcknowledge: setAcknowledged }), _jsx(DialogFooter, { children: _jsx(Button, { onClick: onClose, disabled: !acknowledged, "data-testid": "mfa-enroll-done", children: "Done" }) })] }))] }) }));
55
+ };
56
+ export default TotpEnrollmentDialog;
57
+ //# sourceMappingURL=totp-enrollment-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"totp-enrollment-dialog.js","sourceRoot":"","sources":["../../../src/components/TotpEnrollmentDialog/totp-enrollment-dialog.tsx"],"names":[],"mappings":"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"}
@@ -52,3 +52,15 @@ export { DeleteAppDialog } from "./DeleteAppDialog";
52
52
  export type { DeleteAppDialogProps } from "./DeleteAppDialog";
53
53
  export { DeleteApiServerDialog } from "./DeleteApiServerDialog";
54
54
  export type { DeleteApiServerDialogProps } from "./DeleteApiServerDialog";
55
+ export { MfaSettingsCard } from "./MfaSettingsCard";
56
+ export type { MfaSettingsCardProps } from "./MfaSettingsCard";
57
+ export { TotpEnrollmentDialog } from "./TotpEnrollmentDialog";
58
+ export type { TotpEnrollmentDialogProps } from "./TotpEnrollmentDialog";
59
+ export { RecoveryCodesPanel } from "./RecoveryCodesPanel";
60
+ export type { RecoveryCodesPanelProps } from "./RecoveryCodesPanel";
61
+ export { MfaChallengeForm } from "./MfaChallengeForm";
62
+ export type { MfaChallengeFormProps } from "./MfaChallengeForm";
63
+ export { MfaRemoveFactorDialog } from "./MfaRemoveFactorDialog";
64
+ export type { MfaRemoveFactorDialogProps } from "./MfaRemoveFactorDialog";
65
+ export { MfaRegenerateRecoveryCodesDialog } from "./MfaRegenerateRecoveryCodesDialog";
66
+ export type { MfaRegenerateRecoveryCodesDialogProps } from "./MfaRegenerateRecoveryCodesDialog";
@@ -24,4 +24,10 @@ export { SentInvitationsCard } from "./SentInvitationsCard";
24
24
  export { OrganizationSettingsCard } from "./OrganizationSettingsCard";
25
25
  export { DeleteAppDialog } from "./DeleteAppDialog";
26
26
  export { DeleteApiServerDialog } from "./DeleteApiServerDialog";
27
+ export { MfaSettingsCard } from "./MfaSettingsCard";
28
+ export { TotpEnrollmentDialog } from "./TotpEnrollmentDialog";
29
+ export { RecoveryCodesPanel } from "./RecoveryCodesPanel";
30
+ export { MfaChallengeForm } from "./MfaChallengeForm";
31
+ export { MfaRemoveFactorDialog } from "./MfaRemoveFactorDialog";
32
+ export { MfaRegenerateRecoveryCodesDialog } from "./MfaRegenerateRecoveryCodesDialog";
27
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAG9B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,YAAY,CAAC;AAK3B,cAAc,kBAAkB,CAAC;AAKjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAMtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAG9B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,YAAY,CAAC;AAK3B,cAAc,kBAAkB,CAAC;AAKjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAMtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/auth-ui",
3
- "version": "0.6.88",
3
+ "version": "0.7.5",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for authentication/authorization shared between different SchemaVaults apps",
@@ -17,9 +17,9 @@
17
17
  "react-dom": "^19.2.5",
18
18
  "next": "^16.2.4",
19
19
  "@schemavaults/ui": "^0.21.0",
20
- "@schemavaults/auth-react-provider": "0.10.41",
20
+ "@schemavaults/auth-react-provider": "0.11.0",
21
21
  "@schemavaults/app-definitions": "0.6.23",
22
- "@schemavaults/auth-common": "0.10.15",
22
+ "@schemavaults/auth-common": "0.12.0",
23
23
  "lucide-react": "0.575.0",
24
24
  "swr": "2.3.4",
25
25
  "postcss": "8.5.3",
package/tsconfig.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "strict": true,
4
- "declaration": true,
5
- "moduleResolution": "Bundler",
6
- "target": "esnext",
7
- "module": "ESNext",
8
- "outDir": "dist",
9
- "lib": ["ESNext", "DOM", "DOM.Iterable"],
10
- "skipLibCheck": true,
11
- "allowJs": false,
12
- "jsx": "react-jsx",
13
- "strictNullChecks": true,
14
- "noImplicitAny": true,
15
- "sourceMap": true,
16
- "paths": {
17
- "@/*": ["./src"],
18
- "@/components/*": ["./src/components/*"],
19
- "@/lib/*": ["./src/lib/*"]
20
- },
21
- "noUncheckedIndexedAccess": true
22
- },
23
- "include": ["src"],
24
- "exclude": ["node_modules"]
25
- }