@cellarnode/auth 0.5.0 → 0.6.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.
@@ -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
- /** Static footer text. Defaults to "Need an account? Contact your CellarNode representative." */
16
+ /** Static footer text shown on the email step. Defaults to "Need an account? Contact your CellarNode representative." */
16
17
  footerText?: string;
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, brandDescription, authApi, authStore, onLoginSuccess, onNavigateRegister, logoSrc, inviteMode, initialEmail, theme, onResendSuccess, footerText, showRegisterInFooter, onBack, }: LoginFormProps): import("react/jsx-runtime").JSX.Element;
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":"AAYA,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,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uIAAuI;IACvI,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAYD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,YAAiB,EACjB,KAAe,EACf,eAAe,EACf,UAAuE,EACvE,oBAA4B,EAC5B,MAAM,GACP,EAAE,cAAc,2CAuWhB"}
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,yHAAyH;IACzH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,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"}
@@ -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
- export function LoginForm({ userType, brandName, brandDescription, authApi, authStore, onLoginSuccess, onNavigateRegister, logoSrc, inviteMode = false, initialEmail = "", theme = "light", onResendSuccess, footerText = "Need an account? Contact your CellarNode representative.", showRegisterInFooter = false, onBack, }) {
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 [showRegisterLink, setShowRegisterLink] = useState(false);
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
- setShowRegisterLink(false);
44
- switch (err.code) {
45
- case "USER_NOT_FOUND":
46
- setError("No account found with this email.");
47
- setShowRegisterLink(true);
48
- break;
49
- case "OTP_RATE_LIMIT":
50
- setError("Too many code requests. Please wait before trying again.");
51
- break;
52
- case "OTP_NOT_FOUND":
53
- setError("Code expired. Please request a new one.");
54
- setExpiresAt(new Date(0).toISOString());
55
- break;
56
- case "OTP_INVALID":
57
- setError(`Invalid code. ${err.remainingAttempts ?? 0} attempt(s) remaining.`);
58
- break;
59
- case "OTP_MAX_ATTEMPTS":
60
- setError("Too many failed attempts. Please request a new code.");
61
- setExpiresAt(new Date(0).toISOString());
62
- break;
63
- case "USER_DELETED":
64
- setError("This account has been deactivated. Contact support.");
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
- setError(err instanceof Error ? err.message : fallbackMessage);
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
- setShowRegisterLink(false);
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
- setShowRegisterLink(false);
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
- setError(`This portal is for ${userType} accounts only.`);
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
- setShowRegisterLink(false);
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 border-input bg-background px-3 py-2 text-sm shadow-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50" }), error && (_jsx("p", { className: "text-sm text-destructive", children: error })), showRegisterLink && (_jsx("button", { type: "button", onClick: onNavigateRegister, className: "inline-flex items-center justify-center text-sm text-primary transition-colors hover:text-primary/80", children: "Create an account instead" }))] }), _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: () => {
136
- // Auto-submit when all digits filled
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 && (_jsx("p", { className: "text-sm text-destructive", 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: () => {
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
- setShowRegisterLink(false);
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":"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"}
1
+ {"version":3,"file":"login-form.js","sourceRoot":"","sources":["../../src/react/login-form.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cellarnode/auth",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Shared OTP-based authentication — token store, API client, React UI components for CellarNode dashboards.",
5
5
  "license": "MIT",
6
6
  "type": "module",