@harbour-enterprises/superdoc 1.4.1-next.1 → 1.4.1-next.2

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.
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-De9wkgLl.cjs");
4
- const superdoc = require("./index-lAO6pLM-.cjs");
5
- const index = require("./index-Bpm2bUws.cjs");
4
+ const superdoc = require("./index-CZMyxx0v.cjs");
5
+ const index = require("./index-DS7Ttafb.cjs");
6
6
  function self(vars) {
7
7
  const {
8
8
  opacityDisabled,
@@ -1,6 +1,6 @@
1
1
  import { d as defineComponent, h, T as Transition, p as process$1, w as watchEffect, c as computed, r as ref, f as onMounted, X as onUnmounted, E as createElementBlock, G as openBlock, K as createBaseVNode, M as createCommentVNode, I as createVNode, v as unref } from "./vue-BnBKJwCW.es.js";
2
- import { N as NBaseLoading, u as useSuperdocStore, s as storeToRefs, a as useSelection } from "./index-BGllXGwn.es.js";
3
- import { C as derived, r as c, q as cB, aF as fadeInTransition, y as cM, I as warnOnce, J as useConfig, N as useTheme, aG as pxfy, P as createKey, Q as useThemeClass, aH as useCompitable, ai as _export_sfc } from "./index-DwUAu2hL.es.js";
2
+ import { N as NBaseLoading, u as useSuperdocStore, s as storeToRefs, a as useSelection } from "./index-QUPzhiU8.es.js";
3
+ import { C as derived, r as c, q as cB, aF as fadeInTransition, y as cM, I as warnOnce, J as useConfig, N as useTheme, aG as pxfy, P as createKey, Q as useThemeClass, aH as useCompitable, ai as _export_sfc } from "./index-BQPLVzyQ.es.js";
4
4
  function self(vars) {
5
5
  const {
6
6
  opacityDisabled,
@@ -31533,7 +31533,7 @@ class SuperConverter {
31533
31533
  static getStoredSuperdocVersion(docx) {
31534
31534
  return SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
31535
31535
  }
31536
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.4.1-next.1") {
31536
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.4.1-next.2") {
31537
31537
  return SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
31538
31538
  }
31539
31539
  /**
@@ -31534,7 +31534,7 @@ class SuperConverter {
31534
31534
  static getStoredSuperdocVersion(docx) {
31535
31535
  return SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
31536
31536
  }
31537
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.4.1-next.1") {
31537
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.4.1-next.2") {
31538
31538
  return SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
31539
31539
  }
31540
31540
  /**
@@ -1,6 +1,6 @@
1
1
  import { B as Buffer$2 } from "./jszip-B1fkPkPJ.es.js";
2
2
  import { t as twipsToInches, i as inchesToTwips, p as ptToTwips, l as linesToTwips, a as twipsToLines, b as pixelsToTwips, h as halfPointToPoints, c as twipsToPixels$2, d as convertSizeToCSS, e as inchesToPixels } from "./helpers-C8e9wR5l.es.js";
3
- import { g as generateDocxRandomId, T as TextSelection$1, o as objectIncludes, w as wrapTextsInRuns, D as DOMParser$1, c as createDocFromMarkdown, a as createDocFromHTML, b as chainableEditorState, d as convertMarkdownToHTML, f as findParentNode, e as findParentNodeClosestToPos, h as generateRandom32BitHex, i as generateRandomSigned32BitIntStrId, P as PluginKey, j as Plugin, M as Mapping, N as NodeSelection, k as Selection, l as Slice, m as DOMSerializer, F as Fragment, n as Mark$1, p as dropPoint, A as AllSelection, q as Schema$1, s as canSplit, t as resolveRunProperties, u as encodeMarksFromRPr, v as liftTarget, x as canJoin, y as joinPoint, z as replaceStep$1, R as ReplaceAroundStep$1, B as htmlHandler, C as ReplaceStep, E as getResolvedParagraphProperties, G as changeListLevel, H as isList$1, I as updateNumberingProperties, L as ListHelpers, J as inputRulesPlugin, K as TrackDeleteMarkName$1, O as TrackInsertMarkName$1, Q as TrackFormatMarkName$1, U as AddMarkStep, V as RemoveMarkStep, W as CommandService, S as SuperConverter, X as EditorState, Y as unflattenListsInHtml, Z as SelectionRange, _ as Transform, $ as createOoxmlResolver, a0 as translator, a1 as translator$1, a2 as resolveDocxFontFamily, a3 as combineIndentProperties, a4 as _getReferencedTableStyles, a5 as decodeRPrFromMarks, a6 as calculateResolvedParagraphProperties, a7 as encodeCSSFromPPr, a8 as encodeCSSFromRPr, a9 as generateOrderedListIndex, aa as docxNumberingHelpers, ab as InputRule, ac as insertNewRelationship, ad as kebabCase$1, ae as getUnderlineCssString } from "./SuperConverter-BuK6B5Kx.es.js";
3
+ import { g as generateDocxRandomId, T as TextSelection$1, o as objectIncludes, w as wrapTextsInRuns, D as DOMParser$1, c as createDocFromMarkdown, a as createDocFromHTML, b as chainableEditorState, d as convertMarkdownToHTML, f as findParentNode, e as findParentNodeClosestToPos, h as generateRandom32BitHex, i as generateRandomSigned32BitIntStrId, P as PluginKey, j as Plugin, M as Mapping, N as NodeSelection, k as Selection, l as Slice, m as DOMSerializer, F as Fragment, n as Mark$1, p as dropPoint, A as AllSelection, q as Schema$1, s as canSplit, t as resolveRunProperties, u as encodeMarksFromRPr, v as liftTarget, x as canJoin, y as joinPoint, z as replaceStep$1, R as ReplaceAroundStep$1, B as htmlHandler, C as ReplaceStep, E as getResolvedParagraphProperties, G as changeListLevel, H as isList$1, I as updateNumberingProperties, L as ListHelpers, J as inputRulesPlugin, K as TrackDeleteMarkName$1, O as TrackInsertMarkName$1, Q as TrackFormatMarkName$1, U as AddMarkStep, V as RemoveMarkStep, W as CommandService, S as SuperConverter, X as EditorState, Y as unflattenListsInHtml, Z as SelectionRange, _ as Transform, $ as createOoxmlResolver, a0 as translator, a1 as translator$1, a2 as resolveDocxFontFamily, a3 as combineIndentProperties, a4 as _getReferencedTableStyles, a5 as decodeRPrFromMarks, a6 as calculateResolvedParagraphProperties, a7 as encodeCSSFromPPr, a8 as encodeCSSFromRPr, a9 as generateOrderedListIndex, aa as docxNumberingHelpers, ab as InputRule, ac as insertNewRelationship, ad as kebabCase$1, ae as getUnderlineCssString } from "./SuperConverter-BJi_tRyc.es.js";
4
4
  import { p as process$1, r as ref, C as global$1, c as computed, E as createElementBlock, F as Fragment$1, S as renderList, O as withModifiers, G as openBlock, P as normalizeClass, M as createCommentVNode, H as toDisplayString, K as createBaseVNode, U as createApp, f as onMounted, X as onUnmounted, R as withDirectives, v as unref, Y as vModelText, y as nextTick, L as normalizeStyle, u as watch, Z as withKeys, _ as createTextVNode, I as createVNode, h, $ as readonly, s as getCurrentInstance, o as onBeforeUnmount, j as reactive, b as onBeforeMount, i as inject, a0 as onActivated, a1 as onDeactivated, a2 as Comment, d as defineComponent, a as provide, g as Teleport, t as toRef, a3 as renderSlot, a4 as isVNode, D as shallowRef, w as watchEffect, T as Transition, a5 as mergeProps, a6 as vShow, a7 as cloneVNode, a8 as Text$2, m as markRaw, N as createBlock, J as withCtx, a9 as useCssVars, V as resolveDynamicComponent, aa as normalizeProps, ab as guardReactiveProps } from "./vue-BnBKJwCW.es.js";
5
5
  import "./jszip.min-DCl8qkFO.es.js";
6
6
  import { E as EventEmitter$1 } from "./eventemitter3-CwrdEv8r.es.js";
@@ -15499,7 +15499,7 @@ const canUseDOM = () => {
15499
15499
  return false;
15500
15500
  }
15501
15501
  };
15502
- const summaryVersion = "1.4.1-next.1";
15502
+ const summaryVersion = "1.4.1-next.2";
15503
15503
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
15504
15504
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
15505
15505
  function mapAttributes(attrs) {
@@ -18131,7 +18131,7 @@ class Editor extends EventEmitter {
18131
18131
  * Process collaboration migrations
18132
18132
  */
18133
18133
  processCollaborationMigrations() {
18134
- console.debug("[checkVersionMigrations] Current editor version", "1.4.1-next.1");
18134
+ console.debug("[checkVersionMigrations] Current editor version", "1.4.1-next.2");
18135
18135
  if (!this.options.ydoc) return;
18136
18136
  const metaMap = this.options.ydoc.getMap("meta");
18137
18137
  let docVersion = metaMap.get("version");
@@ -23314,7 +23314,6 @@ const SDT_CONTAINER_STYLES = `
23314
23314
  const FIELD_ANNOTATION_STYLES = `
23315
23315
  /* Field annotation draggable styles */
23316
23316
  .superdoc-layout .annotation[data-draggable="true"] {
23317
- cursor: grab;
23318
23317
  user-select: none;
23319
23318
  -webkit-user-select: none;
23320
23319
  }
@@ -52516,6 +52515,40 @@ class PresentationEditor extends EventEmitter {
52516
52515
  this.#editor.view?.focus();
52517
52516
  }
52518
52517
  }
52518
+ #resolveFieldAnnotationSelectionFromElement(annotationEl) {
52519
+ const pmStartRaw = annotationEl.dataset?.pmStart;
52520
+ if (pmStartRaw == null) {
52521
+ return null;
52522
+ }
52523
+ const pmStart = Number(pmStartRaw);
52524
+ if (!Number.isFinite(pmStart)) {
52525
+ return null;
52526
+ }
52527
+ const doc2 = this.#editor.state?.doc;
52528
+ if (!doc2) {
52529
+ return null;
52530
+ }
52531
+ const layoutEpochRaw = annotationEl.dataset?.layoutEpoch;
52532
+ const layoutEpoch = layoutEpochRaw != null ? Number(layoutEpochRaw) : NaN;
52533
+ const effectiveEpoch = Number.isFinite(layoutEpoch) ? layoutEpoch : this.#epochMapper.getCurrentEpoch();
52534
+ const mapped = this.#epochMapper.mapPosFromLayoutToCurrentDetailed(pmStart, effectiveEpoch, 1);
52535
+ if (!mapped.ok) {
52536
+ const fallbackPos = Math.max(0, Math.min(pmStart, doc2.content.size));
52537
+ const fallbackNode = doc2.nodeAt(fallbackPos);
52538
+ if (fallbackNode?.type?.name === "fieldAnnotation") {
52539
+ return { node: fallbackNode, pos: fallbackPos };
52540
+ }
52541
+ this.#pendingDocChange = true;
52542
+ this.#scheduleRerender();
52543
+ return null;
52544
+ }
52545
+ const clampedPos = Math.max(0, Math.min(mapped.pos, doc2.content.size));
52546
+ const node = doc2.nodeAt(clampedPos);
52547
+ if (!node || node.type.name !== "fieldAnnotation") {
52548
+ return null;
52549
+ }
52550
+ return { node, pos: clampedPos };
52551
+ }
52519
52552
  #setupInputBridge() {
52520
52553
  this.#inputBridge?.destroy();
52521
52554
  const win = this.#visibleHost.ownerDocument?.defaultView ?? window;
@@ -52606,8 +52639,30 @@ class PresentationEditor extends EventEmitter {
52606
52639
  linkEl.dispatchEvent(linkClickEvent);
52607
52640
  return;
52608
52641
  }
52642
+ const annotationEl = target?.closest?.(".annotation[data-pm-start]");
52609
52643
  const isDraggableAnnotation = target?.closest?.('[data-draggable="true"]') != null;
52610
52644
  this.#suppressFocusInFromDraggable = isDraggableAnnotation;
52645
+ if (annotationEl) {
52646
+ if (!this.#editor.isEditable) {
52647
+ return;
52648
+ }
52649
+ const resolved = this.#resolveFieldAnnotationSelectionFromElement(annotationEl);
52650
+ if (resolved) {
52651
+ try {
52652
+ const tr = this.#editor.state.tr.setSelection(NodeSelection.create(this.#editor.state.doc, resolved.pos));
52653
+ this.#editor.view?.dispatch(tr);
52654
+ } catch {
52655
+ }
52656
+ this.#editor.emit("fieldAnnotationClicked", {
52657
+ editor: this.#editor,
52658
+ node: resolved.node,
52659
+ nodePos: resolved.pos,
52660
+ event,
52661
+ currentTarget: annotationEl
52662
+ });
52663
+ }
52664
+ return;
52665
+ }
52611
52666
  if (!this.#layoutState.layout) {
52612
52667
  if (!isDraggableAnnotation) {
52613
52668
  event.preventDefault();
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
- const index = require("./index-Bpm2bUws.cjs");
3
- require("./SuperConverter-nKpvrgP6.cjs");
2
+ const index = require("./index-DS7Ttafb.cjs");
3
+ require("./SuperConverter-Bukam51x.cjs");
4
4
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
5
5
  const eventemitter3 = require("./eventemitter3-BQuRcMPI.cjs");
6
6
  const provider = require("@hocuspocus/provider");
@@ -7530,7 +7530,7 @@ const _sfc_main = {
7530
7530
  __name: "SuperDoc",
7531
7531
  emits: ["selection-update"],
7532
7532
  setup(__props, { emit: __emit }) {
7533
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BaDWswEX.cjs")));
7533
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BynotIK6.cjs")));
7534
7534
  const superdocStore = useSuperdocStore();
7535
7535
  const commentsStore = useCommentsStore();
7536
7536
  const {
@@ -8484,7 +8484,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
8484
8484
  this.config.colors = shuffleArray(this.config.colors);
8485
8485
  this.userColorMap = /* @__PURE__ */ new Map();
8486
8486
  this.colorIndex = 0;
8487
- this.version = "1.4.1-next.1";
8487
+ this.version = "1.4.1-next.2";
8488
8488
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
8489
8489
  this.superdocId = config.superdocId || uuid.v4();
8490
8490
  this.colors = this.config.colors;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const jszip = require("./jszip-C8_CqJxM.cjs");
3
3
  const helpers$1 = require("./helpers-nOdwpmwb.cjs");
4
- const superEditor_converter = require("./SuperConverter-nKpvrgP6.cjs");
4
+ const superEditor_converter = require("./SuperConverter-Bukam51x.cjs");
5
5
  const vue = require("./vue-De9wkgLl.cjs");
6
6
  require("./jszip.min-BPh2MMAa.cjs");
7
7
  const eventemitter3 = require("./eventemitter3-BQuRcMPI.cjs");
@@ -15516,7 +15516,7 @@ const canUseDOM = () => {
15516
15516
  return false;
15517
15517
  }
15518
15518
  };
15519
- const summaryVersion = "1.4.1-next.1";
15519
+ const summaryVersion = "1.4.1-next.2";
15520
15520
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
15521
15521
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
15522
15522
  function mapAttributes(attrs) {
@@ -18148,7 +18148,7 @@ class Editor extends EventEmitter {
18148
18148
  * Process collaboration migrations
18149
18149
  */
18150
18150
  processCollaborationMigrations() {
18151
- console.debug("[checkVersionMigrations] Current editor version", "1.4.1-next.1");
18151
+ console.debug("[checkVersionMigrations] Current editor version", "1.4.1-next.2");
18152
18152
  if (!this.options.ydoc) return;
18153
18153
  const metaMap = this.options.ydoc.getMap("meta");
18154
18154
  let docVersion = metaMap.get("version");
@@ -23331,7 +23331,6 @@ const SDT_CONTAINER_STYLES = `
23331
23331
  const FIELD_ANNOTATION_STYLES = `
23332
23332
  /* Field annotation draggable styles */
23333
23333
  .superdoc-layout .annotation[data-draggable="true"] {
23334
- cursor: grab;
23335
23334
  user-select: none;
23336
23335
  -webkit-user-select: none;
23337
23336
  }
@@ -52533,6 +52532,40 @@ class PresentationEditor extends EventEmitter {
52533
52532
  this.#editor.view?.focus();
52534
52533
  }
52535
52534
  }
52535
+ #resolveFieldAnnotationSelectionFromElement(annotationEl) {
52536
+ const pmStartRaw = annotationEl.dataset?.pmStart;
52537
+ if (pmStartRaw == null) {
52538
+ return null;
52539
+ }
52540
+ const pmStart = Number(pmStartRaw);
52541
+ if (!Number.isFinite(pmStart)) {
52542
+ return null;
52543
+ }
52544
+ const doc2 = this.#editor.state?.doc;
52545
+ if (!doc2) {
52546
+ return null;
52547
+ }
52548
+ const layoutEpochRaw = annotationEl.dataset?.layoutEpoch;
52549
+ const layoutEpoch = layoutEpochRaw != null ? Number(layoutEpochRaw) : NaN;
52550
+ const effectiveEpoch = Number.isFinite(layoutEpoch) ? layoutEpoch : this.#epochMapper.getCurrentEpoch();
52551
+ const mapped = this.#epochMapper.mapPosFromLayoutToCurrentDetailed(pmStart, effectiveEpoch, 1);
52552
+ if (!mapped.ok) {
52553
+ const fallbackPos = Math.max(0, Math.min(pmStart, doc2.content.size));
52554
+ const fallbackNode = doc2.nodeAt(fallbackPos);
52555
+ if (fallbackNode?.type?.name === "fieldAnnotation") {
52556
+ return { node: fallbackNode, pos: fallbackPos };
52557
+ }
52558
+ this.#pendingDocChange = true;
52559
+ this.#scheduleRerender();
52560
+ return null;
52561
+ }
52562
+ const clampedPos = Math.max(0, Math.min(mapped.pos, doc2.content.size));
52563
+ const node = doc2.nodeAt(clampedPos);
52564
+ if (!node || node.type.name !== "fieldAnnotation") {
52565
+ return null;
52566
+ }
52567
+ return { node, pos: clampedPos };
52568
+ }
52536
52569
  #setupInputBridge() {
52537
52570
  this.#inputBridge?.destroy();
52538
52571
  const win = this.#visibleHost.ownerDocument?.defaultView ?? window;
@@ -52623,8 +52656,30 @@ class PresentationEditor extends EventEmitter {
52623
52656
  linkEl.dispatchEvent(linkClickEvent);
52624
52657
  return;
52625
52658
  }
52659
+ const annotationEl = target?.closest?.(".annotation[data-pm-start]");
52626
52660
  const isDraggableAnnotation = target?.closest?.('[data-draggable="true"]') != null;
52627
52661
  this.#suppressFocusInFromDraggable = isDraggableAnnotation;
52662
+ if (annotationEl) {
52663
+ if (!this.#editor.isEditable) {
52664
+ return;
52665
+ }
52666
+ const resolved = this.#resolveFieldAnnotationSelectionFromElement(annotationEl);
52667
+ if (resolved) {
52668
+ try {
52669
+ const tr = this.#editor.state.tr.setSelection(superEditor_converter.NodeSelection.create(this.#editor.state.doc, resolved.pos));
52670
+ this.#editor.view?.dispatch(tr);
52671
+ } catch {
52672
+ }
52673
+ this.#editor.emit("fieldAnnotationClicked", {
52674
+ editor: this.#editor,
52675
+ node: resolved.node,
52676
+ nodePos: resolved.pos,
52677
+ event,
52678
+ currentTarget: annotationEl
52679
+ });
52680
+ }
52681
+ return;
52682
+ }
52628
52683
  if (!this.#layoutState.layout) {
52629
52684
  if (!isDraggableAnnotation) {
52630
52685
  event.preventDefault();
@@ -1,5 +1,5 @@
1
- import { B as BIT8, M as MAX_SAFE_INTEGER, c as create, a as BITS7, u as utf8TextDecoder, b as create$1, s as setIfUndefined, d as create$2, f as from, e as floor$1, g as equalityDeep, w as writeVarUint, h as writeVarString, t as toUint8Array, i as createEncoder, j as createInjectionKey, k as toString, l as throwError, m as useSsrAdapter, n as configProviderInjectionKey, o as cssrAnchorMetaName, p as globalStyle, q as cB, r as c, v as isMounted, x as commonVariables$2, y as cM, z as cNotM, A as cE, C as derived, D as changeColor, E as insideModal, F as insidePopover, G as resolveWrappedSlot, H as on, I as warnOnce, J as useConfig, K as useMergedState, L as useMemo, N as useTheme, O as useRtl, P as createKey, Q as useThemeClass, R as createId, S as call, T as render, U as messageProviderInjectionKey, V as messageApiInjectionKey, W as fromBase64, X as onChange, Y as varStorage, Z as toBase64, _ as createUint8ArrayFromArrayBuffer, $ as offChange, a0 as writeVarUint8Array, a1 as map, a2 as length, a3 as isNode, a4 as min, a5 as pow, a6 as comments_module_events, a7 as getFileObject, a8 as getTrackChanges, a9 as CommentsPluginKey, aa as TrackChangesBasePluginKey, ab as Editor, ac as getRichTextExtensions, ad as ellipsisVerticalSvg, ae as xmarkIconSvg, af as checkIconSvg, ag as caretDownIconSvg, ah as commentIconSvg, ai as _export_sfc, aj as NDropdown, ak as SuperInput, al as vClickOutside, am as PresentationEditor, an as SuperEditor, ao as AIWriter, ap as NConfigProvider, aq as SuperToolbar } from "./index-DwUAu2hL.es.js";
2
- import "./SuperConverter-BuK6B5Kx.es.js";
1
+ import { B as BIT8, M as MAX_SAFE_INTEGER, c as create, a as BITS7, u as utf8TextDecoder, b as create$1, s as setIfUndefined, d as create$2, f as from, e as floor$1, g as equalityDeep, w as writeVarUint, h as writeVarString, t as toUint8Array, i as createEncoder, j as createInjectionKey, k as toString, l as throwError, m as useSsrAdapter, n as configProviderInjectionKey, o as cssrAnchorMetaName, p as globalStyle, q as cB, r as c, v as isMounted, x as commonVariables$2, y as cM, z as cNotM, A as cE, C as derived, D as changeColor, E as insideModal, F as insidePopover, G as resolveWrappedSlot, H as on, I as warnOnce, J as useConfig, K as useMergedState, L as useMemo, N as useTheme, O as useRtl, P as createKey, Q as useThemeClass, R as createId, S as call, T as render, U as messageProviderInjectionKey, V as messageApiInjectionKey, W as fromBase64, X as onChange, Y as varStorage, Z as toBase64, _ as createUint8ArrayFromArrayBuffer, $ as offChange, a0 as writeVarUint8Array, a1 as map, a2 as length, a3 as isNode, a4 as min, a5 as pow, a6 as comments_module_events, a7 as getFileObject, a8 as getTrackChanges, a9 as CommentsPluginKey, aa as TrackChangesBasePluginKey, ab as Editor, ac as getRichTextExtensions, ad as ellipsisVerticalSvg, ae as xmarkIconSvg, af as checkIconSvg, ag as caretDownIconSvg, ah as commentIconSvg, ai as _export_sfc, aj as NDropdown, ak as SuperInput, al as vClickOutside, am as PresentationEditor, an as SuperEditor, ao as AIWriter, ap as NConfigProvider, aq as SuperToolbar } from "./index-BQPLVzyQ.es.js";
2
+ import "./SuperConverter-BJi_tRyc.es.js";
3
3
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
4
4
  import { E as EventEmitter } from "./eventemitter3-CwrdEv8r.es.js";
5
5
  import { HocuspocusProvider, HocuspocusProviderWebsocket } from "@hocuspocus/provider";
@@ -7513,7 +7513,7 @@ const _sfc_main = {
7513
7513
  __name: "SuperDoc",
7514
7514
  emits: ["selection-update"],
7515
7515
  setup(__props, { emit: __emit }) {
7516
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-D_1Yi2Kj.es.js"));
7516
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-JG6s_6rr.es.js"));
7517
7517
  const superdocStore = useSuperdocStore();
7518
7518
  const commentsStore = useCommentsStore();
7519
7519
  const {
@@ -8467,7 +8467,7 @@ class SuperDoc extends EventEmitter {
8467
8467
  this.config.colors = shuffleArray(this.config.colors);
8468
8468
  this.userColorMap = /* @__PURE__ */ new Map();
8469
8469
  this.colorIndex = 0;
8470
- this.version = "1.4.1-next.1";
8470
+ this.version = "1.4.1-next.2";
8471
8471
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
8472
8472
  this.superdocId = config.superdocId || v4();
8473
8473
  this.colors = this.config.colors;
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("../chunks/jszip-C8_CqJxM.cjs");
4
4
  require("../chunks/helpers-nOdwpmwb.cjs");
5
- const superEditor_converter = require("../chunks/SuperConverter-nKpvrgP6.cjs");
5
+ const superEditor_converter = require("../chunks/SuperConverter-Bukam51x.cjs");
6
6
  require("../chunks/uuid-R7L08bOx.cjs");
7
7
  exports.SuperConverter = superEditor_converter.SuperConverter;
@@ -1,6 +1,6 @@
1
1
  import "../chunks/jszip-B1fkPkPJ.es.js";
2
2
  import "../chunks/helpers-C8e9wR5l.es.js";
3
- import { S } from "../chunks/SuperConverter-BuK6B5Kx.es.js";
3
+ import { S } from "../chunks/SuperConverter-BJi_tRyc.es.js";
4
4
  import "../chunks/uuid-CjlX8hrF.es.js";
5
5
  export {
6
6
  S as SuperConverter
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./chunks/index-Bpm2bUws.cjs");
3
+ const index = require("./chunks/index-DS7Ttafb.cjs");
4
4
  const superEditor_docxZipper = require("./super-editor/docx-zipper.cjs");
5
5
  const superEditor_fileZipper = require("./super-editor/file-zipper.cjs");
6
6
  const vue = require("./chunks/vue-De9wkgLl.cjs");
7
- const superEditor_converter = require("./chunks/SuperConverter-nKpvrgP6.cjs");
7
+ const superEditor_converter = require("./chunks/SuperConverter-Bukam51x.cjs");
8
8
  function isNodeType(node, name) {
9
9
  return node.type.name === name;
10
10
  }
@@ -1,9 +1,9 @@
1
- import { ax as Node, ay as Mark } from "./chunks/index-DwUAu2hL.es.js";
2
- import { ao, au, a9, ab, aw, am, av, aA, an, ak, aq, az, aa, as, aC, aE, aB, ac, aD, ar, at } from "./chunks/index-DwUAu2hL.es.js";
1
+ import { ax as Node, ay as Mark } from "./chunks/index-BQPLVzyQ.es.js";
2
+ import { ao, au, a9, ab, aw, am, av, aA, an, ak, aq, az, aa, as, aC, aE, aB, ac, aD, ar, at } from "./chunks/index-BQPLVzyQ.es.js";
3
3
  import { default as default2 } from "./super-editor/docx-zipper.es.js";
4
4
  import { createZip } from "./super-editor/file-zipper.es.js";
5
5
  import { d as defineComponent, E as createElementBlock, G as openBlock, K as createBaseVNode } from "./chunks/vue-BnBKJwCW.es.js";
6
- import { S, r } from "./chunks/SuperConverter-BuK6B5Kx.es.js";
6
+ import { S, r } from "./chunks/SuperConverter-BJi_tRyc.es.js";
7
7
  function isNodeType(node, name) {
8
8
  return node.type.name === name;
9
9
  }
package/dist/superdoc.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./chunks/index-Bpm2bUws.cjs");
4
- const superdoc = require("./chunks/index-lAO6pLM-.cjs");
5
- const superEditor_converter = require("./chunks/SuperConverter-nKpvrgP6.cjs");
3
+ const index = require("./chunks/index-DS7Ttafb.cjs");
4
+ const superdoc = require("./chunks/index-CZMyxx0v.cjs");
5
+ const superEditor_converter = require("./chunks/SuperConverter-Bukam51x.cjs");
6
6
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
7
7
  require("./chunks/jszip-C8_CqJxM.cjs");
8
8
  require("./chunks/helpers-nOdwpmwb.cjs");
@@ -1,6 +1,6 @@
1
- import { au, ab, aw, av, as, a7, ac, ar, at } from "./chunks/index-DwUAu2hL.es.js";
2
- import { D, H, P, S, c } from "./chunks/index-BGllXGwn.es.js";
3
- import { S as S2, r } from "./chunks/SuperConverter-BuK6B5Kx.es.js";
1
+ import { au, ab, aw, av, as, a7, ac, ar, at } from "./chunks/index-BQPLVzyQ.es.js";
2
+ import { D, H, P, S, c } from "./chunks/index-QUPzhiU8.es.js";
3
+ import { S as S2, r } from "./chunks/SuperConverter-BJi_tRyc.es.js";
4
4
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
5
5
  import "./chunks/jszip-B1fkPkPJ.es.js";
6
6
  import "./chunks/helpers-C8e9wR5l.es.js";
@@ -36961,7 +36961,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
36961
36961
  static getStoredSuperdocVersion(docx) {
36962
36962
  return SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
36963
36963
  }
36964
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.4.1-next.1") {
36964
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.4.1-next.2") {
36965
36965
  return SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
36966
36966
  }
36967
36967
  /**
@@ -62836,7 +62836,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
62836
62836
  return false;
62837
62837
  }
62838
62838
  };
62839
- const summaryVersion = "1.4.1-next.1";
62839
+ const summaryVersion = "1.4.1-next.2";
62840
62840
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
62841
62841
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
62842
62842
  function mapAttributes(attrs) {
@@ -65469,7 +65469,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
65469
65469
  * Process collaboration migrations
65470
65470
  */
65471
65471
  processCollaborationMigrations() {
65472
- console.debug("[checkVersionMigrations] Current editor version", "1.4.1-next.1");
65472
+ console.debug("[checkVersionMigrations] Current editor version", "1.4.1-next.2");
65473
65473
  if (!this.options.ydoc) return;
65474
65474
  const metaMap = this.options.ydoc.getMap("meta");
65475
65475
  let docVersion = metaMap.get("version");
@@ -70652,7 +70652,6 @@ ${l}
70652
70652
  const FIELD_ANNOTATION_STYLES = `
70653
70653
  /* Field annotation draggable styles */
70654
70654
  .superdoc-layout .annotation[data-draggable="true"] {
70655
- cursor: grab;
70656
70655
  user-select: none;
70657
70656
  -webkit-user-select: none;
70658
70657
  }
@@ -99799,6 +99798,40 @@ ${l}
99799
99798
  this.#editor.view?.focus();
99800
99799
  }
99801
99800
  }
99801
+ #resolveFieldAnnotationSelectionFromElement(annotationEl) {
99802
+ const pmStartRaw = annotationEl.dataset?.pmStart;
99803
+ if (pmStartRaw == null) {
99804
+ return null;
99805
+ }
99806
+ const pmStart = Number(pmStartRaw);
99807
+ if (!Number.isFinite(pmStart)) {
99808
+ return null;
99809
+ }
99810
+ const doc2 = this.#editor.state?.doc;
99811
+ if (!doc2) {
99812
+ return null;
99813
+ }
99814
+ const layoutEpochRaw = annotationEl.dataset?.layoutEpoch;
99815
+ const layoutEpoch = layoutEpochRaw != null ? Number(layoutEpochRaw) : NaN;
99816
+ const effectiveEpoch = Number.isFinite(layoutEpoch) ? layoutEpoch : this.#epochMapper.getCurrentEpoch();
99817
+ const mapped = this.#epochMapper.mapPosFromLayoutToCurrentDetailed(pmStart, effectiveEpoch, 1);
99818
+ if (!mapped.ok) {
99819
+ const fallbackPos = Math.max(0, Math.min(pmStart, doc2.content.size));
99820
+ const fallbackNode = doc2.nodeAt(fallbackPos);
99821
+ if (fallbackNode?.type?.name === "fieldAnnotation") {
99822
+ return { node: fallbackNode, pos: fallbackPos };
99823
+ }
99824
+ this.#pendingDocChange = true;
99825
+ this.#scheduleRerender();
99826
+ return null;
99827
+ }
99828
+ const clampedPos = Math.max(0, Math.min(mapped.pos, doc2.content.size));
99829
+ const node2 = doc2.nodeAt(clampedPos);
99830
+ if (!node2 || node2.type.name !== "fieldAnnotation") {
99831
+ return null;
99832
+ }
99833
+ return { node: node2, pos: clampedPos };
99834
+ }
99802
99835
  #setupInputBridge() {
99803
99836
  this.#inputBridge?.destroy();
99804
99837
  const win = this.#visibleHost.ownerDocument?.defaultView ?? window;
@@ -99889,8 +99922,30 @@ ${l}
99889
99922
  linkEl.dispatchEvent(linkClickEvent);
99890
99923
  return;
99891
99924
  }
99925
+ const annotationEl = target?.closest?.(".annotation[data-pm-start]");
99892
99926
  const isDraggableAnnotation = target?.closest?.('[data-draggable="true"]') != null;
99893
99927
  this.#suppressFocusInFromDraggable = isDraggableAnnotation;
99928
+ if (annotationEl) {
99929
+ if (!this.#editor.isEditable) {
99930
+ return;
99931
+ }
99932
+ const resolved = this.#resolveFieldAnnotationSelectionFromElement(annotationEl);
99933
+ if (resolved) {
99934
+ try {
99935
+ const tr = this.#editor.state.tr.setSelection(NodeSelection.create(this.#editor.state.doc, resolved.pos));
99936
+ this.#editor.view?.dispatch(tr);
99937
+ } catch {
99938
+ }
99939
+ this.#editor.emit("fieldAnnotationClicked", {
99940
+ editor: this.#editor,
99941
+ node: resolved.node,
99942
+ nodePos: resolved.pos,
99943
+ event,
99944
+ currentTarget: annotationEl
99945
+ });
99946
+ }
99947
+ return;
99948
+ }
99894
99949
  if (!this.#layoutState.layout) {
99895
99950
  if (!isDraggableAnnotation) {
99896
99951
  event.preventDefault();
@@ -145530,7 +145585,7 @@ ${reason}`);
145530
145585
  this.config.colors = shuffleArray(this.config.colors);
145531
145586
  this.userColorMap = /* @__PURE__ */ new Map();
145532
145587
  this.colorIndex = 0;
145533
- this.version = "1.4.1-next.1";
145588
+ this.version = "1.4.1-next.2";
145534
145589
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
145535
145590
  this.superdocId = config2.superdocId || v4();
145536
145591
  this.colors = this.config.colors;