├── .nvmrc ├── docker ├── uninstall ├── build ├── start ├── test └── install ├── src ├── core │ ├── ui │ │ ├── progress-bar │ │ │ └── README.md │ │ ├── button │ │ │ ├── README.md │ │ │ ├── tooltip │ │ │ │ └── README.md │ │ │ └── index.ts │ │ ├── group │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ ├── spacer.ts │ │ │ └── separator.ts │ │ ├── form │ │ │ ├── inputs │ │ │ │ ├── area │ │ │ │ │ └── area.less │ │ │ │ ├── file │ │ │ │ │ └── file.less │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── validators │ │ │ │ └── index.ts │ │ │ ├── block │ │ │ │ └── block.less │ │ │ └── README.md │ │ ├── popup │ │ │ ├── README.md │ │ │ └── index.ts │ │ └── index.ts │ ├── async │ │ └── index.ts │ ├── create │ │ └── index.ts │ ├── request │ │ ├── README.md │ │ └── index.ts │ ├── helpers │ │ ├── async │ │ │ └── index.ts │ │ ├── color │ │ │ └── index.ts │ │ ├── utils │ │ │ ├── error │ │ │ │ ├── index.ts │ │ │ │ └── errors │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── options-error.ts │ │ │ │ │ └── connection-error.ts │ │ │ └── complete-url.ts │ │ ├── checker │ │ │ ├── is-boolean.ts │ │ │ ├── is-window.ts │ │ │ ├── is-array.ts │ │ │ ├── is-promise.ts │ │ │ ├── is-function.ts │ │ │ ├── is-number.ts │ │ │ ├── is-void.ts │ │ │ ├── is-license.ts │ │ │ ├── is-valid-name.ts │ │ │ ├── is-abort-error.ts │ │ │ ├── is-html.ts │ │ │ ├── is-equal.ts │ │ │ └── is-set.ts │ │ ├── array │ │ │ └── index.ts │ │ ├── html │ │ │ ├── nl2br.ts │ │ │ ├── index.ts │ │ │ └── htmlspecialchars.ts │ │ ├── size │ │ │ └── index.ts │ │ ├── string │ │ │ ├── index.ts │ │ │ ├── ucfirst.ts │ │ │ └── camel-case.ts │ │ ├── normalize │ │ │ ├── normalize-url.ts │ │ │ ├── normalize-size.ts │ │ │ └── index.ts │ │ └── index.ts │ ├── dom │ │ └── index.ts │ ├── plugin │ │ ├── index.ts │ │ ├── helpers │ │ │ └── utils.ts │ │ └── interface.ts │ ├── traits │ │ └── index.ts │ ├── component │ │ ├── index.ts │ │ └── statuses.ts │ ├── selection │ │ ├── index.ts │ │ └── style │ │ │ └── api │ │ │ └── is-inside-invisible-element.ts │ ├── storage │ │ ├── index.ts │ │ └── README.md │ ├── decorators │ │ ├── nonenumerable │ │ │ └── README.md │ │ ├── hook │ │ │ └── README.md │ │ ├── idle │ │ │ └── README.md │ │ ├── persistent │ │ │ └── README.md │ │ └── wait │ │ │ └── README.md │ └── event-emitter │ │ └── index.ts ├── modules │ ├── README.md │ ├── toolbar │ │ ├── README.md │ │ ├── button │ │ │ ├── README.md │ │ │ ├── index.ts │ │ │ ├── select │ │ │ │ └── select.less │ │ │ └── content.less │ │ └── collection │ │ │ └── README.md │ ├── widget │ │ ├── README.md │ │ ├── widget.less │ │ ├── file-selector │ │ │ └── README.md │ │ ├── index.ts │ │ ├── tabs │ │ │ └── README.md │ │ └── color-picker │ │ │ └── README.md │ ├── messages │ │ └── messages.test.spec.ts-snapshots │ │ │ ├── Messages-screenshot-testing-works-1-firefox-linux.png │ │ │ ├── Messages-screenshot-testing-works-1-webkit-linux.png │ │ │ ├── Messages-screenshot-testing-works-1-chromium-darwin.png │ │ │ └── Messages-screenshot-testing-works-1-chromium-linux.png │ ├── dialog │ │ ├── dialog.test.spec.ts-snapshots │ │ │ ├── Dialog-screenshot-testing-Open-alert-dialog-works-1-firefox-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-alert-dialog-works-1-webkit-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-prompt-dialog-works-1-webkit-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-alert-dialog-works-1-chromium-darwin.png │ │ │ ├── Dialog-screenshot-testing-Open-alert-dialog-works-1-chromium-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-confirm-dialog-works-1-chromium-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-confirm-dialog-works-1-firefox-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-confirm-dialog-works-1-webkit-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-prompt-dialog-works-1-chromium-darwin.png │ │ │ ├── Dialog-screenshot-testing-Open-prompt-dialog-works-1-chromium-linux.png │ │ │ ├── Dialog-screenshot-testing-Open-prompt-dialog-works-1-firefox-linux.png │ │ │ └── Dialog-screenshot-testing-Open-confirm-dialog-works-1-chromium-darwin.png │ │ └── index.ts │ ├── file-browser │ │ ├── file-browser.test.spec.ts-snapshots │ │ │ ├── Filebrowser-screenshot-testing-Open-filebrowser-works-1-webkit-linux.png │ │ │ ├── Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-chromium-linux.png │ │ │ ├── Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-firefox-linux.png │ │ │ ├── Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-webkit-linux.png │ │ │ ├── Filebrowser-screenshot-testing-Open-filebrowser-works-1-chromium-darwin.png │ │ │ ├── Filebrowser-screenshot-testing-Open-filebrowser-works-1-chromium-linux.png │ │ │ ├── Filebrowser-screenshot-testing-Open-filebrowser-works-1-firefox-linux.png │ │ │ └── Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-chromium-darwin.png │ │ ├── styles │ │ │ └── index.less │ │ ├── ui │ │ │ ├── index.ts │ │ │ ├── tree │ │ │ │ └── tree.ts │ │ │ └── files │ │ │ │ └── files.ts │ │ └── index.ts │ ├── image-editor │ │ ├── image-editor.test.spec.ts-snapshots │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-works-1-firefox-linux.png │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-works-1-webkit-linux.png │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-works-1-chromium-darwin.png │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-works-1-chromium-linux.png │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-chromium-linux.png │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-firefox-linux.png │ │ │ ├── Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-webkit-linux.png │ │ │ └── Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-chromium-darwin.png │ │ └── icons │ │ │ ├── crop.svg │ │ │ └── resize.svg │ └── status-bar │ │ └── README.md ├── styles │ ├── icons │ │ ├── loader.png │ │ ├── ok.svg │ │ ├── dots.svg │ │ ├── chevron.svg │ │ ├── folder.svg │ │ ├── cancel.svg │ │ ├── file.svg │ │ ├── angle-down.svg │ │ ├── angle-left.svg │ │ ├── angle-right.svg │ │ ├── angle-up.svg │ │ ├── lock.svg │ │ ├── plus.svg │ │ ├── valign.svg │ │ ├── pencil.svg │ │ ├── unlock.svg │ │ ├── pins.svg │ │ ├── right.svg │ │ ├── center.svg │ │ ├── left.svg │ │ ├── info-circle.svg │ │ ├── upload.svg │ │ ├── eye.svg │ │ ├── save.svg │ │ ├── check.svg │ │ ├── resize-handler.svg │ │ ├── update.svg │ │ └── bin.svg │ ├── themes │ │ └── theme.test.spec.ts-snapshots │ │ │ ├── Theme-screenshot-testing-should-render-usual-theme-1-webkit-linux.png │ │ │ ├── Theme-screenshot-testing-should-render-usual-theme-1-chromium-linux.png │ │ │ ├── Theme-screenshot-testing-should-render-usual-theme-1-firefox-linux.png │ │ │ ├── Theme-screenshot-testing-should-render-usual-theme-1-chromium-darwin.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-webkit-linux.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-chromium-linux.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-firefox-linux.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-chromium-darwin.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-chromium-linux.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-firefox-linux.png │ │ │ ├── Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-webkit-linux.png │ │ │ └── Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-chromium-darwin.png │ └── index.less ├── plugins │ ├── preview │ │ └── preview.less │ ├── table │ │ └── table.common.less │ ├── hr │ │ ├── hr.svg │ │ └── hr.test.js │ ├── class-span │ │ └── class-span.svg │ ├── link │ │ └── link.test.spec.ts-snapshots │ │ │ ├── Link-popup-screenshot-testing-Open-link-popup-works-1-firefox-linux.png │ │ │ ├── Link-popup-screenshot-testing-Open-link-popup-works-1-webkit-linux.png │ │ │ ├── Link-popup-screenshot-testing-Open-link-popup-works-1-chromium-darwin.png │ │ │ └── Link-popup-screenshot-testing-Open-link-popup-works-1-chromium-linux.png │ ├── search │ │ ├── search.test.spec.ts-snapshots │ │ │ ├── Search-screenshot-testing-Open-search-popup-works-1-firefox-linux.png │ │ │ ├── Search-screenshot-testing-Open-search-popup-works-1-webkit-linux.png │ │ │ ├── Search-screenshot-testing-Open-search-popup-works-1-chromium-darwin.png │ │ │ ├── Search-screenshot-testing-Open-search-popup-works-1-chromium-linux.png │ │ │ ├── Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-webkit-linux.png │ │ │ ├── Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-chromium-linux.png │ │ │ ├── Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-firefox-linux.png │ │ │ └── Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-chromium-darwin.png │ │ └── helpers │ │ │ └── index.ts │ ├── color │ │ ├── color.test.spec.ts-snapshots │ │ │ ├── Color-picker-screenshot-testing-Open-color-picker-works-1-webkit-linux.png │ │ │ ├── Color-picker-screenshot-testing-Open-color-picker-works-1-chromium-linux.png │ │ │ ├── Color-picker-screenshot-testing-Open-color-picker-works-1-firefox-linux.png │ │ │ └── Color-picker-screenshot-testing-Open-color-picker-works-1-chromium-darwin.png │ │ └── brush.svg │ ├── image │ │ ├── image.test.spec.ts-snapshots │ │ │ ├── Image-popup-screenshot-testing-Open-image-popup-works-1-chromium-linux.png │ │ │ ├── Image-popup-screenshot-testing-Open-image-popup-works-1-firefox-linux.png │ │ │ ├── Image-popup-screenshot-testing-Open-image-popup-works-1-webkit-linux.png │ │ │ └── Image-popup-screenshot-testing-Open-image-popup-works-1-chromium-darwin.png │ │ └── image.svg │ ├── symbols │ │ ├── symbols.test.spec.ts-snapshots │ │ │ ├── Symbols-screenshot-testing-Open-symbols-dialog-works-1-firefox-linux.png │ │ │ ├── Symbols-screenshot-testing-Open-symbols-dialog-works-1-webkit-linux.png │ │ │ ├── Symbols-screenshot-testing-Open-symbols-dialog-works-1-chromium-darwin.png │ │ │ └── Symbols-screenshot-testing-Open-symbols-dialog-works-1-chromium-linux.png │ │ └── langs │ │ │ ├── ar.js │ │ │ ├── fa.js │ │ │ ├── ko.js │ │ │ ├── cs_cz.js │ │ │ ├── de.js │ │ │ ├── es.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ ├── he.js │ │ │ ├── hu.js │ │ │ ├── id.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── mn.js │ │ │ ├── nl.js │ │ │ ├── pl.js │ │ │ ├── ru.js │ │ │ ├── tr.js │ │ │ ├── ua.js │ │ │ ├── zh_cn.js │ │ │ ├── zh_tw.js │ │ │ └── pt_br.js │ ├── spellcheck │ │ ├── spellcheck.svg │ │ └── langs │ │ │ ├── ja.js │ │ │ ├── ko.js │ │ │ ├── zh_cn.js │ │ │ ├── zh_tw.js │ │ │ ├── he.js │ │ │ ├── id.js │ │ │ ├── no.js │ │ │ ├── ar.js │ │ │ ├── fa.js │ │ │ ├── nl.js │ │ │ ├── tr.js │ │ │ ├── cs_cz.js │ │ │ ├── de.js │ │ │ ├── es.js │ │ │ ├── hu.js │ │ │ ├── it.js │ │ │ ├── mn.js │ │ │ ├── pl.js │ │ │ ├── ru.js │ │ │ ├── ua.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ └── pt_br.js │ ├── fullsize │ │ └── icons │ │ │ ├── fullsize.svg │ │ │ └── shrink.svg │ ├── ai-assistant │ │ ├── ai-assistant.test.spec.ts-snapshots │ │ │ ├── AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-chromium-linux.png │ │ │ ├── AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-firefox-linux.png │ │ │ ├── AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-webkit-linux.png │ │ │ └── AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-chromium-darwin.png │ │ └── langs │ │ │ ├── index.ts │ │ │ └── en.js │ ├── clean-html │ │ ├── eraser.svg │ │ └── helpers │ │ │ ├── index.ts │ │ │ └── visitor │ │ │ └── filters │ │ │ └── index.ts │ ├── image-properties │ │ └── image-properties.test.spec.ts-snapshots │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-works-1-webkit-linux.png │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-works-1-chromium-linux.png │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-works-1-firefox-linux.png │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-works-1-chromium-darwin.png │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-firefox-linux.png │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-webkit-linux.png │ │ │ ├── Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-chromium-darwin.png │ │ │ └── Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-chromium-linux.png │ ├── line-height │ │ ├── langs │ │ │ ├── ko.js │ │ │ ├── fa.js │ │ │ ├── he.js │ │ │ ├── ja.js │ │ │ ├── zh_cn.js │ │ │ ├── zh_tw.js │ │ │ ├── ar.js │ │ │ ├── cs_cz.js │ │ │ ├── de.js │ │ │ ├── fi.js │ │ │ ├── id.js │ │ │ ├── it.js │ │ │ ├── mn.js │ │ │ ├── nl.js │ │ │ ├── pl.js │ │ │ ├── ru.js │ │ │ ├── ua.js │ │ │ ├── es.js │ │ │ ├── fr.js │ │ │ ├── hu.js │ │ │ ├── pt_br.js │ │ │ └── tr.js │ │ └── line-height.svg │ ├── copy-format │ │ ├── langs │ │ │ ├── ko.js │ │ │ ├── zh_cn.js │ │ │ ├── zh_tw.js │ │ │ ├── ar.js │ │ │ ├── es.js │ │ │ ├── fa.js │ │ │ ├── he.js │ │ │ ├── id.js │ │ │ ├── ja.js │ │ │ ├── mn.js │ │ │ ├── pl.js │ │ │ ├── cs_cz.js │ │ │ ├── de.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ ├── hu.js │ │ │ ├── it.js │ │ │ ├── nl.js │ │ │ ├── pt_br.js │ │ │ ├── ru.js │ │ │ └── tr.js │ │ └── copy-format.svg │ ├── video │ │ └── video.svg │ ├── plugins.test.js │ ├── tab │ │ ├── cases │ │ │ └── index.ts │ │ └── config.ts │ ├── format-block │ │ ├── CHANGELOG.md │ │ └── paragraph.svg │ ├── README.md │ ├── clipboard │ │ └── icons │ │ │ └── paste.svg │ ├── dtd │ │ ├── after-insert │ │ │ └── index.ts │ │ └── before-insert │ │ │ └── index.ts │ ├── speech-recognize │ │ ├── constants.ts │ │ ├── speech-recognize.svg │ │ ├── langs │ │ │ ├── ja.js │ │ │ ├── zh_cn.js │ │ │ ├── ko.js │ │ │ ├── zh_tw.js │ │ │ ├── he.js │ │ │ ├── fa.js │ │ │ ├── tr.js │ │ │ ├── fi.js │ │ │ ├── hu.js │ │ │ ├── id.js │ │ │ ├── mn.js │ │ │ ├── ar.js │ │ │ ├── no.js │ │ │ ├── cs_cz.js │ │ │ ├── de.js │ │ │ ├── pl.js │ │ │ ├── it.js │ │ │ ├── nl.js │ │ │ ├── pt_br.js │ │ │ ├── es.js │ │ │ ├── fr.js │ │ │ ├── ua.js │ │ │ └── ru.js │ │ └── helpers │ │ │ └── exec-spell-command.ts │ ├── inline-popup │ │ ├── inline-popup.less │ │ ├── icons │ │ │ ├── splitv.svg │ │ │ ├── splitg.svg │ │ │ └── addrow.svg │ │ └── config │ │ │ └── items │ │ │ └── iframe.ts │ ├── add-new-line │ │ └── enter.svg │ ├── source │ │ ├── editor │ │ │ └── engines │ │ │ │ └── index.ts │ │ └── source.svg │ ├── justify │ │ └── justify.svg │ ├── print │ │ └── print.svg │ ├── delete │ │ └── interface.ts │ ├── redo-undo │ │ └── icons │ │ │ ├── redo.svg │ │ │ └── undo.svg │ ├── xpath │ │ └── config.ts │ ├── about │ │ ├── about.svg │ │ └── about.less │ ├── bold │ │ └── icons │ │ │ ├── italic.svg │ │ │ ├── subscript.svg │ │ │ └── superscript.svg │ ├── resize-cells │ │ ├── config.ts │ │ └── resize-cells.less │ ├── select-cells │ │ └── config.ts │ ├── resizer │ │ └── resizer.common.less │ ├── resize-handler │ │ └── config.ts │ ├── placeholder │ │ └── placeholder.less │ ├── drag-and-drop-element │ │ └── config.ts │ ├── sticky │ │ └── sticky.less │ ├── font │ │ └── icons │ │ │ └── font.svg │ ├── enter │ │ └── helpers │ │ │ ├── has-previous-block.ts │ │ │ └── index.ts │ ├── size │ │ └── size.less │ └── image-processor │ │ └── config.ts ├── header.js ├── langs │ ├── keys.js │ └── en.js ├── types │ ├── form.d.ts │ ├── core.d.ts │ └── storage.d.ts └── typings.d.ts ├── test ├── tests │ ├── artio.jpg │ └── browser-module.js ├── screenshots │ ├── custom.css │ └── Dockerfile └── test.index.html ├── examples └── assets │ ├── icon.png │ ├── logo.png │ └── download.jpg ├── .npmrc ├── tests └── smoke.spec.ts-snapshots │ └── Smoke-test-1-chromium-darwin.png ├── .prettierrc.json ├── docs └── _includes │ ├── cdn.md │ ├── example1.md │ ├── list1.md │ └── example2.md ├── .gitignore ├── webpack.config.ts ├── tools ├── minimizer │ ├── index.ts │ └── css.ts ├── tsconfig.json ├── plugins │ ├── banner.ts │ └── extract-css.ts ├── rules │ ├── css.ts │ └── svg.ts ├── external │ ├── exclude-utils.ts │ └── index.ts ├── loaders │ └── css-variables-prefixes.ts └── utils │ └── filename.ts ├── make.js ├── .editorconfig ├── .github ├── PULL_REQUEST_TEMPLATE.md ├── workflows │ ├── manual.yml │ ├── docs.yml │ ├── xdsoft.yml │ └── tests.yml └── ISSUE_TEMPLATE.md └── SECURITY.md /.nvmrc: -------------------------------------------------------------------------------- 1 | 23 2 | -------------------------------------------------------------------------------- /docker/uninstall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker rmi jodit 4 | -------------------------------------------------------------------------------- /src/core/ui/progress-bar/README.md: -------------------------------------------------------------------------------- 1 | # Progress Bar UI element 2 | -------------------------------------------------------------------------------- /src/modules/README.md: -------------------------------------------------------------------------------- 1 | # Jodit modules 2 | 3 | Jodit is a modular library. 4 | -------------------------------------------------------------------------------- /test/tests/artio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/test/tests/artio.jpg -------------------------------------------------------------------------------- /src/core/ui/button/README.md: -------------------------------------------------------------------------------- 1 | # Button UI Element 2 | 3 | Component for creating buttons. 4 | -------------------------------------------------------------------------------- /examples/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/examples/assets/icon.png -------------------------------------------------------------------------------- /examples/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/examples/assets/logo.png -------------------------------------------------------------------------------- /examples/assets/download.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/examples/assets/download.jpg -------------------------------------------------------------------------------- /src/styles/icons/loader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/icons/loader.png -------------------------------------------------------------------------------- /src/core/ui/button/tooltip/README.md: -------------------------------------------------------------------------------- 1 | # Tooltip for buttons 2 | 3 | Show special tooltips for elements 4 | -------------------------------------------------------------------------------- /src/modules/toolbar/README.md: -------------------------------------------------------------------------------- 1 | # Toolbar 2 | 3 | This module provides a toolbar for the application. 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | //registry.npmjs.org/:_authToken=${NPM_TOKEN} 2 | registry=https://registry.npmjs.org/ 3 | always-auth=true -------------------------------------------------------------------------------- /docker/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run --rm -v $PWD/..:/app --user jodit jodit bash -c "npm run build" 4 | -------------------------------------------------------------------------------- /src/modules/widget/README.md: -------------------------------------------------------------------------------- 1 | # Jodit widgets 2 | 3 | Jodit has a lot of widgets that can be used in the editor. 4 | -------------------------------------------------------------------------------- /docker/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run --rm -v $PWD/..:/app -p 2000:2000 --user jodit jodit bash -c "npm start" 4 | -------------------------------------------------------------------------------- /docker/test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run --rm -v $PWD/..:/app -p 2002:2002 --user jodit jodit bash -c "npm test" 4 | -------------------------------------------------------------------------------- /src/modules/toolbar/button/README.md: -------------------------------------------------------------------------------- 1 | # Toolbar button 2 | 3 | ## Description 4 | 5 | This module provides a toolbar button for the application. 6 | -------------------------------------------------------------------------------- /src/styles/icons/ok.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/core/ui/group/README.md: -------------------------------------------------------------------------------- 1 | # Group component 2 | 3 | Group component is a container for other components. It can be used to group buttons in the toolbar. 4 | -------------------------------------------------------------------------------- /src/plugins/preview/preview.less: -------------------------------------------------------------------------------- 1 | @import (reference) '../../styles/mixins'; 2 | 3 | .jodit__preview-box { 4 | table { 5 | .jodit-tablet-style(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docker/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker build -t jodit . 4 | 5 | docker run --rm -v $PWD/..:/app --user jodit jodit bash -c "npm install && npm audit fix --force" 6 | -------------------------------------------------------------------------------- /src/modules/toolbar/collection/README.md: -------------------------------------------------------------------------------- 1 | # Toolbar collection list 2 | 3 | ## Description 4 | 5 | This module provides a toolbar collection list for the application. 6 | -------------------------------------------------------------------------------- /tests/smoke.spec.ts-snapshots/Smoke-test-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/tests/smoke.spec.ts-snapshots/Smoke-test-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/table/table.common.less: -------------------------------------------------------------------------------- 1 | @import (reference) '../../styles/mixins'; 2 | 3 | .jodit-context, 4 | .jodit-wysiwyg { 5 | table { 6 | .jodit-tablet-style(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "none", 3 | "tabWidth": 4, 4 | "useTabs": true, 5 | "semi": true, 6 | "singleQuote": true, 7 | "endOfLine": "lf", 8 | "arrowParens": "avoid" 9 | } 10 | -------------------------------------------------------------------------------- /docs/_includes/cdn.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/plugins/hr/hr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/styles/icons/dots.svg: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/header.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | -------------------------------------------------------------------------------- /src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/class-span/class-span.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/chevron.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/messages/messages.test.spec.ts-snapshots/Messages-screenshot-testing-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/styles/icons/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/styles/icons/cancel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-webkit-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/link/link.test.spec.ts-snapshots/Link-popup-screenshot-testing-Open-link-popup-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-chromium-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-firefox-linux.png -------------------------------------------------------------------------------- /src/langs/keys.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = {}; 8 | -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-alert-dialog-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-prompt-dialog-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/styles/icons/file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-should-render-usual-theme-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/dialog/dialog.test.spec.ts-snapshots/Dialog-screenshot-testing-Open-confirm-dialog-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image/image.test.spec.ts-snapshots/Image-popup-screenshot-testing-Open-image-popup-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/styles/icons/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/angle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/angle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/angle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /test/screenshots/custom.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Arial, serif !important; 3 | font-size: 16px; 4 | } 5 | 6 | * { 7 | box-shadow: none !important; 8 | font-family: Arial, serif !important; 9 | font-weight: normal !important; 10 | text-shadow: none !important; 11 | } 12 | -------------------------------------------------------------------------------- /src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/color/color.test.spec.ts-snapshots/Color-picker-screenshot-testing-Open-color-picker-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/spellcheck/spellcheck.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/symbols/symbols.test.spec.ts-snapshots/Symbols-screenshot-testing-Open-symbols-dialog-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-webkit-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-chromium-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-firefox-linux.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | node_modules/ 3 | yarn-error.log 4 | /test.html 5 | 6 | /fake.html 7 | 8 | .DS_Store 9 | .vs 10 | /types/ 11 | .npmrc 12 | 13 | build/* 14 | examples/build/ 15 | .env 16 | /test-results/ 17 | /playwright-report/ 18 | /blob-report/ 19 | /playwright/.cache/ 20 | stack.md 21 | -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-should-render-dark-theme-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/fullsize/icons/fullsize.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Open-filebrowser-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/search/search.test.spec.ts-snapshots/Search-screenshot-testing-Open-search-popup-Replace-popup-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/styles/icons/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/styles/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /webpack.config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | export { default } from './tools/webpack.config'; 8 | -------------------------------------------------------------------------------- /src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/file-browser/file-browser.test.spec.ts-snapshots/Filebrowser-screenshot-testing-Hide-edit-buttons-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/ai-assistant/ai-assistant.test.spec.ts-snapshots/AI-Assistant-screenshot-testing-Open-Assistant-dialog-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/core/ui/form/inputs/area/area.less: -------------------------------------------------------------------------------- 1 | @import (reference) '../input/input'; 2 | 3 | .jodit-ui-text-area { 4 | .jodit-ui-input(); 5 | 6 | width: 100%; 7 | 8 | &__wrapper { 9 | flex: 1; 10 | } 11 | 12 | &__input { 13 | height: 100%; 14 | min-height: 60px; 15 | padding: var(--padding-default); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'رمز' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'سمبل' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/ko.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: '기호' 9 | }; 10 | -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-chromium-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-firefox-linux.png -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/clean-html/eraser.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/cs_cz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'symbol' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/de.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Symbol' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/es.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Símbolo' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/fi.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Symbolit' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/fr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'caractère' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/he.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'תו מיוחד' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/hu.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Szimbólum' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/id.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'simbol' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/it.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Simbolo' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/ja.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'symbol' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/mn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'тэмдэгт' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/nl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'symbool' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/pl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'symbol' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/ru.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'символ' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/tr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Sembol' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/ua.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'символ' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/zh_cn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: '符号' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/zh_tw.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: '符號' 9 | }; 10 | -------------------------------------------------------------------------------- /src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/styles/themes/theme.test.spec.ts-snapshots/Theme-screenshot-testing-Dark-theme-Dialog-theme-should-render-with-same-theme-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-chromium-linux.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-firefox-linux.png -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-webkit-linux.png -------------------------------------------------------------------------------- /src/plugins/line-height/langs/ko.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': '선 높이' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/ja.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'スペルチェック' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/ko.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: '맞춤법 검사' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/zh_cn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: '拼写检查' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/zh_tw.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: '拼字檢查' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/symbols/langs/pt_br.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | symbols: 'Símbolo' 9 | }; 10 | -------------------------------------------------------------------------------- /src/styles/icons/valign.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/core/async/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module async 9 | */ 10 | 11 | export * from './async'; 12 | -------------------------------------------------------------------------------- /src/core/ui/popup/README.md: -------------------------------------------------------------------------------- 1 | # Popup 2 | 3 | The module is used to create pop-up windows next to interface elements. 4 | 5 | ```js 6 | const { Popup } = Jodit.modules; 7 | 8 | const popup = new Popup(jodit); 9 | popup.setContent('Hello world').open(() => ({ 10 | left: 100, 11 | top: 200 12 | })); 13 | 14 | popup.close(); 15 | ``` 16 | -------------------------------------------------------------------------------- /src/modules/file-browser/styles/index.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import url('file-browser'); 8 | @import url('preview'); 9 | -------------------------------------------------------------------------------- /src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/modules/image-editor/image-editor.test.spec.ts-snapshots/Image-editor-screenshot-testing-Open-image-editor-Crop-mode-Crop-mode-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/ko.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': '복사 형식' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/zh_cn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': '复制格式' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/zh_tw.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': '複製格式' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-chromium-linux.png -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/line-height/langs/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'ارتفاع خط' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/he.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'גובה שורה' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/ja.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'ラインの高さ' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/zh_cn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': '线高' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/zh_tw.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': '行高' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/he.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'בדיקת איות' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/id.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Spellchecking' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/no.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Stavekontroll' 9 | }; 10 | -------------------------------------------------------------------------------- /src/core/create/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module create 9 | */ 10 | 11 | export * from './create'; 12 | -------------------------------------------------------------------------------- /src/core/ui/popup/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/popup 9 | */ 10 | 11 | export * from './popup'; 12 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'نسخ التنسيق' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/es.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Copiar formato' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'کپی کردن قالب' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/he.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'העתק עיצוב' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/id.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'salin format' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/ja.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'copyformat' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/mn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Формат хуулах' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/pl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'format kopii' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-works-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/line-height/langs/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'ارتفاع الخط' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/cs_cz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Výška čáry' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/de.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Zeilenhöhe' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/fi.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Rivin korkeus' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/id.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Tinggi baris' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/it.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Altezza linea' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/mn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Зураасны өндөр' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/nl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Lijnhoogte' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/pl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Wysokość linii' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/ru.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Высота линии' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/ua.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Висота лінії' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'التدقيق الإملائي' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'غلطیابی املایی' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/nl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Spellingcontrole' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/tr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Yazım denetimi' 9 | }; 10 | -------------------------------------------------------------------------------- /test/tests/browser-module.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | // Needed for the synchronous-promise@2.0.17 module 8 | window.module = {}; 9 | -------------------------------------------------------------------------------- /src/core/request/README.md: -------------------------------------------------------------------------------- 1 | # Request 2 | 3 | The module is responsible for sending requests over the network: 4 | 5 | ```js 6 | const ajax = new Jodit.modules.Ajax(jodit, { 7 | url: 'https://xdsoft.net' 8 | }); 9 | 10 | ajax.send().then(resp => console.log(resp.text())); 11 | ``` 12 | 13 | The second argument can be settings [[AjaxOptions]] 14 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/cs_cz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Kopírovat formát' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/de.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Format kopierenт' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/fi.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Kopioi muotoilu' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/fr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Format de copie' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/hu.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Formátum másolás' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/it.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Copia il formato' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/nl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'opmaak kopiëren' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/pt_br.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Copiar formato' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/ru.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Копировать формат' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/copy-format/langs/tr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'copy-format': 'Kopyalama Biçimi' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/es.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Altura de la línea' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/fr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Hauteur de ligne' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/hu.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Vonal magassága' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/pt_br.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Altura da linha' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/line-height/langs/tr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Line height': 'Çizgi yüksekliği' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/cs_cz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Kontrola pravopisu' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/de.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Rechtschreibprüfung' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/es.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Corrección ortográfica' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/hu.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Helyesírás-ellenőrzés' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/it.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Controllo ortografico' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/mn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Дүрмийн алдаа шалгах' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/pl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Sprawdzanie pisowni' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/ru.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Проверка орфографии' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/ua.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Перевірка орфографії' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/fi.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Oikeinkirjoituksen tarkistus' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/fr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Vérification Orthographique' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/spellcheck/langs/pt_br.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | Spellcheck: 'Verificação ortográfica' 9 | }; 10 | -------------------------------------------------------------------------------- /src/plugins/video/video.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/plugins.test.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | describe('Test plugins', function () { 8 | getBox().style.width = 'auto'; 9 | }); 10 | -------------------------------------------------------------------------------- /src/styles/icons/pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/_includes/example1.md: -------------------------------------------------------------------------------- 1 | 2 | 16 |
17 | -------------------------------------------------------------------------------- /src/core/helpers/async/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/async 9 | */ 10 | 11 | export * from './set-timeout'; 12 | -------------------------------------------------------------------------------- /src/core/helpers/color/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/color 9 | */ 10 | 11 | export * from './color-to-hex'; 12 | -------------------------------------------------------------------------------- /src/core/ui/form/inputs/file/file.less: -------------------------------------------------------------------------------- 1 | .jodit-ui-file-input { 2 | position: relative; 3 | overflow: hidden; 4 | 5 | &__input { 6 | position: absolute; 7 | top: 0; 8 | right: 0; 9 | bottom: 0; 10 | padding: 0; 11 | margin: 0 calc(var(--padding-default) * -1) 0 0; 12 | cursor: pointer; 13 | font-size: 400px; 14 | opacity: 0; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/plugins/tab/cases/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/tab 9 | */ 10 | 11 | export * from './on-tab-inside-li'; 12 | -------------------------------------------------------------------------------- /src/core/dom/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module dom 9 | */ 10 | 11 | export * from './dom'; 12 | export * from './lazy-walker'; 13 | -------------------------------------------------------------------------------- /src/plugins/format-block/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | > **Tags:** 4 | > 5 | > - :boom: [Breaking Change] 6 | > - :rocket: [New Feature] 7 | > - :bug: [Bug Fix] 8 | > - :memo: [Documentation] 9 | > - :house: [Internal] 10 | > - :nail_care: [Polish] 11 | 12 | ## (2022-01-06) @xdan 13 | 14 | #### :rocket: New Feature 15 | 16 | Added PREtag to the list of items 17 | -------------------------------------------------------------------------------- /src/styles/icons/unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /tools/minimizer/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import css from './css'; 8 | import js from './js'; 9 | 10 | export const minimizer = [js, css]; 11 | -------------------------------------------------------------------------------- /src/core/request/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module request 9 | */ 10 | 11 | export * from './ajax'; 12 | export * from './response'; 13 | -------------------------------------------------------------------------------- /src/core/plugin/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugin 9 | */ 10 | 11 | export * from './plugin'; 12 | export * from './plugin-system'; 13 | -------------------------------------------------------------------------------- /src/modules/widget/widget.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | .jodit-widget { 8 | box-sizing: border-box; 9 | 10 | * { 11 | box-sizing: border-box; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/plugins/README.md: -------------------------------------------------------------------------------- 1 | # Plugins 2 | 3 | This directory contains the plugins that are used by the application. The plugins are used to extend the functionality of the application. 4 | 5 | Plugins are written in TypeScript and are compiled to JavaScript. The plugins can be loaded dynamically by the application. 6 | 7 | [More about plugin system](https://xdsoft.net/jodit/docs/plugin-system.html) 8 | -------------------------------------------------------------------------------- /src/plugins/clipboard/icons/paste.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /src/plugins/dtd/after-insert/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/dtd 9 | * @internal 10 | */ 11 | 12 | export * from './remove-extra-br'; 13 | -------------------------------------------------------------------------------- /src/styles/icons/pins.svg: -------------------------------------------------------------------------------- 1 | arrows -------------------------------------------------------------------------------- /src/core/helpers/utils/error/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/utils 9 | */ 10 | 11 | export * from './error'; 12 | export * from './errors/'; 13 | -------------------------------------------------------------------------------- /src/plugins/dtd/before-insert/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/dtd 9 | * @internal 10 | */ 11 | 12 | export * from './check-block-nesting'; 13 | -------------------------------------------------------------------------------- /src/core/traits/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module traits 9 | */ 10 | 11 | export * from './dlgs'; 12 | export * from './elms'; 13 | export * from './mods'; 14 | -------------------------------------------------------------------------------- /src/langs/en.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | // English 8 | 9 | module.exports = { 10 | 'Type something': 'Start writing...', 11 | pencil: 'Edit', 12 | Quadrate: 'Square' 13 | }; 14 | -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-firefox-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-firefox-linux.png -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-webkit-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-webkit-linux.png -------------------------------------------------------------------------------- /src/types/form.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module types 9 | */ 10 | 11 | export interface IFocusable { 12 | isFocused(): boolean; 13 | focus(): void; 14 | } 15 | -------------------------------------------------------------------------------- /src/typings.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module types 9 | */ 10 | 11 | declare module '*.svg' { 12 | const content: string; 13 | export default content; 14 | } 15 | -------------------------------------------------------------------------------- /docs/_includes/list1.md: -------------------------------------------------------------------------------- 1 | 2 | 17 |
18 | -------------------------------------------------------------------------------- /src/plugins/copy-format/copy-format.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /src/plugins/format-block/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-chromium-darwin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-chromium-darwin.png -------------------------------------------------------------------------------- /src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-chromium-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xdan/jodit/HEAD/src/plugins/image-properties/image-properties.test.spec.ts-snapshots/Image-properties-screenshot-testing-Open-image-properties-Second-tab-show-correct-image-styles-1-chromium-linux.png -------------------------------------------------------------------------------- /make.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | module.exports = { 7 | paths: [ 8 | './src/plugins/speech-recognize/', 9 | // './src/plugins/ai-assistent/', 10 | './src/plugins/debug/' 11 | ] 12 | }; 13 | -------------------------------------------------------------------------------- /src/core/ui/form/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/form 9 | */ 10 | 11 | export * from './block/block'; 12 | export * from './form'; 13 | export * from './inputs'; 14 | -------------------------------------------------------------------------------- /src/modules/file-browser/ui/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module modules/file-browser 9 | */ 10 | 11 | export * from './files/files'; 12 | export * from './tree/tree'; 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 2 7 | indent_style = tab 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [{LICENSE,.gitattributes,.gitignore,.npmignore,.eslintignore}] 12 | indent_style = space 13 | 14 | [*.{json,yml,md,yaspellerrc,bowerrc,babelrc,snakeskinrc,eslintrc,tsconfig,pzlrrc}] 15 | indent_style = space 16 | -------------------------------------------------------------------------------- /src/plugins/search/helpers/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/search 9 | */ 10 | 11 | export * from './highlight-text-ranges'; 12 | export * from './sentence-finder'; 13 | -------------------------------------------------------------------------------- /test/screenshots/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/playwright:v1.56.1-jammy 2 | 3 | # Set the working directory 4 | WORKDIR /app 5 | 6 | 7 | # Install dependencies 8 | RUN npm install playwright @playwright/test jodit mime-types 9 | 10 | RUN mkdir -p /app/ajax/libs/js-beautify/1.14.4/ 11 | RUN touch /app/ajax/libs/js-beautify/1.14.4/beautify.min.js 12 | RUN touch /app/ajax/libs/js-beautify/1.14.4/beautify-html.min.js -------------------------------------------------------------------------------- /src/core/component/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module component 9 | */ 10 | 11 | export * from './component'; 12 | export * from './statuses'; 13 | export * from './view-component'; 14 | -------------------------------------------------------------------------------- /src/core/ui/form/validators/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/form 9 | */ 10 | 11 | export * as inputValidators from './input'; 12 | export * as selectValidators from './select'; 13 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/constants.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/speech-recognize 9 | * @internal 10 | */ 11 | 12 | export const PII = 440; 13 | export const WARN = 940; 14 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/speech-recognize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /src/plugins/inline-popup/inline-popup.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import (reference) '../../styles/variables'; 8 | 9 | .jodit-popup-inline__container { 10 | z-index: 1300; 11 | min-width: 700px; 12 | } 13 | -------------------------------------------------------------------------------- /src/core/selection/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module selection 9 | */ 10 | 11 | export * from './selection'; 12 | export * from './style/commit-style'; 13 | export * from './style/constants'; 14 | -------------------------------------------------------------------------------- /src/core/ui/group/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/group 9 | */ 10 | 11 | export * from './group'; 12 | export * from './list'; 13 | export * from './separator'; 14 | export * from './spacer'; 15 | -------------------------------------------------------------------------------- /src/modules/toolbar/button/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module modules/toolbar/button 9 | */ 10 | 11 | export * from './button'; 12 | export * from './content'; 13 | export * from './select/select'; 14 | -------------------------------------------------------------------------------- /docs/_includes/example2.md: -------------------------------------------------------------------------------- 1 | 2 | 18 |
19 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-boolean.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | export function isBoolean(elm: unknown): elm is boolean { 12 | return typeof elm === 'boolean'; 13 | } 14 | -------------------------------------------------------------------------------- /src/modules/image-editor/icons/crop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/plugins/add-new-line/enter.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/ai-assistant/langs/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/ai-assistant 9 | */ 10 | 11 | import * as en from './en.js'; 12 | import * as es from './es.js'; 13 | 14 | export { en, es }; 15 | -------------------------------------------------------------------------------- /src/plugins/inline-popup/icons/splitv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /test/test.index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | Document 11 | 12 | 13 |

test 435

14 | 15 | 16 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 13 | 14 | Fixes # 15 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-window.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | export function isWindow(obj: object): boolean { 12 | return obj != null && obj === (obj as Window).window; 13 | } 14 | -------------------------------------------------------------------------------- /src/core/helpers/utils/error/errors/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/utils 9 | */ 10 | 11 | export * from './abort-error'; 12 | export * from './connection-error'; 13 | export * from './options-error'; 14 | -------------------------------------------------------------------------------- /src/modules/file-browser/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * [[include:modules/file-browser/README.md]] 9 | * @packageDocumentation 10 | * @module modules/file-browser 11 | */ 12 | 13 | export * from './file-browser'; 14 | -------------------------------------------------------------------------------- /src/plugins/inline-popup/icons/splitg.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/core/helpers/array/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/array 9 | */ 10 | 11 | export { asArray } from './as-array'; 12 | export { splitArray } from './split-array'; 13 | export { toArray } from './to-array'; 14 | -------------------------------------------------------------------------------- /src/core/storage/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module storage 9 | */ 10 | 11 | export * from './engines/local-storage-provider'; 12 | export * from './engines/memory-storage-provider'; 13 | export * from './storage'; 14 | -------------------------------------------------------------------------------- /src/modules/status-bar/README.md: -------------------------------------------------------------------------------- 1 | # Status bar 2 | 3 | This module provides a status bar for the application. 4 | Allowing to display a message to the user or additional information about the editor. 5 | 6 | ## How to use 7 | 8 | ```js 9 | const jodit = Jodit.make('#editor'); 10 | const elm = document.createElement('div'); 11 | elm.className = 'jodit-status-bar__element'; 12 | elm.innerHTML = 'Hello world!'; 13 | jodit.statusbar.append(elm); 14 | ``` 15 | -------------------------------------------------------------------------------- /src/plugins/fullsize/icons/shrink.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/plugins/line-height/line-height.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/ja.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: '改行', 9 | delete: '削除', 10 | space: 'スペース', 11 | 'Speech Recognize': '音声認識', 12 | Sound: '音', 13 | 'Interim Results': '中間結果' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/zh_cn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: '新行', 9 | delete: '删除', 10 | space: '空间', 11 | 'Speech Recognize': '言语识别', 12 | Sound: '声音', 13 | 'Interim Results': '中期业绩' 14 | }; 15 | -------------------------------------------------------------------------------- /src/core/decorators/nonenumerable/README.md: -------------------------------------------------------------------------------- 1 | # @nonenumerable 2 | 3 | Decorator that sets the enumerable property of a class field to false. 4 | 5 | ```ts 6 | import { nonenumerable } from 'jodit/core/decorators'; 7 | 8 | class SomeComponent { 9 | @nonenumerable 10 | somePrivateProp: number = 1; 11 | 12 | anotherPublicProp: number = 2; 13 | } 14 | 15 | const elm = new SomeComponent(); 16 | console.log(Object.keys(elm)); // ['anotherPublicProp'] 17 | ``` 18 | -------------------------------------------------------------------------------- /src/core/event-emitter/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module event-emitter 9 | */ 10 | 11 | export * from './event-emitter'; 12 | export * from './eventify'; 13 | export * from './observable'; 14 | export * from './store'; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/ko.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: '줄 바꿈', 9 | delete: '삭제', 10 | space: '공간', 11 | 'Speech Recognize': '음성 인식', 12 | Sound: '소리', 13 | 'Interim Results': '중간 결과' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/zh_tw.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: '換行', 9 | delete: '刪除', 10 | space: '空白', 11 | 'Speech Recognize': '語音辨識', 12 | Sound: '聲音', 13 | 'Interim Results': '階段性辨識結果' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/source/editor/engines/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/source 9 | */ 10 | 11 | export * from './ace'; 12 | export * from './area'; 13 | // export * from "./custom"; // You can add here another source editor 14 | -------------------------------------------------------------------------------- /src/plugins/image/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /tools/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "display": "Node 20", 4 | 5 | "_version": "20.16.0", 6 | 7 | "compilerOptions": { 8 | "lib": ["es2023"], 9 | "module": "node16", 10 | "target": "es2022", 11 | 12 | "strict": true, 13 | "esModuleInterop": true, 14 | "skipLibCheck": true, 15 | "resolveJsonModule": true, 16 | "forceConsistentCasingInFileNames": true, 17 | "moduleResolution": "node16" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/core/storage/README.md: -------------------------------------------------------------------------------- 1 | # Persistent storage 2 | 3 | The module is designed to save information to the user's local storage. 4 | At startup, it is checked whether the user has allowed saving to persistent storage. 5 | 6 | > If not allowed, the module will use the [[MemoryStorageProvider]] strategy. 7 | 8 | ```js 9 | const jodit = Jodit.make('#editor'); 10 | jodit.storage.set('someKey', 1); 11 | 12 | // reload page 13 | 14 | jodit.storage.get('someKey'); // 1 15 | ``` 16 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/he.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'חדשות', 9 | delete: 'מחק', 10 | space: 'שטח', 11 | 'Speech Recognize': 'דיבור מזהה', 12 | Sound: 'קול', 13 | 'Interim Results': 'תוצאות ביניים' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/color/brush.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-array.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | /** 12 | * Check if element is array 13 | */ 14 | export function isArray(elm: unknown): elm is T[] { 15 | return Array.isArray(elm); 16 | } 17 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-promise.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | export function isPromise(val: any | Promise): val is Promise { 12 | return val && typeof (val as Promise).then === 'function'; 13 | } 14 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/fa.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'خط جدید', 9 | delete: 'حذف', 10 | space: 'فضا', 11 | 'Speech Recognize': 'گفتار را تشخیص دهید', 12 | Sound: 'صدا', 13 | 'Interim Results': 'نتایج موقت' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/tr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'yeni satır', 9 | delete: 'silmek', 10 | space: 'uzay', 11 | 'Speech Recognize': 'Konuşma Tanıma', 12 | Sound: 'Ses', 13 | 'Interim Results': 'Ara Sonuçlar' 14 | }; 15 | -------------------------------------------------------------------------------- /src/core/component/statuses.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module component 9 | */ 10 | 11 | export const STATUSES = { 12 | beforeInit: 'beforeInit', 13 | ready: 'ready', 14 | beforeDestruct: 'beforeDestruct', 15 | destructed: 'destructed' 16 | } as const; 17 | -------------------------------------------------------------------------------- /src/core/ui/form/block/block.less: -------------------------------------------------------------------------------- 1 | .jodit-ui-block { 2 | display: flex; 3 | align-items: center; 4 | justify-content: stretch; 5 | margin-bottom: var(--padding-default); 6 | 7 | &_width { 8 | &_full { 9 | width: 100%; 10 | } 11 | } 12 | 13 | &_align { 14 | &_full { 15 | justify-content: space-between; 16 | } 17 | 18 | &_right { 19 | justify-content: flex-end; 20 | } 21 | } 22 | 23 | &_padding_true { 24 | padding: var(--padding-default); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/plugins/inline-popup/icons/addrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/fi.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | 'Speech Recognize': 'Puheentunnistus', 9 | newline: 'uusi rivi', 10 | delete: 'poistaa', 11 | space: 'tilaa', 12 | Sound: 'Ääni', 13 | 'Interim Results': 'Välitulokset' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/hu.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'újsor', 9 | delete: 'törlés', 10 | space: 'tér', 11 | 'Speech Recognize': 'A Beszéd Felismeri', 12 | Sound: 'Hang', 13 | 'Interim Results': 'Időközi Eredmények' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/id.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'newline', 9 | delete: 'Hapus', 10 | space: 'ruang', 11 | 'Speech Recognize': 'Pidato Mengenali', 12 | Sound: 'Suara', 13 | 'Interim Results': 'Hasil Sementara' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/mn.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'Шинэ мөр', 9 | delete: 'Устгах', 10 | space: 'Зай', 11 | 'Speech Recognize': 'Дуу хоолой таних', 12 | Sound: 'Дуу', 13 | 'Interim Results': 'Түр зуурын үр дүн' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/ar.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'الخط الجديد', 9 | delete: 'حذف', 10 | space: 'الفضاء', 11 | 'Speech Recognize': 'التعرف على الكلام', 12 | Sound: 'الصوت', 13 | 'Interim Results': 'النتائج المؤقتة' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/no.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'nylinje', 9 | delete: 'slette', 10 | space: 'rom', 11 | 'Speech Recognize': 'Talegjenkjenning', 12 | Sound: 'Lyd', 13 | 'Interim Results': 'Midlertidige resultater' 14 | }; 15 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-function.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | /** 12 | * Check value is Function 13 | */ 14 | export function isFunction(value: unknown): value is Function { 15 | return typeof value === 'function'; 16 | } 17 | -------------------------------------------------------------------------------- /src/core/ui/form/inputs/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/form 9 | */ 10 | 11 | export * from './area/area'; 12 | export * from './checkbox/checkbox'; 13 | export * from './file/file'; 14 | export * from './input/input'; 15 | export * from './select/select'; 16 | -------------------------------------------------------------------------------- /src/modules/file-browser/ui/tree/tree.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import { UIGroup } from 'jodit/core/ui'; 8 | 9 | import './tree.less'; 10 | 11 | export class FileBrowserTree extends UIGroup { 12 | override className(): string { 13 | return 'FileBrowserTree'; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/cs_cz.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'řádek', 9 | delete: 'odstranit', 10 | space: 'prostora', 11 | 'Speech Recognize': 'Rozpoznání Řeči', 12 | Sound: 'Zvuk', 13 | 'Interim Results': 'Průběžné Výsledky' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/de.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'Zeilenumbruch', 9 | delete: 'löschen', 10 | space: 'Raum', 11 | 'Speech Recognize': 'Sprache Erkennen', 12 | Sound: 'Sound', 13 | 'Interim Results': 'Zwischenergebnis' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/pl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'newline', 9 | delete: 'usunąć', 10 | space: 'przestrzeń', 11 | 'Speech Recognize': 'Rozpoznawanie Mowy', 12 | Sound: 'Dźwięk', 13 | 'Interim Results': 'Wyniki Okresowe' 14 | }; 15 | -------------------------------------------------------------------------------- /.github/workflows/manual.yml: -------------------------------------------------------------------------------- 1 | name: Publish React package 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | docs: 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - name: Trigger react release 12 | run: | 13 | curl -XPOST -u "${{ secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept:application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/jodit/jodit-react/dispatches --data '{"event_type": "newversion" }' 14 | -------------------------------------------------------------------------------- /src/core/ui/button/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * [[include:core/ui/button/README.md]] 9 | * @packageDocumentation 10 | * @module ui/button 11 | */ 12 | 13 | export * from './button/button'; 14 | export * from './group/group'; 15 | export * from './tooltip/tooltip'; 16 | -------------------------------------------------------------------------------- /src/modules/file-browser/ui/files/files.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import { UIGroup } from 'jodit/core/ui'; 8 | 9 | import './files.less'; 10 | 11 | export class FileBrowserFiles extends UIGroup { 12 | override className(): string { 13 | return 'FileBrowserFiles'; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/it.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'nuova riga', 9 | delete: 'eliminare', 10 | space: 'spazio', 11 | 'Speech Recognize': 'Discorso Riconoscere', 12 | Sound: 'Suono', 13 | 'Interim Results': 'Risultati intermedi' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/nl.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'regel', 9 | delete: 'verwijderen', 10 | space: 'ruimte', 11 | 'Speech Recognize': 'Spraak Herkennen', 12 | Sound: 'Geluid', 13 | 'Interim Results': 'Tussentijdse Resultaten' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/pt_br.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'linha', 9 | delete: 'excluir', 10 | space: 'espaco', 11 | 'Speech Recognize': 'Discurso Reconhecer', 12 | Sound: 'Som', 13 | 'Interim Results': 'Resultados Provisórios' 14 | }; 15 | -------------------------------------------------------------------------------- /src/core/ui/form/README.md: -------------------------------------------------------------------------------- 1 | # Form UI Element 2 | 3 | Component for creating form interfaces. 4 | 5 | ```ts 6 | import { UIForm, UIInput, UIBlock } from 'jodit/core/ui'; 7 | 8 | const form = new UIForm(jodit, [ 9 | new UIInput(editor, { 10 | required: true, 11 | label: 'URL', 12 | name: 'url', 13 | type: 'text', 14 | placeholder: 'https://' 15 | }), 16 | new UIInput(editor, { 17 | name: 'text', 18 | label: 'Alternative text' 19 | }), 20 | new UIBlock(editor, [button]) 21 | ]); 22 | ``` 23 | -------------------------------------------------------------------------------- /src/styles/icons/right.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/core/helpers/html/nl2br.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/html 9 | */ 10 | 11 | /** 12 | * Inserts HTML line breaks before all newlines in a string 13 | */ 14 | export function nl2br(html: string): string { 15 | return html.replace(/\r\n|\r|\n/g, '
'); 16 | } 17 | -------------------------------------------------------------------------------- /src/core/helpers/utils/error/errors/options-error.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/utils 9 | */ 10 | 11 | export class OptionsError extends TypeError { 12 | constructor(m: string) { 13 | super(m); 14 | Object.setPrototypeOf(this, OptionsError.prototype); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/plugins/justify/justify.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/print/print.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/es.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'nueva línea', 9 | delete: 'eliminar', 10 | space: 'espacio', 11 | 'Speech Recognize': 'Reconocimiento de Voz', 12 | Sound: 'Sonido', 13 | 'Interim Results': 'Resultados Provisionales' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/fr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'nouvelle ligne', 9 | delete: 'supprimer', 10 | space: 'espace', 11 | 'Speech Recognize': 'Reconnaissance Vocale', 12 | Sound: 'Son', 13 | 'Interim Results': 'Résultats Intermédiaires' 14 | }; 15 | -------------------------------------------------------------------------------- /src/styles/icons/center.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/left.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/core/helpers/utils/error/errors/connection-error.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/utils 9 | */ 10 | 11 | export class ConnectionError extends Error { 12 | constructor(m: string) { 13 | super(m); 14 | Object.setPrototypeOf(this, ConnectionError.prototype); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/plugins/delete/interface.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/delete 9 | */ 10 | 11 | declare module 'jodit/types/jodit' { 12 | interface IJodit { 13 | /** 14 | * Delete plugin: Remove selected text 15 | */ 16 | execCommand(command: 'delete'): void; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/ua.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'новая строка|перенос|ентер', 9 | delete: 'видалити', 10 | space: 'пробел', 11 | 'Speech Recognize': 'Распознавание речи', 12 | Sound: 'Звук', 13 | 'Interim Results': 'Проміжні результати' 14 | }; 15 | -------------------------------------------------------------------------------- /src/styles/icons/info-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/index.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import url('variables'); 8 | @import url('reset'); 9 | @import url('form'); 10 | @import url('modules/button-group'); 11 | @import url('modules/texticons'); 12 | @import url('modules/grid'); 13 | @import url('modules/icon'); 14 | @import url('jodit'); 15 | -------------------------------------------------------------------------------- /src/modules/widget/file-selector/README.md: -------------------------------------------------------------------------------- 1 | # File Selector widgets 2 | 3 | ```javascript 4 | const jodit = Jodit.make('#editor', { 5 | filebrowser: { 6 | ajax: { 7 | url: 'https://xdsoft.net/jodit/connector/index.php?action=fileUpload' 8 | } 9 | } 10 | }); 11 | 12 | FileSelectorWidget( 13 | jodit, 14 | { 15 | filebrowser(data) { 16 | console.log(data); 17 | }, 18 | upload: true, 19 | url(url, text) { 20 | console.log(url); 21 | } 22 | }, 23 | null, 24 | () => {}, 25 | true 26 | ); 27 | ``` 28 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/langs/ru.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | newline: 'новая строка|перенос|энтер', 9 | delete: 'удалить', 10 | space: 'пробел', 11 | 'Speech Recognize': 'Распознавание речи', 12 | Sound: 'Звук', 13 | 'Interim Results': 'Промежуточные результаты' 14 | }; 15 | -------------------------------------------------------------------------------- /src/types/core.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module types 9 | */ 10 | 11 | import type { IComponent, IDictionary } from './types'; 12 | 13 | export type DecoratorHandler = ( 14 | target: T, 15 | propertyKey: string 16 | ) => void | PropertyDescriptor; 17 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-number.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | /** 12 | * Check value is a number 13 | */ 14 | export function isNumber(value: unknown): value is number { 15 | return typeof value === 'number' && !isNaN(value) && isFinite(value); 16 | } 17 | -------------------------------------------------------------------------------- /src/modules/widget/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * [[include:modules/widget/README.md]] 9 | * @packageDocumentation 10 | * @module modules/widget 11 | */ 12 | 13 | export * from './color-picker/color-picker'; 14 | export * from './file-selector/file-selector'; 15 | export * from './tabs/tabs'; 16 | -------------------------------------------------------------------------------- /src/core/helpers/html/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/html 9 | */ 10 | 11 | export * from './apply-styles'; 12 | export * from './clean-from-word'; 13 | export * from './htmlspecialchars'; 14 | export * from './nl2br'; 15 | export * from './safe-html'; 16 | export * from './strip-tags'; 17 | -------------------------------------------------------------------------------- /src/modules/widget/tabs/README.md: -------------------------------------------------------------------------------- 1 | # Tab widget 2 | 3 | ```javascript 4 | const editor = Jodit.make('#editor'); 5 | const tabs = Jodit.modules.TabsWidget(editor, [ 6 | { name: 'Images', content: '
Images
' }, 7 | { 8 | name: 'Title 2', 9 | content: editor.c.fromHTML('
Some content
') 10 | }, 11 | { 12 | name: 'Color Picker', 13 | content: ColorPickerWidget( 14 | editor, 15 | function (color) { 16 | box.style.color = color; 17 | }, 18 | box.style.color 19 | ) 20 | } 21 | ]); 22 | ``` 23 | -------------------------------------------------------------------------------- /src/plugins/ai-assistant/langs/en.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | module.exports = { 8 | aiAssistant: 'AI Assistant', 9 | aiCommands: 'AI Commands', 10 | 'AI Assistant': 'AI Assistant', 11 | Prompt: 'Prompt', 12 | 'Ask AI to improve generated text': 'Ask AI to improve generated text', 13 | Submit: 'Submit' 14 | }; 15 | -------------------------------------------------------------------------------- /src/plugins/redo-undo/icons/redo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/core/decorators/hook/README.md: -------------------------------------------------------------------------------- 1 | # @hook 2 | 3 | Establishes a handler for modifying the status of the component. 4 | 5 | ```ts 6 | import { component, hook } from 'jodit/core/decorators'; 7 | import { UIElement } from 'jodit/ui'; 8 | 9 | @component 10 | class UISomeElement extends UIElement { 11 | @hook('ready') 12 | protected onReadyHandler(): void { 13 | alert('Component ise ready'); 14 | } 15 | } 16 | ``` 17 | 18 | Component statuses can be viewed in [STATUSES](https://xdsoft.net/jodit/docs/modules/component.html#statuses) 19 | -------------------------------------------------------------------------------- /src/core/helpers/size/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/size 9 | */ 10 | 11 | export * from './get-content-width'; 12 | export * from './get-scroll-parent'; 13 | export * from './inner-width'; 14 | export * from './object-size'; 15 | export * from './offset'; 16 | export * from './position'; 17 | -------------------------------------------------------------------------------- /src/core/plugin/helpers/utils.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugin 9 | */ 10 | 11 | import { kebabCase } from 'jodit/core/helpers/string/kebab-case'; 12 | 13 | /** 14 | * @private 15 | */ 16 | export function normalizeName(name: string): string { 17 | return kebabCase(name).toLowerCase(); 18 | } 19 | -------------------------------------------------------------------------------- /src/plugins/xpath/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/xpath 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | declare module 'jodit/config' { 14 | interface Config { 15 | showXPathInStatusbar: boolean; 16 | } 17 | } 18 | 19 | Config.prototype.showXPathInStatusbar = true; 20 | -------------------------------------------------------------------------------- /src/styles/icons/upload.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: Generate documentation 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | 7 | jobs: 8 | docs: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - name: Trigger documentation hook 13 | run: | 14 | curl -XPOST -u "${{ secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept:application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/xdan/jodit-autodoc/dispatches --data '{"event_type": "newversion" }' 15 | -------------------------------------------------------------------------------- /src/core/decorators/idle/README.md: -------------------------------------------------------------------------------- 1 | # @idle 2 | 3 | Wrap function in [Async.requestIdleCallback](https://xdsoft.net/jodit/docs/classes/async.Async.html#requestidlecallback) wrapper 4 | 5 | ```ts 6 | import { component, idle } from 'jodit/core/decorators'; 7 | import { UIElement } from 'jodit/ui'; 8 | 9 | @component 10 | class SomeClass extends UIElement { 11 | @idle 12 | runIdle(): void { 13 | // Do some havy work 14 | this.runIdle(); // This will work and won't go into stack depth error and break the main thread 15 | } 16 | } 17 | ``` 18 | -------------------------------------------------------------------------------- /src/plugins/about/about.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/plugins/bold/icons/italic.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /tools/plugins/banner.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { Variables } from '../variables'; 8 | 9 | import * as webpack from 'webpack'; 10 | 11 | export default ({ banner }: Variables): webpack.BannerPlugin => { 12 | return new webpack.BannerPlugin({ 13 | banner, 14 | raw: true, 15 | entryOnly: true 16 | }); 17 | }; 18 | -------------------------------------------------------------------------------- /src/modules/dialog/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * [[include:modules/dialog/README.md]] 9 | * @packageDocumentation 10 | * @module modules/dialog 11 | */ 12 | 13 | export { Alert } from './alert'; 14 | export { Confirm } from './confirm'; 15 | export { Dialog } from './dialog'; 16 | export { Prompt } from './prompt'; 17 | -------------------------------------------------------------------------------- /src/plugins/redo-undo/icons/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/resize-cells/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/resize-cells 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | declare module 'jodit/config' { 14 | interface Config { 15 | tableAllowCellResize: boolean; 16 | } 17 | } 18 | 19 | Config.prototype.tableAllowCellResize = true; 20 | -------------------------------------------------------------------------------- /tools/rules/css.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { Variables } from '../variables'; 8 | import style from '../loaders/style'; 9 | 10 | import type { RuleSetRule } from 'webpack'; 11 | 12 | export default (vars: Variables): RuleSetRule => { 13 | return { 14 | test: /\.(less|css)$/, 15 | use: style(vars) 16 | }; 17 | }; 18 | -------------------------------------------------------------------------------- /.github/workflows/xdsoft.yml: -------------------------------------------------------------------------------- 1 | name: Generate site 2 | 3 | on: 4 | push: 5 | tags-ignore: 6 | - '*' 7 | 8 | jobs: 9 | docs: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Trigger generate site hook 14 | run: | 15 | curl -XPOST -u "${{ secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept:application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/xdan/jodit-pro-home/dispatches --data '{"event_type": "opened" }' 16 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-void.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | /** 12 | * Check value is undefined or null 13 | */ 14 | export function isVoid(value: unknown): value is undefined | null { 15 | // eslint-disable-next-line eqeqeq 16 | return value === undefined || value === null; 17 | } 18 | -------------------------------------------------------------------------------- /src/core/helpers/string/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/string 9 | */ 10 | 11 | export * from './camel-case'; 12 | export * from './fuzzy-search-index'; 13 | export * from './i18n'; 14 | export * from './kebab-case'; 15 | export * from './stringify'; 16 | export * from './trim'; 17 | export * from './ucfirst'; 18 | -------------------------------------------------------------------------------- /src/plugins/clean-html/helpers/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/clean-html 9 | */ 10 | 11 | export * from './get-hash'; 12 | export * from './remove-format/remove-format-for-collapsed-selection'; 13 | export * from './remove-format/remove-format-for-selection'; 14 | export * from './visitor/visit-node-walker'; 15 | -------------------------------------------------------------------------------- /src/plugins/select-cells/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/select-cells 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | declare module 'jodit/config' { 14 | interface Config { 15 | tableAllowCellSelection: boolean; 16 | } 17 | } 18 | 19 | Config.prototype.tableAllowCellSelection = true; 20 | -------------------------------------------------------------------------------- /src/plugins/source/source.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: Run tests 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v4 16 | - uses: actions/setup-node@v4 #Setup Node 17 | with: 18 | node-version-file: '.nvmrc' 19 | cache: 'npm' 20 | 21 | - name: Run Karma Tests 22 | run: | 23 | npm ci --legacy-peer-deps 24 | make lint 25 | make test uglify=true fat=true 26 | -------------------------------------------------------------------------------- /src/core/helpers/normalize/normalize-url.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/normalize 9 | */ 10 | 11 | export const normalizeUrl = (...urls: string[]): string => { 12 | return urls 13 | .filter(url => url.length) 14 | .map(url => url.replace(/\/$/, '')) 15 | .join('/') 16 | .replace(/([^:])[\\/]+/g, '$1/'); 17 | }; 18 | -------------------------------------------------------------------------------- /src/modules/widget/color-picker/README.md: -------------------------------------------------------------------------------- 1 | # Color Picker widgets 2 | 3 | Color picker widget is a simple widget that allows you to select a color from the palette. 4 | 5 | ```javascript 6 | const editor = Jodit.make('#editor'); 7 | const tabs = Jodit.modules.TabsWidget(editor, { 8 | Text: Jodit.modules.ColorPickerWidget( 9 | editor, 10 | color => { 11 | alert(color); 12 | }, 13 | '#fff' 14 | ), 15 | Background: Jodit.modules.ColorPickerWidget( 16 | editor, 17 | color => { 18 | alert(color); 19 | }, 20 | '#eee' 21 | ) 22 | }); 23 | ``` 24 | -------------------------------------------------------------------------------- /src/core/helpers/string/ucfirst.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/string 9 | */ 10 | 11 | /** 12 | * Make a string's first character uppercase 13 | */ 14 | export function ucfirst(value: string): string { 15 | if (!value.length) { 16 | return ''; 17 | } 18 | 19 | return value[0].toUpperCase() + value.substring(1); 20 | } 21 | -------------------------------------------------------------------------------- /src/plugins/resizer/resizer.common.less: -------------------------------------------------------------------------------- 1 | [data-jodit_iframe_wrapper] { 2 | position: relative; 3 | display: block; 4 | user-select: none; 5 | 6 | iframe { 7 | position: relative; 8 | } 9 | 10 | &::after { 11 | position: absolute; 12 | z-index: 1; 13 | display: block; 14 | background: rgb(0 0 0 / 0%); 15 | content: ''; 16 | cursor: pointer; 17 | inset: 0; 18 | } 19 | 20 | &[data-jodit-wrapper_active='true'] iframe { 21 | z-index: 2; 22 | } 23 | } 24 | 25 | .jodit_lock &[data-jodit-wrapper_active='true'] iframe { 26 | z-index: 1; 27 | } 28 | -------------------------------------------------------------------------------- /src/styles/icons/eye.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/save.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-license.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | import { isString } from './is-string'; 12 | 13 | export const isLicense = (license: string): boolean => 14 | isString(license) && 15 | license.length === 23 && 16 | /^[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{5}$/i.test(license); 17 | -------------------------------------------------------------------------------- /src/core/helpers/string/camel-case.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/string 9 | */ 10 | 11 | /** 12 | * Convert (kebab-case or snake_case) to camelCase 13 | */ 14 | export const camelCase = (key: string): string => { 15 | return key.replace(/([-_])(.)/g, (m, code, letter) => { 16 | return letter.toUpperCase(); 17 | }); 18 | }; 19 | -------------------------------------------------------------------------------- /src/plugins/bold/icons/subscript.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/styles/icons/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | **Jodit Version:** 4.xxxxx 5 | 6 | **Browser:** 7 | **OS:** 8 | **Is React App:** 9 | **Reproduced on xdsoft.net:** 10 | 11 | **Code** 12 | 13 | ```js 14 | // A *self-contained* demonstration of the problem follows... 15 | ``` 16 | 17 | **Expected behavior:** 18 | 19 | **Actual behavior:** 20 | -------------------------------------------------------------------------------- /src/core/ui/group/spacer.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/group 9 | */ 10 | 11 | import { component } from 'jodit/core/decorators/component/component'; 12 | import { UIElement } from 'jodit/core/ui/element'; 13 | 14 | @component 15 | export class UISpacer extends UIElement { 16 | override className(): string { 17 | return 'UISpacer'; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/plugins/bold/icons/superscript.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /tools/external/exclude-utils.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { Variables } from '../variables'; 8 | 9 | export default ({ isProd, isTest }: Variables): { [key in string]: string } => { 10 | return isProd && !isTest 11 | ? { 12 | 'jodit/core/helpers/utils/assert': 'export {assert(){}};', 13 | './assert': 'export {assert(){}};' 14 | } 15 | : {}; 16 | }; 17 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-valid-name.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | /** 12 | * Check if name has a normal format 13 | */ 14 | export function isValidName(name: string): boolean { 15 | if (!name.length) { 16 | return false; 17 | } 18 | 19 | return !/[^0-9A-Za-zа-яА-ЯЁё\w\-_. ]/.test(name) && name.trim().length > 0; 20 | } 21 | -------------------------------------------------------------------------------- /src/core/helpers/utils/complete-url.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/utils 9 | */ 10 | 11 | import { globalWindow } from 'jodit/core/constants'; 12 | 13 | export const completeUrl = (url: string): string => { 14 | if (globalWindow.location.protocol === 'file:' && /^\/\//.test(url)) { 15 | url = 'https:' + url; 16 | } 17 | 18 | return url; 19 | }; 20 | -------------------------------------------------------------------------------- /src/core/ui/group/separator.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module ui/group 9 | */ 10 | 11 | import { component } from 'jodit/core/decorators/component/component'; 12 | import { UIElement } from 'jodit/core/ui/element'; 13 | 14 | @component 15 | export class UISeparator extends UIElement { 16 | override className(): string { 17 | return 'UISeparator'; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/core/ui/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * [[include:core/ui/README.md]] 9 | * @packageDocumentation 10 | * @module ui 11 | */ 12 | 13 | export * from './button'; 14 | export * from './element'; 15 | export * from './form'; 16 | export * from './group'; 17 | export * from './icon'; 18 | export * from './popup'; 19 | export * from './progress-bar/progress-bar'; 20 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Reporting security issues 2 | 3 | If you believe you have found a security issue in the Jodit software, please contact us immediately. 4 | 5 | When reporting a suspected security problem, please bear this in mind: 6 | 7 | * Make sure to provide as many details as possible about the vulnerability. 8 | * Please do not disclose publicly any security issues until we fix them and publish security releases. 9 | 10 | Contact the security team at security@xdsoft.net. As soon as we receive the security report, we'll work promptly to confirm the issue and then to provide a security fix. 11 | -------------------------------------------------------------------------------- /src/core/decorators/persistent/README.md: -------------------------------------------------------------------------------- 1 | # @persistent 2 | 3 | Allow save value inside persistent storage as set/get to property 4 | 5 | ```typescript 6 | import { component, persistent } from './src/core/decorators'; 7 | 8 | @component 9 | class Item extends UIElement { 10 | @persistent 11 | options = { 12 | some: true 13 | }; 14 | } 15 | 16 | const item = new Item(jodit); 17 | console.log(item.options); // {some: true} 18 | 19 | item.options = { 20 | some: false 21 | }; 22 | 23 | const item2 = new Item(jodit); // or reload page 24 | console.log(item.options); // {some: false} 25 | ``` 26 | -------------------------------------------------------------------------------- /src/plugins/resize-handler/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/resize-handler 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | declare module 'jodit/config' { 14 | interface Config { 15 | allowResizeX: boolean; 16 | allowResizeY: boolean; 17 | } 18 | } 19 | 20 | Config.prototype.allowResizeX = false; 21 | Config.prototype.allowResizeY = true; 22 | -------------------------------------------------------------------------------- /src/plugins/speech-recognize/helpers/exec-spell-command.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/speech-recognize 9 | */ 10 | 11 | import type { IJodit } from 'jodit/types'; 12 | 13 | export function execSpellCommand(jodit: IJodit, commandSentence: string): void { 14 | const [command, value] = commandSentence.split('::'); 15 | jodit.execCommand(command, null, value); 16 | } 17 | -------------------------------------------------------------------------------- /src/styles/icons/resize-handler.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-abort-error.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | import type { AbortError } from '../utils/error/errors/abort-error'; 12 | 13 | export function isAbortError(error: unknown): error is AbortError { 14 | return ( 15 | Boolean(error) && 16 | error instanceof DOMException && 17 | error.name === 'AbortError' 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-html.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | import { isString } from './is-string'; 12 | 13 | /** 14 | * Check if a string is html or not 15 | */ 16 | export const isHTML = (str: unknown): str is string => 17 | isString(str) && 18 | /<([A-Za-z][A-Za-z0-9]*)\b[^>]*>(.*?)<\/\1>/m.test( 19 | str.replace(/[\r\n]/g, '') 20 | ); 21 | -------------------------------------------------------------------------------- /tools/minimizer/css.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import CssMinimizerPlugin from 'css-minimizer-webpack-plugin'; 8 | 9 | export default (): CssMinimizerPlugin => 10 | new CssMinimizerPlugin({ 11 | parallel: true, 12 | minimizerOptions: { 13 | preset: [ 14 | 'advanced', 15 | { 16 | discardComments: { removeAll: true }, 17 | zindex: false 18 | } 19 | ] 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /tools/plugins/extract-css.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { Variables } from '../variables'; 8 | import { fileName } from '../utils/filename'; 9 | 10 | import MiniCssExtractPlugin from 'mini-css-extract-plugin'; 11 | 12 | export default (vars: Variables): MiniCssExtractPlugin => { 13 | return new MiniCssExtractPlugin({ 14 | filename: fileName(vars)('[name]') + '.css' 15 | }); 16 | }; 17 | -------------------------------------------------------------------------------- /src/core/plugin/interface.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugin 9 | */ 10 | 11 | declare module 'jodit/types/events' { 12 | interface IEventEmitter { 13 | /** 14 | * Emitted every time after the plugins have been initialized 15 | * or a deferred plugin has been loaded and also initialized 16 | */ 17 | on(event: 'updatePlugins', callback: () => void): this; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/core/selection/style/api/is-inside-invisible-element.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import { Dom } from 'jodit/core/dom/dom'; 8 | 9 | /** 10 | * Check if FONT inside STYLE or SCRIPT element 11 | * @private 12 | */ 13 | export function isInsideInvisibleElement( 14 | font: HTMLElement, 15 | root: HTMLElement 16 | ): boolean { 17 | return Boolean(Dom.closest(font, ['style', 'script'], root)); 18 | } 19 | -------------------------------------------------------------------------------- /src/modules/image-editor/icons/resize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/plugins/placeholder/placeholder.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import (reference) '../../styles/variables'; 8 | 9 | .jodit-placeholder { 10 | position: absolute; 11 | z-index: 1; 12 | top: 0; 13 | left: 0; 14 | display: block; 15 | width: 100%; 16 | padding: var(--padding-default); 17 | color: var(--color-placeholder); 18 | pointer-events: none; 19 | user-select: none !important; 20 | } 21 | -------------------------------------------------------------------------------- /src/styles/icons/update.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /tools/rules/svg.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { Variables } from '../variables'; 8 | 9 | import * as path from 'path'; 10 | import type { RuleSetRule } from 'webpack'; 11 | 12 | export default ({ superDirname }: Variables): RuleSetRule => { 13 | return { 14 | test: /\.svg$/i, 15 | use: { 16 | loader: path.resolve(superDirname, './tools/loaders/svg-loader.ts') 17 | } 18 | }; 19 | }; 20 | -------------------------------------------------------------------------------- /src/core/helpers/normalize/normalize-size.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/normalize 9 | */ 10 | 11 | /** 12 | * Normalize value to CSS meters 13 | */ 14 | export const normalizeSize = ( 15 | value: string | number, 16 | units: 'px' | 'pt' 17 | ): string => { 18 | if (/^[0-9]+$/.test(value.toString())) { 19 | return value + units; 20 | } 21 | return value.toString(); 22 | }; 23 | -------------------------------------------------------------------------------- /src/styles/icons/bin.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /tools/loaders/css-variables-prefixes.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { LoaderContext } from 'webpack'; 8 | 9 | export default function (this: LoaderContext, source: string): string { 10 | this.cacheable && this.cacheable(true); 11 | return source.replace(/--([a-z0-9_-]+)/g, (match, name) => 12 | /^jd-/.test(name) ? match : `--jd-${name}` 13 | ); 14 | } 15 | 16 | export const seperable = true; 17 | -------------------------------------------------------------------------------- /src/plugins/drag-and-drop-element/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/drag-and-drop-element 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | declare module 'jodit/config' { 14 | interface Config { 15 | /** 16 | * Draggable elements 17 | */ 18 | draggableTags: string | string[]; 19 | } 20 | } 21 | 22 | Config.prototype.draggableTags = ['img', 'jodit-media', 'jodit']; 23 | -------------------------------------------------------------------------------- /src/core/helpers/html/htmlspecialchars.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/html 9 | */ 10 | 11 | import { globalDocument } from 'jodit/core/constants'; 12 | 13 | /** 14 | * Convert special characters to HTML entities 15 | */ 16 | export function htmlspecialchars(html: string): string { 17 | const tmp = globalDocument.createElement('div'); 18 | tmp.textContent = html; 19 | return tmp.innerHTML; 20 | } 21 | -------------------------------------------------------------------------------- /src/core/decorators/wait/README.md: -------------------------------------------------------------------------------- 1 | # @wait 2 | 3 | Wrap function in wait wrapper, it will be called after `condition` returns `true` 4 | 5 | ```typescript 6 | import { component, wait } from 'jodit/core/decorators'; 7 | import { UIElement } from 'jodit/ui'; 8 | 9 | @component 10 | class UISomeElement extends UIElement { 11 | @wait(() => typeof jQuery !== 'undefined') 12 | protected runOnLoadJQuery(html: string): void { 13 | jQuery(this.container).html(html); 14 | alert('Run'); 15 | } 16 | } 17 | 18 | const elm = new UISomeElement(jodit); 19 | elm.runOnLoadJQuery('

One

'); // Do nothing 20 | // jQuery is loaded 21 | // alert 22 | ``` 23 | -------------------------------------------------------------------------------- /src/modules/toolbar/button/select/select.less: -------------------------------------------------------------------------------- 1 | @import (reference) 'jodit/styles/variables'; 2 | @import (reference) 'jodit/styles/mixins'; 3 | @import (reference) 'jodit/modules/toolbar/button/button'; 4 | 5 | .jodit-toolbar-select { 6 | --color-button-background-hover-opacity40: rgba(220, 220, 220, 0.2); 7 | --color-button-background-hover-opacity60: rgba(220, 220, 220, 0.1); 8 | 9 | .jodit-toolbar-button(); 10 | justify-content: space-between; 11 | 12 | .jodit-ui-button-interaction(); 13 | 14 | &__text:not(:empty) { 15 | justify-content: left; 16 | } 17 | 18 | &__button { 19 | flex: 1; 20 | } 21 | 22 | min-width: 100px; 23 | } 24 | -------------------------------------------------------------------------------- /src/plugins/about/about.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import (reference) '../../styles/variables'; 8 | 9 | .jodit-about { 10 | padding: 20px; 11 | 12 | a { 13 | color: #459ce7; 14 | text-decoration: none; 15 | 16 | &:focus, 17 | &:hover { 18 | color: #23527c; 19 | outline: 0; 20 | text-decoration: underline; 21 | } 22 | } 23 | 24 | div { 25 | margin-bottom: calc(var(--padding-default) / 2); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/core/helpers/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * [[include:core/helpers/README.md]] 9 | * @packageDocumentation 10 | * @module helpers 11 | */ 12 | 13 | export * from './array'; 14 | export * from './async'; 15 | export * from './checker'; 16 | export * from './color'; 17 | export * from './html'; 18 | export * from './normalize'; 19 | export * from './size'; 20 | export * from './string'; 21 | export * from './utils'; 22 | -------------------------------------------------------------------------------- /src/plugins/inline-popup/config/items/iframe.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/inline-popup 9 | */ 10 | import type { IJodit } from 'jodit/types'; 11 | 12 | import { align } from './img'; 13 | 14 | export default [ 15 | { 16 | name: 'bin', 17 | tooltip: 'Delete', 18 | exec: (editor: IJodit, image: HTMLImageElement): void => { 19 | image && editor.s.removeNode(image); 20 | } 21 | }, 22 | align 23 | ]; 24 | -------------------------------------------------------------------------------- /src/core/helpers/normalize/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/normalize 9 | */ 10 | 11 | export * from './normalize-color'; 12 | export * from './normalize-css-value'; 13 | export * from './normalize-key-aliases'; 14 | export * from './normalize-license'; 15 | export * from './normalize-path'; 16 | export * from './normalize-relative-path'; 17 | export * from './normalize-size'; 18 | export * from './normalize-url'; 19 | -------------------------------------------------------------------------------- /tools/external/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import type { Variables } from '../variables'; 8 | 9 | import excludeLanguages from './exclude-languages'; 10 | import excludePlugins from './exclude-plugins'; 11 | import excludeUtils from './exclude-utils'; 12 | 13 | export const externals = (vars: Variables): { [key in string]: string } => ({ 14 | ...excludeUtils(vars), 15 | ...excludePlugins(vars), 16 | ...excludeLanguages(vars) 17 | }); 18 | -------------------------------------------------------------------------------- /tools/utils/filename.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | import { type Variables } from '../variables'; 8 | 9 | export const fileName = ({ 10 | argv, 11 | uglify, 12 | fat, 13 | serve 14 | }: Variables): ((name: string) => string) => { 15 | if (typeof argv.filename === 'function') { 16 | return argv.filename; 17 | } 18 | 19 | return (name: string): string => 20 | name + (fat && !serve ? '.fat' : '') + (uglify && !serve ? '.min' : ''); 21 | }; 22 | -------------------------------------------------------------------------------- /src/plugins/tab/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/tab 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | declare module 'jodit/config' { 14 | interface Config { 15 | tab: { 16 | /** 17 | * Pressing Tab inside LI will add an internal list 18 | */ 19 | tabInsideLiInsertNewList: boolean; 20 | }; 21 | } 22 | } 23 | 24 | Config.prototype.tab = { 25 | tabInsideLiInsertNewList: true 26 | }; 27 | -------------------------------------------------------------------------------- /src/plugins/resize-cells/resize-cells.less: -------------------------------------------------------------------------------- 1 | @import (reference) '../../styles/mixins'; 2 | 3 | .jodit-table-resizer { 4 | position: absolute; 5 | z-index: 3; 6 | padding-right: calc(var(--padding-default) / 2); 7 | padding-left: calc(var(--padding-default) / 2); 8 | margin-left: calc(var(--padding-default) / -2); 9 | cursor: col-resize; 10 | 11 | &::after { 12 | display: block; 13 | width: 0; 14 | height: 100%; 15 | border: 0; 16 | content: ''; 17 | } 18 | 19 | &_moved { 20 | z-index: 2; 21 | background-color: var(--color-background-selection); 22 | 23 | &::after { 24 | border-right: 1px solid var(--color-border)-moved; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/plugins/hr/hr.test.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | describe('Test insert plugins', function () { 8 | describe('hr', function () { 9 | it('Should insert horizontal line', function () { 10 | const editor = getJodit(); 11 | editor.execCommand('insertHorizontalRule'); 12 | editor.execCommand('insertHorizontalRule'); 13 | editor.execCommand('insertHorizontalRule'); 14 | expect(editor.value).equals('


'); 15 | }); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /src/plugins/sticky/sticky.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import (reference) '../../styles/variables'; 8 | 9 | .jodit_sticky-dummy_toolbar { 10 | display: none; 11 | } 12 | 13 | .jodit_sticky { 14 | > .jodit-toolbar__box { 15 | position: fixed; 16 | position: sticky; 17 | z-index: 3; 18 | top: 0; 19 | left: auto; 20 | border-bottom: 1px solid var(--color-border); 21 | } 22 | 23 | .jodit_sticky-dummy_toolbar { 24 | display: block; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-equal.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | import { stringify } from 'jodit/core/helpers/string/stringify'; 12 | 13 | /** 14 | * Check two element are equal 15 | */ 16 | export function isEqual(a: unknown, b: unknown): boolean { 17 | return a === b || stringify(a) === stringify(b); 18 | } 19 | 20 | export function isFastEqual(a: unknown, b: unknown): boolean { 21 | return a === b; 22 | } 23 | -------------------------------------------------------------------------------- /src/types/storage.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module types 9 | */ 10 | 11 | export type StorageValueType = 12 | | string 13 | | number 14 | | boolean 15 | | object 16 | | StorageValueType[]; 17 | 18 | export interface IStorage { 19 | set(key: string, value: T): IStorage; 20 | delete(key: string): IStorage; 21 | get(key: string): R | void; 22 | exists(key: string): boolean; 23 | clear(): IStorage; 24 | } 25 | -------------------------------------------------------------------------------- /src/core/helpers/checker/is-set.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module helpers/checker 9 | */ 10 | 11 | import { isFunction } from './is-function'; 12 | 13 | /** 14 | * Check if element is set 15 | */ 16 | export function isSet(elm: unknown): elm is Set { 17 | return ( 18 | Boolean(elm) && 19 | isFunction((elm as Set).has) && 20 | isFunction((elm as Set).add) && 21 | isFunction((elm as Set).delete) 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /src/modules/toolbar/button/content.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | @import (reference) '../../../styles/variables'; 8 | @import (reference) '../../../styles/mixins'; 9 | @import (reference) 'jodit/core/ui/button/button/button'; 10 | 11 | .jodit-toolbar-content { 12 | .jodit-ui-button(); 13 | 14 | padding: 0; 15 | border: 1px solid transparent; 16 | 17 | &:hover:not([disabled]) { 18 | background-color: transparent; 19 | opacity: 1; 20 | outline: 0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/plugins/clean-html/helpers/visitor/filters/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/clean-html 9 | */ 10 | 11 | /** 12 | * @private 13 | */ 14 | 15 | export * from './allow-attributes'; 16 | export * from './fill-empty-paragraph'; 17 | export * from './remove-empty-text-node'; 18 | export * from './remove-inv-text-nodes'; 19 | export * from './replace-old-tags'; 20 | export * from './sanitize-attributes'; 21 | export * from './try-remove-node'; 22 | -------------------------------------------------------------------------------- /src/plugins/font/icons/font.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /src/plugins/enter/helpers/has-previous-block.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/enter 9 | */ 10 | 11 | import type { IJodit } from 'jodit/types'; 12 | import { Dom } from 'jodit/core/dom/dom'; 13 | 14 | /** 15 | * @private 16 | */ 17 | export function hasPreviousBlock(fake: Text, jodit: IJodit): boolean { 18 | return Boolean( 19 | Dom.prev( 20 | fake, 21 | elm => Dom.isBlock(elm) || Dom.isImage(elm), 22 | jodit.editor 23 | ) 24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /src/plugins/size/size.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | @import (reference) '../../styles/variables'; 7 | @import (reference) '../../styles/mixins'; 8 | 9 | @resizer-size: 7px; 10 | 11 | .jodit-container:not(.jodit_inline) { 12 | min-height: 100px; 13 | 14 | .jodit-workplace { 15 | display: flex; 16 | overflow: hidden; 17 | height: auto; 18 | min-height: 50px; 19 | flex-direction: column; 20 | } 21 | 22 | .jodit-editor__resize { 23 | .resize-handle(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/plugins/enter/helpers/index.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/enter 9 | */ 10 | 11 | export * from './check-br'; 12 | export * from './check-unsplittable-box'; 13 | export * from './get-block-wrapper'; 14 | export * from './has-previous-block'; 15 | export * from './insert-paragraph'; 16 | export * from './move-cursor-out-from-specal-tags'; 17 | export * from './process-empty-li-leaf'; 18 | export * from './split-fragment'; 19 | export * from './wrap-text'; 20 | -------------------------------------------------------------------------------- /src/plugins/image-processor/config.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * Jodit Editor (https://xdsoft.net/jodit/) 3 | * Released under MIT see LICENSE.txt in the project root for license information. 4 | * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net 5 | */ 6 | 7 | /** 8 | * @module plugins/image-processor 9 | */ 10 | 11 | import { Config } from 'jodit/config'; 12 | 13 | /** 14 | * @module plugins/image-processor 15 | */ 16 | 17 | declare module 'jodit/config' { 18 | interface Config { 19 | imageProcessor: { 20 | replaceDataURIToBlobIdInView: boolean; 21 | }; 22 | } 23 | } 24 | 25 | Config.prototype.imageProcessor = { 26 | replaceDataURIToBlobIdInView: true 27 | }; 28 | --------------------------------------------------------------------------------