From 20eceb898319228a43eba6341366e0c1893a781e Mon Sep 17 00:00:00 2001 From: curo1305 Date: Mon, 15 Jun 2026 20:44:39 +0200 Subject: [PATCH] =?UTF-8?q?feat(10-10):=20implement=20OsDragOverlay.vue=20?= =?UTF-8?q?=E2=80=94=20OS=20file=20drag=20detection=20with=20depth=20count?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Options API component; emits files-dropped with file list - Depth-counter pattern (D-16) prevents flicker across child element boundaries - Guards against in-app drags via dataTransfer.types.includes('Files') check - window addEventListener/removeEventListener in mounted/beforeUnmount - Teleport to body; z-[9998] keeps overlay below ToastContainer z-[9999] - Fade transition via scoped CSS (.fade-enter-active/.fade-leave-active) - 8/8 tests GREEN --- .../src/components/layout/OsDragOverlay.vue | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 frontend/src/components/layout/OsDragOverlay.vue diff --git a/frontend/src/components/layout/OsDragOverlay.vue b/frontend/src/components/layout/OsDragOverlay.vue new file mode 100644 index 0000000..d26b469 --- /dev/null +++ b/frontend/src/components/layout/OsDragOverlay.vue @@ -0,0 +1,76 @@ + + + + +