@stll/folio-vue 0.12.7 → 0.13.1

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/dist/index.js CHANGED
@@ -45,47 +45,48 @@ import { clearTemplateSlashMenu as Cn, consumeTemplateSlashQuery as wn, getTempl
45
45
  import { createEmptyHeaderFooter as On, pickActiveHeaderFooterRId as kn, removeHeaderFooter as An, resolveHeaderFooterContent as jn, saveHeaderFooterContent as Mn } from "@stll/folio-core/utils/headerFooter";
46
46
  import { FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION as Nn, applyFolioAIEditOperations as Pn, applyFolioAIEditOperations as Fn, applyFolioDocumentOperations as In, assertSupportedFolioDocumentOperationVersion as Ln, createFolioAIEditSnapshot as Rn, createFolioAIEditSnapshot as zn, diffWordSegments as Bn, getCommentAnchorsFromDoc as Vn, getFolioDocumentOperationIssues as Hn, getTrackedChangesFromDoc as Un, hashFolioAIBlockText as Wn, normalizeFolioAIBlockText as Gn } from "@stll/folio-core/ai-edits";
47
47
  import { findParagraphFragmentsByParaId as Kn, flashParagraphElements as qn } from "@stll/folio-core/paged-layout/paragraphFlash";
48
- import { blockSdtAttrsToSdtProperties as Jn, findBlockSdtMatch as Yn, findBlockSdtMatches as Xn, removeContentControlTr as Zn, setContentControlContentTr as Qn, setContentControlValueTr as $n } from "@stll/folio-core/prosemirror/commands/contentControls";
49
- import { setContentControlContentBlocksTr as er } from "@stll/folio-core/prosemirror/commands/contentControlsBlockFill";
50
- import { clampRangeToDocSize as tr, resolveFolioAIBlockRange as nr, resolveFolioAITextRange as rr, resolvePassageRange as ir } from "@stll/folio-core/ai-edits/blockRange";
51
- import { deriveBlockId as ar, getFolioParaIdFromBlockId as or, getFolioParaIdFromBlockId as sr, isFolioBlockId as cr, isSequentialFolioBlockId as lr } from "@stll/folio-core/types/block-id";
52
- import { getPageTextFromLayout as ur } from "@stll/folio-core/paged-layout/pageText";
53
- import { applyStyle as dr, removeTabStop as fr, setIndentFirstLine as pr, setIndentLeft as mr, setIndentRight as hr } from "@stll/folio-core/prosemirror/commands/paragraph";
54
- import { getCachedNumberingMap as gr } from "@stll/folio-core/docx";
55
- import { insertPageBreak as _r } from "@stll/folio-core/prosemirror/commands/pageBreak";
56
- import { insertSectionBreakContinuous as vr, insertSectionBreakNextPage as yr } from "@stll/folio-core/prosemirror/commands/sectionBreak";
57
- import { setEmbeddedFontFamilyMap as br } from "@stll/folio-core/utils/fontResolver";
58
- import { buildEmbeddedFontFamilyMap as xr, extractEmbeddedFonts as Sr } from "@stll/folio-core/fonts/embeddedFonts";
59
- import { editHyperlinkAtCursor as Cr, removeHyperlinkAtCursor as wr } from "@stll/folio-core/prosemirror/commands/hyperlink";
60
- import { sanitizeExternalUrl as Tr } from "@stll/folio-core/utils/urlSecurity";
61
- import { collectHeadings as Er } from "@stll/folio-core/utils/headingCollector";
62
- import { clickToPositionInHfSlot as Dr } from "@stll/folio-core/layout-bridge/dom/findHfPmSpans";
63
- import { findNoteStoryForTarget as Or } from "@stll/folio-core/layout-bridge/dom/noteStoryDom";
64
- import { TABLE_INSERT_HIDE_DELAY_MS as kr, detectTableInsertHover as Ar } from "@stll/folio-core/layout-bridge/tableInsertHover";
65
- import { createCellDragTracker as jr, findCellPosFromPmPos as Mr } from "@stll/folio-core/prosemirror/cellDragSelection";
66
- import { RemoteSelectionOverlay as Nr } from "@stll/folio-core/render-dom/RemoteSelectionOverlay";
67
- import { BodySelectionOverlay as Pr } from "@stll/folio-core/render-dom/BodySelectionOverlay";
68
- import { createEmptyDocument as Fr } from "@stll/folio-core/utils/createDocument";
69
- import { extractDocumentStyleSet as Ir, extractDocumentStyleSetFromDocx as Lr, inspectDocumentStyles as Rr, inspectDocumentStylesFromDocx as zr } from "@stll/folio-core/style-sets/extract";
70
- import { STELLA_STYLE_SET_NAME as Br, createStellaStyleDocumentPreset as Vr, createStellaStyleSet as Hr } from "@stll/folio-core/style-sets/stellaStyle";
71
- import { DOCUMENT_PRESET_VERSION as Ur, DOCUMENT_STYLE_SET_VERSION as Wr } from "@stll/folio-core/style-sets/types";
72
- import { createDocx as Gr } from "@stll/folio-core/docx/rezip";
73
- import { DEFAULT_AI_SUGGESTION_PRESETS as Kr } from "@stll/folio-core/ai-suggestions/types";
74
- import { applySuggestions as qr } from "@stll/folio-core/ai-suggestions/apply";
75
- import { isSuggestionStale as Jr, resolveSuggestionAnchor as Yr } from "@stll/folio-core/ai-suggestions/conflict";
76
- import { buildPositionalText as Xr } from "@stll/folio-core/ai-suggestions/text-positions";
77
- import { setAISuggestionsMeta as Zr, setFocusedSuggestionMeta as Qr } from "@stll/folio-core/prosemirror/plugins/aiSuggestionDecorations";
78
- import { scrollFolioPositionIntoView as $r } from "@stll/folio-core/paged-layout/scrollToPmPosition";
79
- import { getFolioCaretViewportRect as ei, getFolioSelectionViewportRect as ti } from "@stll/folio-core/paged-layout/selectionViewportRect";
80
- import { createAICitationDecorationsPlugin as ni, setAICitationsMeta as ri, setActiveCitationMeta as ii } from "@stll/folio-core/prosemirror/plugins/aiCitationDecorations";
81
- import { fromMarkdown as ai, toMarkdown as oi, toMarkdownResult as si } from "@stll/folio-core/markdown";
48
+ import { onPaintedLayoutChange as Jn, readBlockRects as Yn } from "@stll/folio-core/paged-layout/blockGeometry";
49
+ import { blockSdtAttrsToSdtProperties as Xn, findBlockSdtMatch as Zn, findBlockSdtMatches as Qn, removeContentControlTr as $n, setContentControlContentTr as er, setContentControlValueTr as tr } from "@stll/folio-core/prosemirror/commands/contentControls";
50
+ import { setContentControlContentBlocksTr as nr } from "@stll/folio-core/prosemirror/commands/contentControlsBlockFill";
51
+ import { clampRangeToDocSize as rr, resolveFolioAIBlockRange as ir, resolveFolioAITextRange as ar, resolvePassageRange as or } from "@stll/folio-core/ai-edits/blockRange";
52
+ import { deriveBlockId as sr, getFolioParaIdFromBlockId as cr, getFolioParaIdFromBlockId as lr, isFolioBlockId as ur, isSequentialFolioBlockId as dr } from "@stll/folio-core/types/block-id";
53
+ import { getPageTextFromLayout as fr } from "@stll/folio-core/paged-layout/pageText";
54
+ import { applyStyle as pr, removeTabStop as mr, setIndentFirstLine as hr, setIndentLeft as gr, setIndentRight as _r } from "@stll/folio-core/prosemirror/commands/paragraph";
55
+ import { getCachedNumberingMap as vr } from "@stll/folio-core/docx";
56
+ import { insertPageBreak as yr } from "@stll/folio-core/prosemirror/commands/pageBreak";
57
+ import { insertSectionBreakContinuous as br, insertSectionBreakNextPage as xr } from "@stll/folio-core/prosemirror/commands/sectionBreak";
58
+ import { setEmbeddedFontFamilyMap as Sr } from "@stll/folio-core/utils/fontResolver";
59
+ import { buildEmbeddedFontFamilyMap as Cr, extractEmbeddedFonts as wr } from "@stll/folio-core/fonts/embeddedFonts";
60
+ import { editHyperlinkAtCursor as Tr, removeHyperlinkAtCursor as Er } from "@stll/folio-core/prosemirror/commands/hyperlink";
61
+ import { sanitizeExternalUrl as Dr } from "@stll/folio-core/utils/urlSecurity";
62
+ import { collectHeadings as Or } from "@stll/folio-core/utils/headingCollector";
63
+ import { clickToPositionInHfSlot as kr } from "@stll/folio-core/layout-bridge/dom/findHfPmSpans";
64
+ import { findNoteStoryForTarget as Ar } from "@stll/folio-core/layout-bridge/dom/noteStoryDom";
65
+ import { TABLE_INSERT_HIDE_DELAY_MS as jr, detectTableInsertHover as Mr } from "@stll/folio-core/layout-bridge/tableInsertHover";
66
+ import { createCellDragTracker as Nr, findCellPosFromPmPos as Pr } from "@stll/folio-core/prosemirror/cellDragSelection";
67
+ import { RemoteSelectionOverlay as Fr } from "@stll/folio-core/render-dom/RemoteSelectionOverlay";
68
+ import { BodySelectionOverlay as Ir } from "@stll/folio-core/render-dom/BodySelectionOverlay";
69
+ import { createEmptyDocument as Lr } from "@stll/folio-core/utils/createDocument";
70
+ import { extractDocumentStyleSet as Rr, extractDocumentStyleSetFromDocx as zr, inspectDocumentStyles as Br, inspectDocumentStylesFromDocx as Vr } from "@stll/folio-core/style-sets/extract";
71
+ import { STELLA_STYLE_SET_NAME as Hr, createStellaStyleDocumentPreset as Ur, createStellaStyleSet as Wr } from "@stll/folio-core/style-sets/stellaStyle";
72
+ import { DOCUMENT_PRESET_VERSION as Gr, DOCUMENT_STYLE_SET_VERSION as Kr } from "@stll/folio-core/style-sets/types";
73
+ import { createDocx as qr } from "@stll/folio-core/docx/rezip";
74
+ import { DEFAULT_AI_SUGGESTION_PRESETS as Jr } from "@stll/folio-core/ai-suggestions/types";
75
+ import { applySuggestions as Yr } from "@stll/folio-core/ai-suggestions/apply";
76
+ import { isSuggestionStale as Xr, resolveSuggestionAnchor as Zr } from "@stll/folio-core/ai-suggestions/conflict";
77
+ import { buildPositionalText as Qr } from "@stll/folio-core/ai-suggestions/text-positions";
78
+ import { setAISuggestionsMeta as $r, setFocusedSuggestionMeta as ei } from "@stll/folio-core/prosemirror/plugins/aiSuggestionDecorations";
79
+ import { scrollFolioPositionIntoView as ti } from "@stll/folio-core/paged-layout/scrollToPmPosition";
80
+ import { getFolioCaretViewportRect as ni, getFolioSelectionViewportRect as ri } from "@stll/folio-core/paged-layout/selectionViewportRect";
81
+ import { createAICitationDecorationsPlugin as ii, setAICitationsMeta as ai, setActiveCitationMeta as oi } from "@stll/folio-core/prosemirror/plugins/aiCitationDecorations";
82
+ import { fromMarkdown as si, toMarkdown as ci, toMarkdownResult as li } from "@stll/folio-core/markdown";
82
83
  //#region src/components/AnonymizationRectsOverlay.vue?vue&type=script&setup=true&lang.ts
83
- var ci = [
84
+ var ui = [
84
85
  "data-folio-anonymization-label",
85
86
  "data-folio-anonymization-canonical",
86
87
  "data-folio-anonymization-selected",
87
88
  "title"
88
- ], li = /*#__PURE__*/ t(/* @__PURE__ */ I({
89
+ ], di = /*#__PURE__*/ t(/* @__PURE__ */ I({
89
90
  __name: "AnonymizationRectsOverlay",
90
91
  props: {
91
92
  getView: { type: Function },
@@ -202,12 +203,12 @@ var ci = [
202
203
  width: `${n.width}px`,
203
204
  height: `${n.height}px`
204
205
  })
205
- }, null, 14, ci))), 128))], 64))), 128))], 512));
206
+ }, null, 14, ui))), 128))], 64))), 128))], 512));
206
207
  }
207
- }), [["__scopeId", "data-v-df8fe7df"]]), ui = {
208
+ }), [["__scopeId", "data-v-df8fe7df"]]), fi = {
208
209
  class: "folio-passage-highlight-overlay",
209
210
  "data-folio-passage-highlight-overlay": ""
210
- }, di = /*#__PURE__*/ t(/* @__PURE__ */ I({
211
+ }, pi = /*#__PURE__*/ t(/* @__PURE__ */ I({
211
212
  __name: "PassageHighlightOverlay",
212
213
  props: {
213
214
  range: {},
@@ -254,7 +255,7 @@ var ci = [
254
255
  t.measures
255
256
  ], () => a(), { immediate: !0 }), B(() => {
256
257
  r.invalidate(), i !== null && (cancelAnimationFrame(i), i = null);
257
- }), (e, t) => (V(), N("div", ui, [(V(!0), N(O, null, U(n.value, (e, t) => (V(), N("span", {
258
+ }), (e, t) => (V(), N("div", fi, [(V(!0), N(O, null, U(n.value, (e, t) => (V(), N("span", {
258
259
  key: `${t}:${e.left}:${e.top}`,
259
260
  class: "folio-passage-highlight",
260
261
  style: z({
@@ -266,11 +267,11 @@ var ci = [
266
267
  })
267
268
  }, null, 4))), 128))]));
268
269
  }
269
- }), [["__scopeId", "data-v-bde9f41b"]]), fi = {
270
+ }), [["__scopeId", "data-v-bde9f41b"]]), mi = {
270
271
  key: 0,
271
272
  class: "folio-autocomplete-overlay",
272
273
  "data-folio-autocomplete-overlay": ""
273
- }, pi = /*#__PURE__*/ t(/* @__PURE__ */ I({
274
+ }, hi = /*#__PURE__*/ t(/* @__PURE__ */ I({
274
275
  __name: "AutocompleteCaretOverlay",
275
276
  props: {
276
277
  caret: {},
@@ -278,7 +279,7 @@ var ci = [
278
279
  isStreaming: { type: Boolean }
279
280
  },
280
281
  setup(e) {
281
- return (t, n) => e.caret && e.text.length > 0 ? (V(), N("div", fi, [P("span", {
282
+ return (t, n) => e.caret && e.text.length > 0 ? (V(), N("div", mi, [P("span", {
282
283
  class: "folio-autocomplete-ghost",
283
284
  style: z({
284
285
  left: `${e.caret.x}px`,
@@ -291,7 +292,7 @@ var ci = [
291
292
  "aria-hidden": "true"
292
293
  }, "stella", 2)], 4)])) : M("", !0);
293
294
  }
294
- }), [["__scopeId", "data-v-00299904"]]), mi = 48, hi = /* @__PURE__ */ I({
295
+ }), [["__scopeId", "data-v-00299904"]]), gi = 48, _i = /* @__PURE__ */ I({
295
296
  __name: "AutocompleteSuggestionOverlay",
296
297
  props: {
297
298
  getPagesContainer: { type: Function },
@@ -308,7 +309,7 @@ var ci = [
308
309
  let c = r.querySelector(".layout-page-content");
309
310
  if (!c) return;
310
311
  let l = (c.getBoundingClientRect().right - a.left) / i;
311
- return Math.max(mi, l - t);
312
+ return Math.max(gi, l - t);
312
313
  }
313
314
  }, s = () => {
314
315
  let e = t.getPagesContainer(), r = t.editorState;
@@ -357,7 +358,7 @@ var ci = [
357
358
  t.editorState,
358
359
  t.zoom,
359
360
  r.value
360
- ], () => c()), (e, t) => (V(), j(pi, {
361
+ ], () => c()), (e, t) => (V(), j(hi, {
361
362
  caret: n.value?.caret ?? null,
362
363
  text: n.value?.text ?? "",
363
364
  "is-streaming": n.value?.isStreaming ?? !1
@@ -367,33 +368,33 @@ var ci = [
367
368
  "is-streaming"
368
369
  ]));
369
370
  }
370
- }), gi = Symbol("docx-portal-class");
371
- function _i(e) {
372
- je(gi, A(() => ({
371
+ }), vi = Symbol("docx-portal-class");
372
+ function yi(e) {
373
+ je(vi, A(() => ({
373
374
  "ep-root": !0,
374
375
  dark: !!G(e)
375
376
  })));
376
377
  }
377
- function vi() {
378
- return L(gi, A(() => ({ "ep-root": !0 })));
378
+ function bi() {
379
+ return L(vi, A(() => ({ "ep-root": !0 })));
379
380
  }
380
381
  //#endregion
381
382
  //#region src/components/ContentControlWidgetsOverlay.vue?vue&type=script&setup=true&lang.ts
382
- var yi = ["aria-label"], bi = {
383
+ var xi = ["aria-label"], Si = {
383
384
  key: 0,
384
385
  class: "content-control-picker__items",
385
386
  role: "menu"
386
- }, xi = {
387
+ }, Ci = {
387
388
  key: 0,
388
389
  class: "content-control-picker__empty"
389
- }, Si = /*#__PURE__*/ t(/* @__PURE__ */ I({
390
+ }, wi = /*#__PURE__*/ t(/* @__PURE__ */ I({
390
391
  __name: "ContentControlWidgetsOverlay",
391
392
  props: {
392
393
  eventRoot: {},
393
394
  view: {}
394
395
  },
395
396
  setup(e) {
396
- let t = e, { t: n } = r(), { Button: i, DatePickerPopover: a } = h(), o = vi(), s = new kt(), c = Ne(s.getSnapshot()), l = s.subscribe(() => {
397
+ let t = e, { t: n } = r(), { Button: i, DatePickerPopover: a } = h(), o = bi(), s = new kt(), c = Ne(s.getSnapshot()), l = s.subscribe(() => {
397
398
  c.value = s.getSnapshot();
398
399
  });
399
400
  K([() => t.view, () => t.eventRoot], ([e, t]) => s.bind(e, t), { immediate: !0 }), B(() => {
@@ -412,7 +413,7 @@ var yi = ["aria-label"], bi = {
412
413
  role: "dialog",
413
414
  "aria-label": c.value.status === "dropdown" ? G(n)("contentControlDropdownAriaLabel") : G(n)("contentControlDateAriaLabel"),
414
415
  onMousedown: t[1] ||= q(() => {}, ["stop"])
415
- }, [c.value.status === "dropdown" ? (V(), N("div", bi, [c.value.items.length === 0 ? (V(), N("div", xi, W(G(n)("contentControlDropdownNoOptions")), 1)) : (V(!0), N(O, { key: 1 }, U(c.value.items, (e) => (V(), j(G(i), {
416
+ }, [c.value.status === "dropdown" ? (V(), N("div", Si, [c.value.items.length === 0 ? (V(), N("div", Ci, W(G(n)("contentControlDropdownNoOptions")), 1)) : (V(!0), N(O, { key: 1 }, U(c.value.items, (e) => (V(), j(G(i), {
416
417
  key: `${e.value}::${e.displayText}`,
417
418
  "class-name": "content-control-picker__item",
418
419
  type: "button",
@@ -429,9 +430,9 @@ var yi = ["aria-label"], bi = {
429
430
  value: c.value.currentValue,
430
431
  "default-open": !0,
431
432
  onChange: d
432
- }, null, 8, ["value"])) : M("", !0)], 46, yi))]));
433
+ }, null, 8, ["value"])) : M("", !0)], 46, xi))]));
433
434
  }
434
- }), [["__scopeId", "data-v-19e067b7"]]), Ci = /* @__PURE__ */ I({
435
+ }), [["__scopeId", "data-v-19e067b7"]]), Ti = /* @__PURE__ */ I({
435
436
  __name: "DecorationLayer",
436
437
  props: {
437
438
  getView: { type: Function },
@@ -543,10 +544,10 @@ var yi = ["aria-label"], bi = {
543
544
  "aria-hidden": "true"
544
545
  }, null, 512));
545
546
  }
546
- }), wi = { class: "doc-outline__header" }, Ti = { class: "doc-outline__body" }, Ei = {
547
+ }), Ei = { class: "doc-outline__header" }, Di = { class: "doc-outline__body" }, Oi = {
547
548
  key: 0,
548
549
  class: "doc-outline__empty"
549
- }, Di = /*#__PURE__*/ t(/* @__PURE__ */ I({
550
+ }, ki = /*#__PURE__*/ t(/* @__PURE__ */ I({
550
551
  __name: "DocumentOutline",
551
552
  props: {
552
553
  isOpen: { type: Boolean },
@@ -575,7 +576,7 @@ var yi = ["aria-label"], bi = {
575
576
  role: "navigation",
576
577
  "aria-label": "Document outline",
577
578
  onMousedown: n[1] ||= q(() => {}, ["stop"])
578
- }, [P("div", wi, [P("button", {
579
+ }, [P("div", Ei, [P("button", {
579
580
  class: "doc-outline__back",
580
581
  title: "Close outline",
581
582
  "aria-label": "Close outline",
@@ -583,7 +584,7 @@ var yi = ["aria-label"], bi = {
583
584
  }, [F(i, {
584
585
  name: "arrow_back",
585
586
  size: 20
586
- })]), n[2] ||= P("span", { class: "doc-outline__title" }, "Document Outline", -1)]), P("div", Ti, [e.headings.length === 0 ? (V(), N("div", Ei, "No headings found")) : (V(), j(G(r), {
587
+ })]), n[2] ||= P("span", { class: "doc-outline__title" }, "Document Outline", -1)]), P("div", Di, [e.headings.length === 0 ? (V(), N("div", Oi, "No headings found")) : (V(), j(G(r), {
587
588
  key: 1,
588
589
  items: o.value,
589
590
  "get-scroll-container": e.getScrollContainer ?? (() => null),
@@ -591,7 +592,7 @@ var yi = ["aria-label"], bi = {
591
592
  "aria-label": "Document outline"
592
593
  }, null, 8, ["items", "get-scroll-container"]))])], 36)) : M("", !0);
593
594
  }
594
- }), [["__scopeId", "data-v-0797b3b1"]]), Oi = /* @__PURE__ */ I({
595
+ }), [["__scopeId", "data-v-0797b3b1"]]), Ai = /* @__PURE__ */ I({
595
596
  __name: "DocxEditorDialogs",
596
597
  props: {
597
598
  view: {},
@@ -684,10 +685,10 @@ var yi = ["aria-label"], bi = {
684
685
  }, null, 8, ["is-open", "current-watermark"])
685
686
  ], 64));
686
687
  }
687
- }), ki = {
688
+ }), ji = {
688
689
  key: 0,
689
690
  class: "docx-editor-vue__title-bar"
690
- }, Ai = { class: "docx-editor-vue__title-bar-left" }, ji = { class: "docx-editor-vue__title-bar-center" }, Mi = { class: "docx-editor-vue__title-bar-right" }, Ni = /* @__PURE__ */ I({
691
+ }, Mi = { class: "docx-editor-vue__title-bar-left" }, Ni = { class: "docx-editor-vue__title-bar-center" }, Pi = { class: "docx-editor-vue__title-bar-right" }, Fi = /* @__PURE__ */ I({
691
692
  __name: "DocxEditorMenuBar",
692
693
  props: {
693
694
  showMenuBar: {
@@ -719,9 +720,9 @@ var yi = ["aria-label"], bi = {
719
720
  ],
720
721
  setup(e, { emit: t }) {
721
722
  let n = t;
722
- return (t, r) => e.showMenuBar ? (V(), N("div", ki, [
723
- P("div", Ai, [Me(t.$slots, "title-bar-left")]),
724
- P("div", ji, [F(_, {
723
+ return (t, r) => e.showMenuBar ? (V(), N("div", ji, [
724
+ P("div", Mi, [Me(t.$slots, "title-bar-left")]),
725
+ P("div", Ni, [F(_, {
725
726
  "model-value": e.documentName,
726
727
  editable: e.documentNameEditable,
727
728
  "onUpdate:modelValue": r[0] ||= (e) => n("rename", e)
@@ -736,28 +737,28 @@ var yi = ["aria-label"], bi = {
736
737
  "show-help-menu",
737
738
  "show-table-insert"
738
739
  ])]),
739
- P("div", Mi, [Me(t.$slots, "title-bar-right")])
740
+ P("div", Pi, [Me(t.$slots, "title-bar-right")])
740
741
  ])) : M("", !0);
741
742
  }
742
- }), Pi = ["aria-label"], Fi = { class: "image-ctx-menu__icon" }, Ii = { class: "image-ctx-menu__label" }, Li = {
743
+ }), Ii = ["aria-label"], Li = { class: "image-ctx-menu__icon" }, Ri = { class: "image-ctx-menu__label" }, zi = {
743
744
  key: 1,
744
745
  class: "image-ctx-menu__divider",
745
746
  role: "separator"
746
- }, Ri = [
747
+ }, Bi = [
747
748
  "data-wrap-type",
748
749
  "data-current",
749
750
  "data-disabled",
750
751
  "disabled",
751
752
  "title",
752
753
  "onClick"
753
- ], zi = { class: "image-ctx-menu__icon" }, Bi = { class: "image-ctx-menu__label" }, Vi = ["aria-label"], Hi = ["disabled", "onClick"], Ui = { class: "image-ctx-menu__label" }, Wi = {
754
+ ], Vi = { class: "image-ctx-menu__icon" }, Hi = { class: "image-ctx-menu__label" }, Ui = ["aria-label"], Wi = ["disabled", "onClick"], Gi = { class: "image-ctx-menu__label" }, Ki = {
754
755
  key: 0,
755
756
  class: "image-ctx-menu__shortcut"
756
- }, Gi = {
757
+ }, qi = {
757
758
  key: 0,
758
759
  class: "image-ctx-menu__divider",
759
760
  role: "separator"
760
- }, Ki = 18, qi = 260, Ji = 10, Yi = /*#__PURE__*/ t(/* @__PURE__ */ I({
761
+ }, Ji = 18, Yi = 260, Xi = 10, Zi = /*#__PURE__*/ t(/* @__PURE__ */ I({
761
762
  __name: "ImageContextMenu",
762
763
  props: {
763
764
  state: {},
@@ -778,7 +779,7 @@ var yi = ["aria-label"], bi = {
778
779
  function o() {
779
780
  a("open-properties"), a("close");
780
781
  }
781
- let { t: s } = r(), c = vi(), l = Nt, u = A(() => n.state ? Ft(n.state.currentWrapType, n.state.currentCssFloat ?? null) : null), d = {
782
+ let { t: s } = r(), c = bi(), l = Nt, u = A(() => n.state ? Ft(n.state.currentWrapType, n.state.currentCssFloat ?? null) : null), d = {
782
783
  inline: "wrap_text",
783
784
  squareLeft: "format_image_left",
784
785
  squareRight: "format_image_right",
@@ -791,11 +792,11 @@ var yi = ["aria-label"], bi = {
791
792
  let p = A(() => {
792
793
  if (!n.state) return {};
793
794
  let e = Nt.length * 36 + 16, t = n.state.position.x, r = n.state.position.y;
794
- return typeof window < "u" && (t + qi > window.innerWidth && (t = window.innerWidth - qi - Ji), r + e > window.innerHeight && (r = window.innerHeight - e - Ji), t < Ji && (t = Ji), r < Ji && (r = Ji)), {
795
+ return typeof window < "u" && (t + Yi > window.innerWidth && (t = window.innerWidth - Yi - Xi), r + e > window.innerHeight && (r = window.innerHeight - e - Xi), t < Xi && (t = Xi), r < Xi && (r = Xi)), {
795
796
  position: "fixed",
796
797
  left: `${t}px`,
797
798
  top: `${r}px`,
798
- minWidth: `${qi}px`,
799
+ minWidth: `${Yi}px`,
799
800
  zIndex: 400
800
801
  };
801
802
  });
@@ -837,11 +838,11 @@ var yi = ["aria-label"], bi = {
837
838
  "data-action": "open-properties",
838
839
  onMousedown: n[1] ||= q(() => {}, ["prevent"]),
839
840
  onClick: o
840
- }, [P("span", Fi, [F(i, {
841
+ }, [P("span", Li, [F(i, {
841
842
  name: "settings",
842
- size: Ki
843
- })]), P("span", Ii, W(G(s)("imageWrap.menu.imageProperties")), 1)], 32)) : M("", !0),
844
- e.canOpenProperties ? (V(), N("div", Li)) : M("", !0),
843
+ size: Ji
844
+ })]), P("span", Ri, W(G(s)("imageWrap.menu.imageProperties")), 1)], 32)) : M("", !0),
845
+ e.canOpenProperties ? (V(), N("div", zi)) : M("", !0),
845
846
  (V(!0), N(O, null, U(G(l), (e) => (V(), N("button", {
846
847
  key: e.choice,
847
848
  type: "button",
@@ -855,17 +856,17 @@ var yi = ["aria-label"], bi = {
855
856
  onMousedown: n[2] ||= q(() => {}, ["prevent"]),
856
857
  onClick: (t) => h(e)
857
858
  }, [
858
- P("span", zi, [F(i, {
859
+ P("span", Vi, [F(i, {
859
860
  name: f(e.iconHint),
860
- size: Ki
861
+ size: Ji
861
862
  }, null, 8, ["name"])]),
862
- P("span", Bi, W(G(s)(`imageWrap.menu.${e.i18nLabelKey}`)), 1),
863
+ P("span", Hi, W(G(s)(`imageWrap.menu.${e.i18nLabelKey}`)), 1),
863
864
  e.choice === u.value ? (V(), N("span", {
864
865
  key: 0,
865
866
  class: "image-ctx-menu__current-dot",
866
867
  "aria-label": G(s)("imageWrap.menu.ariaLabel")
867
- }, "●", 8, Vi)) : M("", !0)
868
- ], 42, Ri))), 128)),
868
+ }, "●", 8, Ui)) : M("", !0)
869
+ ], 42, Bi))), 128)),
869
870
  e.textActions && e.textActions.length > 0 ? (V(), N(O, { key: 2 }, [n[5] ||= P("div", {
870
871
  class: "image-ctx-menu__divider",
871
872
  role: "separator"
@@ -876,16 +877,16 @@ var yi = ["aria-label"], bi = {
876
877
  disabled: e.disabled,
877
878
  onMousedown: n[3] ||= q(() => {}, ["prevent"]),
878
879
  onClick: (t) => g(e)
879
- }, [P("span", Ui, W(e.label), 1), e.shortcut ? (V(), N("span", Wi, W(e.shortcut), 1)) : M("", !0)], 40, Hi), e.dividerAfter ? (V(), N("div", Gi)) : M("", !0)], 64))), 128))], 64)) : M("", !0)
880
- ], 46, Pi)) : M("", !0)]));
880
+ }, [P("span", Gi, W(e.label), 1), e.shortcut ? (V(), N("span", Ki, W(e.shortcut), 1)) : M("", !0)], 40, Wi), e.dividerAfter ? (V(), N("div", qi)) : M("", !0)], 64))), 128))], 64)) : M("", !0)
881
+ ], 46, Ii)) : M("", !0)]));
881
882
  }
882
- }), [["__scopeId", "data-v-fc8f35bc"]]), Xi = ["disabled", "onMousedown"], Zi = {
883
+ }), [["__scopeId", "data-v-fc8f35bc"]]), Qi = ["disabled", "onMousedown"], $i = {
883
884
  key: 0,
884
885
  class: "ctx-menu__icon"
885
- }, Qi = { class: "ctx-menu__label" }, $i = {
886
+ }, ea = { class: "ctx-menu__label" }, ta = {
886
887
  key: 1,
887
888
  class: "ctx-menu__shortcut"
888
- }, ea = 220, ta = 32, na = 10, ra = /*#__PURE__*/ t(/* @__PURE__ */ I({
889
+ }, na = 220, ra = 32, ia = 10, aa = /*#__PURE__*/ t(/* @__PURE__ */ I({
889
890
  __name: "TextContextMenu",
890
891
  props: {
891
892
  isOpen: { type: Boolean },
@@ -902,7 +903,7 @@ var yi = ["aria-label"], bi = {
902
903
  setup(e, { emit: t }) {
903
904
  let n = e, i = ({ node: e }) => e;
904
905
  i.props = ["node"];
905
- let a = t, { t: o } = r(), s = vi(), c = H(null), l = A(() => {
906
+ let a = t, { t: o } = r(), s = bi(), c = H(null), l = A(() => {
906
907
  let e = [], t = n.customItems ?? [];
907
908
  for (let [n, r] of t.entries()) e.push({
908
909
  id: `custom-${r.id}`,
@@ -1038,8 +1039,8 @@ var yi = ["aria-label"], bi = {
1038
1039
  action: "deleteTable"
1039
1040
  }), e;
1040
1041
  }), u = A(() => {
1041
- let e = n.position.x, t = n.position.y, r = l.value.filter((e) => !e.divider).length, i = l.value.filter((e) => e.divider).length, a = r * ta + i * 9;
1042
- return typeof window < "u" && (e + ea + na > window.innerWidth && (e = window.innerWidth - ea - na), t + a + na > window.innerHeight && (t = window.innerHeight - a - na)), {
1042
+ let e = n.position.x, t = n.position.y, r = l.value.filter((e) => !e.divider).length, i = l.value.filter((e) => e.divider).length, a = r * ra + i * 9;
1043
+ return typeof window < "u" && (e + na + ia > window.innerWidth && (e = window.innerWidth - na - ia), t + a + ia > window.innerHeight && (t = window.innerHeight - a - ia)), {
1043
1044
  position: "fixed",
1044
1045
  left: `${e}px`,
1045
1046
  top: `${t}px`,
@@ -1077,12 +1078,12 @@ var yi = ["aria-label"], bi = {
1077
1078
  disabled: e.disabled,
1078
1079
  onMousedown: q((t) => d(e.action), ["prevent"])
1079
1080
  }, [
1080
- e.icon ? (V(), N("span", Zi, [F(i, { node: e.icon }, null, 8, ["node"])])) : M("", !0),
1081
- P("span", Qi, W(e.label), 1),
1082
- e.shortcut ? (V(), N("span", $i, W(e.shortcut), 1)) : M("", !0)
1083
- ], 42, Xi))), 128))], 38)) : M("", !0)]));
1081
+ e.icon ? (V(), N("span", $i, [F(i, { node: e.icon }, null, 8, ["node"])])) : M("", !0),
1082
+ P("span", ea, W(e.label), 1),
1083
+ e.shortcut ? (V(), N("span", ta, W(e.shortcut), 1)) : M("", !0)
1084
+ ], 42, Qi))), 128))], 38)) : M("", !0)]));
1084
1085
  }
1085
- }), [["__scopeId", "data-v-c1416e84"]]), ia = /* @__PURE__ */ I({
1086
+ }), [["__scopeId", "data-v-c1416e84"]]), oa = /* @__PURE__ */ I({
1086
1087
  __name: "DocxEditorOverlays",
1087
1088
  props: {
1088
1089
  readOnly: { type: Boolean },
@@ -1101,7 +1102,7 @@ var yi = ["aria-label"], bi = {
1101
1102
  ],
1102
1103
  setup(e, { emit: t }) {
1103
1104
  let n = t;
1104
- return (t, r) => (V(), N(O, null, [F(ra, {
1105
+ return (t, r) => (V(), N(O, null, [F(aa, {
1105
1106
  "is-open": e.contextMenu.isOpen,
1106
1107
  position: e.contextMenu.position,
1107
1108
  "has-selection": e.contextMenu.hasSelection,
@@ -1123,7 +1124,7 @@ var yi = ["aria-label"], bi = {
1123
1124
  "can-merge-cells",
1124
1125
  "can-split-cell",
1125
1126
  "custom-items"
1126
- ]), F(Yi, {
1127
+ ]), F(Zi, {
1127
1128
  state: e.imageContextMenu,
1128
1129
  "text-actions": e.imageContextMenuTextActions,
1129
1130
  "can-open-properties": e.canOpenImageProperties,
@@ -1140,7 +1141,7 @@ var yi = ["aria-label"], bi = {
1140
1141
  });
1141
1142
  //#endregion
1142
1143
  //#region src/composables/imageOverlayRect.ts
1143
- function aa(e) {
1144
+ function sa(e) {
1144
1145
  let t = Math.max(0, e.parentOffsetWidth - e.parentClientWidth) / 2, n = e.zoom || 1;
1145
1146
  return {
1146
1147
  left: (e.imageRect.left - e.parentRect.left - t + e.scrollLeft) / n,
@@ -1151,13 +1152,13 @@ function aa(e) {
1151
1152
  }
1152
1153
  //#endregion
1153
1154
  //#region src/components/ImageSelectionOverlay.vue?vue&type=script&setup=true&lang.ts
1154
- var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1155
+ var ca = ["data-handle", "onMousedown"], la = ["title"], ua = {
1155
1156
  key: 0,
1156
1157
  class: "image-overlay__dim"
1157
- }, la = {
1158
+ }, da = {
1158
1159
  key: 1,
1159
1160
  class: "image-overlay__dim image-overlay__dim--rotate"
1160
- }, ua = 4, da = 15, fa = 250, pa = 700, ma = /*#__PURE__*/ t(/* @__PURE__ */ I({
1161
+ }, fa = 4, pa = 15, ma = 250, ha = 700, ga = /*#__PURE__*/ t(/* @__PURE__ */ I({
1161
1162
  __name: "ImageSelectionOverlay",
1162
1163
  props: {
1163
1164
  imageInfo: {},
@@ -1210,7 +1211,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1210
1211
  return;
1211
1212
  }
1212
1213
  let n = t.getBoundingClientRect(), r = e.getBoundingClientRect();
1213
- p.value = aa({
1214
+ p.value = sa({
1214
1215
  imageRect: r,
1215
1216
  parentRect: n,
1216
1217
  scrollLeft: t.scrollLeft,
@@ -1228,10 +1229,10 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1228
1229
  let o = a - r;
1229
1230
  S();
1230
1231
  let s = p.value, c = s ? `${s.left}|${s.top}|${s.width}|${s.height}` : "";
1231
- n = c === t ? n + 1 : 0, t = c, !(o >= fa && n >= 2) && o < pa && (e = requestAnimationFrame(i));
1232
+ n = c === t ? n + 1 : 0, t = c, !(o >= ma && n >= 2) && o < ha && (e = requestAnimationFrame(i));
1232
1233
  };
1233
1234
  e = requestAnimationFrame(i);
1234
- let a = setTimeout(S, fa);
1235
+ let a = setTimeout(S, ma);
1235
1236
  C = () => {
1236
1237
  cancelAnimationFrame(e), clearTimeout(a);
1237
1238
  };
@@ -1399,7 +1400,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1399
1400
  }
1400
1401
  function xe(e) {
1401
1402
  let t = ye(e.clientX, e.clientY) - T, n = he + t;
1402
- e.shiftKey || (n = Math.round(n / da) * da), f.value = (n % 360 + 360) % 360, E && (E.style.transform = ve(ge, f.value) || "");
1403
+ e.shiftKey || (n = Math.round(n / pa) * pa), f.value = (n % 360 + 360) % 360, E && (E.style.transform = ve(ge, f.value) || "");
1403
1404
  }
1404
1405
  function D() {
1405
1406
  document.removeEventListener("mousemove", xe), document.removeEventListener("mouseup", D), l.value = !1, a("interact-end");
@@ -1420,7 +1421,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1420
1421
  if (!i.imageInfo || !p.value) return;
1421
1422
  let t = e.clientX, n = e.clientY, r = p.value, o = !1, s = (e) => {
1422
1423
  let s = e.clientX - t, l = e.clientY - n;
1423
- if (!(!o && Math.sqrt(s * s + l * l) < ua)) {
1424
+ if (!(!o && Math.sqrt(s * s + l * l) < fa)) {
1424
1425
  if (!o) {
1425
1426
  o = !0, c.value = !0, a("interact-start"), k = document.createElement("div"), k.style.cssText = "position: fixed; pointer-events: none; z-index: 10000; opacity: 0.5; border: 2px dashed #2563eb; border-radius: 4px; background: rgba(37, 99, 235, 0.1);";
1426
1427
  let e = i.zoom;
@@ -1499,19 +1500,19 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1499
1500
  style: z(e.style),
1500
1501
  "data-handle": e.pos,
1501
1502
  onMousedown: q((t) => ue(t, e.pos), ["prevent", "stop"])
1502
- }, null, 44, oa))), 128)),
1503
+ }, null, 44, ca))), 128)),
1503
1504
  r[5] ||= P("div", { class: "image-overlay__rotate-line" }, null, -1),
1504
1505
  P("div", {
1505
1506
  class: "image-overlay__rotate-handle",
1506
1507
  style: z({ left: `${w.value / 2 - 7}px` }),
1507
1508
  title: G(n)("imageOverlay.rotate"),
1508
1509
  onMousedown: r[2] ||= q((e) => be(e), ["prevent", "stop"])
1509
- }, null, 44, sa),
1510
- s.value ? (V(), N("div", ca, W(Math.round(u.value)) + " × " + W(Math.round(d.value)), 1)) : M("", !0),
1511
- l.value ? (V(), N("div", la, W(Math.round(f.value)) + "° ", 1)) : M("", !0)
1510
+ }, null, 44, la),
1511
+ s.value ? (V(), N("div", ua, W(Math.round(u.value)) + " × " + W(Math.round(d.value)), 1)) : M("", !0),
1512
+ l.value ? (V(), N("div", da, W(Math.round(f.value)) + "° ", 1)) : M("", !0)
1512
1513
  ], 36)) : M("", !0);
1513
1514
  }
1514
- }), [["__scopeId", "data-v-4c3d1a1d"]]), ha = /* @__PURE__ */ I({
1515
+ }), [["__scopeId", "data-v-4c3d1a1d"]]), _a = /* @__PURE__ */ I({
1515
1516
  __name: "HeaderFooterSelectionOverlay",
1516
1517
  props: {
1517
1518
  pagesContainer: {},
@@ -1561,7 +1562,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1561
1562
  i !== null && cancelAnimationFrame(i), o?.removeEventListener("scroll", a, !0), Xt(t.hiddenContainer);
1562
1563
  }), (e, t) => null;
1563
1564
  }
1564
- }), ga = { class: "hf-editor-label" }, _a = /*#__PURE__*/ t(/* @__PURE__ */ I({
1565
+ }), va = { class: "hf-editor-label" }, ya = /*#__PURE__*/ t(/* @__PURE__ */ I({
1565
1566
  __name: "InlineHeaderFooterEditor",
1566
1567
  props: {
1567
1568
  edit: {},
@@ -1604,7 +1605,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1604
1605
  class: "hf-inline-editor",
1605
1606
  style: z(l.value),
1606
1607
  role: "presentation"
1607
- }, [P("div", { class: R(["hf-separator-bar", { "hf-separator-bar--footer": e.edit.position === "footer" }]) }, [P("span", ga, W(c.value), 1), P("div", {
1608
+ }, [P("div", { class: R(["hf-separator-bar", { "hf-separator-bar--footer": e.edit.position === "footer" }]) }, [P("span", va, W(c.value), 1), P("div", {
1608
1609
  class: "hf-options",
1609
1610
  onMousedown: n[5] ||= q(() => {}, ["stop"])
1610
1611
  }, [F(G(a), {
@@ -1654,7 +1655,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1654
1655
  })
1655
1656
  ], 2)) : M("", !0)], 32)], 2)], 4));
1656
1657
  }
1657
- }), [["__scopeId", "data-v-a0bd3730"]]), va = ["title", "aria-label"], ya = /* @__PURE__ */ I({
1658
+ }), [["__scopeId", "data-v-a0bd3730"]]), ba = ["title", "aria-label"], xa = /* @__PURE__ */ I({
1658
1659
  __name: "OutlineToggleButton",
1659
1660
  props: {
1660
1661
  leftOffset: {},
@@ -1677,9 +1678,9 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1677
1678
  }, [F(i, {
1678
1679
  name: "format_list_bulleted",
1679
1680
  size: 20
1680
- })], 44, va));
1681
+ })], 44, ba));
1681
1682
  }
1682
- }), ba = /*#__PURE__*/ t(/* @__PURE__ */ I({
1683
+ }), Sa = /*#__PURE__*/ t(/* @__PURE__ */ I({
1683
1684
  __name: "PageIndicator",
1684
1685
  props: {
1685
1686
  currentPage: {},
@@ -1698,7 +1699,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1698
1699
  total: e.totalPages
1699
1700
  })), 5));
1700
1701
  }
1701
- }), [["__scopeId", "data-v-f1904974"]]), xa = ["data-folio-block-id"], Sa = ["data-folio-block-id", "title"], Ca = 2.5, wa = 5, Ta = 6, Ea = 2, Da = 2, Oa = /*#__PURE__*/ t(/* @__PURE__ */ I({
1702
+ }), [["__scopeId", "data-v-f1904974"]]), Ca = ["data-folio-block-id"], wa = ["data-folio-block-id", "title"], Ta = 2.5, Ea = 5, Da = 6, Oa = 2, ka = 2, Aa = /*#__PURE__*/ t(/* @__PURE__ */ I({
1702
1703
  __name: "TemplateDirectivesOverlay",
1703
1704
  props: {
1704
1705
  getView: { type: Function },
@@ -1712,19 +1713,19 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1712
1713
  setup(e) {
1713
1714
  let t = e, n = /* @__PURE__ */ new Set(["if", "each"]), r = /* @__PURE__ */ new Set(["endif", "endeach"]), i = (e) => e === "each" ? "each" : "if";
1714
1715
  function a(e) {
1715
- let t = e - Ta - Ca - Ea;
1716
- return t <= 0 ? 0 : Math.floor(t / wa);
1716
+ let t = e - Da - Ta - Oa;
1717
+ return t <= 0 ? 0 : Math.floor(t / Ea);
1717
1718
  }
1718
1719
  function o(e, t, n) {
1719
1720
  let r = a(n), i = Math.min(Math.max(0, e), r);
1720
- return t - Ta - Ca - (r - i) * wa;
1721
+ return t - Da - Ta - (r - i) * Ea;
1721
1722
  }
1722
1723
  function s(e, t) {
1723
- if (t.length === 0) return e.bottom - e.top >= Da ? [e] : [];
1724
+ if (t.length === 0) return e.bottom - e.top >= ka ? [e] : [];
1724
1725
  let n = [];
1725
1726
  for (let r of t) {
1726
1727
  let t = Math.max(e.top, r.top), i = Math.min(e.bottom, r.bottom);
1727
- i - t >= Da && n.push({
1728
+ i - t >= ka && n.push({
1728
1729
  top: t,
1729
1730
  bottom: i
1730
1731
  });
@@ -1886,10 +1887,10 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1886
1887
  position: "absolute",
1887
1888
  left: `${t.railX * e.zoom}px`,
1888
1889
  top: `${n.top * e.zoom}px`,
1889
- width: `${Ca * e.zoom}px`,
1890
+ width: `${Ta * e.zoom}px`,
1890
1891
  height: `${Math.max(0, n.bottom - n.top) * e.zoom}px`
1891
1892
  })
1892
- }, null, 14, xa))), 128))], 64))), 128)), (V(!0), N(O, null, U(p.value, (t, n) => (V(), N(O, { key: `d:${n}` }, [(V(!0), N(O, null, U(t.rects, (r, i) => (V(), N("span", {
1893
+ }, null, 14, Ca))), 128))], 64))), 128)), (V(!0), N(O, null, U(p.value, (t, n) => (V(), N(O, { key: `d:${n}` }, [(V(!0), N(O, null, U(t.rects, (r, i) => (V(), N("span", {
1893
1894
  key: `d:${n}:${i}`,
1894
1895
  class: R(oe(t.range)),
1895
1896
  "data-folio-block-id": S(t.range),
@@ -1901,9 +1902,9 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1901
1902
  width: `${(r.width + 2) * e.zoom}px`,
1902
1903
  height: `${Math.max(0, r.height - 2) * e.zoom}px`
1903
1904
  })
1904
- }, null, 14, Sa))), 128))], 64))), 128))], 32));
1905
+ }, null, 14, wa))), 128))], 64))), 128))], 32));
1905
1906
  }
1906
- }), [["__scopeId", "data-v-c72dfa21"]]), ka = ["href", "title"], Aa = ["title"], ja = ["title"], Ma = ["title"], Na = { class: "docx-hyperlink-popup__edit-row" }, Pa = ["placeholder", "onKeydown"], Fa = { class: "docx-hyperlink-popup__edit-row" }, Ia = ["onKeydown"], La = ["disabled"], Ra = /*#__PURE__*/ t(/* @__PURE__ */ I({
1907
+ }), [["__scopeId", "data-v-c72dfa21"]]), ja = ["href", "title"], Ma = ["title"], Na = ["title"], Pa = ["title"], Fa = { class: "docx-hyperlink-popup__edit-row" }, Ia = ["placeholder", "onKeydown"], La = { class: "docx-hyperlink-popup__edit-row" }, Ra = ["onKeydown"], za = ["disabled"], Ba = /*#__PURE__*/ t(/* @__PURE__ */ I({
1907
1908
  __name: "HyperlinkPopup",
1908
1909
  props: {
1909
1910
  data: {},
@@ -1952,28 +1953,28 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1952
1953
  class: R(["docx-hyperlink-popup", { "docx-hyperlink-popup--edit": o.value }]),
1953
1954
  style: z(u.value),
1954
1955
  onMousedown: r[6] ||= q(() => {}, ["stop"])
1955
- }, [o.value ? (V(), N(O, { key: 1 }, [P("div", Na, [Le(P("input", {
1956
+ }, [o.value ? (V(), N(O, { key: 1 }, [P("div", Fa, [Le(P("input", {
1956
1957
  class: "docx-hyperlink-popup__input",
1957
1958
  placeholder: G(n)("displayText"),
1958
1959
  "onUpdate:modelValue": r[2] ||= (e) => s.value = e,
1959
1960
  onKeydown: [Re(q(h, ["prevent"]), ["enter"]), r[3] ||= Re((e) => t.$emit("close"), ["esc"])]
1960
- }, null, 40, Pa), [[Pe, s.value]])]), P("div", Fa, [Le(P("input", {
1961
+ }, null, 40, Ia), [[Pe, s.value]])]), P("div", La, [Le(P("input", {
1961
1962
  class: "docx-hyperlink-popup__input",
1962
1963
  placeholder: "https://...",
1963
1964
  "onUpdate:modelValue": r[4] ||= (e) => c.value = e,
1964
1965
  onKeydown: [Re(q(h, ["prevent"]), ["enter"]), r[5] ||= Re((e) => t.$emit("close"), ["esc"])]
1965
- }, null, 40, Ia), [[Pe, c.value]]), P("button", {
1966
+ }, null, 40, Ra), [[Pe, c.value]]), P("button", {
1966
1967
  class: "docx-hyperlink-popup__apply",
1967
1968
  disabled: !c.value.trim(),
1968
1969
  onClick: q(h, ["prevent"])
1969
- }, W(G(n)("common.apply")), 9, La)])], 64)) : (V(), N(O, { key: 0 }, [
1970
+ }, W(G(n)("common.apply")), 9, za)])], 64)) : (V(), N(O, { key: 0 }, [
1970
1971
  r[10] ||= we("<span class=\"docx-hyperlink-popup__icon\" aria-hidden data-v-366df18c><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" data-v-366df18c><circle cx=\"12\" cy=\"12\" r=\"10\" data-v-366df18c></circle><path d=\"M2 12h20\" data-v-366df18c></path><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\" data-v-366df18c></path></svg></span>", 1),
1971
1972
  P("a", {
1972
1973
  class: "docx-hyperlink-popup__url",
1973
1974
  href: e.data.href,
1974
1975
  title: e.data.href,
1975
1976
  onClick: r[0] ||= q((n) => t.$emit("navigate", e.data.href), ["prevent"])
1976
- }, W(e.data.href), 9, ka),
1977
+ }, W(e.data.href), 9, ja),
1977
1978
  r[11] ||= P("span", { class: "docx-hyperlink-popup__sep" }, null, -1),
1978
1979
  P("button", {
1979
1980
  class: "docx-hyperlink-popup__btn",
@@ -1995,7 +1996,7 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
1995
1996
  height: "13",
1996
1997
  rx: "2",
1997
1998
  ry: "2"
1998
- }), P("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })], -1)]], 8, Aa),
1999
+ }), P("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })], -1)]], 8, Ma),
1999
2000
  e.readOnly ? M("", !0) : (V(), N("button", {
2000
2001
  key: 0,
2001
2002
  class: "docx-hyperlink-popup__btn",
@@ -2010,43 +2011,43 @@ var oa = ["data-handle", "onMousedown"], sa = ["title"], ca = {
2010
2011
  "stroke-width": "2",
2011
2012
  "stroke-linecap": "round",
2012
2013
  "stroke-linejoin": "round"
2013
- }, [P("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), P("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })], -1)]], 8, ja)),
2014
+ }, [P("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), P("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })], -1)]], 8, Na)),
2014
2015
  e.readOnly ? M("", !0) : (V(), N("button", {
2015
2016
  key: 1,
2016
2017
  class: "docx-hyperlink-popup__btn",
2017
2018
  title: G(n)("removeLink"),
2018
2019
  onClick: r[1] ||= q((e) => t.$emit("remove"), ["prevent"])
2019
- }, [...r[9] ||= [we("<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" data-v-366df18c><path d=\"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71\" data-v-366df18c></path><path d=\"M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71\" data-v-366df18c></path><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"5\" data-v-366df18c></line><line x1=\"2\" y1=\"8\" x2=\"5\" y2=\"8\" data-v-366df18c></line><line x1=\"16\" y1=\"19\" x2=\"16\" y2=\"22\" data-v-366df18c></line><line x1=\"19\" y1=\"16\" x2=\"22\" y2=\"16\" data-v-366df18c></line></svg>", 1)]], 8, Ma))
2020
+ }, [...r[9] ||= [we("<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" data-v-366df18c><path d=\"M18.84 12.25l1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71\" data-v-366df18c></path><path d=\"M5.17 11.75l-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71\" data-v-366df18c></path><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"5\" data-v-366df18c></line><line x1=\"2\" y1=\"8\" x2=\"5\" y2=\"8\" data-v-366df18c></line><line x1=\"16\" y1=\"19\" x2=\"16\" y2=\"22\" data-v-366df18c></line><line x1=\"19\" y1=\"16\" x2=\"22\" y2=\"16\" data-v-366df18c></line></svg>", 1)]], 8, Pa))
2020
2021
  ], 64))], 38)) : M("", !0);
2021
2022
  }
2022
2023
  }), [["__scopeId", "data-v-366df18c"]]);
2023
2024
  //#endregion
2024
2025
  //#region src/composables/commentMarks.ts
2025
- function za(e, t) {
2026
+ function Va(e, t) {
2026
2027
  let n = Math.max(0, Math.min(t.from, e)), r = Math.max(n, Math.min(t.to, e));
2027
2028
  return n === r ? null : {
2028
2029
  from: n,
2029
2030
  to: r
2030
2031
  };
2031
2032
  }
2032
- function Ba({ docSize: e, capturedRange: t, currentRange: n, savedRange: r }) {
2033
+ function Ha({ docSize: e, capturedRange: t, currentRange: n, savedRange: r }) {
2033
2034
  let i = t.from === t.to ? n.from === n.to ? r && r.from !== r.to ? r : null : n : t;
2034
- return i ? za(e, i) : null;
2035
+ return i ? Va(e, i) : null;
2035
2036
  }
2036
- function Va(e, t, n, r) {
2037
- let i = e.state.schema.marks.comment, a = za(e.state.doc.content.size, t);
2037
+ function Ua(e, t, n, r) {
2038
+ let i = e.state.schema.marks.comment, a = Va(e.state.doc.content.size, t);
2038
2039
  if (!i || !a) return !1;
2039
2040
  let o = e.state.tr;
2040
2041
  return r?.replacePending && (o = o.removeMark(a.from, a.to, i.create({ commentId: cn }))), o = o.addMark(a.from, a.to, i.create({ commentId: n })), r?.selectEnd && (o = o.setSelection(jt.near(o.doc.resolve(a.to), -1))), e.dispatch(o), !0;
2041
2042
  }
2042
- function Ha(e, t) {
2043
- let n = e.state.schema.marks.comment, r = za(e.state.doc.content.size, t);
2043
+ function Wa(e, t) {
2044
+ let n = e.state.schema.marks.comment, r = Va(e.state.doc.content.size, t);
2044
2045
  !n || !r || e.dispatch(e.state.tr.removeMark(r.from, r.to, n.create({ commentId: cn })));
2045
2046
  }
2046
2047
  //#endregion
2047
2048
  //#region src/composables/useCommentLifecycle.ts
2048
- var Ua = 408, Wa = 12;
2049
- function Ga(e) {
2049
+ var Ga = 408, Ka = 12;
2050
+ function qa(e) {
2050
2051
  let t = H(!1), n = H(null), r = H(null), i = H(null), a = H(null);
2051
2052
  function o(t) {
2052
2053
  let n = e.editorView.value, r = e.pagesContainer.value;
@@ -2079,7 +2080,7 @@ function Ga(e) {
2079
2080
  r.value = null;
2080
2081
  return;
2081
2082
  }
2082
- let l = i.getBoundingClientRect(), u = e.pagesContainer.value?.getBoundingClientRect(), d = u ? u.right - l.left + Wa : l.width / 2 + Ua;
2083
+ let l = i.getBoundingClientRect(), u = e.pagesContainer.value?.getBoundingClientRect(), d = u ? u.right - l.left + Ka : l.width / 2 + Ga;
2083
2084
  r.value = {
2084
2085
  top: c.top - l.top,
2085
2086
  left: Math.max(16, Math.min(d, l.width - 16)),
@@ -2090,7 +2091,7 @@ function Ga(e) {
2090
2091
  function c() {
2091
2092
  let s = e.editorView.value;
2092
2093
  if (!s) return;
2093
- let c = r.value, l = s.state.selection, u = Ba({
2094
+ let c = r.value, l = s.state.selection, u = Ha({
2094
2095
  docSize: s.state.doc.content.size,
2095
2096
  capturedRange: c ? {
2096
2097
  from: c.from,
@@ -2109,7 +2110,7 @@ function Ga(e) {
2109
2110
  r.value = null;
2110
2111
  return;
2111
2112
  }
2112
- if (!Va(s, u, cn, { selectEnd: !0 })) {
2113
+ if (!Ua(s, u, cn, { selectEnd: !0 })) {
2113
2114
  r.value = null, i.value = null;
2114
2115
  return;
2115
2116
  }
@@ -2122,11 +2123,11 @@ function Ga(e) {
2122
2123
  let n = e.editorView.value, r = i.value;
2123
2124
  if (!n || !r) return !1;
2124
2125
  let a = e.createComment(t);
2125
- return Va(n, r, a.id, { replacePending: !0 }) ? (e.pushComment(a), e.reLayout(), e.setActiveSidebarItem(`comment-${a.id}`), l(), !0) : !1;
2126
+ return Ua(n, r, a.id, { replacePending: !0 }) ? (e.pushComment(a), e.reLayout(), e.setActiveSidebarItem(`comment-${a.id}`), l(), !0) : !1;
2126
2127
  }
2127
2128
  function d() {
2128
2129
  let t = e.editorView.value;
2129
- t && i.value && Ha(t, i.value), l();
2130
+ t && i.value && Wa(t, i.value), l();
2130
2131
  }
2131
2132
  return {
2132
2133
  isAddingComment: t,
@@ -2140,7 +2141,7 @@ function Ga(e) {
2140
2141
  }
2141
2142
  //#endregion
2142
2143
  //#region src/composables/useCommentManagement.ts
2143
- function Ka(e) {
2144
+ function Ja(e) {
2144
2145
  let t = ln(), n = H([]), r = H(!1);
2145
2146
  function i() {
2146
2147
  r.value = !0;
@@ -2223,7 +2224,7 @@ function Ka(e) {
2223
2224
  }
2224
2225
  //#endregion
2225
2226
  //#region src/utils/imageClipboard.ts
2226
- function qa(e, t, n) {
2227
+ function Ya(e, t, n) {
2227
2228
  let r = $(e.state), i = e.state.schema.marks.insertion;
2228
2229
  if (!r || !i) return;
2229
2230
  let a = t.selection.from, o = a - n.nodeSize;
@@ -2233,7 +2234,7 @@ function qa(e, t, n) {
2233
2234
  date: r.date
2234
2235
  }));
2235
2236
  }
2236
- function Ja(e, t) {
2237
+ function Xa(e, t) {
2237
2238
  let n = e.state.doc.nodeAt(t);
2238
2239
  if (!n || n.type.name !== "image") return;
2239
2240
  let r = n.attrs.src;
@@ -2247,7 +2248,7 @@ function Ja(e, t) {
2247
2248
  e.value = i, document.body.appendChild(e), e.select(), document.execCommand("copy"), document.body.removeChild(e);
2248
2249
  });
2249
2250
  }
2250
- function Ya(e) {
2251
+ function Za(e) {
2251
2252
  return new Promise((t, n) => {
2252
2253
  let r = new FileReader();
2253
2254
  r.onload = () => {
@@ -2255,7 +2256,7 @@ function Ya(e) {
2255
2256
  }, r.onerror = () => n(r.error ?? /* @__PURE__ */ Error("Failed to read blob")), r.readAsDataURL(e);
2256
2257
  });
2257
2258
  }
2258
- function Xa(e) {
2259
+ function Qa(e) {
2259
2260
  return new Promise((t) => {
2260
2261
  let n = new Image();
2261
2262
  n.onload = () => t({
@@ -2267,7 +2268,7 @@ function Xa(e) {
2267
2268
  }), n.src = e;
2268
2269
  });
2269
2270
  }
2270
- function Za(e, t, n, r) {
2271
+ function $a(e, t, n, r) {
2271
2272
  let i = e.state.schema.nodes.image;
2272
2273
  if (!i) return;
2273
2274
  let a = i.create({
@@ -2278,23 +2279,23 @@ function Za(e, t, n, r) {
2278
2279
  wrapType: "inline",
2279
2280
  displayMode: "inline"
2280
2281
  }), o = e.state.tr.replaceSelectionWith(a);
2281
- qa(e, o, a), e.dispatch(o);
2282
+ Ya(e, o, a), e.dispatch(o);
2282
2283
  }
2283
- async function Qa(e) {
2284
+ async function eo(e) {
2284
2285
  try {
2285
2286
  let t = await navigator.clipboard.read();
2286
2287
  for (let n of t) {
2287
2288
  let t = n.types.find((e) => e.startsWith("image/"));
2288
2289
  if (t) {
2289
- let r = await Ya(await n.getType(t)), i = await Xa(r), a = i.width, o = i.height;
2290
- a > 612 && (o = Math.round(612 / a * o), a = 612), Za(e, r, a, o);
2290
+ let r = await Za(await n.getType(t)), i = await Qa(r), a = i.width, o = i.height;
2291
+ a > 612 && (o = Math.round(612 / a * o), a = 612), $a(e, r, a, o);
2291
2292
  return;
2292
2293
  }
2293
2294
  if (n.types.includes("text/html")) {
2294
2295
  let t = await (await n.getType("text/html")).text(), r = /<img[^>]+src="(?<src>[^"]+)"[^>]*>/iu.exec(t)?.groups?.src;
2295
2296
  if (r) {
2296
2297
  let n = /data-width="(?<w>\d+)"/u.exec(t)?.groups?.w, i = /data-height="(?<h>\d+)"/u.exec(t)?.groups?.h, a = n ? Number(n) : 200, o = i ? Number(i) : 200;
2297
- Za(e, r, a || 200, o || 200);
2298
+ $a(e, r, a || 200, o || 200);
2298
2299
  return;
2299
2300
  }
2300
2301
  }
@@ -2315,14 +2316,14 @@ async function Qa(e) {
2315
2316
  }
2316
2317
  }
2317
2318
  }
2318
- function $a(e, t) {
2319
+ function to(e, t) {
2319
2320
  let n = e.state.doc.nodeAt(t);
2320
2321
  if (!n || n.type.name !== "image") return;
2321
2322
  let r = document.createElement("input");
2322
2323
  r.type = "file", r.accept = "image/*", r.onchange = async () => {
2323
2324
  let i = r.files?.[0];
2324
2325
  if (!i) return;
2325
- let a = await Ya(i), o = await Xa(a), s = n.attrs.width, c = n.attrs.height, l = typeof s == "number" ? s : o.width, u = typeof c == "number" ? c : o.height, d = Math.min(l / o.width, u / o.height), f = Math.round(o.width * d), p = Math.round(o.height * d);
2326
+ let a = await Za(i), o = await Qa(a), s = n.attrs.width, c = n.attrs.height, l = typeof s == "number" ? s : o.width, u = typeof c == "number" ? c : o.height, d = Math.min(l / o.width, u / o.height), f = Math.round(o.width * d), p = Math.round(o.height * d);
2326
2327
  try {
2327
2328
  let r = e.state.tr.setNodeMarkup(t, void 0, {
2328
2329
  ...n.attrs,
@@ -2337,7 +2338,7 @@ function $a(e, t) {
2337
2338
  }
2338
2339
  //#endregion
2339
2340
  //#region src/composables/useContextMenus.ts
2340
- var eo = /* @__PURE__ */ new Set([
2341
+ var no = /* @__PURE__ */ new Set([
2341
2342
  "inline",
2342
2343
  "square",
2343
2344
  "tight",
@@ -2346,16 +2347,16 @@ var eo = /* @__PURE__ */ new Set([
2346
2347
  "behind",
2347
2348
  "inFront"
2348
2349
  ]);
2349
- function to(e) {
2350
- return typeof e == "string" && eo.has(e);
2350
+ function ro(e) {
2351
+ return typeof e == "string" && no.has(e);
2351
2352
  }
2352
- function no(e) {
2353
- return to(e) ? e : "inline";
2353
+ function io(e) {
2354
+ return ro(e) ? e : "inline";
2354
2355
  }
2355
- function ro(e) {
2356
+ function ao(e) {
2356
2357
  return e === "left" || e === "right" || e === "none" ? e : null;
2357
2358
  }
2358
- function io(e) {
2359
+ function oo(e) {
2359
2360
  let { t } = r(), n = H({
2360
2361
  isOpen: !1,
2361
2362
  position: {
@@ -2429,7 +2430,7 @@ function io(e) {
2429
2430
  i.value = l(o, a, {
2430
2431
  x: t.clientX,
2431
2432
  y: t.clientY
2432
- }, no(s.attrs.wrapType), ro(s.attrs.cssFloat)), n.value.isOpen = !1;
2433
+ }, io(s.attrs.wrapType), ao(s.attrs.cssFloat)), n.value.isOpen = !1;
2433
2434
  return;
2434
2435
  }
2435
2436
  }
@@ -2464,7 +2465,7 @@ function io(e) {
2464
2465
  !o || o.type.name !== "image" || (i.value = l(a.element, a.pmPos, {
2465
2466
  x: t.clientX,
2466
2467
  y: t.clientY
2467
- }, no(o.attrs.wrapType), ro(o.attrs.cssFloat)), n.value.isOpen = !1);
2468
+ }, io(o.attrs.wrapType), ao(o.attrs.cssFloat)), n.value.isOpen = !1);
2468
2469
  }
2469
2470
  function f(t) {
2470
2471
  let n = e.editorView.value, r = i.value;
@@ -2488,16 +2489,16 @@ function io(e) {
2488
2489
  case "cut":
2489
2490
  if (e.selectedImage.value) {
2490
2491
  let t = e.selectedImage.value.pmPos;
2491
- Ja(n, t);
2492
+ Xa(n, t);
2492
2493
  let r = n.state.doc.nodeAt(t);
2493
2494
  r && (n.dispatch(n.state.tr.delete(t, t + r.nodeSize)), e.selectedImage.value = null, e.onCut?.());
2494
2495
  } else n.focus(), document.execCommand("cut");
2495
2496
  break;
2496
2497
  case "copy":
2497
- e.selectedImage.value ? (Ja(n, e.selectedImage.value.pmPos), e.onCopy?.()) : (n.focus(), document.execCommand("copy"));
2498
+ e.selectedImage.value ? (Xa(n, e.selectedImage.value.pmPos), e.onCopy?.()) : (n.focus(), document.execCommand("copy"));
2498
2499
  break;
2499
2500
  case "paste":
2500
- Qa(n).then(() => e.onPaste?.()).catch(() => void 0);
2501
+ eo(n).then(() => e.onPaste?.()).catch(() => void 0);
2501
2502
  break;
2502
2503
  case "pasteAsPlainText":
2503
2504
  navigator.clipboard.readText().then((t) => {
@@ -2518,7 +2519,7 @@ function io(e) {
2518
2519
  e.selectedImage.value && (e.showImageProperties.value = !0);
2519
2520
  break;
2520
2521
  case "replaceImage":
2521
- e.selectedImage.value && $a(n, e.selectedImage.value.pmPos);
2522
+ e.selectedImage.value && to(n, e.selectedImage.value.pmPos);
2522
2523
  break;
2523
2524
  case "deleteImage":
2524
2525
  if (e.selectedImage.value) {
@@ -2556,7 +2557,7 @@ function io(e) {
2556
2557
  }
2557
2558
  //#endregion
2558
2559
  //#region src/composables/useDocumentLifecycle.ts
2559
- function ao(e) {
2560
+ function so(e) {
2560
2561
  async function t(t) {
2561
2562
  e.sidebarAutoOpenedRef.value = !1, await e.loadDocumentBuffer(t);
2562
2563
  }
@@ -2575,8 +2576,8 @@ function ao(e) {
2575
2576
  }
2576
2577
  //#endregion
2577
2578
  //#region src/composables/useDocxEditorRefApi.ts
2578
- var oo = Date.now();
2579
- function so(e) {
2579
+ var co = Date.now();
2580
+ function lo(e) {
2580
2581
  let t = [];
2581
2582
  function n() {
2582
2583
  e.onPrint?.(), window.print();
@@ -2620,7 +2621,23 @@ function so(e) {
2620
2621
  let t = e.getActiveView();
2621
2622
  t?.hasFocus() && t.dom instanceof HTMLElement && t.dom.blur();
2622
2623
  }
2623
- function f() {
2624
+ function f(t) {
2625
+ let n = e.editorView.value, r = e.pagesRef.value, i = e.scrollRootRef.value;
2626
+ return !n || !r || !i ? /* @__PURE__ */ new Map() : Yn({
2627
+ blockIds: t,
2628
+ snapshot: zn(n.state.doc),
2629
+ pagesContainer: r,
2630
+ scrollRoot: i
2631
+ });
2632
+ }
2633
+ function p(e) {
2634
+ return f([e]).get(e) ?? null;
2635
+ }
2636
+ function m(t) {
2637
+ let n = e.pagesRef.value;
2638
+ return n ? Jn(n, t) : () => {};
2639
+ }
2640
+ function h() {
2624
2641
  return o ??= {
2625
2642
  getEditor: () => e.editor,
2626
2643
  getDocument: () => e.editor.getDocument(),
@@ -2642,7 +2659,7 @@ function so(e) {
2642
2659
  getLayout: () => e.editor.getLayout(),
2643
2660
  relayout: () => e.editor.relayout(),
2644
2661
  scrollToPosition: (t) => e.scrollVisiblePositionIntoView(t),
2645
- scrollToPage: h,
2662
+ scrollToPage: v,
2646
2663
  scrollToParaId: i,
2647
2664
  setPassageHighlight: e.setPassageHighlight,
2648
2665
  getPageNumberForPmPos: (t) => {
@@ -2650,19 +2667,23 @@ function so(e) {
2650
2667
  if (!n) return null;
2651
2668
  let r = bn(n, t);
2652
2669
  return r == null ? null : r + 1;
2653
- }
2670
+ },
2671
+ getBlockRect: p,
2672
+ getBlockRects: f,
2673
+ getScrollRoot: () => e.scrollRootRef.value,
2674
+ onLayoutChange: m
2654
2675
  }, o;
2655
2676
  }
2656
- function p() {
2677
+ function g() {
2657
2678
  return e.layout.value?.pages.length ?? 0;
2658
2679
  }
2659
- function m() {
2680
+ function _() {
2660
2681
  let t = e.layout.value, n = e.editorView.value;
2661
2682
  if (!t || !n) return 0;
2662
2683
  let r = bn(t, n.state.selection.from);
2663
2684
  return r == null ? 0 : r + 1;
2664
2685
  }
2665
- function h(t) {
2686
+ function v(t) {
2666
2687
  if (!Number.isInteger(t) || t < 1) return;
2667
2688
  let n = e.pagesViewportRef.value, r = e.pagesRef.value?.querySelector(`[data-page-number="${t}"]`);
2668
2689
  if (!n || !r) return;
@@ -2675,15 +2696,15 @@ function so(e) {
2675
2696
  return { exposed: {
2676
2697
  getDocument: e.getDocument,
2677
2698
  hasPendingChanges: () => e.editorView.value ? e.isDirty.value || e.commentsDirty.value : !1,
2678
- getEditorRef: f,
2699
+ getEditorRef: h,
2679
2700
  getEditor: () => e.editor,
2680
2701
  save: r,
2681
2702
  setZoom: e.setZoom,
2682
2703
  getZoom: a,
2683
2704
  focus: e.focus,
2684
- getCurrentPage: m,
2685
- getTotalPages: p,
2686
- scrollToPage: h,
2705
+ getCurrentPage: _,
2706
+ getTotalPages: g,
2707
+ scrollToPage: v,
2687
2708
  scrollToParaId: i,
2688
2709
  openPrintPreview: () => n(),
2689
2710
  print: n,
@@ -2729,7 +2750,7 @@ function so(e) {
2729
2750
  createCommentId: (t) => e.createAIEditComment(t, i),
2730
2751
  createUndoHandle: () => ({
2731
2752
  type: "documentOperationUndo",
2732
- id: `vue-${String(oo++)}`
2753
+ id: `vue-${String(co++)}`
2733
2754
  })
2734
2755
  });
2735
2756
  return l.undoHandle !== null && t.push({
@@ -2797,13 +2818,13 @@ function so(e) {
2797
2818
  if (!n) return !1;
2798
2819
  let r = hn(n.state, t);
2799
2820
  if (!r) return !1;
2800
- let { from: i, to: a } = tr(n.state.doc.content.size, r), o = n.state.doc.resolve(i), s = n.state.doc.resolve(a);
2821
+ let { from: i, to: a } = rr(n.state.doc.content.size, r), o = n.state.doc.resolve(i), s = n.state.doc.resolve(a);
2801
2822
  return n.dispatch(n.state.tr.setSelection(Z.between(o, s))), requestAnimationFrame(() => e.scrollVisiblePositionIntoView(i)), !0;
2802
2823
  },
2803
2824
  scrollToBlock: (t, n) => {
2804
2825
  let r = e.editorView.value;
2805
2826
  if (!r) return !1;
2806
- let i = nr({
2827
+ let i = ir({
2807
2828
  blockId: t,
2808
2829
  doc: r.state.doc,
2809
2830
  snapshot: n
@@ -2815,7 +2836,7 @@ function so(e) {
2815
2836
  highlightPassage: ({ blockId: t, text: n, snapshot: r }) => {
2816
2837
  let a = e.editorView.value;
2817
2838
  if (!a) return "none";
2818
- let o = ir({
2839
+ let o = or({
2819
2840
  blockId: t,
2820
2841
  text: n,
2821
2842
  doc: a.state.doc,
@@ -2823,13 +2844,13 @@ function so(e) {
2823
2844
  });
2824
2845
  if (o !== null) return e.setPassageHighlight(o), requestAnimationFrame(() => e.scrollVisiblePositionIntoView(o.from)), "passage";
2825
2846
  e.setPassageHighlight(null);
2826
- let s = nr({
2847
+ let s = ir({
2827
2848
  blockId: t,
2828
2849
  doc: a.state.doc,
2829
2850
  snapshot: r
2830
2851
  });
2831
2852
  if (s === null) return "none";
2832
- let c = sr(t);
2853
+ let c = lr(t);
2833
2854
  if (c !== null && i(c, { highlight: {} })) return "block";
2834
2855
  let { from: l, to: u } = s, d = a.state.doc.resolve(l), f = a.state.doc.resolve(u);
2835
2856
  return a.dispatch(a.state.tr.setSelection(Z.between(d, f))), requestAnimationFrame(() => e.scrollVisiblePositionIntoView(l)), "block";
@@ -2840,11 +2861,11 @@ function so(e) {
2840
2861
  showInDocument: (t, n) => {
2841
2862
  let r = e.editorView.value;
2842
2863
  if (!r) return !1;
2843
- let i = t.type === "textRange" ? rr({
2864
+ let i = t.type === "textRange" ? ar({
2844
2865
  range: t,
2845
2866
  doc: r.state.doc,
2846
2867
  snapshot: n
2847
- }) : nr({
2868
+ }) : ir({
2848
2869
  blockId: t.blockId,
2849
2870
  doc: r.state.doc,
2850
2871
  snapshot: n
@@ -2878,7 +2899,7 @@ function so(e) {
2878
2899
  if (!n) return !1;
2879
2900
  let r = gn(n.state, t);
2880
2901
  if (!r) return !1;
2881
- let { from: i, to: a } = tr(n.state.doc.content.size, r), o = n.state.doc.resolve(i), s = n.state.doc.resolve(a);
2902
+ let { from: i, to: a } = rr(n.state.doc.content.size, r), o = n.state.doc.resolve(i), s = n.state.doc.resolve(a);
2882
2903
  return n.dispatch(n.state.tr.setSelection(Z.between(o, s))), requestAnimationFrame(() => e.scrollVisiblePositionIntoView(i)), !0;
2883
2904
  },
2884
2905
  getTrackedChanges: () => {
@@ -2895,16 +2916,16 @@ function so(e) {
2895
2916
  },
2896
2917
  getPageText: (t) => {
2897
2918
  let n = e.editorView.value;
2898
- return n ? ur(e.layout.value, n.state.doc, t) : null;
2919
+ return n ? fr(e.layout.value, n.state.doc, t) : null;
2899
2920
  },
2900
2921
  getTargetPage: (t, n) => {
2901
2922
  let r = e.editorView.value, i = e.layout.value;
2902
2923
  if (!r || !i) return null;
2903
- let a = t.type === "textRange" ? rr({
2924
+ let a = t.type === "textRange" ? ar({
2904
2925
  range: t,
2905
2926
  doc: r.state.doc,
2906
2927
  snapshot: n
2907
- }) : nr({
2928
+ }) : ir({
2908
2929
  blockId: t.blockId,
2909
2930
  doc: r.state.doc,
2910
2931
  snapshot: n
@@ -2913,10 +2934,14 @@ function so(e) {
2913
2934
  let o = bn(i, a.from);
2914
2935
  return o == null ? null : o + 1;
2915
2936
  },
2937
+ getBlockRect: p,
2938
+ getBlockRects: f,
2939
+ getScrollRoot: () => e.scrollRootRef.value,
2940
+ onLayoutChange: m,
2916
2941
  getContentControls: (t = {}) => {
2917
2942
  let n = e.editorView.value;
2918
- return n ? Xn(n.state.doc, t).map((e) => ({
2919
- properties: Jn(e.node),
2943
+ return n ? Qn(n.state.doc, t).map((e) => ({
2944
+ properties: Xn(e.node),
2920
2945
  path: e.path,
2921
2946
  pmPos: e.pos
2922
2947
  })) : [];
@@ -2924,7 +2949,7 @@ function so(e) {
2924
2949
  scrollToContentControl: (t) => {
2925
2950
  let n = e.editorView.value;
2926
2951
  if (!n) return !1;
2927
- let r = Yn(n.state.doc, t);
2952
+ let r = Zn(n.state.doc, t);
2928
2953
  if (!r) return !1;
2929
2954
  let i = r.pos + 1, a = n.state.doc.resolve(i);
2930
2955
  return n.dispatch(n.state.tr.setSelection(Z.near(a))), requestAnimationFrame(() => e.scrollVisiblePositionIntoView(i)), !0;
@@ -2932,26 +2957,26 @@ function so(e) {
2932
2957
  setContentControlContent: (t, n, r = {}) => {
2933
2958
  let i = e.editorView.value;
2934
2959
  if (!i) return !1;
2935
- let a = typeof n == "string" ? Qn(i.state, t, n, r) : er(i.state, t, n, r);
2960
+ let a = typeof n == "string" ? er(i.state, t, n, r) : nr(i.state, t, n, r);
2936
2961
  return a ? (i.dispatch(a), !0) : !1;
2937
2962
  },
2938
2963
  setContentControlValue: (t, n, r = {}) => {
2939
2964
  let i = e.editorView.value;
2940
2965
  if (!i) return !1;
2941
- let a = $n(i.state, t, n, r);
2966
+ let a = tr(i.state, t, n, r);
2942
2967
  return a ? (i.dispatch(a), !0) : !1;
2943
2968
  },
2944
2969
  removeContentControl: (t, n = {}) => {
2945
2970
  let r = e.editorView.value;
2946
2971
  if (!r) return !1;
2947
- let i = Zn(r.state, t, n);
2972
+ let i = $n(r.state, t, n);
2948
2973
  return i ? (r.dispatch(i), !0) : !1;
2949
2974
  }
2950
2975
  } };
2951
2976
  }
2952
2977
  //#endregion
2953
2978
  //#region src/composables/useFormattingActions.ts
2954
- function co(e) {
2979
+ function uo(e) {
2955
2980
  let t = () => e.activeView?.value ?? e.editorView.value;
2956
2981
  function n() {
2957
2982
  let e = t();
@@ -2962,24 +2987,24 @@ function co(e) {
2962
2987
  if (!r) return;
2963
2988
  let i = e.getDocument(), a = i?.package?.styles;
2964
2989
  if (a) {
2965
- let e = ze(a), t = e.resolveParagraphStyle(n), o = { numbering: i?.package?.numbering ? gr(i.package.numbering) : null };
2990
+ let e = ze(a), t = e.resolveParagraphStyle(n), o = { numbering: i?.package?.numbering ? vr(i.package.numbering) : null };
2966
2991
  t.paragraphFormatting && (o.paragraphFormatting = t.paragraphFormatting), t.runFormatting && (o.runFormatting = t.runFormatting);
2967
2992
  let s = e.getStyle(n)?.name;
2968
- s && (o.styleName = s), dr(n, o)(r.state, (e) => r.dispatch(e));
2969
- } else dr(n)(r.state, (e) => r.dispatch(e));
2993
+ s && (o.styleName = s), pr(n, o)(r.state, (e) => r.dispatch(e));
2994
+ } else pr(n)(r.state, (e) => r.dispatch(e));
2970
2995
  r.focus();
2971
2996
  }
2972
2997
  function i() {
2973
2998
  let t = e.editorView.value;
2974
- t && (_r(t.state, (e) => t.dispatch(e), t), t.focus());
2999
+ t && (yr(t.state, (e) => t.dispatch(e), t), t.focus());
2975
3000
  }
2976
3001
  function a() {
2977
3002
  let t = e.editorView.value;
2978
- t && (yr(t.state, (e) => t.dispatch(e), t), t.focus());
3003
+ t && (xr(t.state, (e) => t.dispatch(e), t), t.focus());
2979
3004
  }
2980
3005
  function o() {
2981
3006
  let t = e.editorView.value;
2982
- t && (vr(t.state, (e) => t.dispatch(e), t), t.focus());
3007
+ t && (br(t.state, (e) => t.dispatch(e), t), t.focus());
2983
3008
  }
2984
3009
  function s(e) {
2985
3010
  let n = t();
@@ -2998,10 +3023,10 @@ function co(e) {
2998
3023
  }
2999
3024
  //#endregion
3000
3025
  //#region src/utils/fontFaces.ts
3001
- function lo() {
3026
+ function fo() {
3002
3027
  return typeof document > "u" || !("fonts" in document) ? null : document.fonts;
3003
3028
  }
3004
- async function uo(e, t, n, r) {
3029
+ async function po(e, t, n, r) {
3005
3030
  let i;
3006
3031
  try {
3007
3032
  i = new FontFace(t, n, r), e.add(i);
@@ -3010,46 +3035,46 @@ async function uo(e, t, n, r) {
3010
3035
  }
3011
3036
  return await i.load().then(() => !0, () => !1) ? i : (e.delete(i), null);
3012
3037
  }
3013
- function fo(e) {
3014
- let t = lo();
3038
+ function mo(e) {
3039
+ let t = fo();
3015
3040
  if (t) for (let n of e) t.delete(n);
3016
3041
  }
3017
3042
  //#endregion
3018
3043
  //#region src/utils/embeddedFonts.ts
3019
- var po = {
3044
+ var ho = {
3020
3045
  faces: [],
3021
3046
  familyMap: /* @__PURE__ */ new Map()
3022
3047
  };
3023
- async function mo(e) {
3024
- let t = lo();
3025
- if (!t) return po;
3048
+ async function go(e) {
3049
+ let t = fo();
3050
+ if (!t) return ho;
3026
3051
  let n;
3027
3052
  try {
3028
- n = await Sr(e);
3053
+ n = await wr(e);
3029
3054
  } catch {
3030
- return po;
3055
+ return ho;
3031
3056
  }
3032
3057
  return {
3033
- faces: (await Promise.all(n.map((e) => uo(t, e.family, e.bytes, {
3058
+ faces: (await Promise.all(n.map((e) => po(t, e.family, e.bytes, {
3034
3059
  weight: String(e.weight),
3035
3060
  style: e.style
3036
3061
  })))).filter((e) => e !== null),
3037
- familyMap: xr(n)
3062
+ familyMap: Cr(n)
3038
3063
  };
3039
3064
  }
3040
3065
  //#endregion
3041
3066
  //#region src/utils/hostFonts.ts
3042
- function ho(e) {
3067
+ function _o(e) {
3043
3068
  return typeof e == "string" && e.trim().length > 0;
3044
3069
  }
3045
- function go(e) {
3046
- return typeof e != "object" || !e ? !1 : ho(Reflect.get(e, "family")) && ho(Reflect.get(e, "src"));
3070
+ function vo(e) {
3071
+ return typeof e != "object" || !e ? !1 : _o(Reflect.get(e, "family")) && _o(Reflect.get(e, "src"));
3047
3072
  }
3048
- function _o(e) {
3073
+ function yo(e) {
3049
3074
  if (!e) return [];
3050
3075
  let t = [];
3051
3076
  for (let n of e) {
3052
- if (!go(n)) continue;
3077
+ if (!vo(n)) continue;
3053
3078
  let e = { display: "swap" };
3054
3079
  (typeof n.weight == "number" || typeof n.weight == "string") && (e.weight = String(n.weight)), t.push({
3055
3080
  family: n.family.trim(),
@@ -3059,20 +3084,20 @@ function _o(e) {
3059
3084
  }
3060
3085
  return t;
3061
3086
  }
3062
- async function vo(e) {
3063
- let t = lo();
3087
+ async function bo(e) {
3088
+ let t = fo();
3064
3089
  if (!t) return [];
3065
- let n = _o(e);
3066
- return n.length === 0 ? [] : (await Promise.all(n.map(({ family: e, source: n, descriptors: r }) => uo(t, e, n, r)))).filter((e) => e !== null);
3090
+ let n = yo(e);
3091
+ return n.length === 0 ? [] : (await Promise.all(n.map(({ family: e, source: n, descriptors: r }) => po(t, e, n, r)))).filter((e) => e !== null);
3067
3092
  }
3068
3093
  //#endregion
3069
3094
  //#region src/composables/useFontLifecycle.ts
3070
- var yo = {
3071
- loadEmbedded: mo,
3072
- loadHost: vo,
3073
- remove: fo
3095
+ var xo = {
3096
+ loadEmbedded: go,
3097
+ loadHost: bo,
3098
+ remove: mo
3074
3099
  };
3075
- function bo(e, t = yo) {
3100
+ function So(e, t = xo) {
3076
3101
  K(() => e.isReady.value ? e.getDocument()?.originalBuffer ?? null : null, (n, r, i) => {
3077
3102
  if (!n) return;
3078
3103
  let a = !1, o = [];
@@ -3081,9 +3106,9 @@ function bo(e, t = yo) {
3081
3106
  t.remove(n);
3082
3107
  return;
3083
3108
  }
3084
- o = n, !(n.length === 0 && r.size === 0) && (br(r.size > 0 ? r : null), e.remeasure());
3109
+ o = n, !(n.length === 0 && r.size === 0) && (Sr(r.size > 0 ? r : null), e.remeasure());
3085
3110
  }), i(() => {
3086
- a = !0, t.remove(o), br(null);
3111
+ a = !0, t.remove(o), Sr(null);
3087
3112
  });
3088
3113
  }, { immediate: !0 }), K(e.fonts, (n, r, i) => {
3089
3114
  if (!n || n.length === 0) return;
@@ -3101,7 +3126,7 @@ function bo(e, t = yo) {
3101
3126
  }
3102
3127
  //#endregion
3103
3128
  //#region src/composables/useHyperlinkManagement.ts
3104
- function xo(e) {
3129
+ function Co(e) {
3105
3130
  let t = H(null);
3106
3131
  function n(e, t) {
3107
3132
  t(e.state, (t) => e.dispatch(t), e);
@@ -3128,19 +3153,19 @@ function xo(e) {
3128
3153
  r && n(t, r()), t.focus();
3129
3154
  }
3130
3155
  function a(e) {
3131
- let n = Tr(e);
3156
+ let n = Dr(e);
3132
3157
  n && (window.open(n, "_blank", "noopener,noreferrer"), t.value = null);
3133
3158
  }
3134
3159
  function o(n, r) {
3135
3160
  let i = e.editorView.value;
3136
- i && (Cr(i, {
3161
+ i && (Tr(i, {
3137
3162
  displayText: n,
3138
3163
  href: r
3139
3164
  }), t.value = null, i.focus());
3140
3165
  }
3141
3166
  function s() {
3142
3167
  let n = e.editorView.value;
3143
- n && (wr(n, { popupHref: t.value?.href }), t.value = null, n.focus());
3168
+ n && (Er(n, { popupHref: t.value?.href }), t.value = null, n.focus());
3144
3169
  }
3145
3170
  return {
3146
3171
  hyperlinkPopupData: t,
@@ -3153,7 +3178,7 @@ function xo(e) {
3153
3178
  }
3154
3179
  //#endregion
3155
3180
  //#region src/composables/useImageActions.ts
3156
- function So(e) {
3181
+ function wo(e) {
3157
3182
  let t = Ne(null), n = H(!1), r = A(() => {
3158
3183
  e.stateTick.value;
3159
3184
  let n = e.editorView.value, r = t.value;
@@ -3203,7 +3228,7 @@ function So(e) {
3203
3228
  }
3204
3229
  //#endregion
3205
3230
  //#region src/composables/useKeyboardShortcuts.ts
3206
- function Co(e) {
3231
+ function To(e) {
3207
3232
  function t(t) {
3208
3233
  if (e.handleZoomKeyDown(t), t.ctrlKey || t.metaKey) {
3209
3234
  if (t.key === "o") {
@@ -3218,10 +3243,10 @@ function Co(e) {
3218
3243
  }
3219
3244
  //#endregion
3220
3245
  //#region src/composables/useOutlineSidebar.ts
3221
- function wo(e) {
3246
+ function Eo(e) {
3222
3247
  function t() {
3223
3248
  let t = e.editorView.value;
3224
- t && (e.outlineHeadings.value = Er(t.state.doc));
3249
+ t && (e.outlineHeadings.value = Or(t.state.doc));
3225
3250
  }
3226
3251
  function n() {
3227
3252
  e.showOutline.value || t(), e.showOutline.value = !e.showOutline.value;
@@ -3252,7 +3277,7 @@ function wo(e) {
3252
3277
  }
3253
3278
  //#endregion
3254
3279
  //#region src/composables/usePageSetupControls.ts
3255
- function To(e) {
3280
+ function Do(e) {
3256
3281
  function t(t) {
3257
3282
  if (e.readOnly.value) return;
3258
3283
  let n = e.getDocument();
@@ -3280,19 +3305,19 @@ function To(e) {
3280
3305
  }
3281
3306
  function s(t) {
3282
3307
  let n = e.editorView.value;
3283
- n && mr(t)(n.state, n.dispatch);
3308
+ n && gr(t)(n.state, n.dispatch);
3284
3309
  }
3285
3310
  function c(t) {
3286
3311
  let n = e.editorView.value;
3287
- n && hr(t)(n.state, n.dispatch);
3312
+ n && _r(t)(n.state, n.dispatch);
3288
3313
  }
3289
3314
  function l(t) {
3290
3315
  let n = e.editorView.value;
3291
- n && (t < 0 ? pr(-t, !0)(n.state, n.dispatch) : pr(t, !1)(n.state, n.dispatch));
3316
+ n && (t < 0 ? hr(-t, !0)(n.state, n.dispatch) : hr(t, !1)(n.state, n.dispatch));
3292
3317
  }
3293
3318
  function u(t) {
3294
3319
  let n = e.editorView.value;
3295
- n && fr(t)(n.state, n.dispatch);
3320
+ n && mr(t)(n.state, n.dispatch);
3296
3321
  }
3297
3322
  return {
3298
3323
  handlePageSetupApply: t,
@@ -3308,34 +3333,34 @@ function To(e) {
3308
3333
  }
3309
3334
  //#endregion
3310
3335
  //#region src/utils/textSelection.ts
3311
- var Eo = /[\p{L}\p{N}\p{M}_''-]/u, Do = /\s/;
3312
- function Oo(e) {
3313
- return !e || e.length === 0 ? !1 : Eo.test(e);
3336
+ var Oo = /[\p{L}\p{N}\p{M}_''-]/u, ko = /\s/;
3337
+ function Ao(e) {
3338
+ return !e || e.length === 0 ? !1 : Oo.test(e);
3314
3339
  }
3315
- function ko(e) {
3316
- return !e || e.length === 0 ? !1 : Do.test(e);
3340
+ function jo(e) {
3341
+ return !e || e.length === 0 ? !1 : ko.test(e);
3317
3342
  }
3318
- function Ao(e, t) {
3343
+ function Mo(e, t) {
3319
3344
  if (!e || e.length === 0) return [0, 0];
3320
3345
  t = Math.max(0, Math.min(t, e.length - 1));
3321
3346
  let n = e[t];
3322
- if (ko(n)) {
3347
+ if (jo(n)) {
3323
3348
  let n = t, r = t;
3324
- for (; n > 0 && ko(e[n - 1]);) n--;
3325
- for (; r < e.length && ko(e[r]);) r++;
3349
+ for (; n > 0 && jo(e[n - 1]);) n--;
3350
+ for (; r < e.length && jo(e[r]);) r++;
3326
3351
  return [n, r];
3327
3352
  }
3328
- if (Oo(n)) {
3353
+ if (Ao(n)) {
3329
3354
  let n = t, r = t;
3330
- for (; n > 0 && Oo(e[n - 1]);) n--;
3331
- for (; r < e.length && Oo(e[r]);) r++;
3355
+ for (; n > 0 && Ao(e[n - 1]);) n--;
3356
+ for (; r < e.length && Ao(e[r]);) r++;
3332
3357
  return [n, r];
3333
3358
  }
3334
3359
  return [t, t + 1];
3335
3360
  }
3336
3361
  //#endregion
3337
3362
  //#region src/utils/domQueries.ts
3338
- function jo(e, t, n) {
3363
+ function No(e, t, n) {
3339
3364
  let r = n ? Array.from(e.querySelectorAll(`.layout-page-${n} span[data-pm-start][data-pm-end]`)) : Yt(e);
3340
3365
  for (let e of r) {
3341
3366
  let n = Number(e.dataset.pmStart), r = Number(e.dataset.pmEnd);
@@ -3343,7 +3368,7 @@ function jo(e, t, n) {
3343
3368
  }
3344
3369
  return null;
3345
3370
  }
3346
- function Mo(e, t, n) {
3371
+ function Po(e, t, n) {
3347
3372
  if (!e || !t) return;
3348
3373
  let r = Jt(e, n);
3349
3374
  if (!r) for (let t of Yt(e)) {
@@ -3360,21 +3385,21 @@ function Mo(e, t, n) {
3360
3385
  behavior: "smooth"
3361
3386
  });
3362
3387
  }
3363
- function No(e, t, n, r) {
3388
+ function Fo(e, t, n, r) {
3364
3389
  if (!e || !t) return null;
3365
3390
  let i = Vt(e, n, r, 1);
3366
3391
  return i === null || i < 0 ? null : Math.min(i, t.state.doc.content.size);
3367
3392
  }
3368
- function Po(e, t, n, r) {
3393
+ function Io(e, t, n, r) {
3369
3394
  if (!e) return;
3370
- let i = jo(e, t, r);
3395
+ let i = No(e, t, r);
3371
3396
  if (!i) return;
3372
- let a = i.textContent ?? "", o = Number(i.dataset.pmStart) || 0, [s, c] = Ao(a, t - o), l = o + s, u = o + c;
3397
+ let a = i.textContent ?? "", o = Number(i.dataset.pmStart) || 0, [s, c] = Mo(a, t - o), l = o + s, u = o + c;
3373
3398
  l < u && n(l, u);
3374
3399
  }
3375
- function Fo(e, t, n, r) {
3400
+ function Lo(e, t, n, r) {
3376
3401
  if (!e) return;
3377
- let i = jo(e, t, r);
3402
+ let i = No(e, t, r);
3378
3403
  if (!i) return;
3379
3404
  let a = i.closest(".layout-paragraph");
3380
3405
  if (!a) return;
@@ -3383,13 +3408,13 @@ function Fo(e, t, n, r) {
3383
3408
  }
3384
3409
  //#endregion
3385
3410
  //#region src/composables/usePagesPointer.ts
3386
- var Io = 500;
3387
- function Lo(e) {
3411
+ var Ro = 500;
3412
+ function zo(e) {
3388
3413
  let t = H(null), n = null;
3389
3414
  function r() {
3390
3415
  n !== null && (clearTimeout(n), n = null);
3391
3416
  }
3392
- let i = Ne(null), a = 0, o = null, s = 0, c = !1, l = null, u = jr(), d = S({
3417
+ let i = Ne(null), a = 0, o = null, s = 0, c = !1, l = null, u = Nr(), d = S({
3393
3418
  pagesContainer: e.pagesRef,
3394
3419
  onScrollExtendSelection: (e, t) => {
3395
3420
  if (!c || l === null) return;
@@ -3402,7 +3427,7 @@ function Lo(e) {
3402
3427
  visible: !1
3403
3428
  }), p = null;
3404
3429
  function m(t, n) {
3405
- return No(e.pagesRef.value, e.editorView.value, t, n);
3430
+ return Fo(e.pagesRef.value, e.editorView.value, t, n);
3406
3431
  }
3407
3432
  function h() {
3408
3433
  let t = i.value;
@@ -3415,7 +3440,7 @@ function Lo(e) {
3415
3440
  function g(t, n) {
3416
3441
  let r = i.value, a = e.pagesRef.value, o = h();
3417
3442
  if (r?.rId && a && o !== e.editorView.value) {
3418
- let e = Dr(a, r.position, r.rId, t, n);
3443
+ let e = kr(a, r.position, r.rId, t, n);
3419
3444
  return e === null || e < 0 ? null : Math.min(e, o?.state.doc.content.size ?? e);
3420
3445
  }
3421
3446
  return m(t, n);
@@ -3428,13 +3453,13 @@ function Lo(e) {
3428
3453
  } catch {}
3429
3454
  }
3430
3455
  function v(t) {
3431
- Mo(e.pagesRef.value, e.pagesViewportRef.value, t);
3456
+ Po(e.pagesRef.value, e.pagesViewportRef.value, t);
3432
3457
  }
3433
3458
  function y(t) {
3434
- Po(e.pagesRef.value, t, _, i.value?.position);
3459
+ Io(e.pagesRef.value, t, _, i.value?.position);
3435
3460
  }
3436
3461
  function b(t) {
3437
- Fo(e.pagesRef.value, t, _, i.value?.position);
3462
+ Lo(e.pagesRef.value, t, _, i.value?.position);
3438
3463
  }
3439
3464
  function x(t) {
3440
3465
  let n = e.editorView.value;
@@ -3463,7 +3488,7 @@ function Lo(e) {
3463
3488
  if (!o) return;
3464
3489
  let s = e.pagesViewportRef.value;
3465
3490
  if (!s || !(a.target instanceof HTMLElement) || a.target.closest(".docx-editor-vue__note-editor")) return;
3466
- let l = Ar({
3491
+ let l = Mr({
3467
3492
  mouseX: a.clientX,
3468
3493
  mouseY: a.clientY,
3469
3494
  pagesContainer: o,
@@ -3473,7 +3498,7 @@ function Lo(e) {
3473
3498
  if (!l) {
3474
3499
  n === null && (n = setTimeout(() => {
3475
3500
  t.value = null, n = null;
3476
- }, kr));
3501
+ }, jr));
3477
3502
  return;
3478
3503
  }
3479
3504
  let u = e.zoom.value || 1, d = s.getBoundingClientRect();
@@ -3524,7 +3549,7 @@ function Lo(e) {
3524
3549
  if (e.readOnly.value || !(t.target instanceof HTMLElement)) return;
3525
3550
  let n = t.target;
3526
3551
  if (n.closest(".docx-editor-vue__note-editor")) return;
3527
- let r = Or(n);
3552
+ let r = Ar(n);
3528
3553
  if (r) {
3529
3554
  t.preventDefault(), t.stopPropagation(), i.value && ie(), e.openNoteStory(r);
3530
3555
  return;
@@ -3558,7 +3583,7 @@ function Lo(e) {
3558
3583
  }, requestAnimationFrame(() => {
3559
3584
  let n = e.getHfPmView(h);
3560
3585
  if (!n) return;
3561
- let r = Dr(e.pagesRef.value ?? s, c, h, t.clientX, t.clientY);
3586
+ let r = kr(e.pagesRef.value ?? s, c, h, t.clientX, t.clientY);
3562
3587
  if (r !== null) {
3563
3588
  let e = Math.max(0, Math.min(r, n.state.doc.content.size));
3564
3589
  n.dispatch(n.state.tr.setSelection(Z.create(n.state.doc, e)));
@@ -3647,12 +3672,12 @@ function Lo(e) {
3647
3672
  return;
3648
3673
  }
3649
3674
  let v = Date.now();
3650
- if (v - a < Io && o === m ? s++ : s = 1, a = v, o = m, s === 2) y(m);
3675
+ if (v - a < Ro && o === m ? s++ : s = 1, a = v, o = m, s === 2) y(m);
3651
3676
  else if (s >= 3) b(m), s = 0;
3652
3677
  else if (t.shiftKey) {
3653
3678
  let { from: e } = f.state.selection;
3654
3679
  _(e, m);
3655
- } else _(m), l = m, c = !0, u.begin(Mr(f, m));
3680
+ } else _(m), l = m, c = !0, u.begin(Pr(f, m));
3656
3681
  f.focus();
3657
3682
  }
3658
3683
  function oe(e) {
@@ -3720,8 +3745,8 @@ function Lo(e) {
3720
3745
  }
3721
3746
  //#endregion
3722
3747
  //#region src/composables/useRemoteSelectionSync.ts
3723
- var Ro = (e) => {
3724
- let t = new Nr(), n = null, r = () => {
3748
+ var Bo = (e) => {
3749
+ let t = new Fr(), n = null, r = () => {
3725
3750
  n !== null && (cancelAnimationFrame(n), n = null);
3726
3751
  let r = e.pagesRef.value;
3727
3752
  r && t.clear(r);
@@ -3744,8 +3769,8 @@ var Ro = (e) => {
3744
3769
  ], i, { flush: "post" }), Ae(() => {
3745
3770
  a(), r();
3746
3771
  });
3747
- }, zo = (e) => {
3748
- let t = new Pr(), n = null, r = () => {
3772
+ }, Vo = (e) => {
3773
+ let t = new Ir(), n = null, r = () => {
3749
3774
  n !== null && (cancelAnimationFrame(n), n = null);
3750
3775
  let r = e.pagesRef.value;
3751
3776
  r && t.clear(r);
@@ -3796,22 +3821,22 @@ var Ro = (e) => {
3796
3821
  clearOverlay: r,
3797
3822
  updateSelectionOverlay: i
3798
3823
  };
3799
- }, Bo = { class: "docx-editor-vue__toolbar-shell" }, Vo = {
3824
+ }, Ho = { class: "docx-editor-vue__toolbar-shell" }, Uo = {
3800
3825
  key: 0,
3801
3826
  class: "docx-editor-vue__error"
3802
- }, Ho = {
3827
+ }, Wo = {
3803
3828
  key: 1,
3804
3829
  class: "docx-editor-vue__loading"
3805
- }, Uo = {
3830
+ }, Go = {
3806
3831
  key: 2,
3807
3832
  class: "docx-editor-vue__placeholder"
3808
- }, Wo = { class: "docx-editor-vue__editor-area" }, Go = {
3833
+ }, Ko = { class: "docx-editor-vue__editor-area" }, qo = {
3809
3834
  key: 0,
3810
3835
  class: "docx-editor-vue__ruler-h"
3811
- }, Ko = {
3836
+ }, Jo = {
3812
3837
  key: 1,
3813
3838
  class: "docx-editor-vue__ruler-v"
3814
- }, qo = {
3839
+ }, Yo = {
3815
3840
  class: "docx-editor-vue__editor-content-wrapper",
3816
3841
  style: {
3817
3842
  position: "relative",
@@ -3819,11 +3844,11 @@ var Ro = (e) => {
3819
3844
  flexDirection: "column",
3820
3845
  minHeight: "100%"
3821
3846
  }
3822
- }, Jo = {
3847
+ }, Xo = {
3823
3848
  "data-testid": "selection-overlay",
3824
3849
  class: "docx-editor-vue__decoration-origin",
3825
3850
  "aria-hidden": "true"
3826
- }, Yo = ["aria-label"], Xo = { class: "docx-editor-vue__note-editor-header" }, Zo = ["aria-label"], Qo = ["aria-label"], $o = /*#__PURE__*/ t(/* @__PURE__ */ I({
3851
+ }, Zo = ["aria-label"], Qo = { class: "docx-editor-vue__note-editor-header" }, $o = ["aria-label"], es = ["aria-label"], ts = /*#__PURE__*/ t(/* @__PURE__ */ I({
3827
3852
  __name: "DocxEditor",
3828
3853
  props: {
3829
3854
  documentBuffer: { default: null },
@@ -3947,7 +3972,7 @@ var Ro = (e) => {
3947
3972
  let o = e, s = n;
3948
3973
  a(o.components);
3949
3974
  let c = de();
3950
- _i(c);
3975
+ yi(c);
3951
3976
  function l(e) {
3952
3977
  o.onChange?.(e), s("change", e), s("update:document", e);
3953
3978
  }
@@ -3968,7 +3993,7 @@ var Ro = (e) => {
3968
3993
  function Ke(e) {
3969
3994
  o.enableWheelZoom !== !1 && Ve(e);
3970
3995
  }
3971
- Co({
3996
+ To({
3972
3997
  showFindReplace: he,
3973
3998
  showHyperlink: ge,
3974
3999
  handleZoomKeyDown: He
@@ -4026,18 +4051,18 @@ var Ro = (e) => {
4026
4051
  function jt() {
4027
4052
  J.value && (nt(), tt(), Ot());
4028
4053
  }
4029
- bo({
4054
+ So({
4030
4055
  isReady: dt,
4031
4056
  getDocument: Y,
4032
4057
  fonts: () => o.fonts,
4033
4058
  remeasure: jt
4034
4059
  });
4035
- let { selectedImage: Z, imageInteracting: Mt, imageToolbarContext: Nt, handleToolbarImageWrap: Pt, handleImageTransform: Ft } = So({
4060
+ let { selectedImage: Z, imageInteracting: Mt, imageToolbarContext: Nt, handleToolbarImageWrap: Pt, handleImageTransform: Ft } = wo({
4036
4061
  editorView: X,
4037
4062
  zoom: L,
4038
4063
  stateTick: T,
4039
4064
  getCommands: Dt
4040
- }), It = zo({
4065
+ }), It = Vo({
4041
4066
  editorView: J,
4042
4067
  hiddenContainer: S,
4043
4068
  pagesRef: w,
@@ -4046,16 +4071,16 @@ var Ro = (e) => {
4046
4071
  syncCoordinator: _t,
4047
4072
  imageInteracting: Mt
4048
4073
  });
4049
- Ro({
4074
+ Bo({
4050
4075
  pagesRef: w,
4051
4076
  remoteSelections: st,
4052
4077
  syncCoordinator: _t,
4053
4078
  zoom: L
4054
4079
  });
4055
- let { hyperlinkPopupData: Lt, handleHyperlinkSubmit: Rt, handleHyperlinkRemove: Vt, handleHyperlinkPopupNavigate: Ht, handleHyperlinkPopupEdit: Ut, handleHyperlinkPopupRemove: Wt } = xo({
4080
+ let { hyperlinkPopupData: Lt, handleHyperlinkSubmit: Rt, handleHyperlinkRemove: Vt, handleHyperlinkPopupNavigate: Ht, handleHyperlinkPopupEdit: Ut, handleHyperlinkPopupRemove: Wt } = Co({
4056
4081
  editorView: X,
4057
4082
  getCommands: Dt
4058
- }), Gt = oe(), { tableInsertButton: Kt, hfEdit: qt, scrollPageInfo: Jt, resolvePos: Yt, setPmSelection: Xt, scrollVisiblePositionIntoView: Zt, handlePagesMouseDown: Qt, handlePagesMouseMove: $t, handlePagesClick: en, handlePagesDoubleClick: tn, handleTableInsertClick: nn, handleHfSave: rn, handleHfRemove: an } = Lo({
4083
+ }), Gt = oe(), { tableInsertButton: Kt, hfEdit: qt, scrollPageInfo: Jt, resolvePos: Yt, setPmSelection: Xt, scrollVisiblePositionIntoView: Zt, handlePagesMouseDown: Qt, handlePagesMouseMove: $t, handlePagesClick: en, handlePagesDoubleClick: tn, handleTableInsertClick: nn, handleHfSave: rn, handleHfRemove: an } = zo({
4059
4084
  editorView: J,
4060
4085
  pagesRef: w,
4061
4086
  pagesViewportRef: le,
@@ -4093,7 +4118,7 @@ var Ro = (e) => {
4093
4118
  K(qt, (e) => {
4094
4119
  Se.value = e?.rId ?? null, e && It.clearOverlay();
4095
4120
  }, { immediate: !0 });
4096
- let cn = wo({
4121
+ let cn = Eo({
4097
4122
  editorView: J,
4098
4123
  showOutline: xe,
4099
4124
  showSidebar: D,
@@ -4101,7 +4126,7 @@ var Ro = (e) => {
4101
4126
  activeSidebarItem: k,
4102
4127
  extractCommentsAndChanges: () => {},
4103
4128
  scrollToVisiblePosition: Zt
4104
- }), { contextMenu: ln, imageContextMenu: un, imageContextMenuTextActions: dn, customTextMenuItems: fn, handleContextMenu: pn, handleSelectedImageContextMenu: mn, handleImageWrapSelect: hn, handleContextMenuAction: gn } = io({
4129
+ }), { contextMenu: ln, imageContextMenu: un, imageContextMenuTextActions: dn, customTextMenuItems: fn, handleContextMenu: pn, handleSelectedImageContextMenu: mn, handleImageWrapSelect: hn, handleContextMenuAction: gn } = oo({
4105
4130
  editorView: X,
4106
4131
  selectedImage: Z,
4107
4132
  zoom: L,
@@ -4115,7 +4140,7 @@ var Ro = (e) => {
4115
4140
  onCopy: () => o.onCopy?.(),
4116
4141
  onCut: () => o.onCut?.(),
4117
4142
  onPaste: () => o.onPaste?.()
4118
- }), _n = ce(J, T), vn = A(() => _n.value.entries), Q = Ka({
4143
+ }), _n = ce(J, T), vn = A(() => _n.value.entries), Q = Ja({
4119
4144
  editorView: J,
4120
4145
  getDocument: Y,
4121
4146
  author: () => o.author,
@@ -4124,7 +4149,7 @@ var Ro = (e) => {
4124
4149
  o.onCommentsChange?.(e), s("comments-change", e);
4125
4150
  },
4126
4151
  reLayout: Ot
4127
- }), yn = Q.comments, $ = Ga({
4152
+ }), yn = Q.comments, $ = qa({
4128
4153
  editorView: J,
4129
4154
  pagesViewport: le,
4130
4155
  pagesContainer: w,
@@ -4168,7 +4193,7 @@ var Ro = (e) => {
4168
4193
  transform: L.value === 1 ? void 0 : `scale(${L.value})`,
4169
4194
  transformOrigin: "top center",
4170
4195
  transition: "transform 0.2s ease"
4171
- })), { handleApplyStyle: On, handleInsertSymbol: kn, handleInsertSectionBreakNextPage: An, handleInsertSectionBreakContinuous: jn } = co({
4196
+ })), { handleApplyStyle: On, handleInsertSymbol: kn, handleInsertSectionBreakNextPage: An, handleInsertSectionBreakContinuous: jn } = uo({
4172
4197
  editorView: X,
4173
4198
  getDocument: Y
4174
4199
  });
@@ -4209,7 +4234,7 @@ var Ro = (e) => {
4209
4234
  let e = J.value;
4210
4235
  e && (Ye(e), e.focus());
4211
4236
  }
4212
- let { handlePageSetupApply: In, handleLeftMarginChange: Ln, handleRightMarginChange: Rn, handleTopMarginChange: zn, handleBottomMarginChange: Bn, handleIndentLeftChange: Vn, handleIndentRightChange: Hn, handleFirstLineIndentChange: Un, handleTabStopRemove: Wn } = To({
4237
+ let { handlePageSetupApply: In, handleLeftMarginChange: Ln, handleRightMarginChange: Rn, handleTopMarginChange: zn, handleBottomMarginChange: Bn, handleIndentLeftChange: Vn, handleIndentRightChange: Hn, handleFirstLineIndentChange: Un, handleTabStopRemove: Wn } = Do({
4213
4238
  editorView: J,
4214
4239
  getDocument: Y,
4215
4240
  readOnly: d,
@@ -4288,7 +4313,7 @@ var Ro = (e) => {
4288
4313
  !t || !n || (n(e)(t.state, (e) => t.dispatch(e), t), t.focus());
4289
4314
  }
4290
4315
  let Zn = H(!1);
4291
- ao({
4316
+ so({
4292
4317
  documentBuffer: () => o.documentBuffer ?? null,
4293
4318
  document: () => o.document ?? null,
4294
4319
  loadDocumentBuffer: vt,
@@ -4332,7 +4357,7 @@ var Ro = (e) => {
4332
4357
  e(), t(), n(), r(), i();
4333
4358
  });
4334
4359
  });
4335
- let { exposed: tr } = so({
4360
+ let { exposed: tr } = lo({
4336
4361
  editor: Je,
4337
4362
  editorView: J,
4338
4363
  isDirty: ft,
@@ -4341,6 +4366,7 @@ var Ro = (e) => {
4341
4366
  layout: mt,
4342
4367
  pagesRef: w,
4343
4368
  pagesViewportRef: le,
4369
+ scrollRootRef: fe,
4344
4370
  zoom: L,
4345
4371
  scrollVisiblePositionIntoView: Zt,
4346
4372
  setPassageHighlight: (e) => {
@@ -4377,7 +4403,7 @@ var Ro = (e) => {
4377
4403
  ]),
4378
4404
  style: z(e.style)
4379
4405
  }, [
4380
- P("div", Bo, [F(Ni, {
4406
+ P("div", Ho, [F(Fi, {
4381
4407
  "show-table-insert": o.showTableInsert !== !1,
4382
4408
  onRename: n[0] ||= (e) => s("rename", e),
4383
4409
  onMenuAction: qn,
@@ -4468,7 +4494,7 @@ var Ro = (e) => {
4468
4494
  "onImageWrapType",
4469
4495
  "onImageTransform"
4470
4496
  ])) : M("", !0)]),
4471
- F(Oi, {
4497
+ F(Ai, {
4472
4498
  "show-find-replace": he.value,
4473
4499
  "onUpdate:showFindReplace": n[8] ||= (e) => he.value = e,
4474
4500
  "show-hyperlink": ge.value,
@@ -4516,10 +4542,10 @@ var Ro = (e) => {
4516
4542
  "onHyperlinkRemove",
4517
4543
  "onPageSetupApply"
4518
4544
  ]),
4519
- G(pt) ? (V(), N("div", Vo, W(G(pt)), 1)) : At.value ? (V(), N("div", Ho, [Me(t.$slots, "loading-indicator", {}, () => [e.loadingIndicator ? (V(), j(te, {
4545
+ G(pt) ? (V(), N("div", Uo, W(G(pt)), 1)) : At.value ? (V(), N("div", Wo, [Me(t.$slots, "loading-indicator", {}, () => [e.loadingIndicator ? (V(), j(te, {
4520
4546
  key: 0,
4521
4547
  node: e.loadingIndicator
4522
- }, null, 8, ["node"])) : (V(), N(O, { key: 1 }, [Te(W(G(ee)("loadingDocument")), 1)], 64))], !0)])) : !G(dt) && !re.value ? (V(), N("div", Uo, [Me(t.$slots, "placeholder", {}, () => [e.placeholder ? (V(), j(te, {
4548
+ }, null, 8, ["node"])) : (V(), N(O, { key: 1 }, [Te(W(G(ee)("loadingDocument")), 1)], 64))], !0)])) : !G(dt) && !re.value ? (V(), N("div", Go, [Me(t.$slots, "placeholder", {}, () => [e.placeholder ? (V(), j(te, {
4523
4549
  key: 0,
4524
4550
  node: e.placeholder
4525
4551
  }, null, 8, ["node"])) : (V(), N(O, { key: 1 }, [Te("No document loaded")], 64))], !0)])) : M("", !0),
@@ -4538,8 +4564,8 @@ var Ro = (e) => {
4538
4564
  ref: fe,
4539
4565
  class: "docx-editor-vue__editor-scroll",
4540
4566
  onScroll: $n
4541
- }, [P("div", Wo, [
4542
- me.value && !d.value ? (V(), N("div", Go, [F(ne, {
4567
+ }, [P("div", Ko, [
4568
+ me.value && !d.value ? (V(), N("div", qo, [F(ne, {
4543
4569
  "section-props": xn.value,
4544
4570
  zoom: G(L),
4545
4571
  unit: e.rulerUnit ?? "inch",
@@ -4573,7 +4599,7 @@ var Ro = (e) => {
4573
4599
  "onFirstLineIndentChange",
4574
4600
  "onTabStopRemove"
4575
4601
  ])])) : M("", !0),
4576
- me.value && !d.value ? (V(), N("div", Ko, [F(v, {
4602
+ me.value && !d.value ? (V(), N("div", Jo, [F(v, {
4577
4603
  "section-props": xn.value,
4578
4604
  zoom: G(L),
4579
4605
  unit: e.rulerUnit ?? "inch",
@@ -4599,14 +4625,14 @@ var Ro = (e) => {
4599
4625
  onDblclick: n[28] ||= (...e) => G(tn) && G(tn)(...e),
4600
4626
  onContextmenu: n[29] ||= q((...e) => G(pn) && G(pn)(...e), ["prevent"])
4601
4627
  }, [
4602
- P("div", qo, [
4628
+ P("div", Yo, [
4603
4629
  P("div", {
4604
4630
  ref_key: "pagesRef",
4605
4631
  ref: w,
4606
4632
  class: R(["docx-editor-vue__pages paged-editor__pages", G(qt) ? `paged-editor--hf-editing paged-editor--editing-${G(qt).position}` : ""]),
4607
4633
  style: z(Dn.value)
4608
4634
  }, null, 6),
4609
- F(ha, {
4635
+ F(_a, {
4610
4636
  "editor-view": on(),
4611
4637
  "hidden-container": C.value,
4612
4638
  "pages-container": w.value,
@@ -4619,8 +4645,8 @@ var Ro = (e) => {
4619
4645
  "selection",
4620
4646
  "zoom"
4621
4647
  ]),
4622
- P("div", Jo, [
4623
- F(li, {
4648
+ P("div", Xo, [
4649
+ F(di, {
4624
4650
  "get-view": () => G(J),
4625
4651
  "get-pages-container": () => w.value,
4626
4652
  "editor-state": G(at),
@@ -4643,7 +4669,7 @@ var Ro = (e) => {
4643
4669
  "selected-canonical",
4644
4670
  "selection-seq"
4645
4671
  ]),
4646
- F(di, {
4672
+ F(pi, {
4647
4673
  range: pe.value,
4648
4674
  "get-pages-container": () => w.value,
4649
4675
  zoom: G(L),
@@ -4658,7 +4684,7 @@ var Ro = (e) => {
4658
4684
  "blocks",
4659
4685
  "measures"
4660
4686
  ]),
4661
- o.showTemplateDirectives ? (V(), j(Oa, {
4687
+ o.showTemplateDirectives ? (V(), j(Aa, {
4662
4688
  key: 0,
4663
4689
  "get-view": () => G(J),
4664
4690
  "get-pages-container": () => w.value,
@@ -4676,7 +4702,7 @@ var Ro = (e) => {
4676
4702
  "blocks",
4677
4703
  "measures"
4678
4704
  ])) : M("", !0),
4679
- F(hi, {
4705
+ F(_i, {
4680
4706
  "get-pages-container": () => w.value,
4681
4707
  "editor-state": G(at),
4682
4708
  zoom: G(L),
@@ -4687,7 +4713,7 @@ var Ro = (e) => {
4687
4713
  "zoom",
4688
4714
  "sync-coordinator"
4689
4715
  ]),
4690
- F(Ci, {
4716
+ F(Ti, {
4691
4717
  "get-view": () => G(J),
4692
4718
  "get-pages-container": () => w.value,
4693
4719
  zoom: G(L),
@@ -4702,7 +4728,7 @@ var Ro = (e) => {
4702
4728
  ])
4703
4729
  ])
4704
4730
  ]),
4705
- G(qt) ? (V(), j(_a, {
4731
+ G(qt) ? (V(), j(ya, {
4706
4732
  key: 0,
4707
4733
  edit: G(qt),
4708
4734
  "get-view": on,
@@ -4717,16 +4743,16 @@ var Ro = (e) => {
4717
4743
  class: "docx-editor-vue__note-editor",
4718
4744
  "aria-label": kt.value,
4719
4745
  onKeydown: n[16] ||= Re(q((...e) => G(Tt) && G(Tt)(...e), ["stop", "prevent"]), ["esc"])
4720
- }, [P("header", Xo, [P("span", null, W(kt.value), 1), P("button", {
4746
+ }, [P("header", Qo, [P("span", null, W(kt.value), 1), P("button", {
4721
4747
  type: "button",
4722
4748
  "aria-label": G(ee)("common.closeDialog"),
4723
4749
  onClick: n[15] ||= (...e) => G(Tt) && G(Tt)(...e)
4724
- }, " × ", 8, Zo)]), P("div", {
4750
+ }, " × ", 8, $o)]), P("div", {
4725
4751
  ref_key: "notePmRef",
4726
4752
  ref: we,
4727
4753
  class: "docx-editor-vue__note-editor-host"
4728
- }, null, 512)], 40, Yo), [[Fe, G(ut)]]),
4729
- F(ma, {
4754
+ }, null, 512)], 40, Zo), [[Fe, G(ut)]]),
4755
+ F(ga, {
4730
4756
  "image-info": G(Z),
4731
4757
  zoom: G(L),
4732
4758
  view: X.value,
@@ -4740,7 +4766,7 @@ var Ro = (e) => {
4740
4766
  "view",
4741
4767
  "onContextMenu"
4742
4768
  ]),
4743
- F(Ra, {
4769
+ F(Ba, {
4744
4770
  data: G(Lt),
4745
4771
  "read-only": d.value,
4746
4772
  onNavigate: G(Ht),
@@ -4765,7 +4791,7 @@ var Ro = (e) => {
4765
4791
  }),
4766
4792
  "aria-label": G(Kt).type === "row" ? "Insert row" : "Insert column",
4767
4793
  onMousedown: n[21] ||= (...e) => G(nn) && G(nn)(...e)
4768
- }, " + ", 44, Qo)) : M("", !0),
4794
+ }, " + ", 44, es)) : M("", !0),
4769
4795
  F(g, {
4770
4796
  comments: G(yn),
4771
4797
  "pages-container": w.value,
@@ -4844,12 +4870,12 @@ var Ro = (e) => {
4844
4870
  size: 18
4845
4871
  })], 36)) : M("", !0)
4846
4872
  ], 544),
4847
- xe.value ? M("", !0) : (V(), j(ya, {
4873
+ xe.value ? M("", !0) : (V(), j(xa, {
4848
4874
  key: 2,
4849
4875
  "left-offset": 12,
4850
4876
  onToggle: G(cn).handleToggleOutline
4851
4877
  }, null, 8, ["onToggle"])),
4852
- G(Jt).totalPages > 1 ? (V(), j(ba, {
4878
+ G(Jt).totalPages > 1 ? (V(), j(Sa, {
4853
4879
  key: 3,
4854
4880
  "current-page": G(Jt).currentPage,
4855
4881
  "total-pages": G(Jt).totalPages,
@@ -4859,7 +4885,7 @@ var Ro = (e) => {
4859
4885
  "total-pages",
4860
4886
  "visible"
4861
4887
  ])) : M("", !0),
4862
- F(Di, {
4888
+ F(ki, {
4863
4889
  "is-open": xe.value,
4864
4890
  headings: Ee.value,
4865
4891
  "get-scroll-container": () => w.value,
@@ -4872,7 +4898,7 @@ var Ro = (e) => {
4872
4898
  "onNavigate"
4873
4899
  ])
4874
4900
  ])], 544),
4875
- F(ia, {
4901
+ F(oa, {
4876
4902
  "read-only": d.value,
4877
4903
  "context-menu": G(ln),
4878
4904
  "image-context-menu": G(un),
@@ -4894,16 +4920,16 @@ var Ro = (e) => {
4894
4920
  "onContextMenuAction",
4895
4921
  "onImageWrapSelect"
4896
4922
  ]),
4897
- F(Si, {
4923
+ F(wi, {
4898
4924
  "event-root": d.value ? null : w.value,
4899
4925
  view: G(J)
4900
4926
  }, null, 8, ["event-root", "view"])
4901
4927
  ], 6));
4902
4928
  }
4903
- }), [["__scopeId", "data-v-878a39af"]]);
4929
+ }), [["__scopeId", "data-v-f9e968f0"]]);
4904
4930
  //#endregion
4905
4931
  //#region src/utils/listState.ts
4906
- function es() {
4932
+ function ns() {
4907
4933
  return {
4908
4934
  type: "none",
4909
4935
  level: 0,
@@ -4912,30 +4938,30 @@ function es() {
4912
4938
  }
4913
4939
  //#endregion
4914
4940
  //#region src/components/FormattingBar.vue?vue&type=script&setup=true&lang.ts
4915
- var ts = ["aria-label"], ns = ["aria-label"], rs = [
4941
+ var rs = ["aria-label"], is = ["aria-label"], as = [
4916
4942
  "disabled",
4917
4943
  "title",
4918
4944
  "aria-label"
4919
- ], is = [
4945
+ ], os = [
4920
4946
  "disabled",
4921
4947
  "title",
4922
4948
  "aria-label"
4923
- ], as = ["aria-label"], os = [
4949
+ ], ss = ["aria-label"], cs = [
4924
4950
  "disabled",
4925
4951
  "title",
4926
4952
  "aria-label",
4927
4953
  "aria-pressed"
4928
- ], ss = [
4954
+ ], ls = [
4929
4955
  "disabled",
4930
4956
  "title",
4931
4957
  "aria-label",
4932
4958
  "aria-pressed"
4933
- ], cs = [
4959
+ ], us = [
4934
4960
  "disabled",
4935
4961
  "title",
4936
4962
  "aria-label",
4937
4963
  "aria-pressed"
4938
- ], ls = /*#__PURE__*/ t(/* @__PURE__ */ I({
4964
+ ], ds = /*#__PURE__*/ t(/* @__PURE__ */ I({
4939
4965
  __name: "FormattingBar",
4940
4966
  props: {
4941
4967
  currentFormatting: {},
@@ -4977,7 +5003,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
4977
5003
  "redo"
4978
5004
  ],
4979
5005
  setup(e, { emit: t }) {
4980
- let { ColorPicker: n } = h(), a = e, o = t, { t: s } = r(), c = A(() => a.currentFormatting ?? {}), l = A(() => a.documentStyles ? { styles: a.documentStyles } : {}), u = A(() => c.value.listState ?? es()), d = A(() => {
5006
+ let { ColorPicker: n } = h(), a = e, o = t, { t: s } = r(), c = A(() => a.currentFormatting ?? {}), l = A(() => a.documentStyles ? { styles: a.documentStyles } : {}), u = A(() => c.value.listState ?? ns()), d = A(() => {
4981
5007
  let e = c.value.color;
4982
5008
  return e ? e.replace(/^#/, "").toUpperCase() : void 0;
4983
5009
  }), f = A(() => {
@@ -5010,7 +5036,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5010
5036
  }, [F(i, {
5011
5037
  name: "undo",
5012
5038
  size: 18
5013
- })], 40, rs), P("button", {
5039
+ })], 40, as), P("button", {
5014
5040
  type: "button",
5015
5041
  class: "docx-formatting-bar__btn",
5016
5042
  disabled: e.disabled || !e.canRedo,
@@ -5020,7 +5046,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5020
5046
  }, [F(i, {
5021
5047
  name: "redo",
5022
5048
  size: 18
5023
- })], 40, is)], 8, ns),
5049
+ })], 40, os)], 8, is),
5024
5050
  r[13] ||= P("span", {
5025
5051
  class: "docx-formatting-bar__divider",
5026
5052
  role: "separator"
@@ -5051,7 +5077,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5051
5077
  }, [F(i, {
5052
5078
  name: "format_bold",
5053
5079
  size: 18
5054
- })], 42, os),
5080
+ })], 42, cs),
5055
5081
  P("button", {
5056
5082
  type: "button",
5057
5083
  class: R(["docx-formatting-bar__btn", { "docx-formatting-bar__btn--active": c.value.italic }]),
@@ -5063,7 +5089,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5063
5089
  }, [F(i, {
5064
5090
  name: "format_italic",
5065
5091
  size: 18
5066
- })], 42, ss),
5092
+ })], 42, ls),
5067
5093
  P("button", {
5068
5094
  type: "button",
5069
5095
  class: R(["docx-formatting-bar__btn", { "docx-formatting-bar__btn--active": c.value.underline }]),
@@ -5075,8 +5101,8 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5075
5101
  }, [F(i, {
5076
5102
  name: "format_underlined",
5077
5103
  size: 18
5078
- })], 42, cs)
5079
- ], 8, as),
5104
+ })], 42, us)
5105
+ ], 8, ss),
5080
5106
  e.showTextColorPicker ? (V(), N(O, { key: 1 }, [r[12] ||= P("span", {
5081
5107
  class: "docx-formatting-bar__divider",
5082
5108
  role: "separator"
@@ -5118,9 +5144,9 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5118
5144
  "disabled",
5119
5145
  "can-outdent"
5120
5146
  ])) : M("", !0)
5121
- ], 10, ts));
5147
+ ], 10, rs));
5122
5148
  }
5123
- }), [["__scopeId", "data-v-fc03de2e"]]), us = [
5149
+ }), [["__scopeId", "data-v-fc03de2e"]]), fs = [
5124
5150
  {
5125
5151
  value: .5,
5126
5152
  label: "50%"
@@ -5145,7 +5171,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5145
5171
  value: 2,
5146
5172
  label: "200%"
5147
5173
  }
5148
- ], ds = /*#__PURE__*/ t(/* @__PURE__ */ I({
5174
+ ], ps = /*#__PURE__*/ t(/* @__PURE__ */ I({
5149
5175
  __name: "ZoomControl",
5150
5176
  props: {
5151
5177
  value: { default: 1 },
@@ -5162,7 +5188,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5162
5188
  },
5163
5189
  emits: ["change"],
5164
5190
  setup(e, { emit: t }) {
5165
- let { Select: n } = h(), r = e, i = t, a = A(() => r.levels ?? us), o = A(() => a.value.find((e) => Math.abs(e.value - r.value) < .001)), s = A(() => o.value ? o.value.label : `${Math.round(r.value * 100)}%`), c = A(() => o.value ? String(o.value.value) : String(r.value)), l = A(() => {
5191
+ let { Select: n } = h(), r = e, i = t, a = A(() => r.levels ?? fs), o = A(() => a.value.find((e) => Math.abs(e.value - r.value) < .001)), s = A(() => o.value ? o.value.label : `${Math.round(r.value * 100)}%`), c = A(() => o.value ? String(o.value.value) : String(r.value)), l = A(() => {
5166
5192
  let e = a.value.map((e) => ({
5167
5193
  value: String(e.value),
5168
5194
  label: e.label
@@ -5190,7 +5216,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5190
5216
  "disabled"
5191
5217
  ]));
5192
5218
  }
5193
- }), [["__scopeId", "data-v-8079e07f"]]), fs = (e, t, n = {}) => {
5219
+ }), [["__scopeId", "data-v-8079e07f"]]), ms = (e, t, n = {}) => {
5194
5220
  let { colorMode: r = C, locale: i = "en", ...a } = n;
5195
5221
  return new Promise((n, o) => {
5196
5222
  let s = H(null), c = null, l = !1, d = {
@@ -5216,7 +5242,7 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5216
5242
  }
5217
5243
  };
5218
5244
  c = Se({ setup() {
5219
- return () => Ee($o, {
5245
+ return () => Ee(ts, {
5220
5246
  ...a,
5221
5247
  documentBuffer: e,
5222
5248
  ref: s,
@@ -5231,4 +5257,4 @@ var ts = ["aria-label"], ns = ["aria-label"], rs = [
5231
5257
  });
5232
5258
  };
5233
5259
  //#endregion
5234
- export { pi as AutocompleteCaretOverlay, Kr as DEFAULT_AI_SUGGESTION_PRESETS, vt as DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, Ur as DOCUMENT_PRESET_VERSION, Wr as DOCUMENT_STYLE_SET_VERSION, $o as DocxEditor, fe as FindReplaceDialog, l as FolioUIProvider, pe as FootnotePropertiesDialog, ls as FormattingBar, me as HyperlinkDialog, T as ImagePositionDialog, he as ImagePropertiesDialog, ge as InsertImageDialog, E as InsertSymbolDialog, _e as InsertTableDialog, ve as PageSetupDialog, ye as PasteSpecialDialog, Br as STELLA_STYLE_SET_NAME, be as SplitCellDialog, xe as TablePropertiesDialog, D as WatermarkDialog, ds as ZoomControl, yt as acceptAutocompleteSuggestion, bt as acceptAutocompleteWord, pt as anonymizationDecorationsKey, Y as appendAutocompleteToken, Pn as applyFolioAIEditOperations, qr as applySuggestions, xt as autocompleteSuggestionKey, St as autocompleteSuggestionPlugin, Xr as buildPositionalText, Ct as clearAutocompleteSuggestion, Cn as clearTemplateSlashMenu, le as colorModePlugin, wn as consumeTemplateSlashQuery, ni as createAICitationDecorationsPlugin, Gr as createDocx, Fr as createEmptyDocument, Rn as createFolioAIEditSnapshot, Vr as createStellaStyleDocumentPreset, Hr as createStellaStyleSet, C as defaultColorMode, e as defaultLocale, ar as deriveBlockId, Bn as diffWordSegments, Ir as extractDocumentStyleSet, Lr as extractDocumentStyleSetFromDocx, wt as finishAutocompleteSuggestion, ai as fromMarkdown, mt as getAnonymizationMatches, Tt as getAutocompleteSuggestion, at as getDocumentWatermark, ei as getFolioCaretViewportRect, or as getFolioParaIdFromBlockId, ti as getFolioSelectionViewportRect, en as getTemplateDirectives, Tn as getTemplateSlashMenu, Wn as hashFolioAIBlockText, u as i18nPlugin, He as insertImageFromFile, We as insertPageBreakInView, Ke as insertTableInView, Je as insertTableOfContentsInView, Rr as inspectDocumentStyles, zr as inspectDocumentStylesFromDocx, cr as isFolioBlockId, lr as isSequentialFolioBlockId, Jr as isSuggestionStale, Gn as normalizeFolioAIBlockText, w as provideColorMode, n as provideLocale, fs as renderAsync, En as resetTemplateSlashQuery, Yr as resolveSuggestionAnchor, nn as scanDirectives, $r as scrollFolioPositionIntoView, ri as setAICitationsMeta, Zr as setAISuggestionsMeta, ii as setActiveCitationMeta, gt as setAnonymizationTermsMeta, st as setDocumentWatermark, Qr as setFocusedSuggestionMeta, Sn as setTemplatePreviewValues, Dt as shouldTriggerAutocomplete, Ot as startAutocompleteSuggestion, Dn as templateSlashMenuKey, oi as toMarkdown, si as toMarkdownResult, de as useColorMode, r as useTranslation, ue as useWheelZoom };
5260
+ export { hi as AutocompleteCaretOverlay, Jr as DEFAULT_AI_SUGGESTION_PRESETS, vt as DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, Gr as DOCUMENT_PRESET_VERSION, Kr as DOCUMENT_STYLE_SET_VERSION, ts as DocxEditor, fe as FindReplaceDialog, l as FolioUIProvider, pe as FootnotePropertiesDialog, ds as FormattingBar, me as HyperlinkDialog, T as ImagePositionDialog, he as ImagePropertiesDialog, ge as InsertImageDialog, E as InsertSymbolDialog, _e as InsertTableDialog, ve as PageSetupDialog, ye as PasteSpecialDialog, Hr as STELLA_STYLE_SET_NAME, be as SplitCellDialog, xe as TablePropertiesDialog, D as WatermarkDialog, ps as ZoomControl, yt as acceptAutocompleteSuggestion, bt as acceptAutocompleteWord, pt as anonymizationDecorationsKey, Y as appendAutocompleteToken, Pn as applyFolioAIEditOperations, Yr as applySuggestions, xt as autocompleteSuggestionKey, St as autocompleteSuggestionPlugin, Qr as buildPositionalText, Ct as clearAutocompleteSuggestion, Cn as clearTemplateSlashMenu, le as colorModePlugin, wn as consumeTemplateSlashQuery, ii as createAICitationDecorationsPlugin, qr as createDocx, Lr as createEmptyDocument, Rn as createFolioAIEditSnapshot, Ur as createStellaStyleDocumentPreset, Wr as createStellaStyleSet, C as defaultColorMode, e as defaultLocale, sr as deriveBlockId, Bn as diffWordSegments, Rr as extractDocumentStyleSet, zr as extractDocumentStyleSetFromDocx, wt as finishAutocompleteSuggestion, si as fromMarkdown, mt as getAnonymizationMatches, Tt as getAutocompleteSuggestion, at as getDocumentWatermark, ni as getFolioCaretViewportRect, cr as getFolioParaIdFromBlockId, ri as getFolioSelectionViewportRect, en as getTemplateDirectives, Tn as getTemplateSlashMenu, Wn as hashFolioAIBlockText, u as i18nPlugin, He as insertImageFromFile, We as insertPageBreakInView, Ke as insertTableInView, Je as insertTableOfContentsInView, Br as inspectDocumentStyles, Vr as inspectDocumentStylesFromDocx, ur as isFolioBlockId, dr as isSequentialFolioBlockId, Xr as isSuggestionStale, Gn as normalizeFolioAIBlockText, w as provideColorMode, n as provideLocale, ms as renderAsync, En as resetTemplateSlashQuery, Zr as resolveSuggestionAnchor, nn as scanDirectives, ti as scrollFolioPositionIntoView, ai as setAICitationsMeta, $r as setAISuggestionsMeta, oi as setActiveCitationMeta, gt as setAnonymizationTermsMeta, st as setDocumentWatermark, ei as setFocusedSuggestionMeta, Sn as setTemplatePreviewValues, Dt as shouldTriggerAutocomplete, Ot as startAutocompleteSuggestion, Dn as templateSlashMenuKey, ci as toMarkdown, li as toMarkdownResult, de as useColorMode, r as useTranslation, ue as useWheelZoom };