43 lines
2.0 KiB
TypeScript
43 lines
2.0 KiB
TypeScript
// PURPOSE: Arcadia-specific wiring around the @crema/auth-ui form library.
|
|
// Each form here is a thin wrapper over the matching auth-ui form
|
|
// (SignInForm, SignUpForm, ForgotPasswordForm, ResetPasswordForm,
|
|
// OtpForm) that adds:
|
|
// • the right arcadia endpoint path
|
|
// • request body shaping (e.g. splitting `name` → first/last)
|
|
// • response decoding (e.g. 2FA challenge branch on /auth/login)
|
|
// • ArcadiaError → human message handling
|
|
//
|
|
// The visuals, validation, accessibility, and form layout all
|
|
// come from @crema/auth-ui. If you want to restyle the auth
|
|
// surface, do it there — these wrappers stay thin on purpose.
|
|
// ===========================================================================
|
|
// EXPORTS
|
|
// LoginForm — wraps SignInForm; POSTs /api/v1/auth/login;
|
|
// returns tokens + user, or 2FA challenge
|
|
// SignupForm — wraps SignUpForm; POSTs /api/v1/auth/register
|
|
// PasswordResetRequestForm — wraps ForgotPasswordForm
|
|
// PasswordResetConfirmForm — wraps ResetPasswordForm
|
|
// TwoFactorChallengeForm — wraps OtpForm; POSTs /api/v1/2fa/verify
|
|
//
|
|
// (Planned) OAuthButtons (wrap SocialButton), TwoFactorSetupForm
|
|
// (wrap TwoFactorSetup from auth-ui's advanced surface),
|
|
// InvitationAcceptForm.
|
|
// ===========================================================================
|
|
"use client";
|
|
|
|
export { LoginForm, type LoginFormProps, type LoginResult } from "./login-form";
|
|
export { SignupForm, type SignupFormProps, type SignupResult } from "./signup-form";
|
|
export {
|
|
PasswordResetRequestForm,
|
|
type PasswordResetRequestFormProps,
|
|
} from "./password-reset-request-form";
|
|
export {
|
|
PasswordResetConfirmForm,
|
|
type PasswordResetConfirmFormProps,
|
|
} from "./password-reset-confirm-form";
|
|
export {
|
|
TwoFactorChallengeForm,
|
|
type TwoFactorChallengeFormProps,
|
|
type TwoFactorResult,
|
|
} from "./two-factor-challenge-form";
|