@delmaredigital/payload-better-auth 0.3.7 → 0.3.9

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 (119) hide show
  1. package/README.md +12 -1
  2. package/dist/adapter/collections.d.ts.map +1 -1
  3. package/dist/adapter/collections.js +126 -88
  4. package/dist/adapter/collections.js.map +1 -1
  5. package/dist/adapter/index.js +197 -150
  6. package/dist/adapter/index.js.map +1 -1
  7. package/dist/components/BeforeLogin.d.ts +1 -1
  8. package/dist/components/BeforeLogin.d.ts.map +1 -1
  9. package/dist/components/BeforeLogin.js +15 -7
  10. package/dist/components/BeforeLogin.js.map +1 -1
  11. package/dist/components/LoginView.d.ts +2 -2
  12. package/dist/components/LoginView.d.ts.map +1 -1
  13. package/dist/components/LoginView.js +660 -218
  14. package/dist/components/LoginView.js.map +1 -1
  15. package/dist/components/LoginViewWrapper.d.ts +1 -1
  16. package/dist/components/LoginViewWrapper.d.ts.map +1 -1
  17. package/dist/components/LoginViewWrapper.js +14 -4
  18. package/dist/components/LoginViewWrapper.js.map +1 -1
  19. package/dist/components/LogoutButton.d.ts +1 -1
  20. package/dist/components/LogoutButton.d.ts.map +1 -1
  21. package/dist/components/LogoutButton.js +19 -11
  22. package/dist/components/LogoutButton.js.map +1 -1
  23. package/dist/components/PasskeyRegisterButton.d.ts +2 -2
  24. package/dist/components/PasskeyRegisterButton.d.ts.map +1 -1
  25. package/dist/components/PasskeyRegisterButton.js +20 -16
  26. package/dist/components/PasskeyRegisterButton.js.map +1 -1
  27. package/dist/components/PasskeySignInButton.d.ts +2 -2
  28. package/dist/components/PasskeySignInButton.d.ts.map +1 -1
  29. package/dist/components/PasskeySignInButton.js +14 -12
  30. package/dist/components/PasskeySignInButton.js.map +1 -1
  31. package/dist/components/auth/ForgotPasswordView.d.ts +1 -1
  32. package/dist/components/auth/ForgotPasswordView.d.ts.map +1 -1
  33. package/dist/components/auth/ForgotPasswordView.js +133 -43
  34. package/dist/components/auth/ForgotPasswordView.js.map +1 -1
  35. package/dist/components/auth/ResetPasswordView.d.ts +1 -1
  36. package/dist/components/auth/ResetPasswordView.d.ts.map +1 -1
  37. package/dist/components/auth/ResetPasswordView.js +154 -50
  38. package/dist/components/auth/ResetPasswordView.js.map +1 -1
  39. package/dist/components/auth/index.js +2 -2
  40. package/dist/components/auth/index.js.map +1 -1
  41. package/dist/components/management/ApiKeysManagementClient.d.ts +2 -2
  42. package/dist/components/management/ApiKeysManagementClient.d.ts.map +1 -1
  43. package/dist/components/management/ApiKeysManagementClient.js +539 -222
  44. package/dist/components/management/ApiKeysManagementClient.js.map +1 -1
  45. package/dist/components/management/PasskeysManagementClient.d.ts +2 -2
  46. package/dist/components/management/PasskeysManagementClient.d.ts.map +1 -1
  47. package/dist/components/management/PasskeysManagementClient.js +215 -92
  48. package/dist/components/management/PasskeysManagementClient.js.map +1 -1
  49. package/dist/components/management/SecurityNavLinks.d.ts +1 -1
  50. package/dist/components/management/SecurityNavLinks.d.ts.map +1 -1
  51. package/dist/components/management/SecurityNavLinks.js +51 -24
  52. package/dist/components/management/SecurityNavLinks.js.map +1 -1
  53. package/dist/components/management/TwoFactorManagementClient.d.ts +2 -2
  54. package/dist/components/management/TwoFactorManagementClient.d.ts.map +1 -1
  55. package/dist/components/management/TwoFactorManagementClient.js +270 -111
  56. package/dist/components/management/TwoFactorManagementClient.js.map +1 -1
  57. package/dist/components/management/index.js +2 -2
  58. package/dist/components/management/index.js.map +1 -1
  59. package/dist/components/management/views/ApiKeysView.d.ts +1 -1
  60. package/dist/components/management/views/ApiKeysView.d.ts.map +1 -1
  61. package/dist/components/management/views/ApiKeysView.js +19 -4
  62. package/dist/components/management/views/ApiKeysView.js.map +1 -1
  63. package/dist/components/management/views/PasskeysView.d.ts +1 -1
  64. package/dist/components/management/views/PasskeysView.d.ts.map +1 -1
  65. package/dist/components/management/views/PasskeysView.js +16 -4
  66. package/dist/components/management/views/PasskeysView.js.map +1 -1
  67. package/dist/components/management/views/TwoFactorView.d.ts +1 -1
  68. package/dist/components/management/views/TwoFactorView.d.ts.map +1 -1
  69. package/dist/components/management/views/TwoFactorView.js +16 -4
  70. package/dist/components/management/views/TwoFactorView.js.map +1 -1
  71. package/dist/components/management/views/index.js +2 -2
  72. package/dist/components/management/views/index.js.map +1 -1
  73. package/dist/components/twoFactor/TwoFactorSetupView.d.ts +1 -1
  74. package/dist/components/twoFactor/TwoFactorSetupView.d.ts.map +1 -1
  75. package/dist/components/twoFactor/TwoFactorSetupView.js +240 -87
  76. package/dist/components/twoFactor/TwoFactorSetupView.js.map +1 -1
  77. package/dist/components/twoFactor/TwoFactorVerifyView.d.ts +1 -1
  78. package/dist/components/twoFactor/TwoFactorVerifyView.d.ts.map +1 -1
  79. package/dist/components/twoFactor/TwoFactorVerifyView.js +108 -45
  80. package/dist/components/twoFactor/TwoFactorVerifyView.js.map +1 -1
  81. package/dist/components/twoFactor/index.js +2 -2
  82. package/dist/components/twoFactor/index.js.map +1 -1
  83. package/dist/exports/client.js +9 -10
  84. package/dist/exports/client.js.map +1 -1
  85. package/dist/exports/components.js +2 -2
  86. package/dist/exports/components.js.map +1 -1
  87. package/dist/exports/management.js +3 -3
  88. package/dist/exports/management.js.map +1 -1
  89. package/dist/exports/rsc.js +2 -2
  90. package/dist/exports/rsc.js.map +1 -1
  91. package/dist/generated-types.js +4 -2
  92. package/dist/generated-types.js.map +1 -1
  93. package/dist/index.js +6 -6
  94. package/dist/index.js.map +1 -1
  95. package/dist/plugin/index.js +198 -162
  96. package/dist/plugin/index.js.map +1 -1
  97. package/dist/scripts/generate-types.js +66 -50
  98. package/dist/scripts/generate-types.js.map +1 -1
  99. package/dist/types/apiKey.js +7 -2
  100. package/dist/types/apiKey.js.map +1 -1
  101. package/dist/types/betterAuth.js +23 -2
  102. package/dist/types/betterAuth.js.map +1 -1
  103. package/dist/utils/access.js +78 -81
  104. package/dist/utils/access.js.map +1 -1
  105. package/dist/utils/apiKeyAccess.js +65 -72
  106. package/dist/utils/apiKeyAccess.js.map +1 -1
  107. package/dist/utils/betterAuthDefaults.js +8 -8
  108. package/dist/utils/betterAuthDefaults.js.map +1 -1
  109. package/dist/utils/detectAuthConfig.js +8 -11
  110. package/dist/utils/detectAuthConfig.js.map +1 -1
  111. package/dist/utils/detectEnabledPlugins.js +6 -7
  112. package/dist/utils/detectEnabledPlugins.js.map +1 -1
  113. package/dist/utils/firstUserAdmin.js +18 -20
  114. package/dist/utils/firstUserAdmin.js.map +1 -1
  115. package/dist/utils/generateScopes.js +40 -41
  116. package/dist/utils/generateScopes.js.map +1 -1
  117. package/dist/utils/session.js +8 -9
  118. package/dist/utils/session.js.map +1 -1
  119. package/package.json +27 -13
@@ -1 +1 @@
1
- {"version":3,"file":"LoginView.js","sourceRoot":"","sources":["../../src/components/LoginView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/components/LoginView.tsx"],"sourcesContent":["'use client'\n\nimport { useState, useEffect, type FormEvent } from 'react'\nimport { useRouter } from 'next/navigation.js'\nimport {\n createPayloadAuthClient,\n type PayloadAuthClient,\n} from '../exports/client.js'\nimport { hasAnyRole, hasAllRoles, normalizeRoles } from '../utils/access.js'\n\nexport type LoginViewProps = {\n /** Optional pre-configured auth client */\n authClient?: PayloadAuthClient\n /** Custom logo element */\n logo?: React.ReactNode\n /** Login page title. Default: 'Login' */\n title?: string\n /** Path to redirect after successful login. Default: '/admin' */\n afterLoginPath?: string\n /**\n * Required role(s) for admin access.\n * - string: Single role required (default: 'admin')\n * - string[]: Multiple roles (behavior depends on requireAllRoles)\n * - null/undefined: Disable role checking\n * For complex RBAC beyond these options, disable the login view and create your own.\n */\n requiredRole?: string | string[] | null\n /**\n * When requiredRole is an array, require ALL roles (true) or ANY role (false).\n * Default: false (any matching role grants access)\n */\n requireAllRoles?: boolean\n /**\n * Enable passkey (WebAuthn) sign-in option.\n * - true: Always show passkey button\n * - false: Never show passkey button\n * - 'auto' (default): Auto-detect if passkey plugin is available\n */\n enablePasskey?: boolean | 'auto'\n /**\n * Enable user registration (sign up) option.\n * - true: Always show \"Create account\" link\n * - false: Never show registration option\n * - 'auto' (default): Auto-detect if sign-up endpoint is available\n */\n enableSignUp?: boolean | 'auto'\n /**\n * Default role to assign to new users during registration.\n * Default: 'user'\n */\n defaultSignUpRole?: string\n /**\n * Enable forgot password option.\n * - true: Always show \"Forgot password?\" link\n * - false: Never show forgot password option\n * - 'auto' (default): Auto-detect if forget-password endpoint is available\n */\n enableForgotPassword?: boolean | 'auto'\n /**\n * Custom URL for password reset page. If provided, users will be redirected here\n * instead of showing the inline password reset form.\n * The reset token will be appended as ?token=xxx\n */\n resetPasswordUrl?: string\n}\n\n/**\n * Check if user has the required role(s)\n */\nfunction checkUserRoles(\n user: { role?: unknown } | null | undefined,\n requiredRole: string | string[] | null | undefined,\n requireAllRoles: boolean\n): boolean {\n // No role requirement = access granted\n if (!requiredRole) return true\n\n // No user = access denied\n if (!user) return false\n\n const roles = Array.isArray(requiredRole) ? requiredRole : [requiredRole]\n\n if (requireAllRoles) {\n return hasAllRoles(user, roles)\n }\n\n return hasAnyRole(user, roles)\n}\n\n/**\n * Full login page component matching Payload's admin theme.\n * Registered as a custom admin view at /admin/login.\n */\ntype ViewMode = 'login' | 'register' | 'forgotPassword' | 'resetSent' | 'twoFactor'\n\nexport function LoginView({\n authClient: providedClient,\n logo,\n title = 'Login',\n afterLoginPath = '/admin',\n requiredRole = 'admin',\n requireAllRoles = false,\n enablePasskey = 'auto',\n enableSignUp = 'auto',\n defaultSignUpRole = 'user',\n enableForgotPassword = 'auto',\n resetPasswordUrl,\n}: LoginViewProps) {\n const router = useRouter()\n\n // View state\n const [viewMode, setViewMode] = useState<ViewMode>('login')\n\n // Form fields\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [name, setName] = useState('')\n const [confirmPassword, setConfirmPassword] = useState('')\n\n // UI state\n const [error, setError] = useState<string | null>(null)\n const [successMessage, setSuccessMessage] = useState<string | null>(null)\n const [loading, setLoading] = useState(false)\n const [passkeyLoading, setPasskeyLoading] = useState(false)\n const [checkingSession, setCheckingSession] = useState(true)\n const [accessDenied, setAccessDenied] = useState(false)\n\n // Feature availability\n const [passkeyAvailable, setPasskeyAvailable] = useState(enablePasskey === true)\n const [signUpAvailable, setSignUpAvailable] = useState(enableSignUp === true)\n const [forgotPasswordAvailable, setForgotPasswordAvailable] = useState(enableForgotPassword === true)\n\n // Two-factor authentication state\n const [totpCode, setTotpCode] = useState('')\n const [totpLoading, setTotpLoading] = useState(false)\n\n const getClient = () => providedClient ?? createPayloadAuthClient()\n\n // Check if user is already logged in on mount\n useEffect(() => {\n async function checkSession() {\n try {\n const client = getClient()\n const result = await client.getSession()\n\n if (result.data?.user) {\n const user = result.data.user as { role?: unknown }\n // User is logged in, check role\n if (checkUserRoles(user, requiredRole, requireAllRoles)) {\n router.push(afterLoginPath)\n return\n } else {\n setAccessDenied(true)\n }\n }\n } catch {\n // No session, show login form\n }\n setCheckingSession(false)\n }\n checkSession()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [afterLoginPath, requiredRole, requireAllRoles, router])\n\n // Auto-detect passkey availability if set to 'auto'\n useEffect(() => {\n if (enablePasskey === 'auto') {\n // Check if passkey endpoint exists (GET request)\n // Better Auth passkey routes are at /passkey/* (singular)\n fetch('/api/auth/passkey/generate-authenticate-options', {\n method: 'GET',\n credentials: 'include',\n })\n .then((res) => {\n // If we get a response (even 400/401 for not authenticated), passkey is available\n // 404 means passkey plugin is not installed\n setPasskeyAvailable(res.status !== 404)\n })\n .catch(() => {\n setPasskeyAvailable(false)\n })\n } else {\n setPasskeyAvailable(enablePasskey === true)\n }\n }, [enablePasskey])\n\n // Auto-detect sign up availability if set to 'auto'\n useEffect(() => {\n if (enableSignUp === 'auto') {\n // Check if sign-up endpoint exists\n fetch('/api/auth/sign-up/email', {\n method: 'OPTIONS',\n credentials: 'include',\n })\n .then((res) => {\n // 404 means sign-up is not available\n setSignUpAvailable(res.status !== 404)\n })\n .catch(() => {\n // If OPTIONS fails, try a HEAD or just assume it's available since it's a core endpoint\n setSignUpAvailable(true)\n })\n } else {\n setSignUpAvailable(enableSignUp === true)\n }\n }, [enableSignUp])\n\n // Auto-detect forgot password availability if set to 'auto'\n useEffect(() => {\n if (enableForgotPassword === 'auto') {\n // Check if request-password-reset endpoint exists\n fetch('/api/auth/request-password-reset', {\n method: 'OPTIONS',\n credentials: 'include',\n })\n .then((res) => {\n // 404 means request-password-reset is not available\n setForgotPasswordAvailable(res.status !== 404)\n })\n .catch(() => {\n // If OPTIONS fails, assume it's available since it's a core endpoint\n setForgotPasswordAvailable(true)\n })\n } else {\n setForgotPasswordAvailable(enableForgotPassword === true)\n }\n }, [enableForgotPassword])\n\n async function handleSubmit(e: FormEvent) {\n e.preventDefault()\n setLoading(true)\n setError(null)\n setSuccessMessage(null)\n setAccessDenied(false)\n\n try {\n const client = getClient()\n const result = await client.signIn.email({\n email,\n password,\n })\n\n // Check if 2FA is required (use 'in' operator for proper TypeScript inference)\n if (result.data && 'twoFactorRedirect' in result.data && result.data.twoFactorRedirect) {\n setViewMode('twoFactor')\n setLoading(false)\n return\n }\n\n if (result.error) {\n setError(result.error.message ?? 'Invalid credentials')\n setLoading(false)\n return\n }\n\n if (result.data?.user) {\n const user = result.data.user as { role?: unknown }\n // Check role if required\n if (!checkUserRoles(user, requiredRole, requireAllRoles)) {\n setAccessDenied(true)\n setLoading(false)\n return\n }\n\n router.push(afterLoginPath)\n router.refresh()\n }\n } catch {\n setError('An error occurred. Please try again.')\n setLoading(false)\n }\n }\n\n async function handleSignUp(e: FormEvent) {\n e.preventDefault()\n setLoading(true)\n setError(null)\n setSuccessMessage(null)\n\n // Validate passwords match\n if (password !== confirmPassword) {\n setError('Passwords do not match')\n setLoading(false)\n return\n }\n\n // Validate password strength (basic)\n if (password.length < 8) {\n setError('Password must be at least 8 characters')\n setLoading(false)\n return\n }\n\n try {\n const client = getClient()\n const result = await client.signUp.email({\n email,\n password,\n name,\n role: defaultSignUpRole,\n } as Parameters<typeof client.signUp.email>[0])\n\n if (result.error) {\n setError(result.error.message ?? 'Registration failed')\n setLoading(false)\n return\n }\n\n // Registration successful - either auto-signed in or need to verify email\n if (result.data?.user) {\n // Re-fetch session to get updated user data (role may have been changed by hooks)\n // This handles cases like firstUserAdmin where the role is set after creation\n const sessionResult = await client.getSession()\n\n if (sessionResult.data?.user) {\n const user = sessionResult.data.user as { role?: unknown }\n // Check role if required\n if (!checkUserRoles(user, requiredRole, requireAllRoles)) {\n setAccessDenied(true)\n setLoading(false)\n return\n }\n }\n\n router.push(afterLoginPath)\n router.refresh()\n } else {\n // Likely requires email verification - show success and switch to login\n setSuccessMessage('Account created! Please check your email to verify your account.')\n setViewMode('login')\n setPassword('')\n setConfirmPassword('')\n setLoading(false)\n }\n } catch {\n setError('An error occurred. Please try again.')\n setLoading(false)\n }\n }\n\n async function handleForgotPassword(e: FormEvent) {\n e.preventDefault()\n setLoading(true)\n setError(null)\n setSuccessMessage(null)\n\n try {\n const client = getClient()\n const result = await client.requestPasswordReset({\n email,\n redirectTo: resetPasswordUrl ?? `${window.location.origin}/admin/reset-password`,\n })\n\n if (result.error) {\n setError(result.error.message ?? 'Failed to send reset email')\n setLoading(false)\n return\n }\n\n // Success - show confirmation\n setViewMode('resetSent')\n setLoading(false)\n } catch {\n setError('An error occurred. Please try again.')\n setLoading(false)\n }\n }\n\n async function handleTotpVerify(e: FormEvent) {\n e.preventDefault()\n setTotpLoading(true)\n setError(null)\n\n try {\n const client = getClient()\n const result = await client.twoFactor.verifyTotp({ code: totpCode })\n\n if (result.error) {\n setError(result.error.message ?? 'Invalid verification code')\n setTotpLoading(false)\n return\n }\n\n // Verify-totp may not return all user fields (like custom 'role')\n // Fetch the session to get complete user data for role check\n if (requiredRole) {\n const sessionResult = await client.getSession()\n if (sessionResult.data?.user) {\n const user = sessionResult.data.user as { role?: unknown }\n if (!checkUserRoles(user, requiredRole, requireAllRoles)) {\n setAccessDenied(true)\n setTotpLoading(false)\n return\n }\n }\n }\n\n router.push(afterLoginPath)\n router.refresh()\n } catch {\n setError('An error occurred. Please try again.')\n setTotpLoading(false)\n }\n }\n\n function switchView(newView: ViewMode) {\n setViewMode(newView)\n setError(null)\n setSuccessMessage(null)\n // Reset form fields based on context\n if (newView === 'login') {\n setTotpCode('')\n setConfirmPassword('')\n } else if (newView === 'register') {\n setPassword('')\n setConfirmPassword('')\n } else if (newView === 'forgotPassword') {\n setPassword('')\n }\n }\n\n function handleBackToLogin() {\n switchView('login')\n }\n\n async function handlePasskeySignIn() {\n if (!passkeyAvailable) return\n\n setPasskeyLoading(true)\n setError(null)\n setAccessDenied(false)\n\n try {\n const client = getClient()\n const result = await client.signIn.passkey()\n\n if (result.error) {\n setError(result.error.message ?? 'Passkey authentication failed')\n setPasskeyLoading(false)\n return\n }\n\n // Passkey sign-in succeeded - fetch session to get full user data (including role)\n // This is more reliable than checking result.data.user which may vary by SDK version\n const sessionResult = await client.getSession()\n\n if (sessionResult.data?.user) {\n const user = sessionResult.data.user as { role?: unknown }\n // Check role if required\n if (!checkUserRoles(user, requiredRole, requireAllRoles)) {\n setAccessDenied(true)\n setPasskeyLoading(false)\n return\n }\n\n router.push(afterLoginPath)\n router.refresh()\n } else {\n // Session fetch failed - shouldn't happen after successful passkey auth\n setError('Authentication succeeded but session could not be verified')\n setPasskeyLoading(false)\n }\n } catch (err) {\n if (err instanceof Error && err.name === 'NotAllowedError') {\n setError('Passkey authentication was cancelled or not allowed')\n } else {\n setError(err instanceof Error ? err.message : 'Passkey authentication failed')\n }\n setPasskeyLoading(false)\n }\n }\n\n async function handleSignOut() {\n const client = getClient()\n await client.signOut()\n setAccessDenied(false)\n router.refresh()\n }\n\n // Loading state while checking session\n if (checkingSession) {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n }}\n >\n <div style={{ color: 'var(--theme-text)', opacity: 0.7 }}>\n Loading...\n </div>\n </div>\n )\n }\n\n // Access denied state\n if (accessDenied) {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n padding: 'var(--base)',\n }}\n >\n <div\n style={{\n background: 'var(--theme-elevation-50)',\n padding: 'calc(var(--base) * 2)',\n borderRadius: 'var(--style-radius-m)',\n boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n textAlign: 'center',\n }}\n >\n <h1\n style={{\n color: 'var(--theme-error-500)',\n fontSize: 'var(--font-size-h3)',\n fontWeight: 600,\n margin: '0 0 var(--base) 0',\n }}\n >\n Access Denied\n </h1>\n <p\n style={{\n color: 'var(--theme-text)',\n opacity: 0.8,\n marginBottom: 'calc(var(--base) * 1.5)',\n fontSize: 'var(--font-size-small)',\n }}\n >\n You don't have permission to access the admin panel.\n Please contact an administrator if you believe this is an error.\n </p>\n <button\n onClick={handleSignOut}\n style={{\n padding: 'calc(var(--base) * 0.75) calc(var(--base) * 1.5)',\n background: 'var(--theme-elevation-150)',\n border: 'none',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n cursor: 'pointer',\n }}\n >\n Sign out and try again\n </button>\n </div>\n </div>\n )\n }\n\n // Two-factor verification view\n if (viewMode === 'twoFactor') {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n padding: 'var(--base)',\n }}\n >\n <div\n style={{\n background: 'var(--theme-elevation-50)',\n padding: 'calc(var(--base) * 2)',\n borderRadius: 'var(--style-radius-m)',\n boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n }}\n >\n {logo && (\n <div\n style={{\n textAlign: 'center',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n {logo}\n </div>\n )}\n\n <h1\n style={{\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-h3)',\n fontWeight: 600,\n margin: '0 0 calc(var(--base) * 0.5) 0',\n textAlign: 'center',\n }}\n >\n Two-Factor Authentication\n </h1>\n\n <p\n style={{\n color: 'var(--theme-text)',\n opacity: 0.7,\n fontSize: 'var(--font-size-small)',\n textAlign: 'center',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n Enter the 6-digit code from your authenticator app\n </p>\n\n <form onSubmit={handleTotpVerify}>\n <div style={{ marginBottom: 'calc(var(--base) * 1.5)' }}>\n <label\n htmlFor=\"totp-code\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Verification Code\n </label>\n <input\n id=\"totp-code\"\n type=\"text\"\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n autoComplete=\"one-time-code\"\n value={totpCode}\n onChange={(e) => setTotpCode(e.target.value.replace(/\\D/g, '').slice(0, 6))}\n required\n placeholder=\"000000\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-h4)',\n fontFamily: 'monospace',\n textAlign: 'center',\n letterSpacing: '0.5em',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n {error && (\n <div\n style={{\n color: 'var(--theme-error-500)',\n marginBottom: 'var(--base)',\n fontSize: 'var(--font-size-small)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'var(--theme-error-50)',\n borderRadius: 'var(--style-radius-s)',\n border: '1px solid var(--theme-error-200)',\n }}\n >\n {error}\n </div>\n )}\n\n <button\n type=\"submit\"\n disabled={totpLoading || totpCode.length !== 6}\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-elevation-800)',\n border: 'none',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-elevation-50)',\n fontSize: 'var(--font-size-base)',\n fontWeight: 500,\n cursor: totpLoading || totpCode.length !== 6 ? 'not-allowed' : 'pointer',\n opacity: totpLoading || totpCode.length !== 6 ? 0.7 : 1,\n transition: 'opacity 150ms ease',\n }}\n >\n {totpLoading ? 'Verifying...' : 'Verify'}\n </button>\n </form>\n\n <button\n type=\"button\"\n onClick={handleBackToLogin}\n style={{\n width: '100%',\n marginTop: 'var(--base)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'transparent',\n border: 'none',\n color: 'var(--theme-text)',\n opacity: 0.7,\n fontSize: 'var(--font-size-small)',\n cursor: 'pointer',\n }}\n >\n ← Back to login\n </button>\n </div>\n </div>\n )\n }\n\n // Registration view\n if (viewMode === 'register') {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n padding: 'var(--base)',\n }}\n >\n <div\n style={{\n background: 'var(--theme-elevation-50)',\n padding: 'calc(var(--base) * 2)',\n borderRadius: 'var(--style-radius-m)',\n boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n }}\n >\n {logo && (\n <div\n style={{\n textAlign: 'center',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n {logo}\n </div>\n )}\n\n <h1\n style={{\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-h3)',\n fontWeight: 600,\n margin: '0 0 calc(var(--base) * 1.5) 0',\n textAlign: 'center',\n }}\n >\n Create Account\n </h1>\n\n <form onSubmit={handleSignUp}>\n <div style={{ marginBottom: 'var(--base)' }}>\n <label\n htmlFor=\"name\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Name\n </label>\n <input\n id=\"name\"\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n required\n autoComplete=\"name\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n <div style={{ marginBottom: 'var(--base)' }}>\n <label\n htmlFor=\"register-email\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Email\n </label>\n <input\n id=\"register-email\"\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n autoComplete=\"email\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n <div style={{ marginBottom: 'var(--base)' }}>\n <label\n htmlFor=\"register-password\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Password\n </label>\n <input\n id=\"register-password\"\n type=\"password\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n autoComplete=\"new-password\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n <div style={{ marginBottom: 'calc(var(--base) * 1.5)' }}>\n <label\n htmlFor=\"confirm-password\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Confirm Password\n </label>\n <input\n id=\"confirm-password\"\n type=\"password\"\n value={confirmPassword}\n onChange={(e) => setConfirmPassword(e.target.value)}\n required\n autoComplete=\"new-password\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n {error && (\n <div\n style={{\n color: 'var(--theme-error-500)',\n marginBottom: 'var(--base)',\n fontSize: 'var(--font-size-small)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'var(--theme-error-50)',\n borderRadius: 'var(--style-radius-s)',\n border: '1px solid var(--theme-error-200)',\n }}\n >\n {error}\n </div>\n )}\n\n <button\n type=\"submit\"\n disabled={loading}\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-elevation-800)',\n border: 'none',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-elevation-50)',\n fontSize: 'var(--font-size-base)',\n fontWeight: 500,\n cursor: loading ? 'not-allowed' : 'pointer',\n opacity: loading ? 0.7 : 1,\n transition: 'opacity 150ms ease',\n }}\n >\n {loading ? 'Creating account...' : 'Create Account'}\n </button>\n </form>\n\n <div\n style={{\n marginTop: 'calc(var(--base) * 1.5)',\n textAlign: 'center',\n fontSize: 'var(--font-size-small)',\n color: 'var(--theme-text)',\n opacity: 0.8,\n }}\n >\n Already have an account?{' '}\n <button\n type=\"button\"\n onClick={handleBackToLogin}\n style={{\n background: 'none',\n border: 'none',\n color: 'var(--theme-elevation-800)',\n cursor: 'pointer',\n fontSize: 'inherit',\n textDecoration: 'underline',\n padding: 0,\n }}\n >\n Sign in\n </button>\n </div>\n </div>\n </div>\n )\n }\n\n // Forgot password view\n if (viewMode === 'forgotPassword') {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n padding: 'var(--base)',\n }}\n >\n <div\n style={{\n background: 'var(--theme-elevation-50)',\n padding: 'calc(var(--base) * 2)',\n borderRadius: 'var(--style-radius-m)',\n boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n }}\n >\n {logo && (\n <div\n style={{\n textAlign: 'center',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n {logo}\n </div>\n )}\n\n <h1\n style={{\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-h3)',\n fontWeight: 600,\n margin: '0 0 calc(var(--base) * 0.5) 0',\n textAlign: 'center',\n }}\n >\n Reset Password\n </h1>\n\n <p\n style={{\n color: 'var(--theme-text)',\n opacity: 0.7,\n fontSize: 'var(--font-size-small)',\n textAlign: 'center',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n Enter your email and we&apos;ll send you a link to reset your password\n </p>\n\n <form onSubmit={handleForgotPassword}>\n <div style={{ marginBottom: 'calc(var(--base) * 1.5)' }}>\n <label\n htmlFor=\"forgot-email\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Email\n </label>\n <input\n id=\"forgot-email\"\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n autoComplete=\"email\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n {error && (\n <div\n style={{\n color: 'var(--theme-error-500)',\n marginBottom: 'var(--base)',\n fontSize: 'var(--font-size-small)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'var(--theme-error-50)',\n borderRadius: 'var(--style-radius-s)',\n border: '1px solid var(--theme-error-200)',\n }}\n >\n {error}\n </div>\n )}\n\n <button\n type=\"submit\"\n disabled={loading}\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-elevation-800)',\n border: 'none',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-elevation-50)',\n fontSize: 'var(--font-size-base)',\n fontWeight: 500,\n cursor: loading ? 'not-allowed' : 'pointer',\n opacity: loading ? 0.7 : 1,\n transition: 'opacity 150ms ease',\n }}\n >\n {loading ? 'Sending...' : 'Send Reset Link'}\n </button>\n </form>\n\n <button\n type=\"button\"\n onClick={handleBackToLogin}\n style={{\n width: '100%',\n marginTop: 'var(--base)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'transparent',\n border: 'none',\n color: 'var(--theme-text)',\n opacity: 0.7,\n fontSize: 'var(--font-size-small)',\n cursor: 'pointer',\n }}\n >\n ← Back to login\n </button>\n </div>\n </div>\n )\n }\n\n // Reset link sent confirmation view\n if (viewMode === 'resetSent') {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n padding: 'var(--base)',\n }}\n >\n <div\n style={{\n background: 'var(--theme-elevation-50)',\n padding: 'calc(var(--base) * 2)',\n borderRadius: 'var(--style-radius-m)',\n boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n textAlign: 'center',\n }}\n >\n {logo && (\n <div\n style={{\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n {logo}\n </div>\n )}\n\n <div\n style={{\n width: '64px',\n height: '64px',\n background: 'var(--theme-success-100)',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: '0 auto calc(var(--base) * 1.5)',\n fontSize: '28px',\n }}\n >\n ✓\n </div>\n\n <h1\n style={{\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-h3)',\n fontWeight: 600,\n margin: '0 0 calc(var(--base) * 0.5) 0',\n }}\n >\n Check Your Email\n </h1>\n\n <p\n style={{\n color: 'var(--theme-text)',\n opacity: 0.7,\n fontSize: 'var(--font-size-small)',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n We&apos;ve sent a password reset link to <strong>{email}</strong>\n </p>\n\n <p\n style={{\n color: 'var(--theme-text)',\n opacity: 0.6,\n fontSize: 'var(--font-size-small)',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n Didn&apos;t receive the email? Check your spam folder or try again.\n </p>\n\n <button\n type=\"button\"\n onClick={handleBackToLogin}\n style={{\n padding: 'calc(var(--base) * 0.75) calc(var(--base) * 1.5)',\n background: 'var(--theme-elevation-150)',\n border: 'none',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n cursor: 'pointer',\n }}\n >\n Back to login\n </button>\n </div>\n </div>\n )\n }\n\n // Main login view\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'var(--theme-bg)',\n padding: 'var(--base)',\n }}\n >\n <div\n style={{\n background: 'var(--theme-elevation-50)',\n padding: 'calc(var(--base) * 2)',\n borderRadius: 'var(--style-radius-m)',\n boxShadow: '0 2px 20px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n }}\n >\n {logo && (\n <div\n style={{\n textAlign: 'center',\n marginBottom: 'calc(var(--base) * 1.5)',\n }}\n >\n {logo}\n </div>\n )}\n\n <h1\n style={{\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-h3)',\n fontWeight: 600,\n textAlign: 'center',\n margin: '0 0 calc(var(--base) * 1.5) 0',\n }}\n >\n {title}\n </h1>\n\n {successMessage && (\n <div\n style={{\n color: 'var(--theme-success-500)',\n marginBottom: 'var(--base)',\n fontSize: 'var(--font-size-small)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'var(--theme-success-50)',\n borderRadius: 'var(--style-radius-s)',\n border: '1px solid var(--theme-success-200)',\n }}\n >\n {successMessage}\n </div>\n )}\n\n <form onSubmit={handleSubmit}>\n <div style={{ marginBottom: 'var(--base)' }}>\n <label\n htmlFor=\"email\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Email\n </label>\n <input\n id=\"email\"\n type=\"email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n required\n autoComplete=\"email\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n <div style={{ marginBottom: 'var(--base)' }}>\n <label\n htmlFor=\"password\"\n style={{\n display: 'block',\n color: 'var(--theme-text)',\n marginBottom: 'calc(var(--base) * 0.5)',\n fontSize: 'var(--font-size-small)',\n fontWeight: 500,\n }}\n >\n Password\n </label>\n <input\n id=\"password\"\n type=\"password\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n required\n autoComplete=\"current-password\"\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-input-bg)',\n border: '1px solid var(--theme-elevation-150)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n outline: 'none',\n boxSizing: 'border-box',\n }}\n />\n </div>\n\n {forgotPasswordAvailable && (\n <div\n style={{\n marginBottom: 'calc(var(--base) * 1.5)',\n textAlign: 'right',\n }}\n >\n <button\n type=\"button\"\n onClick={() => switchView('forgotPassword')}\n style={{\n background: 'none',\n border: 'none',\n color: 'var(--theme-text)',\n opacity: 0.7,\n cursor: 'pointer',\n fontSize: 'var(--font-size-small)',\n padding: 0,\n textDecoration: 'underline',\n }}\n >\n Forgot password?\n </button>\n </div>\n )}\n\n {error && (\n <div\n style={{\n color: 'var(--theme-error-500)',\n marginBottom: 'var(--base)',\n fontSize: 'var(--font-size-small)',\n padding: 'calc(var(--base) * 0.5)',\n background: 'var(--theme-error-50)',\n borderRadius: 'var(--style-radius-s)',\n border: '1px solid var(--theme-error-200)',\n }}\n >\n {error}\n </div>\n )}\n\n <button\n type=\"submit\"\n disabled={loading || passkeyLoading}\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'var(--theme-elevation-800)',\n border: 'none',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-elevation-50)',\n fontSize: 'var(--font-size-base)',\n fontWeight: 500,\n cursor: loading || passkeyLoading ? 'not-allowed' : 'pointer',\n opacity: loading || passkeyLoading ? 0.7 : 1,\n transition: 'opacity 150ms ease',\n }}\n >\n {loading ? 'Signing in...' : 'Sign In'}\n </button>\n </form>\n\n {passkeyAvailable && (\n <>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n margin: 'calc(var(--base) * 1.5) 0',\n gap: 'calc(var(--base) * 1)',\n }}\n >\n <div\n style={{\n flex: 1,\n height: '1px',\n background: 'var(--theme-elevation-150)',\n }}\n />\n <span\n style={{\n color: 'var(--theme-text)',\n opacity: 0.6,\n fontSize: 'var(--font-size-small)',\n }}\n >\n or\n </span>\n <div\n style={{\n flex: 1,\n height: '1px',\n background: 'var(--theme-elevation-150)',\n }}\n />\n </div>\n\n <button\n type=\"button\"\n onClick={handlePasskeySignIn}\n disabled={loading || passkeyLoading}\n style={{\n width: '100%',\n padding: 'calc(var(--base) * 0.75)',\n background: 'transparent',\n border: '1px solid var(--theme-elevation-300)',\n borderRadius: 'var(--style-radius-s)',\n color: 'var(--theme-text)',\n fontSize: 'var(--font-size-base)',\n fontWeight: 500,\n cursor: loading || passkeyLoading ? 'not-allowed' : 'pointer',\n opacity: loading || passkeyLoading ? 0.7 : 1,\n transition: 'opacity 150ms ease',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 'calc(var(--base) * 0.5)',\n }}\n >\n <span style={{ fontSize: '18px' }}>🔐</span>\n {passkeyLoading ? 'Authenticating...' : 'Sign in with Passkey'}\n </button>\n </>\n )}\n\n {signUpAvailable && (\n <div\n style={{\n marginTop: 'calc(var(--base) * 1.5)',\n textAlign: 'center',\n fontSize: 'var(--font-size-small)',\n color: 'var(--theme-text)',\n opacity: 0.8,\n }}\n >\n Don&apos;t have an account?{' '}\n <button\n type=\"button\"\n onClick={() => switchView('register')}\n style={{\n background: 'none',\n border: 'none',\n color: 'var(--theme-elevation-800)',\n cursor: 'pointer',\n fontSize: 'inherit',\n textDecoration: 'underline',\n padding: 0,\n }}\n >\n Create account\n </button>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport default LoginView\n"],"names":["useState","useEffect","useRouter","createPayloadAuthClient","hasAnyRole","hasAllRoles","checkUserRoles","user","requiredRole","requireAllRoles","roles","Array","isArray","LoginView","authClient","providedClient","logo","title","afterLoginPath","enablePasskey","enableSignUp","defaultSignUpRole","enableForgotPassword","resetPasswordUrl","router","viewMode","setViewMode","email","setEmail","password","setPassword","name","setName","confirmPassword","setConfirmPassword","error","setError","successMessage","setSuccessMessage","loading","setLoading","passkeyLoading","setPasskeyLoading","checkingSession","setCheckingSession","accessDenied","setAccessDenied","passkeyAvailable","setPasskeyAvailable","signUpAvailable","setSignUpAvailable","forgotPasswordAvailable","setForgotPasswordAvailable","totpCode","setTotpCode","totpLoading","setTotpLoading","getClient","checkSession","client","result","getSession","data","push","fetch","method","credentials","then","res","status","catch","handleSubmit","e","preventDefault","signIn","twoFactorRedirect","message","refresh","handleSignUp","length","signUp","role","sessionResult","handleForgotPassword","requestPasswordReset","redirectTo","window","location","origin","handleTotpVerify","twoFactor","verifyTotp","code","switchView","newView","handleBackToLogin","handlePasskeySignIn","passkey","err","Error","handleSignOut","signOut","div","style","minHeight","display","alignItems","justifyContent","background","color","opacity","padding","borderRadius","boxShadow","width","maxWidth","textAlign","h1","fontSize","fontWeight","margin","p","marginBottom","button","onClick","border","cursor","form","onSubmit","label","htmlFor","input","id","type","inputMode","pattern","autoComplete","value","onChange","target","replace","slice","required","placeholder","fontFamily","letterSpacing","outline","boxSizing","disabled","transition","marginTop","textDecoration","height","strong","gap","flex","span"],"mappings":"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"}
@@ -5,6 +5,6 @@ type LoginViewWrapperProps = AdminViewProps;
5
5
  * Reads login configuration from payload.config.custom.betterAuth.login
6
6
  * and passes it as props to the client LoginView component.
7
7
  */
8
- export declare function LoginViewWrapper({ initPageResult }: LoginViewWrapperProps): Promise<import("react/jsx-runtime").JSX.Element>;
8
+ export declare function LoginViewWrapper({ initPageResult }: LoginViewWrapperProps): Promise<import("react").JSX.Element>;
9
9
  export default LoginViewWrapper;
10
10
  //# sourceMappingURL=LoginViewWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginViewWrapper.d.ts","sourceRoot":"","sources":["../../src/components/LoginViewWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAK7C,KAAK,qBAAqB,GAAG,cAAc,CAAA;AAE3C;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,cAAc,EAAE,EAAE,qBAAqB,oDAoB/E;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"LoginViewWrapper.d.ts","sourceRoot":"","sources":["../../src/components/LoginViewWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAK7C,KAAK,qBAAqB,GAAG,cAAc,CAAA;AAE3C;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,cAAc,EAAE,EAAE,qBAAqB,wCAoB/E;AAED,eAAe,gBAAgB,CAAA"}
@@ -4,13 +4,23 @@ import { LoginView } from './LoginView.js';
4
4
  * Server component wrapper for LoginView.
5
5
  * Reads login configuration from payload.config.custom.betterAuth.login
6
6
  * and passes it as props to the client LoginView component.
7
- */
8
- export async function LoginViewWrapper({ initPageResult }) {
7
+ */ export async function LoginViewWrapper({ initPageResult }) {
9
8
  const { req } = initPageResult;
10
9
  const { payload } = req;
11
10
  // Read login config from payload.config.custom.betterAuth.login
12
- const loginConfig = (payload.config.custom?.betterAuth?.login ?? {});
13
- return (_jsx(LoginView, { afterLoginPath: loginConfig.afterLoginPath, requiredRole: loginConfig.requiredRole, requireAllRoles: loginConfig.requireAllRoles, enablePasskey: loginConfig.enablePasskey, enableSignUp: loginConfig.enableSignUp, defaultSignUpRole: loginConfig.defaultSignUpRole, enableForgotPassword: loginConfig.enableForgotPassword, resetPasswordUrl: loginConfig.resetPasswordUrl, title: loginConfig.title }));
11
+ const loginConfig = payload.config.custom?.betterAuth?.login ?? {};
12
+ return /*#__PURE__*/ _jsx(LoginView, {
13
+ afterLoginPath: loginConfig.afterLoginPath,
14
+ requiredRole: loginConfig.requiredRole,
15
+ requireAllRoles: loginConfig.requireAllRoles,
16
+ enablePasskey: loginConfig.enablePasskey,
17
+ enableSignUp: loginConfig.enableSignUp,
18
+ defaultSignUpRole: loginConfig.defaultSignUpRole,
19
+ enableForgotPassword: loginConfig.enableForgotPassword,
20
+ resetPasswordUrl: loginConfig.resetPasswordUrl,
21
+ title: loginConfig.title
22
+ });
14
23
  }
15
24
  export default LoginViewWrapper;
25
+
16
26
  //# sourceMappingURL=LoginViewWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginViewWrapper.js","sourceRoot":"","sources":["../../src/components/LoginViewWrapper.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAM/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAE,cAAc,EAAyB;IAC9E,MAAM,EAAE,GAAG,EAAE,GAAG,cAAc,CAAA;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IAEvB,gEAAgE;IAChE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAgB,CAAA;IAEnF,OAAO,CACL,KAAC,SAAS,IACR,cAAc,EAAE,WAAW,CAAC,cAAc,EAC1C,YAAY,EAAE,WAAW,CAAC,YAAY,EACtC,eAAe,EAAE,WAAW,CAAC,eAAe,EAC5C,aAAa,EAAE,WAAW,CAAC,aAAa,EACxC,YAAY,EAAE,WAAW,CAAC,YAAY,EACtC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,EAChD,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,EACtD,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAC9C,KAAK,EAAE,WAAW,CAAC,KAAK,GACxB,CACH,CAAA;AACH,CAAC;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"sources":["../../src/components/LoginViewWrapper.tsx"],"sourcesContent":["import type { AdminViewProps } from 'payload'\nimport { LoginView, type LoginViewProps } from './LoginView.js'\n\ntype LoginConfig = Omit<LoginViewProps, 'authClient' | 'logo'>\n\ntype LoginViewWrapperProps = AdminViewProps\n\n/**\n * Server component wrapper for LoginView.\n * Reads login configuration from payload.config.custom.betterAuth.login\n * and passes it as props to the client LoginView component.\n */\nexport async function LoginViewWrapper({ initPageResult }: LoginViewWrapperProps) {\n const { req } = initPageResult\n const { payload } = req\n\n // Read login config from payload.config.custom.betterAuth.login\n const loginConfig = (payload.config.custom?.betterAuth?.login ?? {}) as LoginConfig\n\n return (\n <LoginView\n afterLoginPath={loginConfig.afterLoginPath}\n requiredRole={loginConfig.requiredRole}\n requireAllRoles={loginConfig.requireAllRoles}\n enablePasskey={loginConfig.enablePasskey}\n enableSignUp={loginConfig.enableSignUp}\n defaultSignUpRole={loginConfig.defaultSignUpRole}\n enableForgotPassword={loginConfig.enableForgotPassword}\n resetPasswordUrl={loginConfig.resetPasswordUrl}\n title={loginConfig.title}\n />\n )\n}\n\nexport default LoginViewWrapper\n"],"names":["LoginView","LoginViewWrapper","initPageResult","req","payload","loginConfig","config","custom","betterAuth","login","afterLoginPath","requiredRole","requireAllRoles","enablePasskey","enableSignUp","defaultSignUpRole","enableForgotPassword","resetPasswordUrl","title"],"mappings":";AACA,SAASA,SAAS,QAA6B,iBAAgB;AAM/D;;;;CAIC,GACD,OAAO,eAAeC,iBAAiB,EAAEC,cAAc,EAAyB;IAC9E,MAAM,EAAEC,GAAG,EAAE,GAAGD;IAChB,MAAM,EAAEE,OAAO,EAAE,GAAGD;IAEpB,gEAAgE;IAChE,MAAME,cAAeD,QAAQE,MAAM,CAACC,MAAM,EAAEC,YAAYC,SAAS,CAAC;IAElE,qBACE,KAACT;QACCU,gBAAgBL,YAAYK,cAAc;QAC1CC,cAAcN,YAAYM,YAAY;QACtCC,iBAAiBP,YAAYO,eAAe;QAC5CC,eAAeR,YAAYQ,aAAa;QACxCC,cAAcT,YAAYS,YAAY;QACtCC,mBAAmBV,YAAYU,iBAAiB;QAChDC,sBAAsBX,YAAYW,oBAAoB;QACtDC,kBAAkBZ,YAAYY,gBAAgB;QAC9CC,OAAOb,YAAYa,KAAK;;AAG9B;AAEA,eAAejB,iBAAgB"}
@@ -2,6 +2,6 @@
2
2
  * Logout button component styled to match Payload's admin nav.
3
3
  * Uses Payload's CSS classes and variables for native theme integration.
4
4
  */
5
- export declare function LogoutButton(): import("react/jsx-runtime").JSX.Element;
5
+ export declare function LogoutButton(): import("react").JSX.Element;
6
6
  export default LogoutButton;
7
7
  //# sourceMappingURL=LogoutButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogoutButton.d.ts","sourceRoot":"","sources":["../../src/components/LogoutButton.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,YAAY,4CA8C3B;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"LogoutButton.d.ts","sourceRoot":"","sources":["../../src/components/LogoutButton.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,YAAY,gCA8C3B;AAED,eAAe,YAAY,CAAA"}
@@ -5,39 +5,47 @@ import { useRouter } from 'next/navigation.js';
5
5
  /**
6
6
  * Logout button component styled to match Payload's admin nav.
7
7
  * Uses Payload's CSS classes and variables for native theme integration.
8
- */
9
- export function LogoutButton() {
8
+ */ export function LogoutButton() {
10
9
  const router = useRouter();
11
10
  const [isLoading, setIsLoading] = useState(false);
12
11
  async function handleLogout() {
13
- if (isLoading)
14
- return;
12
+ if (isLoading) return;
15
13
  setIsLoading(true);
16
14
  try {
17
15
  await fetch('/api/auth/sign-out', {
18
16
  method: 'POST',
19
17
  credentials: 'include',
20
18
  headers: {
21
- 'Content-Type': 'application/json',
19
+ 'Content-Type': 'application/json'
22
20
  },
23
- body: JSON.stringify({}),
21
+ body: JSON.stringify({})
24
22
  });
25
23
  router.push('/admin/login');
26
- }
27
- catch (error) {
24
+ } catch (error) {
28
25
  console.error('[better-auth] Logout error:', error);
29
26
  setIsLoading(false);
30
27
  }
31
28
  }
32
- return (_jsx("button", { onClick: handleLogout, disabled: isLoading, type: "button", className: "nav__link", style: {
29
+ return /*#__PURE__*/ _jsx("button", {
30
+ onClick: handleLogout,
31
+ disabled: isLoading,
32
+ type: "button",
33
+ className: "nav__link",
34
+ style: {
33
35
  background: 'none',
34
36
  border: 'none',
35
37
  cursor: isLoading ? 'not-allowed' : 'pointer',
36
38
  opacity: isLoading ? 0.7 : 1,
37
39
  width: '100%',
38
40
  textAlign: 'left',
39
- padding: 0,
40
- }, children: _jsx("span", { className: "nav__link-label", children: isLoading ? 'Logging out...' : 'Log out' }) }));
41
+ padding: 0
42
+ },
43
+ children: /*#__PURE__*/ _jsx("span", {
44
+ className: "nav__link-label",
45
+ children: isLoading ? 'Logging out...' : 'Log out'
46
+ })
47
+ });
41
48
  }
42
49
  export default LogoutButton;
50
+
43
51
  //# sourceMappingURL=LogoutButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogoutButton.js","sourceRoot":"","sources":["../../src/components/LogoutButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,KAAK,UAAU,YAAY;QACzB,IAAI,SAAS;YAAE,OAAM;QACrB,YAAY,CAAC,IAAI,CAAC,CAAA;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,oBAAoB,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;aACzB,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;YACnD,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,CACL,iBACE,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,EACnB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE;YACL,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAC7C,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5B,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,CAAC;SACX,YAED,eAAM,SAAS,EAAC,iBAAiB,YAC9B,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GACpC,GACA,CACV,CAAA;AACH,CAAC;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"sources":["../../src/components/LogoutButton.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { useRouter } from 'next/navigation.js'\n\n/**\n * Logout button component styled to match Payload's admin nav.\n * Uses Payload's CSS classes and variables for native theme integration.\n */\nexport function LogoutButton() {\n const router = useRouter()\n const [isLoading, setIsLoading] = useState(false)\n\n async function handleLogout() {\n if (isLoading) return\n setIsLoading(true)\n\n try {\n await fetch('/api/auth/sign-out', {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({}),\n })\n\n router.push('/admin/login')\n } catch (error) {\n console.error('[better-auth] Logout error:', error)\n setIsLoading(false)\n }\n }\n\n return (\n <button\n onClick={handleLogout}\n disabled={isLoading}\n type=\"button\"\n className=\"nav__link\"\n style={{\n background: 'none',\n border: 'none',\n cursor: isLoading ? 'not-allowed' : 'pointer',\n opacity: isLoading ? 0.7 : 1,\n width: '100%',\n textAlign: 'left',\n padding: 0,\n }}\n >\n <span className=\"nav__link-label\">\n {isLoading ? 'Logging out...' : 'Log out'}\n </span>\n </button>\n )\n}\n\nexport default LogoutButton\n"],"names":["useState","useRouter","LogoutButton","router","isLoading","setIsLoading","handleLogout","fetch","method","credentials","headers","body","JSON","stringify","push","error","console","button","onClick","disabled","type","className","style","background","border","cursor","opacity","width","textAlign","padding","span"],"mappings":"AAAA;;AAEA,SAASA,QAAQ,QAAQ,QAAO;AAChC,SAASC,SAAS,QAAQ,qBAAoB;AAE9C;;;CAGC,GACD,OAAO,SAASC;IACd,MAAMC,SAASF;IACf,MAAM,CAACG,WAAWC,aAAa,GAAGL,SAAS;IAE3C,eAAeM;QACb,IAAIF,WAAW;QACfC,aAAa;QAEb,IAAI;YACF,MAAME,MAAM,sBAAsB;gBAChCC,QAAQ;gBACRC,aAAa;gBACbC,SAAS;oBACP,gBAAgB;gBAClB;gBACAC,MAAMC,KAAKC,SAAS,CAAC,CAAC;YACxB;YAEAV,OAAOW,IAAI,CAAC;QACd,EAAE,OAAOC,OAAO;YACdC,QAAQD,KAAK,CAAC,+BAA+BA;YAC7CV,aAAa;QACf;IACF;IAEA,qBACE,KAACY;QACCC,SAASZ;QACTa,UAAUf;QACVgB,MAAK;QACLC,WAAU;QACVC,OAAO;YACLC,YAAY;YACZC,QAAQ;YACRC,QAAQrB,YAAY,gBAAgB;YACpCsB,SAAStB,YAAY,MAAM;YAC3BuB,OAAO;YACPC,WAAW;YACXC,SAAS;QACX;kBAEA,cAAA,KAACC;YAAKT,WAAU;sBACbjB,YAAY,mBAAmB;;;AAIxC;AAEA,eAAeF,aAAY"}
@@ -1,5 +1,5 @@
1
1
  import { type ButtonHTMLAttributes } from 'react';
2
- import { type PayloadAuthClient } from '../exports/client';
2
+ import { type PayloadAuthClient } from '../exports/client.js';
3
3
  export type PasskeyRegisterButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> & {
4
4
  /** Optional pre-configured auth client */
5
5
  authClient?: PayloadAuthClient;
@@ -41,6 +41,6 @@ export type PasskeyRegisterButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonEle
41
41
  * }
42
42
  * ```
43
43
  */
44
- export declare function PasskeyRegisterButton({ authClient: providedClient, passkeyName, onSuccess, onError, label, loadingLabel, disabled, children, ...buttonProps }: PasskeyRegisterButtonProps): import("react/jsx-runtime").JSX.Element;
44
+ export declare function PasskeyRegisterButton({ authClient: providedClient, passkeyName, onSuccess, onError, label, loadingLabel, disabled, children, ...buttonProps }: PasskeyRegisterButtonProps): import("react").JSX.Element;
45
45
  export default PasskeyRegisterButton;
46
46
  //# sourceMappingURL=PasskeyRegisterButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasskeyRegisterButton.d.ts","sourceRoot":"","sources":["../../src/components/PasskeyRegisterButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,SAAS,CACV,GAAG;IACF,0CAA0C;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5D,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EAAE,cAAc,EAC1B,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAqB,EACrB,YAA+B,EAC/B,QAAQ,EACR,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,0BAA0B,2CA0C5B;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"PasskeyRegisterButton.d.ts","sourceRoot":"","sources":["../../src/components/PasskeyRegisterButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,SAAS,CACV,GAAG;IACF,0CAA0C;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5D,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EAAE,cAAc,EAC1B,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAqB,EACrB,YAA+B,EAC/B,QAAQ,EACR,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,0BAA0B,+BA0C5B;AAED,eAAe,qBAAqB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
- import { createPayloadAuthClient, } from '../exports/client';
4
+ import { createPayloadAuthClient } from '../exports/client.js';
5
5
  /**
6
6
  * Standalone passkey registration button component.
7
7
  * Handles the WebAuthn registration flow with Better Auth.
@@ -25,39 +25,43 @@ import { createPayloadAuthClient, } from '../exports/client';
25
25
  * )
26
26
  * }
27
27
  * ```
28
- */
29
- export function PasskeyRegisterButton({ authClient: providedClient, passkeyName, onSuccess, onError, label = 'Add Passkey', loadingLabel = 'Registering...', disabled, children, ...buttonProps }) {
28
+ */ export function PasskeyRegisterButton({ authClient: providedClient, passkeyName, onSuccess, onError, label = 'Add Passkey', loadingLabel = 'Registering...', disabled, children, ...buttonProps }) {
30
29
  const [loading, setLoading] = useState(false);
31
30
  async function handleClick() {
32
31
  setLoading(true);
33
32
  try {
34
33
  const client = providedClient ?? createPayloadAuthClient();
35
34
  const result = await client.passkey.addPasskey({
36
- name: passkeyName,
35
+ name: passkeyName
37
36
  });
38
37
  if (result.error) {
39
38
  onError?.(result.error.message ?? 'Passkey registration failed');
39
+ } else if (result.data) {
40
+ onSuccess?.({
41
+ id: result.data.id,
42
+ name: passkeyName
43
+ });
40
44
  }
41
- else if (result.data) {
42
- onSuccess?.({ id: result.data.id, name: passkeyName });
43
- }
44
- }
45
- catch (err) {
45
+ } catch (err) {
46
46
  if (err instanceof Error && err.name === 'NotAllowedError') {
47
47
  onError?.('Passkey registration was cancelled or not allowed');
48
- }
49
- else if (err instanceof Error && err.name === 'InvalidStateError') {
48
+ } else if (err instanceof Error && err.name === 'InvalidStateError') {
50
49
  onError?.('This passkey is already registered');
51
- }
52
- else {
50
+ } else {
53
51
  onError?.(err instanceof Error ? err.message : 'Passkey registration failed');
54
52
  }
55
- }
56
- finally {
53
+ } finally{
57
54
  setLoading(false);
58
55
  }
59
56
  }
60
- return (_jsx("button", { type: "button", onClick: handleClick, disabled: disabled || loading, ...buttonProps, children: children ?? (loading ? loadingLabel : label) }));
57
+ return /*#__PURE__*/ _jsx("button", {
58
+ type: "button",
59
+ onClick: handleClick,
60
+ disabled: disabled || loading,
61
+ ...buttonProps,
62
+ children: children ?? (loading ? loadingLabel : label)
63
+ });
61
64
  }
62
65
  export default PasskeyRegisterButton;
66
+
63
67
  //# sourceMappingURL=PasskeyRegisterButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasskeyRegisterButton.js","sourceRoot":"","sources":["../../src/components/PasskeyRegisterButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAA6B,MAAM,OAAO,CAAA;AAC3D,OAAO,EACL,uBAAuB,GAExB,MAAM,mBAAmB,CAAA;AAoB1B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,EAAE,cAAc,EAC1B,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAK,GAAG,aAAa,EACrB,YAAY,GAAG,gBAAgB,EAC/B,QAAQ,EACR,QAAQ,EACR,GAAG,WAAW,EACa;IAC3B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,KAAK,UAAU,WAAW;QACxB,UAAU,CAAC,IAAI,CAAC,CAAA;QAEhB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,IAAI,uBAAuB,EAAE,CAAA;YAC1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC7C,IAAI,EAAE,WAAW;aAClB,CAAC,CAAA;YAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAA;YAClE,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC3D,OAAO,EAAE,CAAC,mDAAmD,CAAC,CAAA;YAChE,CAAC;iBAAM,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACpE,OAAO,EAAE,CAAC,oCAAoC,CAAC,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CACP,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CACnE,CAAA;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,IAAI,OAAO,KACzB,WAAW,YAEd,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GACtC,CACV,CAAA;AACH,CAAC;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"sources":["../../src/components/PasskeyRegisterButton.tsx"],"sourcesContent":["'use client'\n\nimport { useState, type ButtonHTMLAttributes } from 'react'\nimport {\n createPayloadAuthClient,\n type PayloadAuthClient,\n} from '../exports/client.js'\n\nexport type PasskeyRegisterButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onClick'\n> & {\n /** Optional pre-configured auth client */\n authClient?: PayloadAuthClient\n /** Optional name for the passkey */\n passkeyName?: string\n /** Callback when registration succeeds */\n onSuccess?: (passkey: { id: string; name?: string }) => void\n /** Callback when registration fails */\n onError?: (error: string) => void\n /** Button text when idle. Default: 'Add Passkey' */\n label?: string\n /** Button text when loading. Default: 'Registering...' */\n loadingLabel?: string\n}\n\n/**\n * Standalone passkey registration button component.\n * Handles the WebAuthn registration flow with Better Auth.\n *\n * @example\n * ```tsx\n * import { PasskeyRegisterButton } from '@delmaredigital/payload-better-auth/components'\n *\n * function SecuritySettings() {\n * return (\n * <PasskeyRegisterButton\n * passkeyName=\"My MacBook\"\n * onSuccess={(passkey) => {\n * console.log('Passkey registered:', passkey.id)\n * refetchPasskeys()\n * }}\n * onError={(error) => {\n * setError(error)\n * }}\n * />\n * )\n * }\n * ```\n */\nexport function PasskeyRegisterButton({\n authClient: providedClient,\n passkeyName,\n onSuccess,\n onError,\n label = 'Add Passkey',\n loadingLabel = 'Registering...',\n disabled,\n children,\n ...buttonProps\n}: PasskeyRegisterButtonProps) {\n const [loading, setLoading] = useState(false)\n\n async function handleClick() {\n setLoading(true)\n\n try {\n const client = providedClient ?? createPayloadAuthClient()\n const result = await client.passkey.addPasskey({\n name: passkeyName,\n })\n\n if (result.error) {\n onError?.(result.error.message ?? 'Passkey registration failed')\n } else if (result.data) {\n onSuccess?.({ id: result.data.id, name: passkeyName })\n }\n } catch (err) {\n if (err instanceof Error && err.name === 'NotAllowedError') {\n onError?.('Passkey registration was cancelled or not allowed')\n } else if (err instanceof Error && err.name === 'InvalidStateError') {\n onError?.('This passkey is already registered')\n } else {\n onError?.(\n err instanceof Error ? err.message : 'Passkey registration failed'\n )\n }\n } finally {\n setLoading(false)\n }\n }\n\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n disabled={disabled || loading}\n {...buttonProps}\n >\n {children ?? (loading ? loadingLabel : label)}\n </button>\n )\n}\n\nexport default PasskeyRegisterButton\n"],"names":["useState","createPayloadAuthClient","PasskeyRegisterButton","authClient","providedClient","passkeyName","onSuccess","onError","label","loadingLabel","disabled","children","buttonProps","loading","setLoading","handleClick","client","result","passkey","addPasskey","name","error","message","data","id","err","Error","button","type","onClick"],"mappings":"AAAA;;AAEA,SAASA,QAAQ,QAAmC,QAAO;AAC3D,SACEC,uBAAuB,QAElB,uBAAsB;AAoB7B;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GACD,OAAO,SAASC,sBAAsB,EACpCC,YAAYC,cAAc,EAC1BC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,QAAQ,aAAa,EACrBC,eAAe,gBAAgB,EAC/BC,QAAQ,EACRC,QAAQ,EACR,GAAGC,aACwB;IAC3B,MAAM,CAACC,SAASC,WAAW,GAAGd,SAAS;IAEvC,eAAee;QACbD,WAAW;QAEX,IAAI;YACF,MAAME,SAASZ,kBAAkBH;YACjC,MAAMgB,SAAS,MAAMD,OAAOE,OAAO,CAACC,UAAU,CAAC;gBAC7CC,MAAMf;YACR;YAEA,IAAIY,OAAOI,KAAK,EAAE;gBAChBd,UAAUU,OAAOI,KAAK,CAACC,OAAO,IAAI;YACpC,OAAO,IAAIL,OAAOM,IAAI,EAAE;gBACtBjB,YAAY;oBAAEkB,IAAIP,OAAOM,IAAI,CAACC,EAAE;oBAAEJ,MAAMf;gBAAY;YACtD;QACF,EAAE,OAAOoB,KAAK;YACZ,IAAIA,eAAeC,SAASD,IAAIL,IAAI,KAAK,mBAAmB;gBAC1Db,UAAU;YACZ,OAAO,IAAIkB,eAAeC,SAASD,IAAIL,IAAI,KAAK,qBAAqB;gBACnEb,UAAU;YACZ,OAAO;gBACLA,UACEkB,eAAeC,QAAQD,IAAIH,OAAO,GAAG;YAEzC;QACF,SAAU;YACRR,WAAW;QACb;IACF;IAEA,qBACE,KAACa;QACCC,MAAK;QACLC,SAASd;QACTL,UAAUA,YAAYG;QACrB,GAAGD,WAAW;kBAEdD,YAAaE,CAAAA,UAAUJ,eAAeD,KAAI;;AAGjD;AAEA,eAAeN,sBAAqB"}
@@ -1,5 +1,5 @@
1
1
  import { type ButtonHTMLAttributes } from 'react';
2
- import { type PayloadAuthClient } from '../exports/client';
2
+ import { type PayloadAuthClient } from '../exports/client.js';
3
3
  export type PasskeySignInButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> & {
4
4
  /** Optional pre-configured auth client */
5
5
  authClient?: PayloadAuthClient;
@@ -38,6 +38,6 @@ export type PasskeySignInButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonEleme
38
38
  * }
39
39
  * ```
40
40
  */
41
- export declare function PasskeySignInButton({ authClient: providedClient, onSuccess, onError, label, loadingLabel, disabled, children, ...buttonProps }: PasskeySignInButtonProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function PasskeySignInButton({ authClient: providedClient, onSuccess, onError, label, loadingLabel, disabled, children, ...buttonProps }: PasskeySignInButtonProps): import("react").JSX.Element;
42
42
  export default PasskeySignInButton;
43
43
  //# sourceMappingURL=PasskeySignInButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasskeySignInButton.d.ts","sourceRoot":"","sources":["../../src/components/PasskeySignInButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,SAAS,CACV,GAAG;IACF,0CAA0C;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,qCAAqC;IACrC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACxE,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,EAAE,cAAc,EAC1B,SAAS,EACT,OAAO,EACP,KAA8B,EAC9B,YAAkC,EAClC,QAAQ,EACR,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,wBAAwB,2CAsC1B;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"PasskeySignInButton.d.ts","sourceRoot":"","sources":["../../src/components/PasskeySignInButton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,SAAS,CACV,GAAG;IACF,0CAA0C;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,qCAAqC;IACrC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACxE,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,EAAE,cAAc,EAC1B,SAAS,EACT,OAAO,EACP,KAA8B,EAC9B,YAAkC,EAClC,QAAQ,EACR,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,wBAAwB,+BAsC1B;AAED,eAAe,mBAAmB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
- import { createPayloadAuthClient, } from '../exports/client';
4
+ import { createPayloadAuthClient } from '../exports/client.js';
5
5
  /**
6
6
  * Standalone passkey sign-in button component.
7
7
  * Handles the WebAuthn authentication flow with Better Auth.
@@ -23,8 +23,7 @@ import { createPayloadAuthClient, } from '../exports/client';
23
23
  * )
24
24
  * }
25
25
  * ```
26
- */
27
- export function PasskeySignInButton({ authClient: providedClient, onSuccess, onError, label = 'Sign in with Passkey', loadingLabel = 'Authenticating...', disabled, children, ...buttonProps }) {
26
+ */ export function PasskeySignInButton({ authClient: providedClient, onSuccess, onError, label = 'Sign in with Passkey', loadingLabel = 'Authenticating...', disabled, children, ...buttonProps }) {
28
27
  const [loading, setLoading] = useState(false);
29
28
  async function handleClick() {
30
29
  setLoading(true);
@@ -33,24 +32,27 @@ export function PasskeySignInButton({ authClient: providedClient, onSuccess, onE
33
32
  const result = await client.signIn.passkey();
34
33
  if (result.error) {
35
34
  onError?.(result.error.message ?? 'Passkey authentication failed');
36
- }
37
- else if (result.data?.user) {
35
+ } else if (result.data?.user) {
38
36
  onSuccess?.(result.data.user);
39
37
  }
40
- }
41
- catch (err) {
38
+ } catch (err) {
42
39
  if (err instanceof Error && err.name === 'NotAllowedError') {
43
40
  onError?.('Passkey authentication was cancelled or not allowed');
44
- }
45
- else {
41
+ } else {
46
42
  onError?.(err instanceof Error ? err.message : 'Passkey authentication failed');
47
43
  }
48
- }
49
- finally {
44
+ } finally{
50
45
  setLoading(false);
51
46
  }
52
47
  }
53
- return (_jsx("button", { type: "button", onClick: handleClick, disabled: disabled || loading, ...buttonProps, children: children ?? (loading ? loadingLabel : label) }));
48
+ return /*#__PURE__*/ _jsx("button", {
49
+ type: "button",
50
+ onClick: handleClick,
51
+ disabled: disabled || loading,
52
+ ...buttonProps,
53
+ children: children ?? (loading ? loadingLabel : label)
54
+ });
54
55
  }
55
56
  export default PasskeySignInButton;
57
+
56
58
  //# sourceMappingURL=PasskeySignInButton.js.map