// DOM Elements const labelForm = document.getElementById('labelForm'); const printBtn = document.getElementById('printBtn'); // Inputs const itemName = document.getElementById('itemName'); const itemPrice = document.getElementById('itemPrice'); const itemNotes = document.getElementById('itemNotes'); // Preview Elements const previewName = document.getElementById('previewName'); const previewPrice = document.getElementById('previewPrice'); const previewNotes = document.getElementById('previewNotes'); // Live Preview Updater const updatePreview = () => { previewName.textContent = itemName.value || 'ITEM NAME'; previewPrice.textContent = itemPrice.value || 'Rp 0'; previewNotes.textContent = itemNotes.value || 'Notes here'; }; itemName.addEventListener('input', updatePreview); itemPrice.addEventListener('input', updatePreview); itemNotes.addEventListener('input', updatePreview); // Print Logic (System Print) labelForm.addEventListener('submit', (e) => { e.preventDefault(); // Quick validation if (!itemName.value || !itemPrice.value) { alert("Please fill name and price."); return; } // Call the browser's native print dialog // The CSS @media print rules will hide everything except the label wrapper window.print(); });