import { Controller } from '@hotwired/stimulus'; export default class extends Controller { static targets = ['menu', 'trigger']; connect() { this._closeOnClickOutside = this._closeOnClickOutside.bind(this); document.addEventListener('click', this._closeOnClickOutside); } disconnect() { document.removeEventListener('click', this._closeOnClickOutside); } toggle() { this.menuTarget.hidden = !this.menuTarget.hidden; } _closeOnClickOutside(event) { if (!this.element.contains(event.target)) { this.menuTarget.hidden = true; } } }