From 1f84c047914cf21df1a1de196d990d193539523d Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Tue, 15 Sep 2026 22:55:25 +0200 Subject: feat(hub): drop files and folders onto Files to upload them Into the folder on screen, under the Upload button's rule. A name already there, or one the node would refuse, cancels the whole drop with a message. Folders are recreated level by level; files go out a few at a time. The in-flight upload guard is keyed by folder and name. Co-Authored-By: Claude Opus 5 --- .../meshbay-hub/src/meshbay_hub/static/style.css | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'packages/meshbay-hub/src/meshbay_hub/static/style.css') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/style.css b/packages/meshbay-hub/src/meshbay_hub/static/style.css index 049db0f..f46e5c2 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/style.css +++ b/packages/meshbay-hub/src/meshbay_hub/static/style.css @@ -3624,6 +3624,38 @@ h2 .gn-owner, h3 .gn-owner { font-size: 0.55em; } gap: 6px; flex-shrink: 0; } + +/* Dropping files onto Files (files-app.js). Fixed and click-through: the drag + events belong to the window, and nothing pinned may move while it shows. */ +.drop-overlay { + position: fixed; + inset: 0; + z-index: 900; + pointer-events: none; + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + background: color-mix(in srgb, var(--accent) 10%, transparent); + outline: 3px dashed var(--accent); + outline-offset: -12px; +} +.drop-overlay.refused { + background: color-mix(in srgb, var(--text-dim) 10%, transparent); + outline-color: var(--border); +} +.drop-overlay-label { + max-width: min(90vw, 480px); + padding: 10px 16px; + border: 1px solid var(--border); + border-radius: 8px; + background: var(--bg-surface); + color: var(--text); + text-align: center; + word-break: break-word; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); +} + .tb-pager-range { font-size: 0.83em; color: var(--text-dim); -- cgit v1.2.3