@makhmudov.kay/az-editor 0.1.0-beta.10 → 0.1.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Изменения
2
2
 
3
+ ## 0.1.0-beta.11
4
+
5
+ - Ctrl+Z отменяет, Ctrl+Y и Ctrl+Shift+Z повторяют действие в активном редакторе. Поддерживаются русская раскладка, Cmd на macOS, фокус на панели форматирования и развёрнутый режим.
6
+ - Сочетания используют историю движка один раз за нажатие. Поля ввода, вложенные диалоги и соседние редакторы сохраняют собственную обработку; режим чтения и `actionsDisabled` блокируют изменение истории документа.
7
+
3
8
  ## 0.1.0-beta.10
4
9
 
5
10
  - Разворачивание редактора на всю страницу и возврат по кнопке/Escape без пересоздания документа и истории отмены. Поддерживаются `fullscreen`, `onFullscreenChange` и `ui.fullscreen`.
package/README.md CHANGED
@@ -14,10 +14,10 @@ React-библиотека для редактирования DOCX и HTML-до
14
14
  npm install @makhmudov.kay/az-editor@beta
15
15
  ```
16
16
 
17
- Для воспроизводимой установки версии beta.10:
17
+ Для воспроизводимой установки версии beta.11:
18
18
 
19
19
  ```sh
20
- npm install --save-exact @makhmudov.kay/az-editor@0.1.0-beta.10
20
+ npm install --save-exact @makhmudov.kay/az-editor@0.1.0-beta.11
21
21
  ```
22
22
 
23
23
  Требуются React и React DOM 19, Node.js `^24.15.0 || >=26.0.0` для установки/сборки,
package/dist/az-editor.js CHANGED
@@ -2188,6 +2188,26 @@ var it = t(function(e, t) {
2188
2188
  }
2189
2189
  }
2190
2190
  return i(() => () => f.current?.abort(), []), i(() => {
2191
+ let t = r.current;
2192
+ if (!t) return;
2193
+ let i = (r) => {
2194
+ if (r.defaultPrevented || r.isComposing || r.altKey || !(r.ctrlKey || r.metaKey)) return;
2195
+ let i = r.code || (r.key.toLowerCase() === "z" ? "KeyZ" : r.key.toLowerCase() === "y" ? "KeyY" : ""), a = i === "KeyZ" ? r.shiftKey ? "redo" : "undo" : i === "KeyY" && !r.shiftKey ? "redo" : null;
2196
+ if (!a || !(r.target instanceof Element) || r.target.closest(".az-editor-content") !== t) return;
2197
+ let o = r.target.closest("input, textarea, select, [contenteditable], [role=\"textbox\"], [role=\"combobox\"], [role=\"spinbutton\"]");
2198
+ if (o && !o.matches(".docx-pages[role=\"textbox\"]")) return;
2199
+ let s = r.target.closest("[role=\"dialog\"], dialog, [role=\"menu\"], [role=\"listbox\"]");
2200
+ if (s && t.contains(s)) return;
2201
+ r.preventDefault(), r.stopImmediatePropagation();
2202
+ let c = n.current?.getEditor(), l = c?.snapshot();
2203
+ !c || !l?.editable || l.isLoading || l.isOpening || l.parseError || e.mode === "view" || e.actionsDisabled || j.state === "loading" || (a === "undo" ? l.canUndo : l.canRedo) && c.exec({ type: a });
2204
+ };
2205
+ return t.addEventListener("keydown", i, !0), () => t.removeEventListener("keydown", i, !0);
2206
+ }, [
2207
+ e.mode,
2208
+ e.actionsDisabled,
2209
+ j.state
2210
+ ]), i(() => {
2191
2211
  let t = (t) => {
2192
2212
  if (t.defaultPrevented || !(t.ctrlKey || t.metaKey) || t.altKey || t.shiftKey || !r.current || !k(r.current, t.target) || window.document.querySelector("[data-az-print-root]") || t.code !== "KeyS" && t.code !== "KeyO" && !(t.code === "KeyP" && I("print"))) return;
2193
2213
  let n = t.code === "KeyS" ? e.onSave : t.code === "KeyO" ? e.onOpen : t.code === "KeyP" && I("print") ? () => void z() : void 0;
@@ -1,6 +1,6 @@
1
1
  # Интеграция Az Editor в React-приложение
2
2
 
3
- Руководство описывает API `@makhmudov.kay/az-editor` версии `0.1.0-beta.10`.
3
+ Руководство описывает API `@makhmudov.kay/az-editor` версии `0.1.0-beta.11`.
4
4
  Поддержка серверного `page`, описанная ниже, добавлена в beta.5.
5
5
  Совместимые исправления разрывов и строк таблиц добавлены в beta.6 и описаны ниже.
6
6
  Исправление общей сетки таблиц и более строгая диагностика размеров добавлены в beta.7.
@@ -129,7 +129,7 @@ npm install @makhmudov.kay/az-editor@beta
129
129
  Для фиксации опубликованной версии:
130
130
 
131
131
  ```sh
132
- npm install --save-exact @makhmudov.kay/az-editor@0.1.0-beta.10
132
+ npm install --save-exact @makhmudov.kay/az-editor@0.1.0-beta.11
133
133
  ```
134
134
 
135
135
  Тег `beta` может указывать на более новую версию. Сохраняйте lockfile и проверяйте
@@ -753,6 +753,17 @@ Ctrl/Cmd+S/O/P обрабатываются адаптером внутри ак
753
753
  приложении. Скрытое меню само по себе не отключает файловые сочетания клавиш.
754
754
  Кнопкам своего UI внутри `<form>` задавайте `type="button"`.
755
755
 
756
+ ### Отмена и повтор (beta.11)
757
+
758
+ Ctrl+Z отменяет последнее действие; Ctrl+Y или Ctrl+Shift+Z повторяют отменённое.
759
+ На macOS можно использовать Cmd вместо Ctrl. Сочетания определяются по физическим
760
+ клавишам Z/Y и работают также в русской раскладке, при фокусе на панели редактора,
761
+ при скрытом интерфейсе и после разворачивания на всю страницу.
762
+
763
+ Используется та же история, что у кнопок отмены/повтора. Обрабатывается только
764
+ активный редактор. Поля ввода и вложенные диалоги сохраняют собственные сочетания;
765
+ `mode="view"`, `actionsDisabled` и загрузка документа блокируют отмену/повтор.
766
+
756
767
  ### Масштаб, тема и язык
757
768
 
758
769
  - `zoom={1}` — 100%; `zoom={1.25}` — 125%. `zoomMode={{ type: 'fixed' }}` закрепляет режим.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makhmudov.kay/az-editor",
3
- "version": "0.1.0-beta.10",
3
+ "version": "0.1.0-beta.11",
4
4
  "type": "module",
5
5
  "types": "./dist/library/index.d.ts",
6
6
  "sideEffects": [