building new tarot frame component for custom layout

This commit is contained in:
2026-04-01 12:31:56 -07:00
parent d47e63df6d
commit a7d956cee8
11 changed files with 2359 additions and 79 deletions

View File

@@ -455,11 +455,13 @@
const topbarEl = document.querySelector(".topbar");
const actionsEl = document.getElementById("topbar-actions");
const menuToggleEl = document.getElementById("topbar-menu-toggle");
const settingsToggleEl = document.getElementById("open-settings");
return {
topbarEl: topbarEl instanceof HTMLElement ? topbarEl : null,
actionsEl: actionsEl instanceof HTMLElement ? actionsEl : null,
menuToggleEl: menuToggleEl instanceof HTMLButtonElement ? menuToggleEl : null
menuToggleEl: menuToggleEl instanceof HTMLButtonElement ? menuToggleEl : null,
settingsToggleEl: settingsToggleEl instanceof HTMLButtonElement ? settingsToggleEl : null
};
}
@@ -482,7 +484,7 @@
}
function bindTopbarMobileMenu() {
const { topbarEl, actionsEl, menuToggleEl } = getTopbarElements();
const { topbarEl, actionsEl, menuToggleEl, settingsToggleEl } = getTopbarElements();
if (!(topbarEl instanceof HTMLElement) || !(actionsEl instanceof HTMLElement) || !(menuToggleEl instanceof HTMLButtonElement)) {
return;
}
@@ -500,6 +502,13 @@
setTopbarMenuOpen(nextOpen);
});
if (settingsToggleEl instanceof HTMLButtonElement && settingsToggleEl.dataset.topbarSettingsReady !== "1") {
settingsToggleEl.dataset.topbarSettingsReady = "1";
settingsToggleEl.addEventListener("click", () => {
setTopbarMenuOpen(false);
});
}
actionsEl.addEventListener("click", (event) => {
const button = event.target instanceof Element
? event.target.closest("button")