- src/slides/compile.ts compiles a project into runtime-ready slides. :thisSlide is resolved to each slide's own selector before Less runs, so output is deterministic and never depends on which slide is visible. - src/slides/runtime.ts mounts every slide once and moves them through idle -> entering -> current -> leaving via a data-ps-state attribute; CSS owns the animation, JS only owns the lifecycle. Rapid input coalesces into a single settle instead of a queue of stale operations. Arrow/space/Home/End keys, plus history integration: back/forward step through slides and a reload restores the slide you were on. - The editor gained two buffers: HTML slides and the project Less. The preview and the presentation are the same runtime (present = fullscreen of the same stage), and broken Less keeps the last good preview while reporting the error. Adds `less` (the authoring language) and `@types/less`.
27 lines
668 B
JSON
27 lines
668 B
JSON
{
|
|
"name": "psslides",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"lint": "oxlint",
|
|
"lint:fix": "oxlint --fix",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"preview": "vite preview"
|
|
},
|
|
"devDependencies": {
|
|
"@types/less": "^3.0.8",
|
|
"oxlint": "^1.85.0",
|
|
"prettier": "^3.9.9",
|
|
"typescript": "~6.0.2",
|
|
"vite": "^8.3.0"
|
|
},
|
|
"dependencies": {
|
|
"emmet-monaco-es": "^5.7.0",
|
|
"less": "^4.9.1",
|
|
"monaco-editor": "0.55.1"
|
|
}
|
|
}
|