v2.2 - Small improvement Interface change

This commit is contained in:
pporcheret
2026-10-29 11:13:02 +01:00
parent a17c3cb614
commit 7f26f9b015
271 changed files with 6207 additions and 16044 deletions
@@ -0,0 +1,51 @@
/* 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 = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M5 5l14 14M19 5 5 19"/></svg>';
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();
}
});
})();