From dbc5cd1f71a469f7719a0c96b6cc591145ce70d8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Mar 2026 10:27:49 +0000 Subject: [PATCH 1/2] Initial plan From 6dc0d0df591f1d462224eb323e0c4b293dd80ced Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Mar 2026 10:30:59 +0000 Subject: [PATCH 2/2] Add drag and drop file support to the input textarea Co-authored-by: c6-dev <31777460+c6-dev@users.noreply.github.com> --- wasm/index.html | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/wasm/index.html b/wasm/index.html index 69cd927..540751a 100644 --- a/wasm/index.html +++ b/wasm/index.html @@ -103,6 +103,12 @@ textarea:focus { outline: none; border-color: #4a90e2; } + #input-area.drag-over { + border-color: #4a90e2; + background: #eef4fd; + outline: 2px dashed #4a90e2; + } + .btn-row { display: flex; flex-wrap: wrap; @@ -165,7 +171,7 @@

OpenAPI 3.0 → Swagger 2.0 Converter

- +
@@ -232,6 +238,37 @@

OpenAPI 3.0 → Swagger 2.0 Converter

fileInput.value = ''; }); + // Drag and drop onto the input textarea + inputArea.addEventListener('dragover', function(e) { + e.preventDefault(); + inputArea.classList.add('drag-over'); + }); + + inputArea.addEventListener('dragleave', function(e) { + if (e.relatedTarget === null || !inputArea.contains(e.relatedTarget)) { + inputArea.classList.remove('drag-over'); + } + }); + + inputArea.addEventListener('drop', function(e) { + e.preventDefault(); + inputArea.classList.remove('drag-over'); + const file = e.dataTransfer.files[0]; + if (!file) return; + const name = file.name.toLowerCase(); + if (!name.endsWith('.yaml') && !name.endsWith('.yml') && !name.endsWith('.json')) { + showError('Unsupported file type. Please drop a .yaml, .yml, or .json file.'); + return; + } + const reader = new FileReader(); + reader.onload = function(ev) { + inputArea.value = ev.target.result; + clearError(); + }; + reader.onerror = function() { showError('Failed to read file.'); }; + reader.readAsText(file); + }); + // Convert convertBtn.addEventListener('click', function() { clearError();