- Eliminado el boton de tema, por atras el tema sigue cambiando dependiendo del tema preferido del browser.
- Correccion en los estilos del taller para el modo oscuro y claro.
This commit is contained in:
Bryam105
2026-05-27 08:09:34 -03:00
parent 3aba95bc91
commit 330b9460e6
5 changed files with 69 additions and 78 deletions
+8 -12
View File
@@ -5,23 +5,19 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="csrf-token" content="{{ csrf_token() }}">
<script type="module"> <script type="module">
// Revisamos el almacenamiento local o las preferencias del sistema // Revisamos únicamente las preferencias del sistema
if (localStorage.getItem('theme') === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { function applySystemTheme() {
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark'); document.documentElement.classList.add('dark');
} else { } else {
document.documentElement.classList.remove('dark'); document.documentElement.classList.remove('dark');
} }
}
// Función global para cambiar el tema desde cualquier botón applySystemTheme();
window.toggleTheme = function() {
if (document.documentElement.classList.contains('dark')) { // Escuchar cambios en la preferencia del sistema
document.documentElement.classList.remove('dark'); window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', applySystemTheme);
localStorage.setItem('theme', 'light');
} else {
document.documentElement.classList.add('dark');
localStorage.setItem('theme', 'dark');
}
}
</script> </script>
<title>{{ $title ?? 'Lauck Dashboard' }}</title> <title>{{ $title ?? 'Lauck Dashboard' }}</title>
@stack('styles') @stack('styles')
+1 -6
View File
@@ -61,12 +61,7 @@
</li> </li>
@endauth @endauth
<button onclick="toggleTheme()" class="p-2 text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white transition-colors rounded-full hover:bg-gray-200 dark:hover:bg-neutral-800">
<!-- Icono de Sol (Se muestra en modo oscuro) -->
<svg class="w-5 h-5 hidden dark:block" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg>
<!-- Icono de Luna (Se muestra en modo claro) -->
<svg class="w-5 h-5 block dark:hidden" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"></path></svg>
</button>
{{-- LÓGICA DE VISITANTE (GUEST) --}} {{-- LÓGICA DE VISITANTE (GUEST) --}}
@guest @guest
@@ -9,33 +9,33 @@
}; };
@endphp @endphp
<div class="bg-panel-bg p-4 rounded-lg border border-neutral-700 border-l-4 {{ $borderColor }} shadow-lg group hover:bg-neutral-800 transition-colors"> <div class="bg-white dark:bg-panel-bg p-4 rounded-lg border border-gray-300 dark:border-neutral-700 border-l-4 {{ $borderColor }} shadow-lg group hover:bg-gray-50 dark:hover:bg-neutral-800 transition-colors">
<!-- Encabezado Tarjeta --> <!-- Encabezado Tarjeta -->
<div class="flex justify-between items-start mb-2"> <div class="flex justify-between items-start mb-2">
<span class="text-xs font-bold text-gray-400">{{ $job->client->name }}</span> <span class="text-xs font-bold text-gray-800 dark:text-gray-300">{{ $job->client->name }}</span>
<span class="text-xs font-mono text-gray-500">{{ $job->scheduled_at->format('d/m H:i') }}</span> <span class="text-xs font-mono text-gray-600 dark:text-gray-400">{{ $job->scheduled_at->format('d/m H:i') }}</span>
</div> </div>
<h4 class="text-white font-bold text-sm mb-1">{{ $job->bike_model }}</h4> <h4 class="text-gray-900 dark:text-white font-black text-sm mb-1">{{ $job->bike_model }}</h4>
<p class="text-gray-400 text-xs line-clamp-2 mb-3">{{ $job->problem_description }}</p> <p class="text-gray-700 dark:text-gray-300 text-xs line-clamp-2 mb-3">{{ $job->problem_description }}</p>
@if($job->estimated_cost) @if($job->estimated_cost)
<div class="text-right mb-3"> <div class="text-right mb-3">
<span class="text-xs text-gray-500">Presupuesto:</span> <span class="text-xs text-gray-600 dark:text-gray-400">Presupuesto:</span>
<span class="text-sm font-mono text-white font-bold">${{ number_format($job->estimated_cost, 0) }}</span> <span class="text-sm font-mono text-gray-900 dark:text-white font-black">${{ number_format($job->estimated_cost, 0) }}</span>
</div> </div>
@endif @endif
<!-- Controles de Estado --> <!-- Controles de Estado -->
<div class="flex justify-between items-center pt-2 border-t border-neutral-700 mt-2 opacity-100 md:opacity-50 group-hover:opacity-100 transition-opacity"> <div class="flex justify-between items-center pt-2 border-t border-gray-200 dark:border-neutral-700 mt-2 opacity-100 md:opacity-50 group-hover:opacity-100 transition-opacity">
<!-- Botón Mover Atrás --> <!-- Botón Mover Atrás -->
@if($job->status !== 'pending') @if($job->status !== 'pending')
<form action="{{ route('taller.updateStatus', $job) }}" method="POST"> <form action="{{ route('taller.updateStatus', $job) }}" method="POST">
@csrf @method('PATCH') @csrf @method('PATCH')
<input type="hidden" name="status" value="{{ $job->status === 'ready' ? 'in_progress' : 'pending' }}"> <input type="hidden" name="status" value="{{ $job->status === 'ready' ? 'in_progress' : 'pending' }}">
<button class="text-gray-500 hover:text-white p-1" title="Volver al estado anterior"> <button class="text-gray-500 hover:text-gray-900 dark:hover:text-white p-1" title="Volver al estado anterior">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path></svg> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path></svg>
</button> </button>
</form> </form>
@@ -44,9 +44,9 @@
@endif @endif
<!-- Enlace a WhatsApp --> <!-- Enlace a WhatsApp -->
<a href="https://wa.me/{{ $job->contact_phone }}?text=Hola {{ $job->client->name }}, te escribimos de Lauck para avisarte sobre tu {{ $job->bike_model }}..." target="_blank" class="text-green-500 hover:text-green-400"> <a href="https://wa.me/{{ $job->contact_phone }}?text=Hola {{ $job->client->name }}, te escribimos de Lauck para avisarte sobre tu {{ $job->bike_model }}..." target="_blank" class="flex flex-col items-center justify-center text-green-600 dark:text-green-400 hover:text-green-700 dark:hover:text-green-300 transition-colors group/wa">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M17.472 14.382c..."></path></svg> <!-- (Usa el mismo SVG de whatsapp de antes) --> <svg class="w-5 h-5 mb-0.5 group-hover/wa:scale-110 transition-transform" fill="currentColor" viewBox="0 0 24 24"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.008-.57-.008-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg> <!-- (Usa el mismo SVG de whatsapp de antes) -->
<span class="text-xs ml-1">Avisar</span> <span class="text-[10px] font-bold tracking-wider uppercase">Avisar</span>
</a> </a>
<!-- Botón Mover Adelante --> <!-- Botón Mover Adelante -->
@@ -54,7 +54,7 @@
<form action="{{ route('taller.updateStatus', $job) }}" method="POST"> <form action="{{ route('taller.updateStatus', $job) }}" method="POST">
@csrf @method('PATCH') @csrf @method('PATCH')
<input type="hidden" name="status" value="{{ $job->status === 'pending' ? 'in_progress' : 'ready' }}"> <input type="hidden" name="status" value="{{ $job->status === 'pending' ? 'in_progress' : 'ready' }}">
<button class="text-neon-lime hover:text-white p-1" title="Avanzar estado"> <button class="text-green-600 dark:text-neon-lime hover:text-gray-900 dark:hover:text-white p-1" title="Avanzar estado">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
</button> </button>
</form> </form>
@@ -63,7 +63,7 @@
<form action="{{ route('taller.updateStatus', $job) }}" method="POST"> <form action="{{ route('taller.updateStatus', $job) }}" method="POST">
@csrf @method('PATCH') @csrf @method('PATCH')
<input type="hidden" name="status" value="delivered"> <input type="hidden" name="status" value="delivered">
<button class="text-xs bg-neon-lime text-black px-2 py-1 rounded font-bold hover:bg-white" title="Marcar como entregado"> <button class="text-xs bg-green-600 dark:bg-neon-lime text-white dark:text-black px-3 py-1.5 rounded-lg font-bold hover:bg-green-700 dark:hover:bg-white transition-colors" title="Marcar como entregado">
Entregar Entregar
</button> </button>
</form> </form>
+32 -32
View File
@@ -14,19 +14,19 @@
</div> </div>
@endif @endif
<div class="max-w-5xl mx-auto bg-panel-bg border border-neutral-800 rounded-xl p-8 shadow-lg"> <div class="max-w-5xl mx-auto bg-white dark:bg-panel-bg border border-gray-300 dark:border-neutral-800 rounded-xl p-8 shadow-lg">
<form action="{{ route('taller.store') }}" method="POST" class="space-y-8" id="taller-form"> <form action="{{ route('taller.store') }}" method="POST" class="space-y-8" id="taller-form">
@csrf @csrf
<!-- 1. Datos del Cliente --> <!-- 1. Datos del Cliente -->
<div class="border-b border-neutral-800 pb-6"> <div class="border-b border-gray-300 dark:border-neutral-800 pb-6">
<h3 class="text-white font-bold uppercase tracking-wider text-sm mb-4 flex items-center gap-2"> <h3 class="text-gray-900 dark:text-white font-bold uppercase tracking-wider text-sm mb-4 flex items-center gap-2">
<span class="bg-neutral-800 text-neon-lime px-2 py-0.5 rounded text-xs">1</span> Cliente <span class="bg-gray-200 dark:bg-neutral-800 text-green-600 dark:text-neon-lime px-2 py-0.5 rounded text-xs">1</span> Cliente
</h3> </h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div> <div>
<label class="block text-xs font-bold text-gray-400 uppercase mb-2">Propietario</label> <label class="block text-xs font-bold text-gray-600 dark:text-gray-400 uppercase mb-2">Propietario</label>
<select name="client_id" class="w-full bg-neutral-900 border border-neutral-700 text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime"> <select name="client_id" class="w-full bg-gray-50 dark:bg-neutral-900 border border-gray-300 dark:border-neutral-700 text-gray-900 dark:text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime">
<option value="" disabled {{ !request('new_client_id') ? 'selected' : '' }}>-- Seleccione un propietario --</option> <option value="" disabled {{ !request('new_client_id') ? 'selected' : '' }}>-- Seleccione un propietario --</option>
@foreach($clients as $client) @foreach($clients as $client)
@@ -38,41 +38,41 @@
<a href="{{ route('clients.create', ['origin' => 'taller']) }}" class="text-xs text-neon-lime hover:underline mt-1 inline-block">+ Nuevo Cliente</a> <a href="{{ route('clients.create', ['origin' => 'taller']) }}" class="text-xs text-neon-lime hover:underline mt-1 inline-block">+ Nuevo Cliente</a>
</div> </div>
<div> <div>
<label class="block text-xs font-bold text-gray-400 uppercase mb-2">Teléfono Aviso</label> <label class="block text-xs font-bold text-gray-600 dark:text-gray-400 uppercase mb-2">Teléfono Aviso</label>
<input type="text" name="contact_phone" value="{{ request('new_client_phone') }}" placeholder="Ingresar numero de telefono" class="w-full bg-neutral-900 border border-neutral-700 text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime"> <input type="text" name="contact_phone" value="{{ request('new_client_phone') }}" placeholder="Ingresar numero de telefono" class="w-full bg-gray-50 dark:bg-neutral-900 border border-gray-300 dark:border-neutral-700 text-gray-900 dark:text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime">
</div> </div>
</div> </div>
</div> </div>
<!-- 2. Diagnóstico y Repuestos --> <!-- 2. Diagnóstico y Repuestos -->
<div class="border-b border-neutral-800 pb-6"> <div class="border-b border-gray-300 dark:border-neutral-800 pb-6">
<h3 class="text-white font-bold uppercase tracking-wider text-sm mb-4 flex items-center gap-2"> <h3 class="text-gray-900 dark:text-white font-bold uppercase tracking-wider text-sm mb-4 flex items-center gap-2">
<span class="bg-neutral-800 text-neon-lime px-2 py-0.5 rounded text-xs">2</span> Diagnóstico y Repuestos <span class="bg-gray-200 dark:bg-neutral-800 text-green-600 dark:text-neon-lime px-2 py-0.5 rounded text-xs">2</span> Diagnóstico y Repuestos
</h3> </h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6"> <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<!-- Columna Izquierda: Datos Bici --> <!-- Columna Izquierda: Datos Bici -->
<div class="space-y-4"> <div class="space-y-4">
<div> <div>
<label class="block text-xs font-bold text-gray-400 uppercase mb-2">Modelo de Bici / Color</label> <label class="block text-xs font-bold text-gray-600 dark:text-gray-400 uppercase mb-2">Modelo de Bici / Color</label>
<input type="text" name="bike_model" required placeholder="Ej: Venzo Loki Roja R29" class="w-full bg-neutral-900 border border-neutral-700 text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime"> <input type="text" name="bike_model" required placeholder="Ej: Venzo Loki Roja R29" class="w-full bg-gray-50 dark:bg-neutral-900 border border-gray-300 dark:border-neutral-700 text-gray-900 dark:text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime">
</div> </div>
<div> <div>
<label class="block text-xs font-bold text-gray-400 uppercase mb-2">Problema / Servicio</label> <label class="block text-xs font-bold text-gray-600 dark:text-gray-400 uppercase mb-2">Problema / Servicio</label>
<textarea name="problem_description" rows="3" required class="w-full bg-neutral-900 border border-neutral-700 text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime" placeholder="Ej: Service completo, hace ruido la caja..."></textarea> <textarea name="problem_description" rows="3" required class="w-full bg-gray-50 dark:bg-neutral-900 border border-gray-300 dark:border-neutral-700 text-gray-900 dark:text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime" placeholder="Ej: Service completo, hace ruido la caja..."></textarea>
</div> </div>
</div> </div>
<!-- Columna Derecha: Selector de Repuestos --> <!-- Columna Derecha: Selector de Repuestos -->
<div class="bg-neutral-900/50 p-4 rounded-xl border border-neutral-800"> <div class="bg-gray-100 dark:bg-neutral-900/50 p-4 rounded-xl border border-gray-300 dark:border-neutral-800">
<label class="block text-xs font-bold text-neon-lime uppercase mb-2">Agregar Repuestos / Servicios</label> <label class="block text-xs font-bold text-green-600 dark:text-neon-lime uppercase mb-2">Agregar Repuestos / Servicios</label>
<!-- Buscador --> <!-- Buscador -->
<div class="relative mb-3"> <div class="relative mb-3">
<input type="text" id="part-search" class="w-full bg-neutral-800 border border-neutral-700 text-white rounded-lg p-2 text-sm focus:ring-neon-lime focus:border-neon-lime" placeholder="Buscar repuesto..." autocomplete="off"> <input type="text" id="part-search" class="w-full bg-white dark:bg-neutral-800 border border-gray-300 dark:border-neutral-700 text-gray-900 dark:text-white rounded-lg p-2 text-sm focus:ring-neon-lime focus:border-neon-lime" placeholder="Buscar repuesto..." autocomplete="off">
<!-- Lista desplegable de sugerencias --> <!-- Lista desplegable de sugerencias -->
<div id="suggestions-box" class="absolute left-0 right-0 z-50 bg-neutral-800 border border-neutral-600 rounded-b-lg shadow-xl max-h-40 overflow-y-auto hidden"></div> <div id="suggestions-box" class="absolute left-0 right-0 z-50 bg-white dark:bg-neutral-800 border border-gray-300 dark:border-neutral-600 rounded-b-lg shadow-xl max-h-40 overflow-y-auto hidden"></div>
</div> </div>
<!-- Lista Visual de Seleccionados --> <!-- Lista Visual de Seleccionados -->
@@ -88,29 +88,29 @@
<!-- 3. Agenda y Costos --> <!-- 3. Agenda y Costos -->
<div> <div>
<h3 class="text-white font-bold uppercase tracking-wider text-sm mb-4 flex items-center gap-2"> <h3 class="text-gray-900 dark:text-white font-bold uppercase tracking-wider text-sm mb-4 flex items-center gap-2">
<span class="bg-neutral-800 text-neon-lime px-2 py-0.5 rounded text-xs">3</span> Acuerdo <span class="bg-gray-200 dark:bg-neutral-800 text-green-600 dark:text-neon-lime px-2 py-0.5 rounded text-xs">3</span> Acuerdo
</h3> </h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 items-end"> <div class="grid grid-cols-1 md:grid-cols-2 gap-6 items-end">
<div> <div>
<label class="block text-xs font-bold text-gray-400 uppercase mb-2">Fecha Prometida / Retiro</label> <label class="block text-xs font-bold text-gray-600 dark:text-gray-400 uppercase mb-2">Fecha Prometida / Retiro</label>
<input type="datetime-local" name="scheduled_at" required class="w-full bg-neutral-900 border border-neutral-700 text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime"> <input type="datetime-local" name="scheduled_at" required class="w-full bg-gray-50 dark:bg-neutral-900 border border-gray-300 dark:border-neutral-700 text-gray-900 dark:text-white rounded-lg p-2.5 focus:ring-neon-lime focus:border-neon-lime">
</div> </div>
<div class="bg-neutral-800 p-4 rounded-lg border border-neutral-700"> <div class="bg-gray-100 dark:bg-neutral-800 p-4 rounded-lg border border-gray-300 dark:border-neutral-700">
<label class="block text-xs font-bold text-gray-400 uppercase mb-1">Presupuesto Estimado</label> <label class="block text-xs font-bold text-gray-600 dark:text-gray-400 uppercase mb-1">Presupuesto Estimado</label>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<span class="text-gray-500">$</span> <span class="text-gray-500">$</span>
<!-- Input de costo: Se autocalcula pero el usuario puede editarlo manualmente --> <!-- Input de costo: Se autocalcula pero el usuario puede editarlo manualmente -->
<input type="number" id="estimated_cost" name="estimated_cost" step="0.01" class="w-full bg-transparent border-0 text-white text-2xl font-black focus:ring-0 p-0" placeholder="0.00"> <input type="number" id="estimated_cost" name="estimated_cost" step="0.01" class="w-full bg-transparent border-0 text-gray-900 dark:text-white text-2xl font-black focus:ring-0 p-0" placeholder="0.00">
</div> </div>
<p class="text-[10px] text-gray-500 mt-1">* Calculado automáticamente según repuestos. Editable.</p> <p class="text-[10px] text-gray-500 mt-1">* Calculado automáticamente según repuestos. Editable.</p>
</div> </div>
</div> </div>
</div> </div>
<div class="flex justify-end pt-4 border-t border-neutral-800"> <div class="flex justify-end pt-4 border-t border-gray-300 dark:border-neutral-800">
<a href="{{ route('taller.index') }}" class="mr-4 px-6 py-3 text-gray-400 hover:text-white font-medium">Cancelar</a> <a href="{{ route('taller.index') }}" class="mr-4 px-6 py-3 text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white font-medium">Cancelar</a>
<button type="submit" class="px-8 py-3 bg-neon-lime text-neutral-900 font-bold rounded-lg hover:bg-[#b3e600] uppercase tracking-wide shadow-lg shadow-neon-lime/20"> <button type="submit" class="px-8 py-3 bg-neon-lime text-neutral-900 font-bold rounded-lg hover:bg-[#b3e600] uppercase tracking-wide shadow-lg shadow-neon-lime/20">
Ingresar Bicicleta Ingresar Bicicleta
</button> </button>
@@ -154,10 +154,10 @@
if (matches.length > 0) { if (matches.length > 0) {
matches.forEach(p => { matches.forEach(p => {
html += ` html += `
<div class="p-2 hover:bg-neutral-700 cursor-pointer text-xs text-white border-b border-neutral-700 last:border-0 suggestion-item flex justify-between items-center" <div class="p-2 hover:bg-gray-100 dark:hover:bg-neutral-700 cursor-pointer text-xs text-gray-900 dark:text-white border-b border-gray-200 dark:border-neutral-700 last:border-0 suggestion-item flex justify-between items-center"
data-id="${p.id}" data-name="${p.name}" data-price="${p.price}"> data-id="${p.id}" data-name="${p.name}" data-price="${p.price}">
<span>${p.name}</span> <span>${p.name}</span>
<span class="text-neon-lime font-mono">$${p.price}</span> <span class="text-green-600 dark:text-neon-lime font-mono">$${p.price}</span>
</div>`; </div>`;
}); });
} else { } else {
@@ -215,8 +215,8 @@
// Visual // Visual
$container.append(` $container.append(`
<div class="flex justify-between items-center bg-neutral-800 p-2 rounded border border-neutral-700 text-xs"> <div class="flex justify-between items-center bg-gray-100 dark:bg-neutral-800 p-2 rounded border border-gray-300 dark:border-neutral-700 text-xs">
<div class="text-white"> <div class="text-gray-900 dark:text-white">
${p.name} ${p.name}
<span class="text-gray-500 ml-1">($${p.price})</span> <span class="text-gray-500 ml-1">($${p.price})</span>
</div> </div>
+12 -12
View File
@@ -19,10 +19,10 @@
<div class="flex flex-col lg:flex-row w-full gap-8 overflow-x-auto pb-4 h-[calc(100vh-250px)]"> <div class="flex flex-col lg:flex-row w-full gap-8 overflow-x-auto pb-4 h-[calc(100vh-250px)]">
<!-- COLUMNA 1 --> <!-- COLUMNA 1 -->
<div class="flex-1 min-w-[300px] bg-neutral-900/50 border border-neutral-800 rounded-xl flex flex-col"> <div class="flex-1 min-w-[300px] bg-gray-50 dark:bg-neutral-900/50 border border-gray-300 dark:border-neutral-800 rounded-xl flex flex-col">
<div class="p-4 border-b border-neutral-800 bg-neutral-800/50 rounded-t-xl flex justify-between items-center"> <div class="p-4 border-b border-gray-300 dark:border-neutral-800 bg-gray-200 dark:bg-neutral-800/50 rounded-t-xl flex justify-between items-center">
<h3 class="font-bold text-gray-300 uppercase tracking-widest text-xs">🔴 Pendientes / A Revisar</h3> <h3 class="font-bold text-gray-800 dark:text-gray-300 uppercase tracking-widest text-xs">🔴 Pendientes / A Revisar</h3>
<span class="bg-neutral-900 text-gray-400 text-xs px-2 py-1 rounded-full">{{ $pending->count() }}</span> <span class="bg-gray-300 dark:bg-neutral-900 text-gray-700 dark:text-gray-400 text-xs px-2 py-1 rounded-full">{{ $pending->count() }}</span>
</div> </div>
<div class="p-4 space-y-4 overflow-y-auto flex-1 custom-scrollbar"> <div class="p-4 space-y-4 overflow-y-auto flex-1 custom-scrollbar">
@foreach($pending as $job) @foreach($pending as $job)
@@ -32,10 +32,10 @@
</div> </div>
<!-- COLUMNA 2 --> <!-- COLUMNA 2 -->
<div class="flex-1 min-w-[300px] bg-neutral-900/50 border border-neutral-800 rounded-xl flex flex-col"> <div class="flex-1 min-w-[300px] bg-gray-50 dark:bg-neutral-900/50 border border-gray-300 dark:border-neutral-800 rounded-xl flex flex-col">
<div class="p-4 border-b border-neutral-800 bg-neutral-800/50 rounded-t-xl flex justify-between items-center"> <div class="p-4 border-b border-gray-300 dark:border-neutral-800 bg-gray-200 dark:bg-neutral-800/50 rounded-t-xl flex justify-between items-center">
<h3 class="font-bold text-yellow-500 uppercase tracking-widest text-xs">🟡 En Reparación</h3> <h3 class="font-bold text-yellow-600 dark:text-yellow-500 uppercase tracking-widest text-xs">🟡 En Reparación</h3>
<span class="bg-neutral-900 text-gray-400 text-xs px-2 py-1 rounded-full">{{ $inProgress->count() }}</span> <span class="bg-gray-300 dark:bg-neutral-900 text-gray-700 dark:text-gray-400 text-xs px-2 py-1 rounded-full">{{ $inProgress->count() }}</span>
</div> </div>
<div class="p-4 space-y-4 overflow-y-auto flex-1 custom-scrollbar"> <div class="p-4 space-y-4 overflow-y-auto flex-1 custom-scrollbar">
@foreach($inProgress as $job) @foreach($inProgress as $job)
@@ -45,10 +45,10 @@
</div> </div>
<!-- COLUMNA 3 --> <!-- COLUMNA 3 -->
<div class="flex-1 min-w-[300px] bg-neutral-900/50 border border-neutral-800 rounded-xl flex flex-col"> <div class="flex-1 min-w-[300px] bg-gray-50 dark:bg-neutral-900/50 border border-gray-300 dark:border-neutral-800 rounded-xl flex flex-col">
<div class="p-4 border-b border-neutral-800 bg-neutral-800/50 rounded-t-xl flex justify-between items-center"> <div class="p-4 border-b border-gray-300 dark:border-neutral-800 bg-gray-200 dark:bg-neutral-800/50 rounded-t-xl flex justify-between items-center">
<h3 class="font-bold text-neon-lime uppercase tracking-widest text-xs">🟢 Listas para Retirar</h3> <h3 class="font-bold text-green-600 dark:text-neon-lime uppercase tracking-widest text-xs">🟢 Listas para Retirar</h3>
<span class="bg-neutral-900 text-gray-400 text-xs px-2 py-1 rounded-full">{{ $ready->count() }}</span> <span class="bg-gray-300 dark:bg-neutral-900 text-gray-700 dark:text-gray-400 text-xs px-2 py-1 rounded-full">{{ $ready->count() }}</span>
</div> </div>
<div class="p-4 space-y-4 overflow-y-auto flex-1 custom-scrollbar"> <div class="p-4 space-y-4 overflow-y-auto flex-1 custom-scrollbar">
@foreach($ready as $job) @foreach($ready as $job)