import { Controller } from "@hotwired/stimulus" export default class extends Controller { connect() { const autofocusEl = this.element.querySelector('[autofocus]') if (autofocusEl) { document.activeElement?.blur() autofocusEl.focus() } } processKey(event) { switch (event.key) { case "Escape": this.element.querySelector("a[name=cancel]").click() break case "Enter": this.element.querySelector("button[name=button]").click() event.preventDefault() break } } validate(event) { const id = event.submitter?.getAttribute("data-validate") if (!id) return const input = document.getElementById(id) if (!input.checkValidity()) { input.reportValidity() event.preventDefault() } } }