// Demonstrates every shared modal CSS class, for images/modal-classes.webp document.addEventListener("datasette_init", () => { const openButton = document.createElement("button"); openButton.type = "button"; openButton.textContent = "Open export dialog"; openButton.setAttribute("aria-haspopup", "dialog"); openButton.setAttribute("aria-controls", "export-dialog"); const modal = DatasetteModal.create(); const dialog = modal.dialog; dialog.id = "export-dialog"; dialog.setAttribute("aria-labelledby", "export-dialog-title"); dialog.innerHTML = ` `; const [cancelButton, exportButton] = dialog.querySelectorAll(".modal-footer button"); cancelButton.addEventListener("click", () => modal.requestClose("cancel")); exportButton.addEventListener("click", () => modal.close()); openButton.addEventListener("click", () => { modal.show({ returnFocusTo: openButton, initialFocus: exportButton }); }); document.body.append(modal); document.querySelector("section.content").append(openButton); });