# PPTX Import Thumbnail Safety Fix

## Problem

Large PPTX files can contain many image objects. The previous slide thumbnail renderer created a temporary Fabric canvas, called `loadFromJSON`, immediately read `toDataURL`, and disposed the canvas before asynchronous image/object enliven callbacks finished. Fabric could later try to clear a disposed canvas context and throw `Cannot read properties of null (reading 'clearRect')`.

## Fix

- Thumbnail rendering now uses a generation token so stale async renders are ignored.
- Image-heavy imported slides use a lightweight SVG thumbnail instead of loading all images into temporary Fabric canvases.
- Non-image thumbnails are rendered asynchronously and the temporary StaticCanvas is disposed only after the Fabric load callback finishes.
- `loadMainFileFromResponse` now awaits `applySlideToCanvas()` before rebuilding the slide list, avoiding active-slide race conditions during PPTX/PPTM import.

This change does not alter the active slide model. Full-fidelity rendering still occurs when a slide is opened on the main canvas.
