2026-02-08 15:16:35 +07:00
< x - guest - layout >
< x - slot name = " title " > Masuk | {{ $setting -> app_name ? ? config ( 'app.name' ) }} </ x - slot >
2026-09-23 12:45:02 +07:00
< div class = " min-h-screen bg-slate-50 px-4 py-10 sm:flex sm:items-center sm:justify-center " >
< div class = " mx-auto grid w-full max-w-4xl overflow-hidden border border-slate-200 bg-white shadow-sm lg:grid-cols-[0.9fr_1.1fr] " >
< div class = " hidden border-r border-slate-200 bg-slate-100 p-10 lg:flex lg:flex-col lg:justify-between " >
< div >
@ if ( isset ( $setting -> app_logo ) && $setting -> app_logo )
< img src = " { { asset('storage/'. $setting->app_logo ) }} " alt = " Logo " class = " mb-8 h-16 w-auto object-contain " >
2026-02-08 15:16:35 +07:00
@ else
2026-09-23 12:45:02 +07:00
< div class = " mb-8 flex h-14 w-14 items-center justify-center rounded-lg bg-indigo-600 text-xl text-white " >< i class = " fas fa-cat " ></ i ></ div >
2026-02-08 15:16:35 +07:00
@ endif
2026-09-23 12:45:02 +07:00
< h1 class = " text-2xl font-bold text-slate-900 " > {{ $setting -> app_name ? ? 'ILY Cattery' }} </ h1 >
< p class = " mt-3 max-w-sm text-sm leading-6 text-slate-600 " > Kelola data kucing , riwayat pembiakan , kesehatan , pedigree , dan persediaan dalam satu aplikasi .</ p >
2026-02-08 15:16:35 +07:00
</ div >
2026-09-23 12:45:02 +07:00
< p class = " text-xs text-slate-500 " > Akses hanya untuk pengguna yang terdaftar .</ p >
2026-02-08 15:16:35 +07:00
</ div >
2026-09-23 12:45:02 +07:00
< div class = " p-6 sm:p-10 lg:p-12 " >
< div class = " mb-8 " >
< h2 class = " text-2xl font-bold text-slate-900 " > Masuk ke ILYCats </ h2 >
< p class = " mt-2 text-sm text-slate-500 " > Gunakan email dan kata sandi akun Anda .</ p >
2026-02-08 15:16:35 +07:00
</ div >
2026-09-23 12:45:02 +07:00
< x - auth - session - status class = " mb-4 " : status = " session('status') " />
< form method = " POST " action = " { { route('login') }} " class = " space-y-5 " >@ csrf
< div >< label for = " email " class = " mb-2 block text-sm font-medium text-slate-700 " > Email </ label >< input id = " email " type = " email " name = " email " value = " { { old('email') }} " required autofocus autocomplete = " username " placeholder = " nama@contoh.com " class = " w-full border-slate-300 px-3 py-3 text-sm focus:border-indigo-500 focus:ring-indigo-500 " ></ div >
< div x - data = " { show:false} " >< label for = " password-field " class = " mb-2 block text-sm font-medium text-slate-700 " > Kata sandi </ label >< div class = " relative " >< input id = " password-field " : type = " show?'text':'password' " name = " password " required autocomplete = " current-password " class = " w-full border-slate-300 px-3 py-3 pr-12 text-sm focus:border-indigo-500 focus:ring-indigo-500 " >< button type = " button " @ click = " show=!show " class = " absolute inset-y-0 right-0 px-4 text-slate-400 " : aria - label = " show?'Sembunyikan kata sandi':'Tampilkan kata sandi' " >< i class = " fas " : class = " show?'fa-eye-slash':'fa-eye' " ></ i ></ button ></ div ></ div >
< div class = " flex items-center justify-between gap-4 " >< label class = " flex items-center gap-2 text-sm text-slate-600 " >< input type = " checkbox " name = " remember " class = " rounded border-slate-300 text-indigo-600 focus:ring-indigo-500 " > Ingat saya di perangkat ini </ label >@ if ( Route :: has ( 'password.request' )) < a href = " { { route('password.request') }} " class = " text-sm font-medium text-indigo-600 hover:text-indigo-700 " > Lupa kata sandi ? </ a >@ endif </ div >
< button type = " submit " class = " w-full bg-indigo-600 px-4 py-3 text-sm font-semibold text-white hover:bg-indigo-700 " > Masuk </ button >
< button type = " button " id = " login-passkey " class = " w-full border border-slate-300 bg-white px-4 py-3 text-sm font-semibold text-slate-700 hover:bg-slate-50 " >< i class = " fas fa-fingerprint mr-2 text-slate-500 " ></ i > Masuk dengan biometrik </ button >
2026-02-08 15:16:35 +07:00
</ form >
2026-09-23 12:45:02 +07:00
< p class = " mt-8 border-t border-slate-200 pt-5 text-center text-xs text-slate-400 " > {{ date ( 'Y' ) }} {{ $setting -> app_name ? ? 'ILY Cattery' }} · Akses aman </ p >
2026-02-08 15:16:35 +07:00
</ div >
</ div >
</ div >
2026-09-23 12:45:02 +07:00
< script type = " module " >
import WebAuthn from " { { asset('vendor/webauthn/webauthn.js') }} " ;
const btn = document . getElementById ( 'login-passkey' );
if ( btn ){ btn . addEventListener ( 'click' , async () => { const original = btn . innerHTML ; try { btn . disabled = true ; btn . textContent = 'Memeriksa biometrik…' ; const response = await ( new WebAuthn ()) . login (); if ( response ) window . location . href = " { { route('dashboard') }} " ;} catch ( e ){ alert ( 'Biometrik tidak dapat digunakan. Pastikan biometrik sudah didaftarkan pada profil Anda.' );} finally { btn . disabled = false ; btn . innerHTML = original ;}})}
2026-02-09 09:36:42 +07:00
</ script >
2026-09-23 12:45:02 +07:00
</ x - guest - layout >