Skip to content

v1.1.2 — Drag & Drop arborescent + Undo/Redo

Choose a tag to compare

@georgyfr georgyfr released this 25 Jun 07:10
· 19 commits to main since this release

🎯 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