function enablePasteUpload(inputSelector, previewSelector) { var input = document.querySelector(inputSelector); if (!input) return; document.addEventListener('paste', function (e) { var clipboard = e.clipboardData || window.clipboardData; var items = clipboard ? clipboard.items : null; if (!items) return; for (var i = 0; i < items.length; i++) { var item = items[i]; if (item.kind === 'file' && item.type.indexOf('image/') === 0) { var blob = item.getAsFile(); if (!blob) continue; var ext = (blob.type.split('/')[1] || 'png').toLowerCase(); var pastedFile = new File([blob], 'pasted-image-' + Date.now() + '.' + ext, { type: blob.type }); var dt = new DataTransfer(); dt.items.add(pastedFile); input.files = dt.files; input.dispatchEvent(new Event('change', { bubbles: true })); if (previewSelector) { var preview = document.querySelector(previewSelector); if (preview) { preview.src = URL.createObjectURL(pastedFile); preview.style.display = ''; } } e.preventDefault(); break; } } }); }