# Changelog

## 0.8.9

* **Gliffy to Mermaid converter** — Import Gliffy diagrams and convert them to Mermaid syntax. Supports flowchart, sequence, ER, and org chart diagram types. Lossy by design: positional layout, colours, fonts, and swimlanes are discarded; shape labels and connector labels become node/edge labels.
* **Import Gliffy — Dex toolbar** — New "Import Gliffy" button in the diagram builder toolbar (after the Export button). Opens a modal with file upload and paste-JSON tabs; shows a live Mermaid preview before applying; warns on unrecognised shape types.
* **Import Gliffy — editor toolbar** — New "Gliffy" button (Upload icon) in the Rich editor toolbar beside the existing Diagram button. Clicking it opens the same modal and inserts the converted diagram as a ` ```mermaid ``` ` fenced block at the cursor position.
* **`wikied convert` CLI subcommand** — `wikied convert --input <file.gliffy> --output <file.md>` converts a Gliffy file to a Markdown file containing a Mermaid code block. `--help` / `-h` prints usage. Errors go to stderr with exit code 1; shape warnings go to stderr with exit code 0.
* **Gliffy format** — Accepts `.gliffy` files as plain JSON (the standard Gliffy export format). Conversion logic in `src/shared/gliffy/` is shared by the browser client and the Node CLI.
* **Dark theme fixes** — Mermaid diagrams in Preview mode now render with Mantine's dark theme when dark mode is active. The Gliffy preview box in the Import modal uses theme-aware colours in both light and dark modes.

## 0.8.8

* **Diagram toolbar redesign** — Replaced the fixed 300 px right panel with a compact toolbar row above a full-width canvas. All element management now lives in modal popups: Add Participant/Actor, Add Message, Add Block, Edit Elements (searchable flat list with edit and delete), Reorder (two-zone dnd-kit drag tree for participants and steps), and View/Edit Code (editable Mermaid textarea with Apply-back to model).
* **Diagram export** — New Export dropdown on the toolbar: Download SVG, Download PNG (canvas-based rasterisation), Download `.mmd` file, and Copy Mermaid code to clipboard. Export button is disabled until the diagram renders. The same `ExportMenu` component is reused in the fullscreen preview modal.
* **Fullscreen diagram preview** — Hovering over a rendered Mermaid diagram in document Preview mode now shows a "Full screen" button beside the existing Edit button. Clicking it opens a full-viewport modal with pan/zoom controls and an Export menu footer.

## 0.8.7

* Added visual Mermaid sequence diagram builder (`src/dex` package) — a form-driven UI for building sequence diagrams with a live pan/zoom canvas preview. Supports all 8 arrow types, activation bars, loop/alt/opt/par blocks, notes, and auto-numbering.
* Added "Diagrams" tab to the app header for standalone `.mmd` file editing (Mode A).
* Added "Insert Diagram" button (DiamondPlus icon) to the editor toolbar: opens the diagram builder in-place, then appends a ` ```mermaid ``` ` fenced block to the document on confirm (Mode C).
* Form panel has Basic mode (sectioned Participants / Messages / Blocks lists) and Advanced mode (ordered timeline with drag-to-reorder via @dnd-kit).
* Diagram builder respects the active light/dark color scheme for mermaid rendering.
* `src/dex` is self-contained (no imports from client/server/shared) and designed for future extraction as an npm package.

## 0.8.1

* Fixed dark mode in the Rich editor content area: Mantine signals dark mode via `data-mantine-color-scheme` but MDXEditor uses a `.dark` ancestor class. The Rich editor wrapper now receives `.dark` via `useComputedColorScheme`, activating MDXEditor's own dark palette for all toolbar internals, button states, code blocks, and dialogs.
* Fixed toolbar background in dark mode: the accent shade-0 tint is replaced with `--mantine-color-dark-6` so the toolbar uses a proper dark surface.
* Fixed file tree navbar background and header divider in dark mode: `--mantine-primary-color-0/2` replaced with `--mantine-color-dark-7/5` when dark mode is active.
* Fixed three unit tests for `RichMarkdownEditor` that broke once `useComputedColorScheme` was added: test renders now wrap the component in `MantineProvider`.

## 0.8.0

* Toolbar flush layout: removed side padding from the editor wrapper; toolbar is now edge-to-edge while content retains its 12 px / 16 px padding via a direct `mdxeditor-root-contenteditable` rule.
* All version references (code, docs, tarball paths, lock file) bumped to 0.8.0.

## 0.7.1

* Toolbar is now genuinely sticky: fixed the `toolbarClassName` placement (moved to `toolbarPlugin`) and gave `EditorWorkspace` an explicit `calc(100dvh …)` height so the inner scroll container activates. Toolbar stays pinned at the top of the editor as content scrolls.
* Package size reduced from 9.2 MB to 2.5 MB: enabled `emptyOutDir` (eliminates stale build copies) and added `.npmignore` (excludes dev docs and source).
* Help modal redesigned: two-panel layout with a TOC sidebar, free-text search with yellow highlighted matches, and IntersectionObserver-based active section tracking.
* Version badge in header and `APP_VERSION` constant updated to `0.7.1`.

## 0.7.0

* Added 4 accent color themes — Blue (default), Red, Purple, and Slate — selectable as color swatches in the Settings popover. The chosen accent rebuilds the Mantine theme immediately without a page reload and persists to localStorage.
* Left navbar (file-tree sidebar) now displays a subtle tint from the active accent color: shade 0 background and shade 2 border on the divider between the navbar header and the file tree body.
* Status bar, loading screen logo and version badge, and header brand mark all adapt to the active accent rather than using a fixed blue color.
* Fixed all Mantine CSS variable references throughout the app: `--mantine-color-primary-N` (which Mantine never generates) corrected to `--mantine-primary-color-N` across App.tsx, LoadingScreen, StatusBar, and the outline-search focus styles.

## 0.6.0

* Replaced the recursive NavLink-based file tree with a Mantine `Tree` component (with connecting guide lines). The new tree renders deep hierarchies more efficiently and aligns with the Mantine component system used elsewhere in the app.
* File tree dark-mode hover state now uses Mantine CSS variables so selected and hovered rows always look correct across Light, Dark, and System color schemes.
* FilePickerPill combobox dropdown width is now `max-content`, eliminating the horizontal scrollbar that appeared with long file paths.
* All dropdown menus (Save, Git, Settings, Styles, FilePickerPill) now render with consistent rounded corners and a subtle drop shadow via the Mantine theme.
* Removed the inverted color scheme from popover dropdowns; hover highlights now follow the active color scheme correctly.
* Expand/collapse state in the file tree no longer races when the tree re-renders; focus management restored after keyboard navigation.

## 0.5.3

* Added bottom status bar with brand-color (wikied-blue) background: shows active file path, Saved/Unsaved badge, current mode, and static metadata (Markdown, UTF-8, LF, Local only). Sticky-positioned so it remains visible during scroll.
* Added left file-tree panel: toggled by a hamburger icon in the top-left; open/closed state persisted to localStorage across sessions.
* File picker pill now shows the full folder tree when no search query is typed, collapsing to a flat filtered list when searching.
* Moved the Preview/Rich toggle button and Style selector from a floating pill to the top navigation header.
* All icon-click popovers (Save, Git, Settings, Styles) now render with an inverted color scheme and a border to visually distinguish them from the toolbar. Only one popover can be open at a time; a global `mousedown` listener closes any open popover when clicking anywhere outside it — including the Outline, Recent, and other header icons.
* Outline drawer: added outline icon to the title; replaced the bottom Pin button with a pin icon button in the title bar beside the close button.
* Pinned right-aside panel (Outline / Recent) state is now persisted to localStorage and restored on reload.
* Dirty indicator: orange dot displayed in the top nav beside the active filename when the file has unsaved changes.

## 0.5.0

* Added `wikied --git <url>` CLI flag: clones a repository into an empty directory before starting the server.
* Added clone-on-empty-root modal: when wikied starts in an empty directory the browser UI prompts for a git repository URL or offers to start empty.
* Added Git navbar button: shows a changed-files badge; popover offers Commit (opens a message modal), Push, and Pull. Only visible when the workspace is inside a git repository.
* Added Save button in the header: floppy-disk icon with an orange dirty-count badge; popover offers Save (current file) and Save all.
* Save all correctly saves all dirty files. Unsaved edits are preserved across file switches using an in-memory content cache; switching back to a previously edited file restores those edits and reopens the file in a dirty state.
* Moved the dirty-state indicator from inside the filename pill to an orange dot beside it.
* Fixed UTF-16 LE BOM file reading: Markdown files encoded with a UTF-16 LE BOM (common from Windows tools) now render correctly instead of showing garbled characters.
* Fixed nested button HTML in the file tree: the New Markdown File action button for directory rows is now a flex sibling of the row rather than nested inside it.

## 0.4.0

* Replaced the CSS grid shell and left sidebar with a Mantine `AppShell` layout. The editor now fills the full horizontal width by default.
* Moved all navigation into the top bar: brand mark left, filename pill center, action icons right.
* Added a center filename pill that shows the active basename and expands to an inline filterable file picker on click or `Ctrl+P`.
* Replaced mode tabs with a floating preview pill button at the top-right of the editor canvas; a chevron opens a style selector popover.
* Replaced the file-tree sidebar with a Mantine `Combobox` dropdown inside the filename pill.
* Outline and Recent panels now open as right-side `Drawer` components and can be pinned to a persistent `AppShell.Aside`.
* Settings now accessible from a `Popover` in the header: theme selector (System / Light / Dark) and autosave toggle.
* About information now shown in a `Modal` from the header.
* Added a bottom status bar: active file path, Saved/Unsaved badge, mode, Markdown, UTF-8, LF, and Local only metadata.
* Adopted Mantine theme system for colors, dark mode, font, spacing, and radii; removed the manual `data-theme` dark mode approach.
* Removed Source mode (Rich is the default editing mode).
* Removed Markdown file creation and rename from the UI shell (server APIs remain).
* Removed the collapsible explorer sidebar and the resizable outline panel.

## 0.3.0

* Updated package metadata to MIT license.
* Consolidated editor view controls, added theme settings, and bumped the visible app version.

## 0.2.0

* Added a visible version badge beside the Wikied title in the top bar.
* Added built-in Preview style presets: Default, GitHub, Docs, Print, and Minimal.
* Added heading search to the document outline.
* Made the outline panel resizable from its left edge.
* Kept the outline pinned to the right-side editor panel while resizing and switching Preview styles.
* Updated package metadata with author `abudhahir`.

## 0.1.0

* Initial local Markdown editor package.
* Added the `wikied` CLI, localhost Express server, bundled React app, file tree, Rich/Source/Preview modes, Mermaid preview, Markdown create/rename, recent files, autosave support, and server-side path safety.