It seems we can’t find what you’re looking for. Perhaps searching can help.
:root{--ev-blue:#0C2F54;--ev-border:#E7E7E7;}
.ev-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);
opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:9998}
.ev-drawer{position:fixed;top:0;right:0;height:100dvh;width:min(92vw,480px);background:#fff;
transform:translateX(100%);transition:transform .3s ease;z-index:9999;display:flex;
flex-direction:column;padding:28px 22px 24px;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 18px 50px rgba(0,0,0,.35)}
.ev-open .ev-overlay{opacity:1;pointer-events:auto}
.ev-open .ev-drawer{transform:translateX(0)}
.ev-close{position:absolute;top:10px;right:14px;font-size:28px;background:none;border:0;cursor:pointer;line-height:1}
.ev-tabs{display:flex;gap:28px;margin:2px 0 18px;border-bottom:1px solid var(--ev-border)}
.ev-tab{appearance:none;background:none;border:0;font-weight:700;padding:12px 0;margin:0;cursor:pointer}
.ev-tab[aria-selected="true"]{color:var(--ev-blue);border-bottom:2px solid var(--ev-blue)}
#ev-pane-login,#ev-pane-register{overflow:auto;padding-top:8px}
/* Boutons UM dans le tiroir */
#ev-pane-login .um input.um-button,
#ev-pane-register .um input.um-button{background:var(--ev-blue);border-color:var(--ev-blue)}
/* Cache visuellement les shortcodes du footer sans les “désactiver” */
footer .wp-block-shortcode{position:absolute !important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
@media (max-width:768px){ .ev-drawer{width:100vw} }
(function(){
const html = document.documentElement;
const drawer = document.getElementById('ev-auth');
const overlay = document.getElementById('ev-auth-overlay');
const paneLogin = document.getElementById('ev-pane-login');
const paneReg = document.getElementById('ev-pane-register');
function activate(which){
document.querySelectorAll('.ev-pane').forEach(p => {
p.classList.toggle('is-active', p.id === 'ev-pane-'+which);
});
document.querySelectorAll('.ev-tab').forEach(t => {
t.setAttribute('aria-selected', t.dataset.pane === which ? 'true' : 'false');
});
}
function openAuth(which){
hydrateFromFooter(); // copie ce que rendent les shortcodes du footer
html.classList.add('ev-open');
drawer.setAttribute('aria-hidden','false');
overlay.setAttribute('aria-hidden','false');
activate(which === 'register' ? 'register' : 'login');
}
function closeAuth(){
html.classList.remove('ev-open');
drawer.setAttribute('aria-hidden','true');
overlay.setAttribute('aria-hidden','true');
}
// Récupère simplement le contenu des 2 blocs "Code court" du footer (1 = login, 2 = register)
function hydrateFromFooter(){
const blocks = document.querySelectorAll('footer .wp-block-shortcode');
if (blocks.length >= 2){
if (!paneLogin.hasChildNodes()) paneLogin.innerHTML = blocks[0].innerHTML;
if (!paneReg.hasChildNodes()) paneReg.innerHTML = blocks[1].innerHTML;
}
}
// Hydrate dès que le DOM est prêt + re-hydrate si UM modifie le footer un peu plus tard
document.addEventListener('DOMContentLoaded', () => {
hydrateFromFooter();
const footer = document.querySelector('footer') || document.body;
new MutationObserver(hydrateFromFooter).observe(footer, {childList:true, subtree:true});
});
// Ouvre depuis les liens du header (login + register)
document.addEventListener('click', e => {
const trg = e.target.closest('a[href*="/members"], a[href*="/register"], a[data-open-auth]');
if (trg){
e.preventDefault();
openAuth(trg.href && trg.href.includes('/register') ? 'register' : 'login');
}
if (e.target.closest('.ev-tab')) activate(e.target.closest('.ev-tab').dataset.pane);
if (e.target === overlay || e.target.closest('#ev-auth .ev-close')) closeAuth();
});
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeAuth(); });
})();