18f1dbc052
Returning from the file viewer left the grid scrolled to the top: the position lived only in volatile module state and was never carried anywhere, and the scroll restore ran before SvelteKit's own scroll reset (on goto) clobbered it back to the top — worsened by the body, not <main>, being the effective scroller, so scrollTop restoration was inert. - The viewer's back/Escape now return to /files?anchor=<currentId> with noScroll, carrying the position in the URL (survives reload, no longer depends on hidden in-memory state). - The list restores grid DATA from the snapshot as before, but scrolls in afterNavigate — which runs AFTER SvelteKit's scroll handling — using scrollIntoView so it works whether <main> or the window scrolls. The ?anchor is consumed (stripped via shallow replaceState) once applied. - Deep link / hard reload with an anchor but no cached grid falls back to loading a page anchored at that file, then scrolling to it. - Snapshot is mirrored to sessionStorage so a refresh still restores. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sv
Everything you need to build a Svelte project, powered by sv.
Creating a project
If you're seeing this, you've probably already done this step. Congrats!
# create a new project
npx sv create my-app
To recreate this project with the same configuration:
# recreate this project
npx sv@0.13.2 create --template minimal --types ts --install npm frontend
Developing
Once you've created a project and installed dependencies with npm install (or pnpm install or yarn), start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
Building
To create a production version of your app:
npm run build
You can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment.