import { ResourceTracker } from '../core/resource-tracker.js'; import { el, toast } from '../core/dom.js'; import { t as i18nT } from '../core/i18n.js'; import { initSharedSidebarLayout } from '../core/sidebar-layout.js'; const PAGE = 'attacks'; let tracker = null; let root = null; let currentAttack = null; let selectedSection = null; let selectedImageScope = null; let selectedActionName = null; let selectedImages = new Set(); let editMode = false; let imageCache = []; let imageResolver = null; let sortKey = 'name'; let sortDir = 1; const iconCache = new Map(); let disposeSidebarLayout = null; function q(sel, base = root) { return base?.querySelector(sel) || null; } function qa(sel, base = root) { return Array.from(base?.querySelectorAll(sel) || []); } function note(msg, ms = 2200, type = 'info') { toast(String(msg ?? ''), ms, type); } function L(key, vars) { return i18nT(key, vars); } function Lx(key, fallback, vars) { const out = i18nT(key, vars); return out && out !== key ? out : fallback; } function markup() { return `