diff --git a/README.md b/README.md index f4e6772..2f99f4d 100644 --- a/README.md +++ b/README.md @@ -257,4 +257,4 @@ Amit Haridas (amit.wh@gmail.com) ## Version -v4.8.0 +v4.9.0 diff --git a/UPDATES.md b/UPDATES.md index e2fdca2..d967929 100644 --- a/UPDATES.md +++ b/UPDATES.md @@ -1,5 +1,76 @@ # PanConverter - Updates & Changelog +## Version 4.9.0 (2026-09-14) + +### New: Visual Flow Chart Editor (Sidebar panel → "Flow Chart") +- Pure `flowchart-store.js` — graph data store with bounded undo/redo (depth 50) + and injectable persistence IO (testable without touching the filesystem) +- 5 node shapes (process, decision, terminator, subroutine, document) × 3 edge + kinds (solid, dotted, thick) with full keyboard accessibility +- Hand-rolled SVG canvas: drag nodes, double-click to edit labels, Alt+drag from + a node edge to wire connections, in-place label editing, delete + backspace + to remove the selection +- `flowchart-shapes.js` — pure SVG path templates (no DOM, fully unit-tested) +- `flowchart-mermaid.js` — translates the graph to Mermaid `flowchart TD` source + that renders identically in the preview pane +- Sidebar panel `src/sidebar/flowchart-panel.js` with debounced preview (250 ms), + debounced persistence (500 ms), and Ctrl+Z / Ctrl+Shift+Z / Delete / Backspace + shortcuts +- 3 thin IPC channels (`get-user-data-path`, `read-text-file`, `write-text-file`) + sandboxed to `app.getPath('userData')` via path validation +- Auto-save to `/flowchart-session.json`; restores on reopen +- Rail button in the sidebar; toggle the panel with `Ctrl+Alt+F` +- Insert-at-Cursor wraps the generated Mermaid in a fenced ` ```mermaid ` block + at the current cursor position in the active editor tab +- 73 new tests + +### New: ASCII Art Generator upgrade +- Pure `AsciiArt` orchestrator (`generate / listFonts / getFontMeta`) unifying + hand-coded fonts + figlet + 19 named templates behind one API +- 17 hand-coded font tables extracted from inline renderer code (5 existing + + 12 new: Big, Small, Lean, Slant, Isometric1-4, 3-D, 3x5, ANSI Shadow, Calvin S) +- 19 named ASCII templates (arrows, flowcharts, banners, frames) +- `figlet@^1.8.0` dep with lazy-load + cache adapter (≥328 bundled fonts; pure + JS, no native bindings) +- 6 IPC handlers: `ascii:generate / list-fonts / get-font-meta / save / copy / + last-font` +- Standalone window rewrite: removed the ~385-line inline script; added a + searchable font picker, Copy to Clipboard, and Save to File +- Major cleanup: -1029 net lines of dead code (the in-app modal + `#ascii-art-dialog`, the 800-line renderer controller, the + `show-ascii-generator*` preload channels, and the obsolete + `textToASCII`/`createASCIIBox`/etc. helpers) +- 97 new tests + +### New: Editor Theme Registry (extension) +- 12 new themes added: Catppuccin Latte / Frappé / Macchiato / Mocha, One Light, + Tokyo Night Storm, Synthwave '84, Outrun, Winter is Coming (Light + Dark), + Solarized Dark High Contrast, Spring Light +- Total: 37 themes (15 light + 22 dark incl. 1 high-contrast), sorted into + Light / Dark / High-Contrast tables in the README +- Pure `ThemeRegistry` module; the View menu generator now reads + `list() + categories()`; new per-theme CSS files live at + `src/styles/themes/.css` +- `` preload + `` toggle pattern (sub-millisecond theme + switch — no flash, no re-fetch) +- Aria-friendly: the high-contrast option is announced to assistive tech + +### Bug fixes +- Plan 3: rail button tooltip `Ctrl+Alt+F` now actually wired (the shortcut + existed but the panel toggle was missing) +- Plan 3: `destroy()` cleanup on panel unmount — timers, listeners, and the + store subscription are all released (no leaks when toggling repeatedly) +- Plan 2: standalone window `