feat: complete user authentication, admin guard, customer account dashboard and branded HTML emails

This commit is contained in:
2026-11-01 13:55:45 +01:00
parent b6ee6938cb
commit ee89da5e61
37 changed files with 1895 additions and 22 deletions
@@ -0,0 +1,83 @@
@extends('layouts.app')
@section('title', 'Nieuw Wachtwoord Instellen | Jouwdriedee.nl')
@section('content')
<div class="min-h-[70vh] flex items-center justify-center py-10 px-4 sm:px-6 lg:px-8">
<div class="w-full max-w-md space-y-6">
<!-- Header -->
<div class="text-center space-y-2">
<div class="inline-flex items-center justify-center w-12 h-12 rounded-2xl bg-amber-100 text-amber-900 shadow-2xs mb-1">
<i data-lucide="lock" class="w-6 h-6 text-amber-600"></i>
</div>
<h1 class="font-heading text-2xl sm:text-3xl font-black text-slate-900 tracking-tight">Nieuw wachtwoord</h1>
<p class="text-xs text-slate-500">Kies een nieuw en veilig wachtwoord voor jouw account</p>
</div>
<!-- Form Card -->
<div class="p-6 sm:p-8 rounded-3xl bg-white border border-slate-200/80 shadow-lg space-y-5">
<form action="{{ route('password.update') }}" method="POST" class="space-y-4">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<!-- E-mailadres -->
<div class="space-y-1.5">
<label for="email" class="block text-xs font-bold text-slate-700">E-mailadres</label>
<input
type="email"
name="email"
id="email"
value="{{ old('email', $email) }}"
required
readonly
class="w-full bg-slate-100 border border-slate-200 rounded-xl px-3.5 py-2.5 text-xs text-slate-600 font-semibold cursor-not-allowed"
>
@error('email')
<p class="text-[11px] font-bold text-rose-500 mt-1">{{ $message }}</p>
@enderror
</div>
<!-- Nieuw Wachtwoord -->
<div class="space-y-1.5">
<label for="password" class="block text-xs font-bold text-slate-700">Nieuw wachtwoord (min. 8 tekens)</label>
<input
type="password"
name="password"
id="password"
required
autofocus
placeholder="••••••••"
class="w-full bg-slate-50 border border-slate-200 rounded-xl px-3.5 py-2.5 text-xs text-slate-900 font-semibold focus:bg-white focus:outline-none focus:ring-2 focus:ring-amber-400 @error('password') border-rose-400 @enderror"
>
@error('password')
<p class="text-[11px] font-bold text-rose-500 mt-1">{{ $message }}</p>
@enderror
</div>
<!-- Bevestig Nieuw Wachtwoord -->
<div class="space-y-1.5">
<label for="password_confirmation" class="block text-xs font-bold text-slate-700">Bevestig nieuw wachtwoord</label>
<input
type="password"
name="password_confirmation"
id="password_confirmation"
required
placeholder="••••••••"
class="w-full bg-slate-50 border border-slate-200 rounded-xl px-3.5 py-2.5 text-xs text-slate-900 font-semibold focus:bg-white focus:outline-none focus:ring-2 focus:ring-amber-400"
>
</div>
<!-- Submit Button -->
<div class="pt-2">
<button type="submit" class="w-full py-3 px-5 rounded-2xl bg-amber-400 hover:bg-amber-300 text-slate-950 font-black text-xs sm:text-sm transition flex items-center justify-center space-x-2 shadow-xs cursor-pointer">
<i data-lucide="check" class="w-4 h-4"></i>
<span>Wachtwoord Opslaan & Inloggen</span>
</button>
</div>
</form>
</div>
</div>
</div>
@endsection