@cellarnode/auth 0.5.0 → 0.6.1
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.
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import type { AuthApi, AuthStore } from "../types.js";
|
|
2
3
|
export interface LoginFormProps {
|
|
3
4
|
userType: "importer" | "producer";
|
|
@@ -12,12 +13,20 @@ export interface LoginFormProps {
|
|
|
12
13
|
initialEmail?: string;
|
|
13
14
|
theme?: "light" | "dark";
|
|
14
15
|
onResendSuccess?: () => void;
|
|
15
|
-
/**
|
|
16
|
-
footerText?:
|
|
16
|
+
/** Footer content shown on the email step. Accepts string or ReactNode. Defaults to "Need an account? Contact your CellarNode representative." */
|
|
17
|
+
footerText?: React.ReactNode;
|
|
17
18
|
/** When true, footer shows a clickable register link (uses onNavigateRegister). When false, shows static footerText. Default: false */
|
|
18
19
|
showRegisterInFooter?: boolean;
|
|
19
20
|
/** Optional "Back" button handler shown in top-right corner */
|
|
20
21
|
onBack?: () => void;
|
|
22
|
+
/** Error callback — receives structured error info for external handling (e.g. toast notifications). When provided, only a brief inline hint shows near the input; the full message goes through this callback. */
|
|
23
|
+
onError?: (error: {
|
|
24
|
+
code: string;
|
|
25
|
+
message: string;
|
|
26
|
+
remainingAttempts?: number;
|
|
27
|
+
}) => void;
|
|
28
|
+
/** Custom content shown below the input when the email is not found (USER_NOT_FOUND). Replaces the default "Create an account instead" link. Pass ReactNode for full control. */
|
|
29
|
+
notFoundContent?: React.ReactNode;
|
|
21
30
|
}
|
|
22
|
-
export declare function LoginForm({ userType, brandName,
|
|
31
|
+
export declare function LoginForm({ userType, brandName, authApi, authStore, onLoginSuccess, onNavigateRegister, logoSrc, inviteMode, initialEmail, theme, onResendSuccess, footerText, showRegisterInFooter, onBack, onError, notFoundContent, }: LoginFormProps): import("react/jsx-runtime").JSX.Element;
|
|
23
32
|
//# sourceMappingURL=login-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login-form.d.ts","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAW7D,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAatD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kJAAkJ;IAClJ,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,uIAAuI;IACvI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,mNAAmN;IACnN,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,KAAK,IAAI,CAAC;IACX,iLAAiL;IACjL,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAoBD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,YAAiB,EACjB,KAAe,EACf,eAAe,EACf,UAAuE,EACvE,oBAA4B,EAC5B,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE,cAAc,2CA0WhB"}
|
package/dist/react/login-form.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import React, { Suspense, useEffect, useState } from "react";
|
|
4
4
|
import { REGEXP_ONLY_DIGITS } from "input-otp";
|
|
5
|
-
import { ArrowLeft, ArrowRight, CheckCircle2, Clock3, Loader2, } from "lucide-react";
|
|
5
|
+
import { AlertCircle, ArrowLeft, ArrowRight, CheckCircle2, Clock3, Loader2, } from "lucide-react";
|
|
6
6
|
import { clsx } from "clsx";
|
|
7
7
|
import { AuthError } from "../types.js";
|
|
8
8
|
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, } from "./input-otp-slots.js";
|
|
@@ -15,12 +15,19 @@ function formatCountdown(expiresAt) {
|
|
|
15
15
|
const seconds = String(Math.floor((diff % 60_000) / 1000)).padStart(2, "0");
|
|
16
16
|
return `${minutes}:${seconds}`;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
const ERROR_MESSAGES = {
|
|
19
|
+
USER_NOT_FOUND: "No account found with this email.",
|
|
20
|
+
OTP_RATE_LIMIT: "Too many code requests. Please wait before trying again.",
|
|
21
|
+
OTP_NOT_FOUND: "Code expired. Please request a new one.",
|
|
22
|
+
OTP_MAX_ATTEMPTS: "Too many failed attempts. Please request a new code.",
|
|
23
|
+
USER_DELETED: "This account has been deactivated. Contact support.",
|
|
24
|
+
};
|
|
25
|
+
export function LoginForm({ userType, brandName, authApi, authStore, onLoginSuccess, onNavigateRegister, logoSrc, inviteMode = false, initialEmail = "", theme = "light", onResendSuccess, footerText = "Need an account? Contact your CellarNode representative.", showRegisterInFooter = false, onBack, onError, notFoundContent, }) {
|
|
19
26
|
const [step, setStep] = useState("email");
|
|
20
27
|
const [email, setEmail] = useState(initialEmail);
|
|
21
28
|
const [code, setCode] = useState("");
|
|
22
29
|
const [error, setError] = useState("");
|
|
23
|
-
const [
|
|
30
|
+
const [isNotFound, setIsNotFound] = useState(false);
|
|
24
31
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
25
32
|
const [expiresAt, setExpiresAt] = useState(null);
|
|
26
33
|
const [countdown, setCountdown] = useState("15:00");
|
|
@@ -40,41 +47,42 @@ export function LoginForm({ userType, brandName, brandDescription, authApi, auth
|
|
|
40
47
|
const normalizedEmail = email.trim();
|
|
41
48
|
function handleAuthError(err, fallbackMessage) {
|
|
42
49
|
if (err instanceof AuthError) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
break;
|
|
66
|
-
default:
|
|
67
|
-
setError(err.message || "Something went wrong");
|
|
50
|
+
const msg = err.code === "OTP_INVALID"
|
|
51
|
+
? `Invalid code. ${err.remainingAttempts ?? 0} attempt(s) remaining.`
|
|
52
|
+
: ERROR_MESSAGES[err.code] ?? err.message ?? "Something went wrong";
|
|
53
|
+
// Side effects for specific error codes
|
|
54
|
+
if (err.code === "USER_NOT_FOUND") {
|
|
55
|
+
setIsNotFound(true);
|
|
56
|
+
}
|
|
57
|
+
if (err.code === "OTP_NOT_FOUND" || err.code === "OTP_MAX_ATTEMPTS") {
|
|
58
|
+
setExpiresAt(new Date(0).toISOString());
|
|
59
|
+
}
|
|
60
|
+
// Route error to callback if provided
|
|
61
|
+
if (onError) {
|
|
62
|
+
onError({
|
|
63
|
+
code: err.code,
|
|
64
|
+
message: msg,
|
|
65
|
+
remainingAttempts: err.remainingAttempts,
|
|
66
|
+
});
|
|
67
|
+
// Still show brief inline hint for context
|
|
68
|
+
setError(msg);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
setError(msg);
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
else {
|
|
71
|
-
|
|
75
|
+
const msg = err instanceof Error ? err.message : fallbackMessage;
|
|
76
|
+
if (onError) {
|
|
77
|
+
onError({ code: "UNKNOWN", message: msg });
|
|
78
|
+
}
|
|
79
|
+
setError(msg);
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
82
|
async function handleEmailSubmit(e) {
|
|
75
83
|
e.preventDefault();
|
|
76
84
|
setError("");
|
|
77
|
-
|
|
85
|
+
setIsNotFound(false);
|
|
78
86
|
setIsSubmitting(true);
|
|
79
87
|
try {
|
|
80
88
|
const response = await authApi.requestOtp(normalizedEmail);
|
|
@@ -92,12 +100,15 @@ export function LoginForm({ userType, brandName, brandDescription, authApi, auth
|
|
|
92
100
|
async function handleOtpSubmit(e) {
|
|
93
101
|
e.preventDefault();
|
|
94
102
|
setError("");
|
|
95
|
-
|
|
103
|
+
setIsNotFound(false);
|
|
96
104
|
setIsSubmitting(true);
|
|
97
105
|
try {
|
|
98
106
|
const result = await authApi.verifyOtp(normalizedEmail, code);
|
|
99
107
|
if (result.user.userType !== userType) {
|
|
100
|
-
|
|
108
|
+
const msg = `This portal is for ${userType} accounts only.`;
|
|
109
|
+
setError(msg);
|
|
110
|
+
if (onError)
|
|
111
|
+
onError({ code: "USER_TYPE_MISMATCH", message: msg });
|
|
101
112
|
authStore.clearAccessToken();
|
|
102
113
|
return;
|
|
103
114
|
}
|
|
@@ -113,7 +124,7 @@ export function LoginForm({ userType, brandName, brandDescription, authApi, auth
|
|
|
113
124
|
}
|
|
114
125
|
async function handleResend() {
|
|
115
126
|
setError("");
|
|
116
|
-
|
|
127
|
+
setIsNotFound(false);
|
|
117
128
|
setIsSubmitting(true);
|
|
118
129
|
try {
|
|
119
130
|
const response = await authApi.requestOtp(normalizedEmail);
|
|
@@ -128,19 +139,18 @@ export function LoginForm({ userType, brandName, brandDescription, authApi, auth
|
|
|
128
139
|
setIsSubmitting(false);
|
|
129
140
|
}
|
|
130
141
|
}
|
|
131
|
-
return (_jsxs("div", { className: "grid min-h-dvh lg:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col px-6 py-6 sm:px-10 sm:py-8 lg:px-14 lg:py-10", children: [_jsxs("div", { className: "flex items-center justify-between gap-4", children: [_jsxs("div", { className: "inline-flex items-center gap-3", children: [logoSrc ? (_jsx("img", { src: logoSrc, alt: brandName, width: 36, height: 36, className: "size-9 rounded-full" })) : (_jsx("div", { className: "flex size-9 items-center justify-center rounded-full bg-primary text-sm font-bold text-primary-foreground", children: brandName.charAt(0) })), _jsx("span", { className: "font-semibold text-foreground", children: brandName })] }), onBack && (_jsxs("button", { type: "button", onClick: onBack, className: "inline-flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground", children: [_jsx(ArrowLeft, { className: "size-3.5" }), "Back"] }))] }), _jsx("div", { className: "flex flex-1 items-center justify-center py-12", children: _jsxs("div", { className: "w-full max-w-sm", children: [_jsx("div", { className: "mb-8 flex items-center gap-2.5", children: [0, 1].map((i) => (_jsx("div", { className: clsx("size-2.5 rounded-full transition-colors", stepIndex >= i
|
|
132
|
-
? "bg-primary"
|
|
133
|
-
: "bg-border") }, i))) }), inviteMode && step === "email" && (_jsx("div", { className: "mb-4 rounded-lg border border-primary/20 bg-primary/5 px-4 py-3 text-sm/6 text-foreground", children: "Signing in to accept your organization invitation." })), _jsx("h1", { className: "text-2xl font-semibold tracking-tight text-foreground", children: step === "email" ? "Sign in to your account" : "Check your email" }), _jsx("p", { className: "mt-2 text-sm/6 text-muted-foreground", children: step === "email"
|
|
142
|
+
return (_jsxs("div", { className: "grid min-h-dvh lg:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col px-6 py-6 sm:px-10 sm:py-8 lg:px-14 lg:py-10", children: [_jsxs("div", { className: "flex items-center justify-between gap-4", children: [_jsxs("div", { className: "inline-flex items-center gap-3", children: [logoSrc ? (_jsx("img", { src: logoSrc, alt: brandName, width: 36, height: 36, className: "size-9 rounded-full" })) : (_jsx("div", { className: "flex size-9 items-center justify-center rounded-full bg-primary text-sm font-bold text-primary-foreground", children: brandName.charAt(0) })), _jsx("span", { className: "font-semibold text-foreground", children: brandName })] }), onBack && (_jsxs("button", { type: "button", onClick: onBack, className: "inline-flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground", children: [_jsx(ArrowLeft, { className: "size-3.5" }), "Back"] }))] }), _jsx("div", { className: "flex flex-1 items-center justify-center py-12", children: _jsxs("div", { className: "w-full max-w-sm", children: [_jsx("div", { className: "mb-8 flex items-center gap-2.5", children: [0, 1].map((i) => (_jsx("div", { className: clsx("size-2.5 rounded-full transition-colors", stepIndex >= i ? "bg-primary" : "bg-border") }, i))) }), inviteMode && step === "email" && (_jsx("div", { className: "mb-4 rounded-lg border border-primary/20 bg-primary/5 px-4 py-3 text-sm/6 text-foreground", children: "Signing in to accept your organization invitation." })), _jsx("h1", { className: "text-2xl font-semibold tracking-tight text-foreground", children: step === "email" ? "Sign in to your account" : "Check your email" }), _jsx("p", { className: "mt-2 text-sm/6 text-muted-foreground", children: step === "email"
|
|
134
143
|
? "Enter your work email to receive a one-time access code."
|
|
135
|
-
: `We sent a 6-digit code to ${normalizedEmail}.` }), _jsx("div", { className: "mt-8", children: step === "email" ? (_jsxs("form", { onSubmit: handleEmailSubmit, className: "grid gap-5", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx("label", { htmlFor: "email", className: "text-sm font-medium leading-none", children: "Email address" }), _jsx("input", { id: "email", type: "email", placeholder: "you@company.com", value: email, onChange: (event) => setEmail(event.target.value), required: true, autoFocus: true, "aria-invalid": !!error || undefined, className: "flex h-10 w-full rounded-md border
|
|
136
|
-
|
|
144
|
+
: `We sent a 6-digit code to ${normalizedEmail}.` }), _jsx("div", { className: "mt-8", children: step === "email" ? (_jsxs("form", { onSubmit: handleEmailSubmit, className: "grid gap-5", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx("label", { htmlFor: "email", className: "text-sm font-medium leading-none", children: "Email address" }), _jsx("input", { id: "email", type: "email", placeholder: "you@company.com", value: email, onChange: (event) => setEmail(event.target.value), required: true, autoFocus: true, "aria-invalid": !!error || undefined, className: clsx("flex h-10 w-full rounded-md border bg-background px-3 py-2 text-sm shadow-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 transition-colors", error
|
|
145
|
+
? "border-destructive focus-visible:ring-destructive/30 focus-visible:border-destructive"
|
|
146
|
+
: "border-input focus-visible:ring-ring/50 focus-visible:border-ring") }), error && !onError && (_jsxs("div", { className: "flex items-start gap-2 text-sm text-destructive", children: [_jsx(AlertCircle, { className: "size-4 shrink-0 mt-0.5" }), _jsx("span", { children: error })] })), isNotFound && notFoundContent && (_jsx("div", { className: "mt-1 text-sm text-muted-foreground", children: notFoundContent }))] }), _jsxs("button", { type: "submit", className: "inline-flex h-11 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50", disabled: isSubmitting || !normalizedEmail, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin" })) : (_jsx(ArrowRight, { className: "mr-2 size-4" })), "Continue"] })] })) : (_jsxs("form", { id: "otp-form", onSubmit: handleOtpSubmit, className: "grid gap-5", children: [_jsxs("div", { className: "inline-flex w-fit items-center gap-1.5 rounded-full border border-border bg-muted/50 px-3 py-1 text-xs font-medium text-muted-foreground", children: [_jsx(Clock3, { className: "size-3" }), "Expires in ", countdown] }), _jsxs("div", { className: "grid gap-2", children: [_jsxs(InputOTP, { id: "otp", value: code, onChange: (value) => setCode(value), onComplete: () => {
|
|
137
147
|
const form = document.getElementById("otp-form");
|
|
138
148
|
form?.requestSubmit();
|
|
139
|
-
}, maxLength: 6, pattern: REGEXP_ONLY_DIGITS, autoFocus: true, "data-invalid": !!error || undefined, containerClassName: "justify-center", children: [_jsxs(InputOTPGroup, { children: [_jsx(InputOTPSlot, { index: 0 }), _jsx(InputOTPSlot, { index: 1 }), _jsx(InputOTPSlot, { index: 2 })] }), _jsx(InputOTPSeparator, {}), _jsxs(InputOTPGroup, { children: [_jsx(InputOTPSlot, { index: 3 }), _jsx(InputOTPSlot, { index: 4 }), _jsx(InputOTPSlot, { index: 5 })] })] }), error && (
|
|
149
|
+
}, maxLength: 6, pattern: REGEXP_ONLY_DIGITS, autoFocus: true, "data-invalid": !!error || undefined, containerClassName: "justify-center", children: [_jsxs(InputOTPGroup, { children: [_jsx(InputOTPSlot, { index: 0 }), _jsx(InputOTPSlot, { index: 1 }), _jsx(InputOTPSlot, { index: 2 })] }), _jsx(InputOTPSeparator, {}), _jsxs(InputOTPGroup, { children: [_jsx(InputOTPSlot, { index: 3 }), _jsx(InputOTPSlot, { index: 4 }), _jsx(InputOTPSlot, { index: 5 })] })] }), error && !onError && (_jsxs("div", { className: "flex items-center justify-center gap-2 text-sm text-destructive", children: [_jsx(AlertCircle, { className: "size-4 shrink-0" }), _jsx("span", { children: error })] }))] }), _jsxs("button", { type: "submit", className: "inline-flex h-11 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50", disabled: isSubmitting || code.length !== 6, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin" })) : (_jsx(CheckCircle2, { className: "mr-2 size-4" })), "Verify"] }), _jsxs("div", { className: "flex items-center justify-between text-sm", children: [_jsx("button", { type: "button", className: "text-muted-foreground transition-colors hover:text-foreground", onClick: () => {
|
|
140
150
|
setStep("email");
|
|
141
151
|
setCode("");
|
|
142
152
|
setError("");
|
|
143
|
-
|
|
153
|
+
setIsNotFound(false);
|
|
144
154
|
}, children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [_jsx(ArrowLeft, { className: "size-3.5" }), "Change email"] }) }), _jsx("button", { type: "button", className: "text-primary transition-colors hover:text-primary/80 disabled:text-muted-foreground/50", onClick: handleResend, disabled: isSubmitting || !canResend, children: "Resend code" })] })] })) }), step === "email" && (_jsx("p", { className: "mt-8 text-center text-sm text-muted-foreground", children: showRegisterInFooter && onNavigateRegister ? (_jsxs(_Fragment, { children: ["Need an account?", " ", _jsx("button", { type: "button", onClick: onNavigateRegister, className: "text-primary transition-colors hover:text-primary/80", children: "Register here" })] })) : (footerText) }))] }) })] }), _jsx("div", { className: "hidden lg:block", children: _jsx(Suspense, { fallback: _jsx("div", { className: "size-full bg-muted" }), children: _jsx(LazySquircleShift, { className: "size-full", theme: theme }) }) })] }));
|
|
145
155
|
}
|
|
146
156
|
//# sourceMappingURL=login-form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-form.js","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,MAAM,EACN,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACxC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAC1E,CAAC;
|
|
1
|
+
{"version":3,"file":"login-form.js","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED