AcadeDoc/packages/editor-ext
Olivier Lambert f5d794220e
fix: resolve keystroke input being swallowed after link in Firefox (#1922)
* fix: resolve keystroke input being swallowed after link in Firefox

In Firefox, when the cursor is at the right boundary of a link mark,
contenteditable inserts new text inside the <a> element. ProseMirror
then rejects the DOM mutation because the link mark has inclusive: false,
causing keystrokes to be silently swallowed. Unlike Chrome, Firefox also
does not fire ProseMirror's handleTextInput callback in this state.

This adds a ProseMirror plugin that intercepts printable character
keydowns at link mark boundaries and programmatically inserts the text
without the link mark, bypassing Firefox's native contenteditable
behavior entirely.

Fixes #1773

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: resolve keystroke input being swallowed before a link in Firefox

Extend the linkBoundaryInput plugin to also handle the left boundary
of links, where the cursor is just before a link (e.g. at the start
of a line). Firefox inserts text inside the <a> element in this case
too, causing ProseMirror to reject the mutation.

Fixes #1748
2026-03-03 17:19:03 +00:00
..
src fix: resolve keystroke input being swallowed after link in Firefox (#1922) 2026-03-03 17:19:03 +00:00
.gitignore * add new tiptap editor extension monorepo package 2024-01-14 23:05:41 +01:00
.prettierrc feat(export): add export loading state and copy as markdown (#1867) 2026-01-24 23:30:17 +00:00
package.json feat: page history diff (#1891) 2026-02-03 11:55:20 -08:00
README.md * add new tiptap editor extension monorepo package 2024-01-14 23:05:41 +01:00
tsconfig.json feat: Tiptap V3 migration (#1854) 2026-01-24 20:41:08 +00:00

editor extensions

Tiptap editor extensions