import { useEffect, useId, useLayoutEffect, useState, useSyncExternalStore } from "react"; import { useTranslation } from "react-i18next"; import { X } from "lucide-react"; import { dismiss, getActiveToasts, subscribe } from "../../lib/notifications"; import { createStore } from "../../lib/store"; import { useToastDock } from "../../lib/toastDock"; import { useOverlayOrder } from "./overlayOrder"; import { LEVEL_STYLE } from "./toastLevels"; import { Button } from "./Button"; import { IconButton } from "./IconButton"; import { SURFACE } from "./surfaces"; // Overlay hosts. The app's own Toaster sits in the content column, and that column is a stacking // context (its `@container` implies layout containment) — so anything portalled to
at the // same z-overlay painted over every toast: a failure raised while watching was drawn under an 80% // black, blurred scrim, and a click on it closed the player. So every full-screen overlay mounts its // OWN `