create-nevela 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.mjs +12 -1
- package/package.json +1 -1
- package/template/laravel/composer.json +2 -1
- package/template/laravel/config/nevela.php +66 -1
- package/template/laravel/database/migrations/2026_10_05_000000_create_nevela_auth_tables.php +66 -0
- package/template/laravel/src/Auth/Account.php +140 -0
- package/template/laravel/src/Auth/AuthMail.php +77 -0
- package/template/laravel/src/Auth/Challenges.php +135 -0
- package/template/laravel/src/Auth/Passkeys.php +206 -0
- package/template/laravel/src/Auth/Totp.php +106 -0
- package/template/laravel/src/Auth/Web.php +75 -0
- package/template/laravel/src/Console/GenerateCommand.php +1 -0
- package/template/laravel/src/Console/UpdateCommand.php +56 -4
- package/template/laravel/src/Generator/ResourceGenerator.php +60 -0
- package/template/laravel/src/Http/Auth/AccountController.php +252 -0
- package/template/laravel/src/Http/Auth/Answers.php +33 -0
- package/template/laravel/src/Http/Auth/SecurityController.php +188 -0
- package/template/laravel/src/Http/Auth/SignInController.php +302 -0
- package/template/laravel/src/Http/TokenController.php +19 -37
- package/template/laravel/src/Http/UploadController.php +24 -12
- package/template/laravel/src/Models/Passkey.php +38 -0
- package/template/laravel/src/Models/TwoFactor.php +64 -0
- package/template/laravel/src/Nevela.php +1 -1
- package/template/laravel/src/NevelaServiceProvider.php +72 -4
- package/template/web/app/api/[...path]/route.ts +5 -1
- package/template/web/app/api/auth/[...action]/route.ts +196 -0
- package/template/web/app/auth-actions.ts +4 -43
- package/template/web/app/dashboard/account/layout.tsx +29 -0
- package/template/web/app/dashboard/account/page.tsx +19 -0
- package/template/web/app/dashboard/account/password/page.tsx +10 -0
- package/template/web/app/dashboard/account/security/page.tsx +19 -0
- package/template/web/app/dashboard/account/sessions/page.tsx +9 -0
- package/template/web/app/dashboard/layout.tsx +2 -1
- package/template/web/app/forgot-password/page.tsx +22 -0
- package/template/web/app/reset-password/page.tsx +31 -0
- package/template/web/app/sign-in/page.tsx +34 -4
- package/template/web/app/sign-up/page.tsx +43 -0
- package/template/web/app/two-factor/page.tsx +34 -0
- package/template/web/app/verify-email/page.tsx +33 -0
- package/template/web/components/account/account-nav.tsx +39 -0
- package/template/web/components/account/sections.tsx +573 -0
- package/template/web/components/auth/otp-input.tsx +95 -0
- package/template/web/components/auth/password-field.tsx +116 -0
- package/template/web/components/auth/password-forms.tsx +76 -0
- package/template/web/components/auth/provider-icons.tsx +39 -0
- package/template/web/components/auth/sign-in-flow.tsx +307 -0
- package/template/web/components/auth/sign-up-form.tsx +93 -0
- package/template/web/components/auth/social-buttons.tsx +56 -0
- package/template/web/components/auth/two-factor-form.tsx +144 -0
- package/template/web/components/auth/use-resend.ts +44 -0
- package/template/web/components/auth/verify-email-form.tsx +147 -0
- package/template/web/components/dashboard/dashboard-sidebar.tsx +2 -2
- package/template/web/components/dashboard/user-menu.tsx +33 -1
- package/template/web/lib/auth-client.ts +279 -0
- package/template/web/lib/auth-config.ts +43 -0
- package/template/web/lib/laravel.ts +26 -1
- package/template/web/lib/password-rules.ts +167 -0
- package/template/web/lib/second-step.ts +35 -0
- package/template/web/lib/session.ts +12 -4
- package/template/web/package.json +3 -2
- package/template/web/components/auth/sign-in-form.tsx +0 -50
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { useState } from "react";
|
|
4
|
-
import { signInAction } from "@/app/auth-actions";
|
|
5
|
-
import { AuthInput, AuthLabel, FormMessage, PrimaryButton } from "./ui";
|
|
6
|
-
|
|
7
|
-
/** Email and password, checked by Laravel. */
|
|
8
|
-
export function SignInForm({ next, initialError }: { next: string; initialError?: string | null }) {
|
|
9
|
-
const [email, setEmail] = useState("");
|
|
10
|
-
const [password, setPassword] = useState("");
|
|
11
|
-
const [error, setError] = useState<string | null>(initialError ?? null);
|
|
12
|
-
const [pending, setPending] = useState(false);
|
|
13
|
-
|
|
14
|
-
const submit = async (event: React.FormEvent) => {
|
|
15
|
-
event.preventDefault();
|
|
16
|
-
setPending(true);
|
|
17
|
-
setError(null);
|
|
18
|
-
const result = await signInAction(email, password);
|
|
19
|
-
if (result.ok) {
|
|
20
|
-
window.location.href = next;
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
setError(result.error);
|
|
24
|
-
setPending(false);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
return (
|
|
28
|
-
<form onSubmit={submit} className="flex flex-col gap-4">
|
|
29
|
-
{error && <FormMessage tone="error">{error}</FormMessage>}
|
|
30
|
-
<div className="flex flex-col gap-1.5">
|
|
31
|
-
<AuthLabel htmlFor="email">Email</AuthLabel>
|
|
32
|
-
<AuthInput id="email" type="email" autoComplete="email" required autoFocus value={email} onChange={(event) => setEmail(event.target.value)} />
|
|
33
|
-
</div>
|
|
34
|
-
<div className="flex flex-col gap-1.5">
|
|
35
|
-
<AuthLabel htmlFor="password">Password</AuthLabel>
|
|
36
|
-
<AuthInput
|
|
37
|
-
id="password"
|
|
38
|
-
type="password"
|
|
39
|
-
autoComplete="current-password"
|
|
40
|
-
required
|
|
41
|
-
value={password}
|
|
42
|
-
onChange={(event) => setPassword(event.target.value)}
|
|
43
|
-
/>
|
|
44
|
-
</div>
|
|
45
|
-
<PrimaryButton type="submit" pending={pending}>
|
|
46
|
-
Sign in
|
|
47
|
-
</PrimaryButton>
|
|
48
|
-
</form>
|
|
49
|
-
);
|
|
50
|
-
}
|