import { Controller } from '@hotwired/stimulus';
/**
 * Contrôleur Stimulus pour le dropdown de connexion
 * Attache les événements de manière robuste et compatible avec Turbo
 */
export default class extends Controller {
    static targets = ['wrapper', 'toggle', 'dropdown'];
    connect() {
        this.setupListeners();
        // Ouvrir le dropdown s'il y a une erreur de connexion
        const loginError = this.element.querySelector('.login-error');
        if (loginError && this.dropdownTarget) {
            this.open();
        }
    }
    setupListeners() {
        // Clic sur le bouton toggle
        this.toggleTarget.addEventListener('click', (e) => {
            e.stopPropagation();
            this.toggle();
        });
        // Clic en dehors du dropdown
        document.addEventListener('click', (e) => {
            if (!this.wrapperTarget.contains(e.target)) {
                this.close();
            }
        });
        // Touche Echap
        document.addEventListener('keydown', (e) => {
            if (e.key === 'Escape') {
                this.close();
            }
        });
    }
    toggle() {
        const isOpen = this.dropdownTarget.classList.contains('open');
        isOpen ? this.close() : this.open();
    }
    open() {
        this.dropdownTarget.classList.add('open');
        this.toggleTarget.setAttribute('aria-expanded', 'true');
    }
    close() {
        this.dropdownTarget.classList.remove('open');
        this.toggleTarget.setAttribute('aria-expanded', 'false');
    }
}
