Commit bd1af213 authored by Mahmoud Aglan's avatar Mahmoud Aglan

Rename "الأحداث/حدث" to "الإيفنتات/إيفنت" across entire events module

"الأحداث" has a negative connotation in Egyptian Arabic (juvenile
detention). Using "إيفنتات" — formal, business-appropriate, universally
understood in the Egyptian market.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 68a86772
......@@ -28,9 +28,9 @@
['label' => 'لوحة المدرب', 'route' => 'trainer.dashboard', 'icon' => 'user', 'permission' => 'attendance.mark'],
]],
['section' => 'الأحداث', 'items' => [
['label' => 'الأحداث', 'route' => 'events.list', 'icon' => 'calendar', 'permission' => 'events.list'],
['label' => 'إنشاء حدث', 'route' => 'events.create', 'icon' => 'plus-circle', 'permission' => 'events.create'],
['section' => 'الإيفنتات', 'items' => [
['label' => 'الإيفنتات', 'route' => 'events.list', 'icon' => 'calendar', 'permission' => 'events.list'],
['label' => 'إنشاء إيفنت', 'route' => 'events.create', 'icon' => 'plus-circle', 'permission' => 'events.create'],
]],
['section' => 'الموارد البشرية', 'items' => [
......
......@@ -10,21 +10,21 @@
<div class="w-16 h-16 mx-auto bg-green-100 rounded-full flex items-center justify-center mb-4">
<svg class="w-8 h-8 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/></svg>
</div>
<h2 class="text-xl font-bold text-gray-800 mb-2">{{ $editing ? __('تم تحديث الحدث') : __('تم إنشاء الحدث بنجاح') }}</h2>
<p class="text-sm text-gray-500 mb-6">{{ __('يمكنك نشر الحدث أو تعديله من صفحة التفاصيل') }}</p>
<h2 class="text-xl font-bold text-gray-800 mb-2">{{ $editing ? __('تم تحديث الإيفنت') : __('تم إنشاء الإيفنت بنجاح') }}</h2>
<p class="text-sm text-gray-500 mb-6">{{ __('يمكنك نشر الإيفنت أو تعديله من صفحة التفاصيل') }}</p>
<div class="flex items-center justify-center gap-3">
<a href="{{ route('events.show', $event) }}" wire:navigate class="px-4 py-2 bg-blue-600 text-white rounded-lg text-sm font-medium hover:bg-blue-700 transition-colors">
{{ __('عرض الحدث') }}
{{ __('عرض الإيفنت') }}
</a>
<a href="{{ route('events.list') }}" wire:navigate class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg text-sm font-medium hover:bg-gray-200 transition-colors">
{{ __('قائمة الأحداث') }}
{{ __('قائمة الإيفنتات') }}
</a>
</div>
</div>
@else
{{-- Wizard Header --}}
<div class="mb-8">
<h1 class="text-2xl font-bold text-gray-800 mb-4">{{ $editing ? __('تعديل الحدث') : __('إنشاء حدث جديد') }}</h1>
<h1 class="text-2xl font-bold text-gray-800 mb-4">{{ $editing ? __('تعديل الإيفنت') : __('إنشاء إيفنت جديد') }}</h1>
{{-- Steps Indicator --}}
<div class="flex items-center gap-2">
......@@ -52,11 +52,11 @@ class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors
{{-- Step 1: Details --}}
@if($currentStep === 1)
<div class="bg-white rounded-xl border border-gray-200 p-6 space-y-6">
<h2 class="text-lg font-semibold text-gray-800">{{ __('تفاصيل الحدث') }}</h2>
<h2 class="text-lg font-semibold text-gray-800">{{ __('تفاصيل الإيفنت') }}</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="md:col-span-2">
<label class="block text-sm font-medium text-gray-700 mb-1">{{ __('عنوان الحدث') }} <span class="text-red-500">*</span></label>
<label class="block text-sm font-medium text-gray-700 mb-1">{{ __('عنوان الإيفنت') }} <span class="text-red-500">*</span></label>
<input type="text" wire:model="title" class="w-full px-4 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('title') border-red-500 @enderror">
@error('title') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
......@@ -67,7 +67,7 @@ class="flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">{{ __('نوع الحدث') }} <span class="text-red-500">*</span></label>
<label class="block text-sm font-medium text-gray-700 mb-1">{{ __('نوع الإيفنت') }} <span class="text-red-500">*</span></label>
<select wire:model="type" class="w-full px-4 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 @error('type') border-red-500 @enderror">
<option value="">{{ __('اختر النوع') }}</option>
@foreach($eventTypes as $t)
......@@ -146,7 +146,7 @@ class="w-full px-4 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2
<div class="flex items-center justify-between mb-3">
<div>
<label class="block text-sm font-medium text-gray-700">{{ __('مواقع على الخريطة') }}</label>
<p class="text-xs text-gray-500">{{ __('أضف إحداثيات ليتم عرضها على خرائط جوجل في صفحة الحدث') }}</p>
<p class="text-xs text-gray-500">{{ __('أضف إحداثيات ليتم عرضها على خرائط جوجل في صفحة الإيفنت') }}</p>
</div>
<button wire:click="addMapLocation" type="button" class="text-xs text-blue-600 hover:text-blue-800 font-medium">+ {{ __('إضافة موقع') }}</button>
</div>
......@@ -173,7 +173,7 @@ class="px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ri
{{-- Description --}}
<div class="border-t pt-4">
<label class="block text-sm font-medium text-gray-700 mb-1">{{ __('وصف الحدث') }}</label>
<label class="block text-sm font-medium text-gray-700 mb-1">{{ __('وصف الإيفنت') }}</label>
<textarea wire:model="description" rows="4" class="w-full px-4 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"></textarea>
</div>
</div>
......@@ -407,7 +407,7 @@ class="w-28 px-3 py-1.5 border border-gray-300 rounded-lg text-sm focus:ring-2 f
{{-- Step 3: Media --}}
@if($currentStep === 3)
<div class="bg-white rounded-xl border border-gray-200 p-6 space-y-6">
<h2 class="text-lg font-semibold text-gray-800">{{ __('صور الحدث') }}</h2>
<h2 class="text-lg font-semibold text-gray-800">{{ __('صور الإيفنت') }}</h2>
{{-- Cover Photo --}}
<div>
......@@ -493,7 +493,7 @@ class="w-28 px-3 py-1.5 border border-gray-300 rounded-lg text-sm focus:ring-2 f
@else
<button wire:click="save" wire:loading.attr="disabled" wire:target="save" type="button"
class="px-6 py-2.5 bg-green-600 text-white rounded-lg text-sm font-medium hover:bg-green-700 transition-colors disabled:opacity-50">
<span wire:loading.remove wire:target="save">{{ $editing ? __('حفظ التعديلات') : __('إنشاء الحدث') }}</span>
<span wire:loading.remove wire:target="save">{{ $editing ? __('حفظ التعديلات') : __('إنشاء الإيفنت') }}</span>
<span wire:loading wire:target="save">{{ __('جارٍ الحفظ...') }}</span>
</button>
@endif
......
......@@ -2,14 +2,14 @@
{{-- Header --}}
<div class="flex items-center justify-between mb-6">
<div>
<h1 class="text-2xl font-bold text-gray-800">{{ __('الأحداث') }}</h1>
<p class="text-sm text-gray-500 mt-1">{{ __('إدارة البطولات والمعسكرات والأحداث') }}</p>
<h1 class="text-2xl font-bold text-gray-800">{{ __('الإيفنتات') }}</h1>
<p class="text-sm text-gray-500 mt-1">{{ __('إدارة البطولات والمعسكرات والإيفنتات') }}</p>
</div>
@can('events.create')
<a href="{{ route('events.create') }}" wire:navigate
class="inline-flex items-center gap-2 px-4 py-2.5 bg-blue-600 text-white rounded-lg text-sm font-medium hover:bg-blue-700 transition-colors">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"/></svg>
{{ __('إنشاء حدث') }}
{{ __('إنشاء إيفنت') }}
</a>
@endcan
</div>
......@@ -46,8 +46,8 @@ class="w-full px-4 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2
@if($events->isEmpty())
<div class="bg-white rounded-xl border border-gray-200 p-12 text-center">
<svg class="w-16 h-16 mx-auto text-gray-300 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5"/></svg>
<h3 class="text-lg font-medium text-gray-600 mb-1">{{ __('لا توجد أحداث') }}</h3>
<p class="text-sm text-gray-400">{{ __('ابدأ بإنشاء حدث جديد') }}</p>
<h3 class="text-lg font-medium text-gray-600 mb-1">{{ __('لا توجد إيفنتات') }}</h3>
<p class="text-sm text-gray-400">{{ __('ابدأ بإنشاء إيفنت جديد') }}</p>
</div>
@else
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
......
......@@ -2,7 +2,7 @@
{{-- Header --}}
<div class="mb-6">
<div class="flex items-center gap-2 text-sm text-gray-500 mb-2">
<a href="{{ route('events.list') }}" class="hover:text-gray-700" wire:navigate>{{ __('الأحداث') }}</a>
<a href="{{ route('events.list') }}" class="hover:text-gray-700" wire:navigate>{{ __('الإيفنتات') }}</a>
<svg class="w-4 h-4 rotate-180" 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"/></svg>
<a href="{{ route('events.show', $event) }}" class="hover:text-gray-700" wire:navigate>{{ $event->title }}</a>
<svg class="w-4 h-4 rotate-180" 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"/></svg>
......
......@@ -34,7 +34,7 @@
@if($event->status === \App\Domain\Event\Enums\EventStatus::Draft)
<button wire:click="publish" wire:loading.attr="disabled"
class="px-4 py-2 bg-green-600 text-white rounded-lg text-sm font-medium hover:bg-green-700 transition-colors">
{{ __('نشر الحدث') }}
{{ __('نشر الإيفنت') }}
</button>
@endif
@can('events.update')
......@@ -76,7 +76,7 @@ class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg text-sm font-medium hover:
{{-- Event Details --}}
<div class="lg:col-span-2 space-y-6">
<div class="bg-white rounded-xl border border-gray-200 p-6">
<h2 class="text-lg font-semibold text-gray-800 mb-4">{{ __('تفاصيل الحدث') }}</h2>
<h2 class="text-lg font-semibold text-gray-800 mb-4">{{ __('تفاصيل الإيفنت') }}</h2>
<div class="space-y-4">
<div class="grid grid-cols-2 gap-4 text-sm">
<div>
......@@ -93,7 +93,7 @@ class="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg text-sm font-medium hover:
</div>
<div>
<span class="text-gray-500">{{ __('إغلاق التسجيل') }}</span>
<p class="font-medium text-gray-800">{{ $event->registration_closes_at?->translatedFormat('d M Y - H:i') ?? __('حتى بداية الحدث') }}</p>
<p class="font-medium text-gray-800">{{ $event->registration_closes_at?->translatedFormat('d M Y - H:i') ?? __('حتى بداية الإيفنت') }}</p>
</div>
</div>
......@@ -252,9 +252,9 @@ class="w-full px-3 py-2 bg-green-600 text-white text-sm rounded-lg hover:bg-gree
<div class="bg-red-50 rounded-xl border border-red-200 p-6">
<h3 class="text-sm font-semibold text-red-700 mb-3">{{ __('منطقة الخطر') }}</h3>
<button wire:click="deleteEvent"
wire:confirm="{{ __('هل أنت متأكد من حذف هذا الحدث؟ لا يمكن التراجع عن هذا الإجراء.') }}"
wire:confirm="{{ __('هل أنت متأكد من حذف هذا الإيفنت؟ لا يمكن التراجع عن هذا الإجراء.') }}"
class="w-full px-3 py-2 bg-red-600 text-white text-sm rounded-lg hover:bg-red-700 transition-colors">
{{ __('حذف الحدث') }}
{{ __('حذف الإيفنت') }}
</button>
</div>
@endcan
......
......@@ -123,14 +123,14 @@ class="flex items-center gap-2 px-4 py-2.5 rounded-full whitespace-nowrap transi
{{-- Activity Feed --}}
<div class="mb-6">
<h2 class="text-base font-semibold text-[#0F172A] mb-3">{{ __('آخر الأحداث') }}</h2>
<h2 class="text-base font-semibold text-[#0F172A] mb-3">{{ __('آخر المستجدات') }}</h2>
@if(empty($activityFeed))
<div class="bg-white rounded-2xl shadow-sm border border-gray-100 p-8 text-center">
<svg class="w-10 h-10 text-gray-200 mx-auto mb-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 20H5a2 2 0 01-2-2V6a2 2 0 012-2h10a2 2 0 012 2v1m2 13a2 2 0 01-2-2V7m2 13a2 2 0 002-2V9a2 2 0 00-2-2h-2m-4-3H9M7 16h6M7 8h6v4H7V8z"/>
</svg>
<p class="text-sm text-[#64748B]">{{ __('لا توجد أحداث حديثة') }}</p>
<p class="text-sm text-[#64748B]">{{ __('لا توجد مستجدات حالياً') }}</p>
</div>
@else
<div class="bg-white rounded-2xl shadow-sm border border-gray-100 divide-y divide-gray-50">
......
......@@ -4,7 +4,7 @@
<div class="site-section">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<div class="text-center mb-12">
<h1 class="section-title mx-auto">{{ __('الأحداث والبطولات') }}</h1>
<h1 class="section-title mx-auto">{{ __('الإيفنتات والبطولات') }}</h1>
<p class="mt-4 text-gray-500 text-lg">{{ __('تابع أحدث الفعاليات والبطولات وسجّل الآن') }}</p>
</div>
......@@ -97,7 +97,7 @@ class="w-full h-auto object-contain group-hover:scale-105 transition-transform d
<svg class="w-16 h-16 mx-auto text-gray-300 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/>
</svg>
<p class="text-gray-500 text-lg">{{ __('لا توجد أحداث حالياً') }}</p>
<p class="text-gray-500 text-lg">{{ __('لا توجد إيفنتات حالياً') }}</p>
</div>
@endif
</div>
......
......@@ -9,7 +9,7 @@ class="inline-flex items-center gap-1 text-sm text-gray-500 hover:text-[var(--si
<svg class="w-4 h-4 rotate-180" 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"/>
</svg>
{{ __('العودة للأحداث') }}
{{ __('العودة للإيفنتات') }}
</a>
{{-- Cover Image (full-bleed, edge-to-edge) --}}
......@@ -188,7 +188,7 @@ class="w-full h-auto object-contain">
<div class="lg:col-span-1">
<div class="sticky top-6">
<div class="bg-white border border-gray-200 rounded-2xl p-6 shadow-sm">
<h3 class="text-lg font-bold text-gray-900 mb-4">{{ __('التسجيل في الحدث') }}</h3>
<h3 class="text-lg font-bold text-gray-900 mb-4">{{ __('التسجيل في الإيفنت') }}</h3>
@if($event->isRegistrationOpen())
@if($event->max_capacity)
......
@php
$events = $data['events'] ?? collect();
$layout = $section->getSetting('layout', 'grid_3');
$maxItems = $section->getSetting('max_items', 6);
$events = $events->take($maxItems);
$gridClass = match($layout) {
'grid_2' => 'grid grid-cols-1 sm:grid-cols-2 gap-[var(--card-gap,1.5rem)]',
'grid_4' => 'grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-[var(--card-gap,1.5rem)]',
'list' => 'flex flex-col gap-[var(--card-gap,1.5rem)]',
'carousel' => 'flex overflow-x-auto snap-x snap-mandatory gap-[var(--card-gap,1.5rem)] pb-4 -mx-4 px-4 scrollbar-hide',
default => 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[var(--card-gap,1.5rem)]',
};
$cardExtraClass = $layout === 'carousel' ? 'min-w-[320px] snap-start shrink-0' : '';
$listMode = $layout === 'list';
$typeLabels = [
'tournament' => 'بطولة',
'camp' => 'معسكر',
'competition' => 'مسابقة',
'open_day' => 'يوم مفتوح',
'workshop' => 'ورشة عمل',
'friendly' => 'مباراة ودية',
'exhibition' => 'عرض',
'other' => 'إيفنت',
];
$typeColors = [
'tournament' => 'bg-amber-100 text-amber-800',
'camp' => 'bg-green-100 text-green-800',
'competition' => 'bg-red-100 text-red-800',
'open_day' => 'bg-blue-100 text-blue-800',
'workshop' => 'bg-purple-100 text-purple-800',
'friendly' => 'bg-cyan-100 text-cyan-800',
'exhibition' => 'bg-pink-100 text-pink-800',
'other' => 'bg-gray-100 text-gray-800',
];
@endphp
<div class="site-section">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-12 reveal">
<h2 class="section-title mx-auto">{{ $section->title ?? 'الإيفنتات والبطولات' }}</h2>
@if($section->subtitle)
<p class="mt-4 text-gray-500 text-lg">{{ $section->subtitle }}</p>
@endif
</div>
@if($events->count())
<div class="{{ $gridClass }}">
@foreach($events as $event)
<a href="{{ route('website.events.show', ['slug' => $academy->slug ?? 'default', 'eventSlug' => $event->slug]) }}"
class="site-card {{ $cardExtraClass }} {{ $listMode ? 'flex flex-row' : '' }} overflow-hidden group reveal reveal--delay-{{ ($loop->index % 3) + 1 }} hover:shadow-xl transition-shadow">
{{-- Cover --}}
@if($event->cover)
<div class="relative overflow-hidden {{ $listMode ? 'w-48 shrink-0' : 'aspect-[16/9]' }}">
<img src="{{ $event->cover->url }}"
alt="{{ $event->title }}"
class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"
loading="lazy">
<span class="absolute top-3 start-3 px-2 py-0.5 rounded-full text-xs font-medium {{ $typeColors[$event->type->value] ?? 'bg-gray-100 text-gray-800' }}">
{{ $typeLabels[$event->type->value] ?? 'إيفنت' }}
</span>
</div>
@else
<div class="relative {{ $listMode ? 'w-48 shrink-0' : 'aspect-[16/9]' }} bg-gradient-to-br from-[var(--site-accent)]/10 to-[var(--site-accent)]/5 flex items-center justify-center">
<svg class="w-12 h-12 text-[var(--site-accent)]/30" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M16 4v12l-4-2-4 2V4M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
<span class="absolute top-3 start-3 px-2 py-0.5 rounded-full text-xs font-medium {{ $typeColors[$event->type->value] ?? 'bg-gray-100 text-gray-800' }}">
{{ $typeLabels[$event->type->value] ?? 'إيفنت' }}
</span>
</div>
@endif
<div class="p-5 flex flex-col flex-1">
{{-- Date Badge --}}
<div class="flex items-center gap-2 mb-2">
<div class="flex items-center gap-1.5 text-xs text-[var(--site-accent)] font-medium">
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
{{ $event->starts_at->translatedFormat('j F Y') }}
</div>
@if($event->starts_at->isFuture())
@php $daysLeft = now()->diffInDays($event->starts_at); @endphp
@if($daysLeft <= 7)
<span class="px-1.5 py-0.5 bg-red-50 text-red-600 text-[10px] font-bold rounded">
باقي {{ $daysLeft }} {{ $daysLeft === 1 ? 'يوم' : 'أيام' }}
</span>
@endif
@endif
</div>
<h3 class="text-lg font-bold text-gray-900 line-clamp-2 group-hover:text-[var(--site-accent)] transition-colors">
{{ $event->title }}
</h3>
{{-- Location --}}
@if($event->location_name || $event->facility)
<p class="text-gray-400 text-xs mt-1.5 flex items-center gap-1">
<svg class="w-3.5 h-3.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/></svg>
{{ $event->location_name ?? $event->facility?->name_ar ?? '' }}
</p>
@endif
{{-- Capacity --}}
<div class="mt-auto pt-3">
@if($event->max_capacity)
@php
$spotsLeft = max(0, $event->max_capacity - $event->registrations_count);
$pct = min(100, round(($event->registrations_count / $event->max_capacity) * 100));
@endphp
<div class="flex items-center justify-between text-xs text-gray-500 mb-1">
<span>{{ $event->registrations_count }}/{{ $event->max_capacity }} مسجل</span>
@if($spotsLeft <= 5 && $spotsLeft > 0)
<span class="text-red-500 font-medium">{{ $spotsLeft }} أماكن متبقية</span>
@endif
</div>
<div class="w-full h-1.5 bg-gray-100 rounded-full overflow-hidden">
<div class="h-full rounded-full transition-all {{ $pct >= 90 ? 'bg-red-500' : ($pct >= 70 ? 'bg-amber-500' : 'bg-[var(--site-accent)]') }}"
style="width: {{ $pct }}%"></div>
</div>
@else
<span class="text-xs text-gray-400">{{ $event->registrations_count }} مسجل</span>
@endif
</div>
</div>
</a>
@endforeach
</div>
{{-- View All --}}
@if($events->count() >= 3)
<div class="text-center mt-8 reveal">
<a href="{{ route('website.events.index', ['slug' => $academy->slug ?? 'default']) }}"
class="inline-flex items-center gap-2 px-6 py-2.5 rounded-full border border-[var(--site-accent)] text-[var(--site-accent)] text-sm font-medium hover:bg-[var(--site-accent)] hover:text-white transition-colors">
عرض كل الإيفنتات
<svg class="w-4 h-4 rtl:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
</a>
</div>
@endif
@else
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
@for($i = 0; $i < 3; $i++)
<div class="skeleton-card">
<div class="aspect-[16/9] skeleton-block"></div>
<div class="p-5 space-y-3">
<div class="skeleton-block h-3 w-20"></div>
<div class="skeleton-block h-5 w-3/4"></div>
<div class="skeleton-block h-3 w-full"></div>
</div>
</div>
@endfor
</div>
<div class="empty-state mt-4">
<p class="text-sm">لا توجد إيفنتات قادمة حالياً</p>
</div>
@endif
</div>
</div>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment