Releases: xdan/jodit
Releases · xdan/jodit
Release list
4.13.22
🐛 Bug Fix
- Image processor: an image with a percent-encoded data URI (
<img src="data:image/svg+xml,%3Csvg...">) madedataURItoBlobcallatobon a payload that is not base64, so the editor threwInvalidCharacterErrorout of the change handler — on every change while such an image was in the content. Percent-encoded payloads are now decoded as well, and a data URI that still cannot be decoded leaves the image untouched instead of breaking the editor. The plugin's private copy of the helper is gone; both paths sharemodules/uploader/helpers/data-uri-to-blob.
4.13.21
🐛 Bug Fix
- Helpers: when the caret line can only be revealed by scrolling the page itself (e.g. the editor is half-visible in a small viewport),
scrollIntoViewIfNeededfell back toscrollIntoView()with the defaultblock: 'start'— the element was aligned to the viewport top and the page jumped as if PageDown was pressed on every Enter. The fallback now usesblock: 'nearest'and scrolls the minimal distance, one line at a time, like a native textarea. Reported by Ralf Pichler (Uniquare, Jodit OEM).
4.13.20
🐛 Bug Fix
- Search: the next/previous/close/replace buttons of the search bar could be reached with Tab but did nothing on Enter/Space — the handlers listened only to
pointerdown, while keyboard activation of a native button firesclick. Keyboard-initiated clicks (detail === 0, which also covers screen readers) are now handled; pointer behaviour is unchanged. Fixes #1440.
4.13.19
🐛 Bug Fix
- Accessibility / toolbar: split-button dropdown triggers (list type, color, etc.) now participate in Tab navigation and open with Enter/Space, as their
role="button"promises. Thanks @Sakshamm-Goyal (#1420, fixes #1419). - Accessibility / table: the table-size picker is exposed as an ARIA grid with a single Tab stop — move the active cell with bounded arrow keys (the size preview stays in sync), insert the table with Enter, close the picker with Escape. Mouse and touch keep the same insertion path. Thanks @Sakshamm-Goyal (#1421, fixes #1418).
🏠 Internal
- CI: the greeting workflow failed on every new issue/PR —
actions/first-interactionv3 renamed its inputs to snake_case (issue_message/pr_message/repo_token). - Dependencies (dev/build only):
webpack-cli7.2.2,less4.8.1,@swc/core1.15.47,@playwright/test1.62.1,js-yaml4.3.1,@tony.ganchev/eslint-plugin-header3.4.4,mini-css-extract-plugin2.10.2,axios1.19.0,dotenv17.4.2,serialize-javascript7.0.7 (#1424–#1439); GitHub Actions:actions/checkoutv7,actions/stalev11,actions/labelerv7,softprops/action-gh-releasev3. The@eslint/js10 bump was declined — it pairs with ESLint 10 while the repo is on ESLint 9 (#1432).
4.13.18
🐛 Bug Fix
- Helpers/
inView:getBoundingClientRectreturns fractional values while scroll offsets are integers, so a container scrolled right up to its limit could still appear to clip the element by a fraction of a pixel —scrollIntoViewIfNeededthen needlessly fell through toelm.scrollIntoView()and scrolled the whole page (breaking e.g. Perfect Scrollbar integrations). Elements clipped by less than a pixel are now treated as visible. Reported by Ralf Pichler (Uniquare, Jodit OEM).
4.13.17
🐛 Bug Fix
- Uploader: with
uploader.insertImageAsBase64URI: truethefilesWereUploadedevent was never fired — images read as data-URI skip the server branch ofsendFiles, which was the only place emitting the event. Now it also fires once all dropped/pasted images have been read and inserted as base64. Reported by Ralf Pichler (Uniquare, Jodit OEM).
4.13.16
🐛 Bug Fix
- Enter: pressing Enter with the caret at the bottom of a fixed-height (scrollable) editor left the new line clipped below the visible area — the view only caught up once you started typing. Three stacked causes: after splitting a paragraph the scroll targeted the left (already visible) half instead of the block that keeps the caret;
inViewtreated a line clipped by the container's bottom edge as visible; and Chrome's scroll anchoring shifted the scroll position during the split. The editor now keeps the scroll stable across the split and follows the caret, scrolling the minimal distance (new line aligned to the bottom edge instead of jumping to the top). Fixes #1300.
4.13.15
🚀 New Feature
- Uploader / insert popup: new option
uploader.showTabInFileSelector(defaulttrue). Set it tofalseto hide the Upload (drag-and-drop) tab in the image/file insert popup while keeping the uploader configured for the file browser — previously any configured uploader forced the tab to appear. Fixes #1406.
4.13.14
4.13.13
🚀 New Feature
- Color picker: the palette popup now has a text input for the color value — paste or type a hex code (
#FF0000,FF0000, short#F00) or anrgb()/rgba()value and press Enter (or blur) to apply it. Previously the only way to pick a non-palette color was the native browser picker. Invalid values are ignored. Requested in jodit-react#310.
🏠 Internal
- Regression tests: applying styles/commands (
color,fontsize,bold) to a fully selected list hits every<li>, not just one (reported in jodit-react#313 against an older jodit; not reproducible on current code).