export class PresentationLoader { constructor() { this.overlay = null; } show() { if (this.overlay) this.hide(); this.overlay = document.createElement('div'); this.overlay.className = 'pres-loader-overlay'; this.overlay.innerHTML = this._buildHTML(); document.body.appendChild(this.overlay); // Force reflow then fade in requestAnimationFrame(() => { requestAnimationFrame(() => { this.overlay.classList.add('visible'); }); }); } hide() { if (!this.overlay) return; this.overlay.classList.remove('visible'); const el = this.overlay; setTimeout(() => el.remove(), 700); this.overlay = null; } _buildHTML() { const buildSlide = (delay) => `
`; return `