feat: drop cross-pane fonctionnel + drag-to-split (bord droit/bas)
CI / lint (push) Failing after 12s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 16s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled

- _setupPaneDropZone: dragover/drop sur .pane-container (fonctionne même si tab bar vide)
- Drag-to-split: déposer un onglet dans les 25% droit → split right, 25% bas → split down
- Indicateurs visuels: zone bleue semi-transparente au drop, tab-bar dashed outline
- stopPropagation dans le drop handler des tabs pour éviter double-fire
- CSS: .pane-drop-zone-indicator, .tab-bar.drop-target, position:relative sur pane-container
This commit is contained in:
2026-07-27 22:16:04 -04:00
parent e5cd656c6e
commit a842d68038
2 changed files with 119 additions and 1 deletions
+33
View File
@@ -1264,6 +1264,7 @@ select {
min-height: 0;
border: 2px solid transparent;
transition: border-color 150ms ease;
position: relative;
}
.pane-container.pane-active {
@@ -1317,6 +1318,38 @@ select {
border: 2px solid var(--accent);
}
/* --- Drop zone indicators for drag-to-split --- */
.pane-drop-zone-indicator {
position: absolute;
z-index: 10;
background: var(--accent);
opacity: 0.4;
pointer-events: none;
transition: opacity 100ms ease;
}
.pane-drop-zone-indicator.pane-drop-zone-right {
top: 0;
right: 0;
width: 25%;
height: 100%;
}
.pane-drop-zone-indicator.pane-drop-zone-bottom {
bottom: 0;
left: 0;
width: 100%;
height: 25%;
}
/* Tab bar drop target highlight */
.tab-bar.drop-target {
background: var(--accent);
opacity: 0.15;
outline: 2px dashed var(--accent);
outline-offset: -2px;
}
/* Responsive: disable split view below 768px */
@media (max-width: 768px) {
.pane-grid {