Releases: not0kkinex/oSlide2
Releases Β· not0kkinex/oSlide2
v0.2.1-alpha
oSlide2 v0.2.1 β Release Notes
Toast Notification System
js/components/toast.jsβ 5 notification types: SUCCESS (green), ERROR (red), WARNING (yellow), INFO (blue), LOADING (blue + spin animation)- Auto-dismiss (3s) or persistent (LOADING)
- Returns
.dismiss()for manual control - Integrated into AI chat errors, file save success/errors, export operations
main.jsIPC handlers wrapped with try/catch; error/success events sent to rendererpreload.jsexposesonFileSaved/onFileErrorlistenerscss/toast.cssβ slide-in-right animation, color-coded backgrounds
Performance Improvements
- Diff-based thumbnail rendering (
renderThumbs) β DOM operations only for added/removed slides; existing nodes reused.dataset.bganddataset.thumbskip innerHTML updates when unchanged - CSS caching (
renderSlide) βdataset.cssskips style.cssText writes when unchanged - Content caching (
renderSlide) βdataset.ckskips element re-render when content unchanged - Batch updates (
canvas.jsonUp) β multi-select drag calls singlerenderSlide()+renderThumbs()instead of per-elementupdEl()(N renders β 1 render) - Element handles β only added to newly created elements, skipped on updates
Documentation
docs/ARCHITECTURE.mdβ state flow diagram, module dependency graphs, undo/redo flow, canvas coordinate systemdocs/API.mdβ full IPC handler reference (with param/return types), config schema,.slidelabformat, Element Schema and Type Definitions sectionsdocs/CONTRIBUTING.mdβ code style rules (no semicolons, JSDoc required), load order, security rules, PR processdocs/JSDoc-STYLE.mdβ JSDoc3 format templates, single-line/multi-line rules, typedef examplesdocs/DEVELOPMENT.mdβ setup, project structure, build commands, known issues, debugging- JSDoc comments added to all 10 JS modules (
state.js,actions.js,renderer.js,canvas.js,panels.js,ai.js,ai-ui.js,fileManager.js,export.js,main.js):@param,@returns,@throws,@async,@typedef CoreState
Security Fixes
main.jsβvalidateConfig(): type/range checks for config values, catches corrupt configsmain.jsβvalidateThemeColor(): enforces#RRGGBBformat, rejects invalid colors, defaults to#ffffffmain.jsβsave-project-themesIPC handler validates colors before savinghomeTheme.jsβ_sanitizeColor()added, XSS prevention inrenderThemes()innerHTMLrenderMD()β href protocol whitelist only allowshttp://andhttps://- Missing
read-imageIPC handler added tomain.js(was defined in preload but handler was missing)
File System Fixes
open-file-dialogIPC handler now returns{ data, filePath, fileName }(structured object instead of raw JSON)homeProject.jsopenFileDialogβ_projectNameand_projectPathpassed to editoreditor.jsloadDataβ defensive theme object handling (defaults to'default'if.namemissing).slidelabrect elements corrected:fill(background),borderColor,borderWidth,borderRadiusβ oldbg/colorfields removed.slidelabfiles added to.gitignore, removed from version control (git rm --cached)
Modularization & Maintenance
home.jssplit intohomeTheme.js,homeSettings.js,homeProject.js;home.jsreduced to 4-line orchestrator- All hardcoded hex colors migrated to CSS variables (19 variables in
:root, managed via_setCSS()) theme.jsβ_setCSS()sets both light and dark mode CSS variablesai.jsβ 4 separate system prompts consolidated into singleSYSTEM_PROMPTconstantcloneObj()replaced withstructuredClone()editor.jssplit intoai-ui.js+export.jsAGENTS.mdpreserved, newdocs/folder created- Old LICENSE links removed from README
- Version bumped 0.2.0 β 0.2.1
v0.1.2-alpha
v0.2.0 (2026-05-27)
π Features
- Editor redesign β 5-group topbar, canvas ruler, zoom bar, AI FAB, status bar, panel tabs (Element/Slide/Animation), redesigned settings panel
- Home screen redesign β sidebar navigation, topbar search, 4-column card grid, list view, empty state
- Light mode β full light/dark theme support for both home and editor pages
- Zoom β range 0.25β3, step 0.1, CSS transform scaling
- Status bar β save status dot (red/green), slide count, element count
- Project filename β displays actual project name in topbar
π§ Improvements - Editor refactor β split editor.js into ai-ui.js and export.js for better maintainability
- i18n updates β new home screen keys, version bumped in locale files
π‘οΈ Security - renderMD() XSS fixed β href protocol whitelisted to http:// and https:// only
- --allow-file-access-from-files flag removed β images go through IPC
- structuredClone() replaces JSON.parse(JSON.stringify()) for safer cloning
v0.1.1-alpha
v0.1.1 β Bug Fixes & Polish
- Fixed editor toolbar: removed non-functional icon buttons (align-element, distribute, match)
- Updated app icon: black-to-yellow gradient, rounded corners, drop shadows
- Cleaned up toolbar layout for better usability
v0.1.0
v0.1.0 β oSlide2
Electron-based slide/presentation app with zero framework dependencies.
Features
- Slide editor: Rich text, images, shapes β add, edit, arrange
- Multi-select: Shift+click to select multiple elements, align/distribute/match size
- Animations: Slide transitions, per-element entrance/emphasis effects (fade, slide, zoom, bounce, pulse)
- AI assistant: Slide generation and smart editing via Pollinations.ai API, JSON command support
- Theme system: Project themes with customizable colors, fonts, animations; theme picker
- Presentation mode: Fullscreen slideshow with pen/highlight annotation tools
- i18n: Turkish & English localization
- Snap guides: Visual alignment lines while dragging
- Undo/Redo: Full history support
- Favorites, export/import, auto-save, dev console
- Build: Portable single-file EXE (self-signed)