@props(['product', 'qty' => 0]) @php $tags = $product['tag'] ?? []; $badge = empty($tags) ? null : [ 'label' => implode(', ', array_column($tags, 'name')), 'class' => in_array(1, array_column($tags, 'id')) ? 'bg-gray-500' : 'bg-red-500', ]; $price = $product['price']['price'] ?? '0.00'; $priceDiscount = $product['price']['discount'] ?? '0.00'; $hasDiscount = $priceDiscount != '0.00'; $displayPrice = $hasDiscount ? $product['price']['price_discount'] ?? '0.00' : $price; $isOutOfStock = empty($product['stock']); $productUrl = $product['url'] ?? 'javascript:void(0)'; $productName = $product['name'] ?? ''; $productUid = $product['uid'] ?? ''; $stockLabel = $isOutOfStock ? __('frontend::lang.label.out_of_stock') : __('frontend::lang.label.remaining') . ': ' . $product['stock']; $cardClass = 'bg-white rounded-xl shadow-sm border border-gray-100 flex flex-col relative group transition hover:shadow-md' . ($isOutOfStock ? ' opacity-80' : ''); $imageClass = 'w-full h-full object-cover group-hover:scale-110 transition duration-300' . ($isOutOfStock ? ' grayscale' : ''); $stockSpanClass = $isOutOfStock ? 'text-gray-500 font-medium' : ''; @endphp