Initial commit

This commit is contained in:
2025-12-22 12:03:01 +07:00
commit 10dc345147
367 changed files with 31188 additions and 0 deletions

View File

@@ -0,0 +1,137 @@
@props(['products' => []])
@php
$defaultProducts = [
[
'name' => 'Macbook pro 13"',
'variants' => 2,
'image' => '/images/product/product-01.jpg',
'category' => 'Laptop',
'price' => '$2399.00',
'status' => 'Delivered',
],
[
'name' => 'Apple Watch Ultra',
'variants' => 1,
'image' => '/images/product/product-02.jpg',
'category' => 'Watch',
'price' => '$879.00',
'status' => 'Pending',
],
[
'name' => 'iPhone 15 Pro Max',
'variants' => 2,
'image' => '/images/product/product-03.jpg',
'category' => 'SmartPhone',
'price' => '$1869.00',
'status' => 'Delivered',
],
[
'name' => 'iPad Pro 3rd Gen',
'variants' => 2,
'image' => '/images/product/product-04.jpg',
'category' => 'Electronics',
'price' => '$1699.00',
'status' => 'Canceled',
],
[
'name' => 'Airpods Pro 2nd Gen',
'variants' => 1,
'image' => '/images/product/product-05.jpg',
'category' => 'Accessories',
'price' => '$240.00',
'status' => 'Delivered',
],
];
$productsList = !empty($products) ? $products : $defaultProducts;
// Helper function for status classes
$getStatusClasses = function($status) {
$baseClasses = 'rounded-full px-2 py-0.5 text-theme-xs font-medium';
return match($status) {
'Delivered' => $baseClasses . ' bg-success-50 text-success-600 dark:bg-success-500/15 dark:text-success-500',
'Pending' => $baseClasses . ' bg-warning-50 text-warning-600 dark:bg-warning-500/15 dark:text-orange-400',
'Canceled' => $baseClasses . ' bg-error-50 text-error-600 dark:bg-error-500/15 dark:text-error-500',
default => $baseClasses . ' bg-gray-50 text-gray-600 dark:bg-gray-500/15 dark:text-gray-400',
};
};
@endphp
<div class="overflow-hidden rounded-2xl border border-gray-200 bg-white px-4 pb-3 pt-4 dark:border-gray-800 dark:bg-white/[0.03] sm:px-6">
<div class="flex flex-col gap-2 mb-4 sm:flex-row sm:items-center sm:justify-between">
<div>
<h3 class="text-lg font-semibold text-gray-800 dark:text-white/90">Recent Orders</h3>
</div>
<div class="flex items-center gap-3">
<button class="inline-flex items-center gap-2 rounded-lg border border-gray-300 bg-white px-4 py-2.5 text-theme-sm font-medium text-gray-700 shadow-theme-xs hover:bg-gray-50 hover:text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-white/[0.03] dark:hover:text-gray-200">
<svg class="stroke-current fill-white dark:fill-gray-800" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.29004 5.90393H17.7067" stroke="" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M17.7075 14.0961H2.29085" stroke="" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M12.0826 3.33331C13.5024 3.33331 14.6534 4.48431 14.6534 5.90414C14.6534 7.32398 13.5024 8.47498 12.0826 8.47498C10.6627 8.47498 9.51172 7.32398 9.51172 5.90415C9.51172 4.48432 10.6627 3.33331 12.0826 3.33331Z" fill="" stroke="" stroke-width="1.5" />
<path d="M7.91745 11.525C6.49762 11.525 5.34662 12.676 5.34662 14.0959C5.34661 15.5157 6.49762 16.6667 7.91745 16.6667C9.33728 16.6667 10.4883 15.5157 10.4883 14.0959C10.4883 12.676 9.33728 11.525 7.91745 11.525Z" fill="" stroke="" stroke-width="1.5" />
</svg>
Filter
</button>
<button class="inline-flex items-center gap-2 rounded-lg border border-gray-300 bg-white px-4 py-2.5 text-theme-sm font-medium text-gray-700 shadow-theme-xs hover:bg-gray-50 hover:text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-white/[0.03] dark:hover:text-gray-200">
See all
</button>
</div>
</div>
<div class="max-w-full overflow-x-auto custom-scrollbar">
<table class="min-w-full">
<thead>
<tr class="border-t border-gray-100 dark:border-gray-800">
<th class="py-3 text-left">
<p class="font-medium text-gray-500 text-theme-xs dark:text-gray-400">Products</p>
</th>
<th class="py-3 text-left">
<p class="font-medium text-gray-500 text-theme-xs dark:text-gray-400">Category</p>
</th>
<th class="py-3 text-left">
<p class="font-medium text-gray-500 text-theme-xs dark:text-gray-400">Price</p>
</th>
<th class="py-3 text-left">
<p class="font-medium text-gray-500 text-theme-xs dark:text-gray-400">Status</p>
</th>
</tr>
</thead>
<tbody>
@foreach($productsList as $product)
<tr class="border-t border-gray-100 dark:border-gray-800">
<td class="py-3 whitespace-nowrap">
<div class="flex items-center gap-3">
<div class="h-[50px] w-[50px] overflow-hidden rounded-md">
<img src="{{ $product['image'] }}" alt="{{ $product['name'] }}" />
</div>
<div>
<p class="font-medium text-gray-800 text-theme-sm dark:text-white/90">
{{ $product['name'] }}
</p>
<span class="text-gray-500 text-theme-xs dark:text-gray-400">
{{ $product['variants'] }} Variants
</span>
</div>
</div>
</td>
<td class="py-3 whitespace-nowrap">
<p class="text-gray-500 text-theme-sm dark:text-gray-400">{{ $product['category'] }}</p>
</td>
<td class="py-3 whitespace-nowrap">
<p class="text-gray-500 text-theme-sm dark:text-gray-400">{{ $product['price'] }}</p>
</td>
<td class="py-3 whitespace-nowrap">
<span class="{{ $getStatusClasses($product['status']) }}">
{{ $product['status'] }}
</span>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>