MIF_E31230887/resources/views/welcome/rekomendasi.blade.php

128 lines
8.2 KiB
PHP

{{-- REKOMENDASI / BUKU TERLARIS --}}
<section id="rekomendasi" class="py-24 bg-gray-50 relative overflow-hidden">
<div class="absolute bottom-0 left-0 w-80 h-80 bg-primary-100/20 rounded-full blur-3xl"></div>
<div class="max-w-7xl mx-auto px-6 relative z-10">
<div class="flex flex-col md:flex-row justify-between items-start md:items-center mb-14 gap-4">
<div>
<div class="inline-flex items-center gap-2 px-4 py-2 bg-primary-50 rounded-full mb-4">
<i class="fas fa-star text-yellow-500 text-xs"></i>
<span class="text-xs font-semibold text-primary-600 tracking-wide">Paling Baru</span>
</div>
<h2 class="text-3xl md:text-4xl font-black text-gray-900 tracking-tight">
Koleksi <span class="gradient-text">Terbaru</span>
</h2>
<p class="text-gray-500 mt-2 max-w-md">
Buku-buku rilis baru dan penambahan paling anyar di perpustakaan kami.
</p>
</div>
<a href="{{ route('katalog.index') }}"
class="px-6 py-3 bg-white text-primary-600 rounded-2xl font-semibold text-sm border border-primary-200 hover:bg-primary-50 transition-colors shadow-sm inline-flex items-center gap-2">
Lihat Semua Katalog <i class="fas fa-arrow-right text-xs"></i>
</a>
</div>
@if (!empty($bukuTerbaru) && $bukuTerbaru->count())
<div class="grid grid-cols-2 md:grid-cols-4 gap-6">
@foreach ($bukuTerbaru as $item)
@php
$habis = $item->eksemplar <= 0;
@endphp
<div
class="group bg-white rounded-2xl shadow-sm hover:shadow-2xl border border-gray-100 overflow-hidden transition-all duration-300 transform {{ $habis ? 'grayscale opacity-75 cursor-not-allowed' : 'hover:-translate-y-1' }} flex flex-col h-full relative">
<!-- Badge BUKU BARU (Pojok Kanan Atas Kartu) -->
@if (!$habis)
<div class="absolute top-0 right-0 z-20">
<div
class="bg-gradient-to-r from-yellow-400 to-orange-500 text-white text-[9px] sm:text-[10px] font-extrabold px-3 py-1.5 shadow-lg rounded-bl-xl origin-top-right transform">
<i class="fas fa-sparkles mr-1"></i> BUKU BARU
</div>
</div>
@endif
<!-- Book Cover -->
<div class="relative w-full pt-[140%] overflow-hidden bg-gray-50 flex-shrink-0">
@if ($item->cover ?? $item->sampul)
<img src="{{ asset('storage/' . ($item->cover ?? $item->sampul)) }}"
alt="{{ $item->judul }}"
class="absolute inset-0 w-full h-full object-cover {{ !$habis ? 'group-hover:scale-110' : '' }} transition-transform duration-700 ease-in-out">
@else
<div
class="absolute inset-0 flex flex-col items-center justify-center text-gray-300 bg-gray-100 {{ !$habis ? 'group-hover:bg-gray-200' : '' }} transition-colors duration-300">
<svg class="w-12 h-12 mb-2" fill="none" stroke="currentColor"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"
d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253">
</path>
</svg>
<span class="text-xs font-medium">Cover Tidak Tersedia</span>
</div>
@endif
@if ($habis)
<!-- Overlay Dipinjam Semua -->
<div
class="absolute inset-0 bg-red-900/30 backdrop-blur-[1px] flex items-center justify-center z-10">
<div
class="bg-red-600/90 text-white font-black text-sm md:text-base px-6 py-2 border-y-2 border-white transform -rotate-12 shadow-2xl tracking-widest uppercase pointer-events-none">
TIDAK TERSEDIA
</div>
</div>
@endif
<!-- Overlay Badges (Nomor Panggil) -->
<div class="absolute top-2 inset-x-2 flex justify-between items-start z-10">
<span
class="bg-white/90 backdrop-blur-md text-gray-800 text-[10px] sm:text-xs font-bold px-2 py-1 rounded shadow-sm">
{{ $item->nomor_panggil ?? '-' }}
</span>
</div>
</div>
<!-- Content -->
<div class="p-4 flex-grow flex flex-col">
<h2 class="text-sm sm:text-base font-bold text-gray-900 mb-1 line-clamp-2 {{ !$habis ? 'group-hover:text-blue-600 transition-colors' : '' }} leading-snug"
title="{{ $item->judul }}">
{{ $item->judul }}
</h2>
<p class="text-blue-600 font-medium text-xs sm:text-sm mb-2 line-clamp-1">
{{ $item->pengarang }}
</p>
<div class="mt-auto pt-3 flex flex-col gap-2 border-t border-gray-50">
<div class="flex justify-between items-center text-[10px] sm:text-xs text-gray-500">
<span class="truncate pr-1">{{ $item->penerbit }}</span>
<span
class="font-medium bg-gray-100 px-1.5 py-0.5 rounded">{{ $item->tahun_terbit ?? '-' }}</span>
</div>
</div>
</div>
<!-- Action Area -->
<div class="px-4 pb-4 pt-0 mt-auto relative z-30">
@if ($habis)
<button disabled
class="w-full text-center bg-gray-100 text-gray-500 text-sm font-semibold py-2 px-3 rounded-xl border border-gray-200 cursor-not-allowed opacity-80 backdrop-blur-sm">
Habis Dipinjam
</button>
@else
<a href="{{ route('katalog.show', $item->id ?? 1) }}"
class="block w-full text-center bg-gray-50 hover:bg-blue-600 text-gray-700 hover:text-white text-sm font-semibold py-2 px-3 rounded-xl border border-gray-200 hover:border-transparent transition-all duration-300">
Lihat Detail
</a>
@endif
</div>
</div>
@endforeach
</div>
@else
<div class="text-center py-20 bg-white rounded-3xl border border-gray-100">
<div class="w-20 h-20 bg-gray-100 rounded-2xl flex items-center justify-center mx-auto mb-4">
<i class="fas fa-books text-gray-300 text-3xl"></i>
</div>
<p class="text-gray-400 font-medium">Belum ada koleksi buku untuk ditampilkan.</p>
<p class="text-gray-300 text-sm mt-1">Silakan tambahkan buku melalui dashboard admin.</p>
</div>
@endif
</div>
</section>