@props([ 'label', 'svg' => '', 'width' => 37, 'height' => 24, 'barcodeHeight' => 9, 'bordered' => false, ]) @php $scale = $width / 37; // Base scale untuk format 105 (37mm width) // Teks kode di bawah barcode $codeText = $label->code_text; if (trim($codeText) === '') { $codeText = $label->barcode_value; } // Auto-scale font berdasarkan panjang text $codeLength = max(mb_strlen($codeText), 1); $availableWidth = $width * 0.82; $codeFont = round(min(2.2 * $scale, ($availableWidth * 0.85) / ($codeLength * 0.6)), 2); $codeFont = max($codeFont, 1.2); // Minimum 1.2mm // Teks pecahan di bawah kode $pecahanText = ''; if ($label->pecahan && $label->pecahan > 0) { $pecahanText = 'Isi: ' . number_format($label->pecahan); } $pecahanFont = round(1.4 * $scale, 2); // Teks judul (KET) di BAWAH - paling bawah label $titleLength = max(mb_strlen($label->title), 1); $titleFont = round(min(2.4 * $scale, ($width * 0.88) / ($titleLength * 0.7)), 2); $titleFont = max($titleFont, 1.3); // Minimum 1.3mm @endphp