Skip to content

Commit 046faa4

Browse files
author
Tim Sinaeve
committed
chore: release v0.8.3
1 parent 7b8ad20 commit 046faa4

12 files changed

Lines changed: 673 additions & 43 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ DocForge is a desktop application designed to streamline the process of creating
88
- **Integrated Command Palette:** Quickly access all core functions from a central search bar, including editor actions such as formatting, locking, AI refinement, and emoji generation.
99
- **Hierarchical Document Organization:** Organize your documents in a familiar folder structure. Create nested subfolders, duplicate items, and use drag-and-drop to rearrange your workspace or import files from your computer.
1010
- **Clipboard Capture:** Turn whatever is on your system clipboard into a document in one step—DocForge classifies the contents automatically, generates a title with your connected LLM when possible, and prompts you to restore permissions if clipboard access is blocked.
11-
- **Full Context Menu & Keyboard Navigation:** Navigate and manage items using a complete right-click context menu or use only the keyboard for a faster workflow.
11+
- **Hover-First Tree Actions:** Keep document titles readable while revealing quick actions—duplicate, export, lock, etc.—only when you hover or focus each row in the sidebar.
12+
- **Intelligent Context Menu & Delete Protection:** Use a custom right-click menu in the editor for text formatting and table manipulation, backed by a safety plugin that prevents accidental deletions of your entire document.
1213
- **Universal Monaco Editor:** A powerful, VS Code-like editor is used for all document types, including Markdown, HTML, and various source code files, with syntax highlighting and code folding.
1314
- **One-Click Formatting:** Clean up Markdown, JSON, JavaScript, and TypeScript documents directly from the editor toolbar.
1415
- **Cancel Unsaved Changes:** Instantly roll a document back to its last saved state with a dedicated toolbar button when an experiment goes sideways.

VERSION_LOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Version Log
22

3+
## v0.8.3 - The Safety & Context Menu Update
4+
5+
This release brings an intelligent context menu to the document editor and introduces deletion safeguards so your content stays secure during rapid editing.
6+
7+
### ✨ Features
8+
9+
- **Intelligent Context Menu**: Added a custom right-click menu to the editor that adapts to your selection. It intelligently provides text formatting and link options for text, dedicated controls for selected images, and rich table manipulation (insert/delete rows and columns) when editing tables.
10+
- **Deletion Protection**: Intercepts structural delete and backspace commands that would otherwise accidentally erase your entire document or empty the editor unexpectedly.
11+
12+
### 🛠 Improvements
13+
14+
- Added keyboard shortcut hints to the editor toolbar tooltips (e.g., Undo (Ctrl+Z), Bold (Ctrl+B), Insert Link (Ctrl+K)) so you can discover standard hotkeys without leaving the composing window.
15+
- Switched the HTML and image preview zoom mechanism to use native CSS zoom (`zoom:`). This improves alignment and removes the nested scrollbars introduced by the previous pan container.
16+
317
## v0.8.2 - The Antigravity Styling Update
418

519
### 🛠 Improvements

components/RichTextEditor.tsx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ import {
3434
import { $getRoot } from 'lexical';
3535

3636
import { ImageNode } from './rich-text/ImageNode';
37-
import ContextMenuComponent, { type MenuItem as ContextMenuItem } from './ContextMenu';
3837
import { ToolbarPlugin } from './rich-text/ToolbarPlugin';
3938
import { TableColumnResizePlugin } from './rich-text/TableColumnResizePlugin';
39+
import { ContextMenuPlugin } from './rich-text/ContextMenuPlugin';
40+
import { DeleteProtectionPlugin } from './rich-text/DeleteProtectionPlugin';
4041
import type { ToolbarButtonConfig } from './rich-text/types';
4142

4243
export interface RichTextEditorHandle {
@@ -54,12 +55,6 @@ interface RichTextEditorProps {
5455
onFocusChange?: (hasFocus: boolean) => void;
5556
}
5657

57-
interface ContextMenuState {
58-
x: number;
59-
y: number;
60-
visible: boolean;
61-
}
62-
6358
const RICH_TEXT_THEME = {
6459
paragraph: 'mb-3 text-base leading-7 text-text-main',
6560
heading: {
@@ -99,8 +94,6 @@ const RichTextEditor = forwardRef<RichTextEditorHandle, RichTextEditorProps>(
9994
const [editorRef, setEditorRef] = useState<any>(null);
10095
const scrollContainerRef = useRef<HTMLDivElement>(null);
10196
const [toolbarActions, setToolbarActions] = useState<ToolbarButtonConfig[]>([]);
102-
const [contextMenu, setContextMenu] = useState<ContextMenuState>({ x: 0, y: 0, visible: false });
103-
const [contextMenuItems, setContextMenuItems] = useState<ContextMenuItem[]>([]);
10497

10598
// Track if we are currently processing an external HTML update to avoid loops
10699
const isUpdatingFromServer = useRef(false);
@@ -242,9 +235,11 @@ const RichTextEditor = forwardRef<RichTextEditorHandle, RichTextEditorProps>(
242235
<EditorRefPlugin setEditorRef={setEditorRef} />
243236
{/* Focus Handler */}
244237
<FocusPlugin onFocusChange={onFocusChange} />
238+
{/* Context Menu */}
239+
<ContextMenuPlugin readOnly={readOnly} />
240+
{/* Delete Protection */}
241+
<DeleteProtectionPlugin />
245242
</LexicalComposer>
246-
247-
{/* Context Menu would go here if we kept it enabled */}
248243
</div>
249244
</div>
250245
);

0 commit comments

Comments
 (0)