import { readFileSync } from "node:fs"; function assert(condition, message) { if (!condition) throw new Error(message); } const source = readFileSync("src/components/Dialog.tsx", "utf8"); const stackSource = readFileSync("src/components/dialogStack.ts", "utf8"); assert(source.includes("ref={panelRef}"), "Dialog wires its panel ref to the focus boundary"); assert(source.includes("tabIndex={-1}"), "Dialog exposes a programmatically focusable fallback"); assert(source.includes("return registerDialog({"), "Dialog registers with the shared modal stack"); assert(!source.includes('window.addEventListener("keydown"'), "Dialog instances do not install competing keyboard listeners"); assert(stackSource.includes('window.addEventListener("keydown", handleWindowKeyDown)'), "the modal stack owns one keyboard listener"); assert(stackSource.includes("handleTopDialogKeyDown(event, currentActiveElement())"), "the keyboard listener delegates only to the topmost dialog"); assert(stackSource.includes('panel.setAttribute("inert", "")'), "underlying dialog panels become inert"); assert(stackSource.includes('panel.setAttribute("aria-hidden", "true")'), "underlying dialogs leave the accessibility tree"); assert(source.includes('data-dialog-stack-state="topmost"'), "Dialog exposes stack state for custom keyboard interactions"); assert(source.includes("dialogIsTopmost(stackIdRef.current)"), "underlying backdrops cannot close their dialog"); assert(source.includes("shouldCloseDialogOnBackdrop(event.target, event.currentTarget, closeOnBackdrop, canClose)"), "Dialog preserves explicit backdrop-close conditions"); console.log("Dialog focus and stack lifecycle structure checks passed.");