@cellarnode/auth 0.11.0 → 0.13.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,6 +1,6 @@
1
1
  export { LoginForm, type LoginFormProps } from "./login-form.js";
2
2
  export { RegisterForm, type RegisterFormProps } from "./register-form.js";
3
- export { UnauthorizedPage, type UnauthorizedPageProps, } from "./unauthorized.js";
3
+ export { UnauthorizedPage, type UnauthorizedPageProps, type UnauthorizedPageLabels, } from "./unauthorized.js";
4
4
  export type { DashboardLink } from "../types.js";
5
5
  export { SquircleShift, type SquircleShiftProps } from "./squircle-shift.js";
6
6
  export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator, type InputOTPProps, } from "./input-otp-slots.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,GAElB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,GAElB,MAAM,sBAAsB,CAAC"}
@@ -26,8 +26,13 @@ export interface LoginFormProps {
26
26
  remainingAttempts?: number;
27
27
  authenticatedUserType?: string;
28
28
  }) => void;
29
- /** 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. */
30
- notFoundContent?: React.ReactNode;
31
29
  }
32
- 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;
30
+ /**
31
+ * Uniform, anti-enumeration notice shown once the email step is submitted
32
+ * (CEL-964). The backend now returns the same ack whether or not the account
33
+ * exists, so the UI must not imply either — it only confirms that IF an account
34
+ * exists, a code is on its way. Exported for direct unit testing.
35
+ */
36
+ export declare function otpSentNotice(email: string): string;
37
+ export declare function LoginForm({ userType, brandName, authApi, authStore, onLoginSuccess, onNavigateRegister, logoSrc, inviteMode, initialEmail, theme, onResendSuccess, footerText, showRegisterInFooter, onBack, onError, }: LoginFormProps): import("react/jsx-runtime").JSX.Element;
33
38
  //# 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":"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;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,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,2CAoYhB"}
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;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,KAAK,IAAI,CAAC;CACZ;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAiBD,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,GACR,EAAE,cAAc,2CAuXhB"}
@@ -7,6 +7,15 @@ import { clsx } from "clsx";
7
7
  import { AuthError } from "../types.js";
8
8
  import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, } from "./input-otp-slots.js";
9
9
  const LazySquircleShift = React.lazy(() => import("./squircle-shift.js").then((m) => ({ default: m.SquircleShift })));
10
+ /**
11
+ * Uniform, anti-enumeration notice shown once the email step is submitted
12
+ * (CEL-964). The backend now returns the same ack whether or not the account
13
+ * exists, so the UI must not imply either — it only confirms that IF an account
14
+ * exists, a code is on its way. Exported for direct unit testing.
15
+ */
16
+ export function otpSentNotice(email) {
17
+ return `If an account exists for ${email}, we've sent a code.`;
18
+ }
10
19
  function formatCountdown(target, fallback = "10:00") {
11
20
  if (!target)
12
21
  return fallback;
@@ -16,18 +25,16 @@ function formatCountdown(target, fallback = "10:00") {
16
25
  return `${minutes}:${seconds}`;
17
26
  }
18
27
  const ERROR_MESSAGES = {
19
- USER_NOT_FOUND: "No account found with this email.",
20
28
  OTP_RATE_LIMIT: "Too many code requests. Please wait before trying again.",
21
29
  OTP_NOT_FOUND: "Code expired. Please request a new one.",
22
30
  OTP_MAX_ATTEMPTS: "Too many failed attempts. Please request a new code.",
23
31
  USER_DELETED: "This account has been deactivated. Contact support.",
24
32
  };
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, }) {
33
+ 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, }) {
26
34
  const [step, setStep] = useState("email");
27
35
  const [email, setEmail] = useState(initialEmail);
28
36
  const [code, setCode] = useState("");
29
37
  const [error, setError] = useState("");
30
- const [isNotFound, setIsNotFound] = useState(false);
31
38
  const [isSubmitting, setIsSubmitting] = useState(false);
32
39
  const [expiresAt, setExpiresAt] = useState(null);
33
40
  const [resendAvailableAt, setResendAvailableAt] = useState(null);
@@ -63,9 +70,6 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
63
70
  ? `Invalid code. ${err.remainingAttempts ?? 0} attempt(s) remaining.`
64
71
  : ERROR_MESSAGES[err.code] ?? err.message ?? "Something went wrong";
65
72
  // Side effects for specific error codes
66
- if (err.code === "USER_NOT_FOUND") {
67
- setIsNotFound(true);
68
- }
69
73
  if (err.code === "OTP_NOT_FOUND" || err.code === "OTP_MAX_ATTEMPTS") {
70
74
  setExpiresAt(new Date(0).toISOString());
71
75
  setResendAvailableAt(new Date(0).toISOString());
@@ -95,7 +99,6 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
95
99
  async function handleEmailSubmit(e) {
96
100
  e.preventDefault();
97
101
  setError("");
98
- setIsNotFound(false);
99
102
  setIsSubmitting(true);
100
103
  try {
101
104
  const response = await authApi.requestOtp(normalizedEmail);
@@ -114,7 +117,6 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
114
117
  async function handleOtpSubmit(e) {
115
118
  e.preventDefault();
116
119
  setError("");
117
- setIsNotFound(false);
118
120
  setIsSubmitting(true);
119
121
  try {
120
122
  const result = await authApi.verifyOtp(normalizedEmail, code);
@@ -141,7 +143,6 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
141
143
  }
142
144
  async function handleResend() {
143
145
  setError("");
144
- setIsNotFound(false);
145
146
  setIsSubmitting(true);
146
147
  try {
147
148
  const response = await authApi.requestOtp(normalizedEmail);
@@ -159,9 +160,9 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
159
160
  }
160
161
  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"
161
162
  ? "Enter your work email to receive a one-time access code."
162
- : `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
163
+ : otpSentNotice(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
163
164
  ? "border-destructive focus-visible:ring-destructive/30 focus-visible:border-destructive"
164
- : "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: [_jsx("div", { className: "flex justify-center", children: _jsxs("div", { className: "inline-flex 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) => {
165
+ : "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 })] }))] }), _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: [_jsx("div", { className: "flex justify-center", children: _jsxs("div", { className: "inline-flex 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) => {
165
166
  setCode(value);
166
167
  if (error)
167
168
  setError("");
@@ -172,7 +173,6 @@ export function LoginForm({ userType, brandName, authApi, authStore, onLoginSucc
172
173
  setStep("email");
173
174
  setCode("");
174
175
  setError("");
175
- setIsNotFound(false);
176
176
  }, 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: canResend ? "Resend code" : `Resend in ${resendCountdown}` })] })] })) }), 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 }) }) })] }));
177
177
  }
178
178
  //# 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":"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,WAAW,EACX,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;AAgCF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,4BAA4B,KAAK,sBAAsB,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB,EAAE,QAAQ,GAAG,OAAO;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5E,OAAO,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,cAAc,GAA2B;IAC7C,cAAc,EAAE,0DAA0D;IAC1E,aAAa,EAAE,yCAAyC;IACxD,gBAAgB,EAAE,sDAAsD;IACxE,YAAY,EAAE,qDAAqD;CACpE,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,UAAU,GAAG,KAAK,EAClB,YAAY,GAAG,EAAE,EACjB,KAAK,GAAG,OAAO,EACf,eAAe,EACf,UAAU,GAAG,0DAA0D,EACvE,oBAAoB,GAAG,KAAK,EAC5B,MAAM,EACN,OAAO,GACQ;IACf,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAO,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACvC,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,kBAAkB,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACvC,kBAAkB,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,MAAM,SAAS,GAAG,iBAAiB;QACjC,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;QACrD,CAAC,CAAC,KAAK,CAAC;IACV,MAAM,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAErC,SAAS,eAAe,CAAC,GAAY,EAAE,eAAuB;QAC5D,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GACP,GAAG,CAAC,IAAI,KAAK,aAAa;gBACxB,CAAC,CAAC,iBAAiB,GAAG,CAAC,iBAAiB,IAAI,CAAC,wBAAwB;gBACrE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,sBAAsB,CAAC;YAExE,wCAAwC;YACxC,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACpE,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxC,oBAAoB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,sCAAsC;YACtC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG;oBACZ,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;iBACzC,CAAC,CAAC;gBACH,2CAA2C;gBAC3C,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,CAAkB;QACjD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAC3D,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAe,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,CAAkB;QAC/C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAE9D,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,sBAAsB,QAAQ,iBAAiB,CAAC;gBAC5D,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,OAAO;oBAAE,OAAO,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChH,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,cAAc,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACrC,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,YAAY;QACzB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAC3D,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACjD,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,eAAe,EAAE,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAe,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAE5C,eAAK,SAAS,EAAC,4DAA4D,aAEzE,eAAK,SAAS,EAAC,yCAAyC,aACtD,eAAK,SAAS,EAAC,gCAAgC,aAC5C,OAAO,CAAC,CAAC,CAAC,CACT,cACE,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,qBAAqB,GAC/B,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,2GAA2G,YACvH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAChB,CACP,EACD,eAAM,SAAS,EAAC,+BAA+B,YAAE,SAAS,GAAQ,IAC9D,EACL,MAAM,IAAI,CACT,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,wGAAwG,aAElH,KAAC,SAAS,IAAC,SAAS,EAAC,UAAU,GAAG,YAE3B,CACV,IACG,EAGN,cAAK,SAAS,EAAC,+CAA+C,YAC5D,eAAK,SAAS,EAAC,iBAAiB,aAE9B,cAAK,SAAS,EAAC,gCAAgC,YAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,cAEE,SAAS,EAAE,IAAI,CACb,yCAAyC,EACzC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAC5C,IAJI,CAAC,CAKN,CACH,CAAC,GACE,EAGL,UAAU,IAAI,IAAI,KAAK,OAAO,IAAI,CACjC,cAAK,SAAS,EAAC,2FAA2F,mEAEpG,CACP,EAGD,aAAI,SAAS,EAAC,uDAAuD,YAClE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,kBAAkB,GAC/D,EACL,YAAG,SAAS,EAAC,sCAAsC,YAChD,IAAI,KAAK,OAAO;wCACf,CAAC,CAAC,0DAA0D;wCAC5D,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,GAChC,EAGJ,cAAK,SAAS,EAAC,MAAM,YAClB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAClB,gBAAM,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAC,YAAY,aACvD,eAAK,SAAS,EAAC,YAAY,aACzB,gBACE,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,kCAAkC,8BAGtC,EACR,gBACE,EAAE,EAAC,OAAO,EACV,IAAI,EAAC,OAAO,EACZ,WAAW,EAAC,iBAAiB,EAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,QAAQ,QACR,SAAS,wBACK,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,IAAI,CACb,sOAAsO,EACtO,KAAK;4DACH,CAAC,CAAC,uFAAuF;4DACzF,CAAC,CAAC,mEAAmE,CACxE,GACD,EACD,KAAK,IAAI,CAAC,OAAO,IAAI,CACpB,eAAK,SAAS,EAAC,iDAAiD,aAC9D,KAAC,WAAW,IAAC,SAAS,EAAC,wBAAwB,GAAG,EAClD,yBAAO,KAAK,GAAQ,IAChB,CACP,IACG,EAEN,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mOAAmO,EAC7O,QAAQ,EAAE,YAAY,IAAI,CAAC,eAAe,aAEzC,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,OAAO,IAAC,SAAS,EAAC,0BAA0B,GAAG,CACjD,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IAAC,SAAS,EAAC,aAAa,GAAG,CACvC,gBAEM,IACJ,CACR,CAAC,CAAC,CAAC,CACF,gBAAM,EAAE,EAAC,UAAU,EAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAC,YAAY,aAEnE,cAAK,SAAS,EAAC,qBAAqB,YAClC,eAAK,SAAS,EAAC,oIAAoI,aACjJ,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,GAAG,iBACjB,SAAS,IACjB,GACF,EAEN,eAAK,SAAS,EAAC,YAAY,aACzB,MAAC,QAAQ,IACP,EAAE,EAAC,KAAK,EACR,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4DAClB,OAAO,CAAC,KAAK,CAAC,CAAC;4DACf,IAAI,KAAK;gEAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;wDAC1B,CAAC,EACD,UAAU,EAAE,GAAG,EAAE;4DACf,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAClC,UAAU,CACe,CAAC;4DAC5B,IAAI,EAAE,aAAa,EAAE,CAAC;wDACxB,CAAC,EACD,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,kBAAkB,EAC3B,SAAS,wBACK,CAAC,CAAC,KAAK,IAAI,SAAS,kBACpB,SAAS,IAAI,SAAS,EACpC,kBAAkB,EAAC,gBAAgB,aAEnC,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,GAAI,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,GAAI,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,GAAI,IACZ,EAChB,KAAC,iBAAiB,KAAG,EACrB,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,GAAI,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,GAAI,EAC1B,KAAC,YAAY,IAAC,KAAK,EAAE,CAAC,GAAI,IACZ,IACP,EACV,KAAK,IAAI,CACR,eAAK,SAAS,EAAC,iEAAiE,aAC9E,KAAC,WAAW,IAAC,SAAS,EAAC,iBAAiB,GAAG,EAC3C,yBAAO,KAAK,GAAQ,IAChB,CACP,IACG,EAEN,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mOAAmO,EAC7O,QAAQ,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,aAE1C,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,OAAO,IAAC,SAAS,EAAC,0BAA0B,GAAG,CACjD,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,SAAS,EAAC,aAAa,GAAG,CACzC,cAEM,EAET,eAAK,SAAS,EAAC,2CAA2C,aACxD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+DAA+D,EACzE,OAAO,EAAE,GAAG,EAAE;4DACZ,OAAO,CAAC,OAAO,CAAC,CAAC;4DACjB,OAAO,CAAC,EAAE,CAAC,CAAC;4DACZ,QAAQ,CAAC,EAAE,CAAC,CAAC;wDACf,CAAC,YAED,gBAAM,SAAS,EAAC,gCAAgC,aAC9C,KAAC,SAAS,IAAC,SAAS,EAAC,UAAU,GAAG,oBAE7B,GACA,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wFAAwF,EAClG,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,YAAY,IAAI,CAAC,SAAS,YAEnC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,eAAe,EAAE,GACpD,IACL,IACD,CACR,GACG,EAGL,IAAI,KAAK,OAAO,IAAI,CACnB,YAAG,SAAS,EAAC,gDAAgD,YAC1D,oBAAoB,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAC5C,kDACmB,GAAG,EACpB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAC,sDAAsD,8BAGzD,IACR,CACJ,CAAC,CAAC,CAAC,CACF,UAAU,CACX,GACC,CACL,IACG,GACF,IACF,EAGN,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,QAAQ,IAAC,QAAQ,EAAE,cAAK,SAAS,EAAC,oBAAoB,GAAG,YACxD,KAAC,iBAAiB,IAAC,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,KAAK,GAAI,GAChD,GACP,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -1,9 +1,43 @@
1
+ import type { ReactNode } from "react";
1
2
  import type { DashboardLink } from "../types.js";
3
+ /**
4
+ * Localizable copy for {@link UnauthorizedPage}. Every omitted field falls
5
+ * back to its English default, so existing consumers are unaffected
6
+ * (CEL-918; mirrors the labels pattern of @cellarnode/ui).
7
+ */
8
+ export interface UnauthorizedPageLabels {
9
+ /** Heading of the wrong-portal view. Default "Wrong Portal". */
10
+ wrongPortalTitle?: string;
11
+ /**
12
+ * Full description under the wrong-portal heading. Overrides the composed
13
+ * English default ("You're signed in as a {userType}. This dashboard is
14
+ * for {expectedRole}.") — pass a fully-translated node (e.g. a <Trans>).
15
+ */
16
+ wrongPortalDescription?: ReactNode;
17
+ /**
18
+ * CTA text for the matching dashboard link. Receives the link's label.
19
+ * Default: `Go to ${linkLabel}`.
20
+ */
21
+ goToDashboard?: (linkLabel: string) => ReactNode;
22
+ /** Default "Sign in with a different account". */
23
+ switchAccount?: string;
24
+ /** Heading of the generic view. Default "Access Denied". */
25
+ accessDeniedTitle?: string;
26
+ /**
27
+ * Full description under the access-denied heading. Overrides the composed
28
+ * English default ("This dashboard is for {expectedRole} only. …").
29
+ */
30
+ accessDeniedDescription?: ReactNode;
31
+ /** Default "Back to Login". */
32
+ backToLogin?: string;
33
+ }
2
34
  export interface UnauthorizedPageProps {
3
35
  expectedRole: string;
4
36
  onNavigateLogin: () => void | Promise<void>;
5
37
  authenticatedUserType?: string | null;
6
38
  dashboardLinks?: DashboardLink[];
39
+ /** Optional label overrides; each omitted field uses its English default. */
40
+ labels?: UnauthorizedPageLabels;
7
41
  }
8
- export declare function UnauthorizedPage({ expectedRole, onNavigateLogin, authenticatedUserType, dashboardLinks, }: UnauthorizedPageProps): import("react/jsx-runtime").JSX.Element;
42
+ export declare function UnauthorizedPage({ expectedRole, onNavigateLogin, authenticatedUserType, dashboardLinks, labels, }: UnauthorizedPageProps): import("react/jsx-runtime").JSX.Element;
9
43
  //# sourceMappingURL=unauthorized.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unauthorized.d.ts","sourceRoot":"","sources":["../../src/react/unauthorized.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,cAAc,GACf,EAAE,qBAAqB,2CA6DvB"}
1
+ {"version":3,"file":"unauthorized.d.ts","sourceRoot":"","sources":["../../src/react/unauthorized.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,SAAS,CAAC;IACnC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC;IACjD,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,SAAS,CAAC;IACpC,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,MAAM,GACP,EAAE,qBAAqB,2CA2EvB"}
@@ -1,15 +1,17 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ShieldX, ArrowLeftRight, ExternalLink } from "lucide-react";
4
- export function UnauthorizedPage({ expectedRole, onNavigateLogin, authenticatedUserType, dashboardLinks, }) {
4
+ export function UnauthorizedPage({ expectedRole, onNavigateLogin, authenticatedUserType, dashboardLinks, labels, }) {
5
5
  const matchingLink = authenticatedUserType && dashboardLinks
6
6
  ? dashboardLinks.find((l) => l.userType === authenticatedUserType)
7
7
  : undefined;
8
8
  // Portal-aware view: user is authenticated but on the wrong dashboard
9
9
  if (matchingLink) {
10
- return (_jsx("div", { className: "flex min-h-dvh items-center justify-center p-4", children: _jsxs("div", { className: "mx-auto w-full max-w-md rounded-xl border border-border bg-card p-8 text-center shadow-sm", children: [_jsx("div", { className: "mx-auto mb-4 flex size-12 items-center justify-center rounded-full bg-amber-500/10", children: _jsx(ArrowLeftRight, { className: "size-6 text-amber-600" }) }), _jsx("h1", { className: "text-2xl font-semibold", children: "Wrong Portal" }), _jsxs("p", { className: "mt-2 text-sm text-muted-foreground", children: ["You're signed in as a", " ", _jsx("span", { className: "font-medium text-foreground", children: authenticatedUserType }), ". This dashboard is for ", expectedRole, "."] }), _jsxs("a", { href: matchingLink.url, className: "mt-6 inline-flex h-10 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs hover:bg-primary/90 transition-colors", children: ["Go to ", matchingLink.label, _jsx(ExternalLink, { className: "size-4" })] }), _jsx("button", { onClick: onNavigateLogin, className: "mt-3 text-sm text-primary transition-colors hover:text-primary/80", children: "Sign in with a different account" })] }) }));
10
+ return (_jsx("div", { className: "flex min-h-dvh items-center justify-center p-4", children: _jsxs("div", { className: "mx-auto w-full max-w-md rounded-xl border border-border bg-card p-8 text-center shadow-sm", children: [_jsx("div", { className: "mx-auto mb-4 flex size-12 items-center justify-center rounded-full bg-amber-500/10", children: _jsx(ArrowLeftRight, { className: "size-6 text-amber-600" }) }), _jsx("h1", { className: "text-2xl font-semibold", children: labels?.wrongPortalTitle ?? "Wrong Portal" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: labels?.wrongPortalDescription ?? (_jsxs(_Fragment, { children: ["You're signed in as a", " ", _jsx("span", { className: "font-medium text-foreground", children: authenticatedUserType }), ". This dashboard is for ", expectedRole, "."] })) }), _jsxs("a", { href: matchingLink.url, className: "mt-6 inline-flex h-10 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs hover:bg-primary/90 transition-colors", children: [labels?.goToDashboard
11
+ ? labels.goToDashboard(matchingLink.label)
12
+ : `Go to ${matchingLink.label}`, _jsx(ExternalLink, { className: "size-4" })] }), _jsx("button", { onClick: onNavigateLogin, className: "mt-3 text-sm text-primary transition-colors hover:text-primary/80", children: labels?.switchAccount ?? "Sign in with a different account" })] }) }));
11
13
  }
12
14
  // Fallback: generic access denied (backward compat + admin userType + no props)
13
- return (_jsx("div", { className: "flex min-h-dvh items-center justify-center p-4", children: _jsxs("div", { className: "mx-auto w-full max-w-md rounded-xl border border-border bg-card p-8 text-center shadow-sm", children: [_jsx("div", { className: "mx-auto mb-4 flex size-12 items-center justify-center rounded-full bg-destructive/10", children: _jsx(ShieldX, { className: "size-6 text-destructive" }) }), _jsx("h1", { className: "text-2xl font-semibold", children: "Access Denied" }), _jsxs("p", { className: "mt-2 text-sm text-muted-foreground", children: ["This dashboard is for ", expectedRole, " only. If you believe this is an error, please contact support."] }), _jsx("button", { onClick: onNavigateLogin, className: "mt-6 inline-flex h-10 w-full items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs hover:bg-primary/90 transition-colors", children: "Back to Login" })] }) }));
15
+ return (_jsx("div", { className: "flex min-h-dvh items-center justify-center p-4", children: _jsxs("div", { className: "mx-auto w-full max-w-md rounded-xl border border-border bg-card p-8 text-center shadow-sm", children: [_jsx("div", { className: "mx-auto mb-4 flex size-12 items-center justify-center rounded-full bg-destructive/10", children: _jsx(ShieldX, { className: "size-6 text-destructive" }) }), _jsx("h1", { className: "text-2xl font-semibold", children: labels?.accessDeniedTitle ?? "Access Denied" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: labels?.accessDeniedDescription ?? (_jsxs(_Fragment, { children: ["This dashboard is for ", expectedRole, " only. If you believe this is an error, please contact support."] })) }), _jsx("button", { onClick: onNavigateLogin, className: "mt-6 inline-flex h-10 w-full items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow-xs hover:bg-primary/90 transition-colors", children: labels?.backToLogin ?? "Back to Login" })] }) }));
14
16
  }
15
17
  //# sourceMappingURL=unauthorized.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unauthorized.js","sourceRoot":"","sources":["../../src/react/unauthorized.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAUrE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,cAAc,GACQ;IACtB,MAAM,YAAY,GAChB,qBAAqB,IAAI,cAAc;QACrC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,qBAAqB,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC;IAEhB,sEAAsE;IACtE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,cAAK,SAAS,EAAC,gDAAgD,YAC7D,eAAK,SAAS,EAAC,2FAA2F,aACxG,cAAK,SAAS,EAAC,oFAAoF,YACjG,KAAC,cAAc,IAAC,SAAS,EAAC,uBAAuB,GAAG,GAChD,EACN,aAAI,SAAS,EAAC,wBAAwB,6BAAkB,EACxD,aAAG,SAAS,EAAC,oCAAoC,sCACzB,GAAG,EACzB,eAAM,SAAS,EAAC,6BAA6B,YAC1C,qBAAqB,GACjB,8BACkB,YAAY,SACnC,EACJ,aACE,IAAI,EAAE,YAAY,CAAC,GAAG,EACtB,SAAS,EAAC,uLAAuL,uBAE1L,YAAY,CAAC,KAAK,EACzB,KAAC,YAAY,IAAC,SAAS,EAAC,QAAQ,GAAG,IACjC,EACJ,iBACE,OAAO,EAAE,eAAe,EACxB,SAAS,EAAC,mEAAmE,iDAGtE,IACL,GACF,CACP,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,OAAO,CACL,cAAK,SAAS,EAAC,gDAAgD,YAC7D,eAAK,SAAS,EAAC,2FAA2F,aACxG,cAAK,SAAS,EAAC,sFAAsF,YACnG,KAAC,OAAO,IAAC,SAAS,EAAC,yBAAyB,GAAG,GAC3C,EACN,aAAI,SAAS,EAAC,wBAAwB,8BAAmB,EACzD,aAAG,SAAS,EAAC,oCAAoC,uCACxB,YAAY,uEAEjC,EACJ,iBACE,OAAO,EAAE,eAAe,EACxB,SAAS,EAAC,iLAAiL,8BAGpL,IACL,GACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"unauthorized.js","sourceRoot":"","sources":["../../src/react/unauthorized.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA6CrE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,MAAM,GACgB;IACtB,MAAM,YAAY,GAChB,qBAAqB,IAAI,cAAc;QACrC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,qBAAqB,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC;IAEhB,sEAAsE;IACtE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,cAAK,SAAS,EAAC,gDAAgD,YAC7D,eAAK,SAAS,EAAC,2FAA2F,aACxG,cAAK,SAAS,EAAC,oFAAoF,YACjG,KAAC,cAAc,IAAC,SAAS,EAAC,uBAAuB,GAAG,GAChD,EACN,aAAI,SAAS,EAAC,wBAAwB,YACnC,MAAM,EAAE,gBAAgB,IAAI,cAAc,GACxC,EACL,YAAG,SAAS,EAAC,oCAAoC,YAC9C,MAAM,EAAE,sBAAsB,IAAI,CACjC,uDACwB,GAAG,EACzB,eAAM,SAAS,EAAC,6BAA6B,YAC1C,qBAAqB,GACjB,8BACkB,YAAY,SACpC,CACJ,GACC,EACJ,aACE,IAAI,EAAE,YAAY,CAAC,GAAG,EACtB,SAAS,EAAC,uLAAuL,aAEhM,MAAM,EAAE,aAAa;gCACpB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC;gCAC1C,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,EAAE,EACjC,KAAC,YAAY,IAAC,SAAS,EAAC,QAAQ,GAAG,IACjC,EACJ,iBACE,OAAO,EAAE,eAAe,EACxB,SAAS,EAAC,mEAAmE,YAE5E,MAAM,EAAE,aAAa,IAAI,kCAAkC,GACrD,IACL,GACF,CACP,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,OAAO,CACL,cAAK,SAAS,EAAC,gDAAgD,YAC7D,eAAK,SAAS,EAAC,2FAA2F,aACxG,cAAK,SAAS,EAAC,sFAAsF,YACnG,KAAC,OAAO,IAAC,SAAS,EAAC,yBAAyB,GAAG,GAC3C,EACN,aAAI,SAAS,EAAC,wBAAwB,YACnC,MAAM,EAAE,iBAAiB,IAAI,eAAe,GAC1C,EACL,YAAG,SAAS,EAAC,oCAAoC,YAC9C,MAAM,EAAE,uBAAuB,IAAI,CAClC,wDACyB,YAAY,uEAElC,CACJ,GACC,EACJ,iBACE,OAAO,EAAE,eAAe,EACxB,SAAS,EAAC,iLAAiL,YAE1L,MAAM,EAAE,WAAW,IAAI,eAAe,GAChC,IACL,GACF,CACP,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cellarnode/auth",
3
- "version": "0.11.0",
3
+ "version": "0.13.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",