Alpine ne détecte pas les changements sur ctxMenu (objet imbriqué hors du scope _wsInitData dans le DOM). Le :style et x-show restent bloqués sur les valeurs initiales. Solution radicale: manipulation DOM directe - onContextMenu: menu.style.display='block' + position left/top - ctxMenuOpen*/Rename/Duplicate/Delete: menu.style.display='none' - @click.outside/@keydown.escape: DOM direct aussi - ctx-menu HTML: style="display:none" initial