/* ALFRED_REPONSE_CLOSE_V1 — Boutons visibles dans la scène, sans modifier Hermes. */ (() => { 'use strict'; const stage = document.getElementById('stage'); const main = document.getElementById('alfredMainV1'); const returnButton = document.getElementById('avBack'); if (!stage || !main || !returnButton) { console.warn('[Dona] Fermeture réponse : éléments Glass V2 manquants.'); return; } if (stage.dataset.alfredReplyCloseV1 === 'ready') return; stage.dataset.alfredReplyCloseV1 = 'ready'; // La V1 crée le bouton « Retour à l’accueil » DANS #alfredMainV1 (z-index 1), // alors que la scène #stage est un frère au-dessus (z-index 8). // On déplace le bouton D'ORIGINE : son écouteur de clic et son id restent intacts. const bar = document.createElement('div'); bar.className = 'av-reponse-actions'; bar.setAttribute('role', 'group'); bar.setAttribute('aria-label', 'Navigation dans la réponse'); const closeButton = document.createElement('button'); closeButton.type = 'button'; closeButton.className = 'av-reponse-close'; closeButton.setAttribute('aria-label', 'Fermer la réponse et revenir à l’accueil'); closeButton.title = 'Fermer la réponse'; closeButton.innerHTML = ''; returnButton.classList.add('av-reponse-home'); returnButton.removeAttribute('style'); returnButton.title = 'Fermer cette réponse et revenir à l’accueil'; bar.append(returnButton, closeButton); stage.insertBefore(bar, stage.firstChild); const goHome = () => { // Utilise le gestionnaire déjà attaché à #avBack par Glass V1 : // focusScene(false) + éventuel AlfredViews.goHome(). returnButton.click(); }; closeButton.addEventListener('click', goHome); document.addEventListener('keydown', event => { if (event.key !== 'Escape' || event.defaultPrevented || event.altKey || event.ctrlKey || event.metaKey) return; // Les boîtes de dialogue (caméra, ComfyUI, etc.) gardent leur propre Escape. if (document.querySelector('dialog[open], [role="dialog"][aria-modal="true"]')) return; if (main.classList.contains('is-focused')) { event.preventDefault(); goHome(); } }); })();