v1.1.2 — Drag & Drop arborescent + Undo/Redo
🎯 Objectif
Cette version rend le builder pleinement interactif en ajoutant le glisser-déposer arborescent complet sur la liste des items, ainsi que l'Undo/Redo et les raccourcis clavier pour une accessibilité WCAG AA.
✅ Nouveautés
Drag & Drop via @dnd-kit (spec §6.3)
- DndContext + PointerSensor + KeyboardSensor
- 3 actions : réordonnancement, cross-level moves, nesting
- Indicateurs visuels : ligne bleue before/after, bordure pointillée inside
- Drag handle (⠿) + DragOverlay ghost
- Auto-expand des containers repliés après 500ms
- Validation des règles de nesting en temps réel
Undo/Redo (spec §9.9)
- Stacks past/future (max 50 snapshots) dans le store wtm/menu
- Boutons Annuler/Rétablir dans le Header
- Raccourcis : Ctrl+Z, Ctrl+Shift+Z, Ctrl+Y
- clearHistory() après chaque saveMenu()
Raccourcis clavier (spec §6.3.5)
- Ctrl+↑/↓ : réordonner parmi les frères
- Ctrl+→ : indenter (enfant du frère précédent)
- Ctrl+← : outdenter (frère du parent)
Accessibilité (spec §6.7)
- aria-live='polite' après chaque déplacement
- aria-grabbed sur les drag handles
- Messages : « déplacé en position dans . »
🔧 Corrections
- 🚨 Bug critique mapItems() : const newItem réassignée → TypeError sur toute opération d'arbre non-root. Corrigé en let newItem.
- moveItem reducer : réécrit avec insertItemAtIndex()
- About.php roadmap : versions marquées 'done' correctement
- package.json version synchronisée (1.1.0 → 1.1.2)
📦 Build
- index.js : 28.6 Ko → 85.7 Ko (+57.1 Ko pour @dnd-kit)
- style-index.css : 11.9 Ko → 14.3 Ko (+2.4 Ko)
🧪 Tests
- ✅ npm run build réussit
- ✅ Plugin activé sur WordPress 6.7.1 + WooCommerce 9.7.1 + SQLite
- ✅ Builder accessible (HTTP 200)
- ✅ Bundle JS contient DndContext, DragOverlay, ADD_ITEM, MOVE_ITEM, UNDO, REDO
- ✅ WTM_VERSION = 1.1.2
📋 Périmètre exclus (non réalisable selon analyse du cahier des charges)
- ❌ Assistant IA copilote complet (Ch. 12) — à rescoper en v2.0
- ❌ Auto-adaptation ML temps réel
- ❌ Heatmaps intégrées
- ❌ WebLLM embarqué
- ❌ Support vocal
- ❌ Promesse 'zéro impact performance'
- ❌ Compatibilité universelle
🔗 Liens
🚀 Prochaines étapes
| Version | Contenu |
|---|---|
| v1.1.3 | Live preview via iframe + postMessage |
| v1.1.4 | Undo/Redo révisions WordPress + historique |
| v1.2.0 | Rendu frontend : Menu_Walker, méga menu, off-canvas mobile |