@harbour-enterprises/superdoc 0.29.0-next.7 → 0.29.0-next.9

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.
Files changed (156) hide show
  1. package/dist/chunks/{PdfViewer-D2cnJhM1.es.js → PdfViewer-BV-ij_Jn.es.js} +2 -2
  2. package/dist/chunks/{PdfViewer-DyUG4__F.cjs → PdfViewer-DpviVXfb.cjs} +1 -1
  3. package/dist/chunks/{eventemitter3-xrnx5jJP.es.js → eventemitter3-D4gv5QOO.es.js} +1 -1
  4. package/dist/chunks/{index-DZIAPuKc.cjs → index-B5hIswvq.cjs} +164 -119
  5. package/dist/chunks/{index-DC11bH-A.es.js → index-UVpS_47e.es.js} +166 -121
  6. package/dist/chunks/{index-BqhJhdcP-Dm9pUO-L.cjs → index-sJFE-5Sw-Chv1r9bA.cjs} +1 -1
  7. package/dist/chunks/{index-BqhJhdcP-B9XbOefk.es.js → index-sJFE-5Sw-r5deiWbP.es.js} +1 -1
  8. package/dist/chunks/{jszip-9Y3n05fi.es.js → jszip-Bhl-Iudl.es.js} +1 -1
  9. package/dist/chunks/{super-editor.es-DNPslOnx.es.js → super-editor.es-C9OTu_pS.es.js} +143 -111
  10. package/dist/chunks/{super-editor.es-607cvQXw.cjs → super-editor.es-Cw1FmXd7.cjs} +141 -109
  11. package/dist/chunks/{vue-DVNiXx7E.es.js → vue-D1vcEBAQ.es.js} +17 -17
  12. package/dist/chunks/xml-js-jMPlIVKT.es.js +2 -0
  13. package/dist/packages/superdoc/src/components/CommentsLayer/comment-schemas.d.ts.map +1 -0
  14. package/dist/packages/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts.map +1 -0
  15. package/dist/packages/superdoc/src/components/CommentsLayer/helpers.d.ts.map +1 -0
  16. package/dist/packages/superdoc/src/components/CommentsLayer/types.d.ts.map +1 -0
  17. package/dist/packages/superdoc/src/components/CommentsLayer/use-comment.d.ts.map +1 -0
  18. package/dist/packages/superdoc/src/components/CommentsLayer/use-conversation.d.ts.map +1 -0
  19. package/dist/packages/superdoc/src/components/CommentsLayer/use-floating-comment.d.ts.map +1 -0
  20. package/dist/packages/superdoc/src/components/PdfViewer/helpers/range.d.ts.map +1 -0
  21. package/dist/packages/superdoc/src/components/PdfViewer/helpers/read-file.d.ts.map +1 -0
  22. package/dist/packages/superdoc/src/components/PdfViewer/pdf/pdf-adapter.d.ts.map +1 -0
  23. package/dist/packages/superdoc/src/composables/use-ai.d.ts.map +1 -0
  24. package/dist/packages/superdoc/src/composables/use-document.d.ts.map +1 -0
  25. package/dist/packages/superdoc/src/composables/use-field.d.ts.map +1 -0
  26. package/dist/packages/superdoc/src/composables/use-high-contrast-mode.d.ts.map +1 -0
  27. package/dist/packages/superdoc/src/composables/use-selected-text.d.ts.map +1 -0
  28. package/dist/{core → packages/superdoc/src/core}/SuperDoc.d.ts +1 -1
  29. package/dist/packages/superdoc/src/core/SuperDoc.d.ts.map +1 -0
  30. package/dist/packages/superdoc/src/core/collaboration/collaboration-comments.d.ts.map +1 -0
  31. package/dist/packages/superdoc/src/core/collaboration/collaboration.d.ts.map +1 -0
  32. package/dist/packages/superdoc/src/core/collaboration/helpers.d.ts.map +1 -0
  33. package/dist/packages/superdoc/src/core/collaboration/permissions.d.ts.map +1 -0
  34. package/dist/packages/superdoc/src/core/create-app.d.ts.map +1 -0
  35. package/dist/packages/superdoc/src/core/helpers/export.d.ts.map +1 -0
  36. package/dist/packages/superdoc/src/core/helpers/file.d.ts.map +1 -0
  37. package/dist/{core → packages/superdoc/src/core}/index.d.ts.map +1 -1
  38. package/dist/packages/superdoc/src/core/types/index.d.ts.map +1 -0
  39. package/dist/packages/superdoc/src/helpers/floor.d.ts.map +1 -0
  40. package/dist/packages/superdoc/src/helpers/group-changes.d.ts.map +1 -0
  41. package/dist/packages/superdoc/src/helpers/use-selection.d.ts.map +1 -0
  42. package/dist/{icons.d.ts.map → packages/superdoc/src/icons.d.ts.map} +1 -1
  43. package/dist/{index.d.ts → packages/superdoc/src/index.d.ts} +5 -5
  44. package/dist/packages/superdoc/src/index.d.ts.map +1 -0
  45. package/dist/packages/superdoc/src/main.d.ts.map +1 -0
  46. package/dist/{stores → packages/superdoc/src/stores}/comments-store.d.ts +36 -36
  47. package/dist/packages/superdoc/src/stores/comments-store.d.ts.map +1 -0
  48. package/dist/packages/superdoc/src/stores/hrbr-fields-store.d.ts.map +1 -0
  49. package/dist/{stores → packages/superdoc/src/stores}/superdoc-store.d.ts +110 -110
  50. package/dist/{stores → packages/superdoc/src/stores}/superdoc-store.d.ts.map +1 -1
  51. package/dist/{super-editor.d.ts.map → packages/superdoc/src/super-editor.d.ts.map} +1 -1
  52. package/dist/shared/common/Telemetry.d.ts +237 -0
  53. package/dist/shared/common/Telemetry.d.ts.map +1 -0
  54. package/dist/shared/common/collaboration/awareness.d.ts +39 -0
  55. package/dist/shared/common/collaboration/awareness.d.ts.map +1 -0
  56. package/dist/shared/common/document-types.d.ts +10 -0
  57. package/dist/shared/common/document-types.d.ts.map +1 -0
  58. package/dist/shared/common/event-types.d.ts +14 -0
  59. package/dist/shared/common/event-types.d.ts.map +1 -0
  60. package/dist/shared/common/helpers/compare-superdoc-versions.d.ts +8 -0
  61. package/dist/shared/common/helpers/compare-superdoc-versions.d.ts.map +1 -0
  62. package/dist/shared/common/helpers/get-file-object.d.ts +50 -0
  63. package/dist/shared/common/helpers/get-file-object.d.ts.map +1 -0
  64. package/dist/shared/common/helpers/v-click-outside.d.ts +11 -0
  65. package/dist/shared/common/helpers/v-click-outside.d.ts.map +1 -0
  66. package/dist/shared/common/index.d.ts +10 -0
  67. package/dist/shared/common/index.d.ts.map +1 -0
  68. package/dist/shared/common/key-transform.d.ts +44 -0
  69. package/dist/shared/common/key-transform.d.ts.map +1 -0
  70. package/dist/style.css +56 -56
  71. package/dist/super-editor/ai-writer.es.js +3 -3
  72. package/dist/super-editor/chunks/{converter--SREdiqQ.js → converter-D6qfGG_6.js} +329 -51
  73. package/dist/super-editor/chunks/{docx-zipper-BRGsc2Y2.js → docx-zipper-BqmHhBsY.js} +1 -1
  74. package/dist/super-editor/chunks/{editor-DsKLhlKe.js → editor-5q11lIMq.js} +4 -4
  75. package/dist/super-editor/chunks/{index-BqhJhdcP.js → index-sJFE-5Sw.js} +1 -1
  76. package/dist/super-editor/chunks/{toolbar-Dqed7MP7.js → toolbar-BV-1nlen.js} +2 -2
  77. package/dist/super-editor/converter.es.js +1 -2
  78. package/dist/super-editor/docx-zipper.es.js +2 -2
  79. package/dist/super-editor/editor.es.js +3 -3
  80. package/dist/super-editor/file-zipper.es.js +1 -1
  81. package/dist/super-editor/style.css +29 -29
  82. package/dist/super-editor/super-editor/src/core/super-converter/relationship-helpers.d.ts.map +1 -1
  83. package/dist/super-editor/super-editor/src/index.d.ts +0 -1
  84. package/dist/super-editor/super-editor/src/index.d.ts.map +1 -1
  85. package/dist/super-editor/super-editor.es.js +77 -50
  86. package/dist/super-editor/toolbar.es.js +2 -2
  87. package/dist/super-editor.cjs +3 -3
  88. package/dist/super-editor.es.js +2 -2
  89. package/dist/superdoc.cjs +2 -3
  90. package/dist/superdoc.es.js +2 -3
  91. package/dist/superdoc.umd.js +44218 -44141
  92. package/dist/superdoc.umd.js.map +1 -1
  93. package/package.json +3 -3
  94. package/dist/chunks/xml-js-ByyNjzYS.es.js +0 -2
  95. package/dist/components/CommentsLayer/comment-schemas.d.ts.map +0 -1
  96. package/dist/components/CommentsLayer/commentsList/super-comments-list.d.ts.map +0 -1
  97. package/dist/components/CommentsLayer/helpers.d.ts.map +0 -1
  98. package/dist/components/CommentsLayer/types.d.ts.map +0 -1
  99. package/dist/components/CommentsLayer/use-comment.d.ts.map +0 -1
  100. package/dist/components/CommentsLayer/use-conversation.d.ts.map +0 -1
  101. package/dist/components/CommentsLayer/use-floating-comment.d.ts.map +0 -1
  102. package/dist/components/PdfViewer/helpers/range.d.ts.map +0 -1
  103. package/dist/components/PdfViewer/helpers/read-file.d.ts.map +0 -1
  104. package/dist/components/PdfViewer/pdf/pdf-adapter.d.ts.map +0 -1
  105. package/dist/composables/use-ai.d.ts.map +0 -1
  106. package/dist/composables/use-document.d.ts.map +0 -1
  107. package/dist/composables/use-field.d.ts.map +0 -1
  108. package/dist/composables/use-high-contrast-mode.d.ts.map +0 -1
  109. package/dist/composables/use-selected-text.d.ts.map +0 -1
  110. package/dist/core/SuperDoc.d.ts.map +0 -1
  111. package/dist/core/collaboration/collaboration-comments.d.ts.map +0 -1
  112. package/dist/core/collaboration/collaboration.d.ts.map +0 -1
  113. package/dist/core/collaboration/helpers.d.ts.map +0 -1
  114. package/dist/core/collaboration/permissions.d.ts.map +0 -1
  115. package/dist/core/create-app.d.ts.map +0 -1
  116. package/dist/core/helpers/export.d.ts.map +0 -1
  117. package/dist/core/helpers/file.d.ts.map +0 -1
  118. package/dist/core/types/index.d.ts.map +0 -1
  119. package/dist/helpers/floor.d.ts.map +0 -1
  120. package/dist/helpers/group-changes.d.ts.map +0 -1
  121. package/dist/helpers/use-selection.d.ts.map +0 -1
  122. package/dist/index.d.ts.map +0 -1
  123. package/dist/main.d.ts.map +0 -1
  124. package/dist/stores/comments-store.d.ts.map +0 -1
  125. package/dist/stores/hrbr-fields-store.d.ts.map +0 -1
  126. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/comment-schemas.d.ts +0 -0
  127. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/commentsList/super-comments-list.d.ts +0 -0
  128. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/helpers.d.ts +0 -0
  129. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/types.d.ts +0 -0
  130. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/use-comment.d.ts +0 -0
  131. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/use-conversation.d.ts +0 -0
  132. /package/dist/{components → packages/superdoc/src/components}/CommentsLayer/use-floating-comment.d.ts +0 -0
  133. /package/dist/{components → packages/superdoc/src/components}/PdfViewer/helpers/range.d.ts +0 -0
  134. /package/dist/{components → packages/superdoc/src/components}/PdfViewer/helpers/read-file.d.ts +0 -0
  135. /package/dist/{components → packages/superdoc/src/components}/PdfViewer/pdf/pdf-adapter.d.ts +0 -0
  136. /package/dist/{composables → packages/superdoc/src/composables}/use-ai.d.ts +0 -0
  137. /package/dist/{composables → packages/superdoc/src/composables}/use-document.d.ts +0 -0
  138. /package/dist/{composables → packages/superdoc/src/composables}/use-field.d.ts +0 -0
  139. /package/dist/{composables → packages/superdoc/src/composables}/use-high-contrast-mode.d.ts +0 -0
  140. /package/dist/{composables → packages/superdoc/src/composables}/use-selected-text.d.ts +0 -0
  141. /package/dist/{core → packages/superdoc/src/core}/collaboration/collaboration-comments.d.ts +0 -0
  142. /package/dist/{core → packages/superdoc/src/core}/collaboration/collaboration.d.ts +0 -0
  143. /package/dist/{core → packages/superdoc/src/core}/collaboration/helpers.d.ts +0 -0
  144. /package/dist/{core → packages/superdoc/src/core}/collaboration/permissions.d.ts +0 -0
  145. /package/dist/{core → packages/superdoc/src/core}/create-app.d.ts +0 -0
  146. /package/dist/{core → packages/superdoc/src/core}/helpers/export.d.ts +0 -0
  147. /package/dist/{core → packages/superdoc/src/core}/helpers/file.d.ts +0 -0
  148. /package/dist/{core → packages/superdoc/src/core}/index.d.ts +0 -0
  149. /package/dist/{core → packages/superdoc/src/core}/types/index.d.ts +0 -0
  150. /package/dist/{helpers → packages/superdoc/src/helpers}/floor.d.ts +0 -0
  151. /package/dist/{helpers → packages/superdoc/src/helpers}/group-changes.d.ts +0 -0
  152. /package/dist/{helpers → packages/superdoc/src/helpers}/use-selection.d.ts +0 -0
  153. /package/dist/{icons.d.ts → packages/superdoc/src/icons.d.ts} +0 -0
  154. /package/dist/{main.d.ts → packages/superdoc/src/main.d.ts} +0 -0
  155. /package/dist/{stores → packages/superdoc/src/stores}/hrbr-fields-store.d.ts +0 -0
  156. /package/dist/{super-editor.d.ts → packages/superdoc/src/super-editor.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { g as global$2, c as createElementBlock, o as openBlock, a as createBaseVNode, r as ref$1, b as createApp, d as computed, F as Fragment$1, e as renderList, n as normalizeClass, w as withModifiers, f as createCommentVNode, t as toDisplayString, i as inject, h as onBeforeMount, j as onMounted, k as onBeforeUnmount, l as watch, m as defineComponent, p as getCurrentInstance, q as onDeactivated, s as nextTick, u as createBlock, v as createVNode, x as unref, y as withCtx, z as createTextVNode, A as normalizeStyle, B as h$1, C as toRef, D as provide, E as mergeProps, G as cloneVNode, T as Text$2, H as withDirectives, I as watchEffect, J as shallowRef, K as vModelText, L as withKeys, M as reactive, N as readonly, O as Transition, P as vShow, Q as Comment, R as renderSlot, S as onActivated, U as Teleport, V as isVNode, W as onUnmounted, X as resolveDynamicComponent, Y as normalizeProps, Z as guardReactiveProps, _ as markRaw } from "./vue-DVNiXx7E.es.js";
1
+ import { g as global$2, r as ref$1, c as createApp, a as computed, b as createElementBlock, o as openBlock, F as Fragment$1, d as renderList, n as normalizeClass, w as withModifiers, e as createCommentVNode, t as toDisplayString, f as createBaseVNode, i as inject, h as onBeforeMount, j as onMounted, k as onBeforeUnmount, l as watch, m as defineComponent, p as getCurrentInstance, q as onDeactivated, s as nextTick, u as createBlock, v as createVNode, x as unref, y as h$1, z as mergeProps, A as shallowRef, B as withCtx, C as createTextVNode, D as normalizeStyle, E as toRef, G as provide, H as cloneVNode, T as Text$2, I as withDirectives, J as watchEffect, K as vModelText, L as withKeys, M as reactive, N as readonly, O as Transition, P as vShow, Q as Comment, R as renderSlot, S as onActivated, U as Teleport, V as isVNode, W as onUnmounted, X as resolveDynamicComponent, Y as normalizeProps, Z as guardReactiveProps, _ as markRaw } from "./vue-D1vcEBAQ.es.js";
2
2
  import * as Y from "yjs";
3
3
  import { UndoManager, Item as Item$2, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
4
4
  var __defProp$2 = Object.defineProperty;
@@ -33120,70 +33120,74 @@ const DocxHelpers = {
33120
33120
  getNewRelationshipId
33121
33121
  };
33122
33122
  const kebabCase$1 = (str) => str.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
33123
- const comments_module_events = Object.freeze({
33124
- RESOLVED: "resolved",
33125
- NEW: "new",
33123
+ const comments_module_events = {
33126
33124
  ADD: "add",
33127
33125
  UPDATE: "update",
33128
- DELETED: "deleted",
33129
- PENDING: "pending",
33130
- SELECTED: "selected",
33131
- // Comments list
33132
- COMMENTS_LIST: "comments-list",
33133
- // Tracked changes
33134
- CHANGE_ACCEPTED: "change-accepted",
33135
- CHANGE_REJECTED: "change-rejected"
33136
- });
33126
+ SELECTED: "selected"
33127
+ };
33128
+ class FileObjectError extends Error {
33129
+ constructor(message, cause) {
33130
+ super(message);
33131
+ this.cause = cause;
33132
+ this.name = "FileObjectError";
33133
+ if (typeof Error.captureStackTrace === "function") {
33134
+ Error.captureStackTrace(this, FileObjectError);
33135
+ }
33136
+ }
33137
+ }
33138
+ class InvalidDataUriError extends FileObjectError {
33139
+ constructor(uri2) {
33140
+ super(`Invalid data URI format: URI must contain exactly one comma separator`);
33141
+ this.uri = uri2;
33142
+ this.name = "InvalidDataUriError";
33143
+ }
33144
+ }
33145
+ class FetchFailedError extends FileObjectError {
33146
+ constructor(url, cause) {
33147
+ super(`Failed to fetch file from URL: ${url}`, cause);
33148
+ this.url = url;
33149
+ this.name = "FetchFailedError";
33150
+ }
33151
+ }
33137
33152
  const getFileObject = async (fileUrl, name, type2) => {
33138
- if (fileUrl.startsWith("data:") && fileUrl.includes(";base64,")) {
33139
- const binary = atob(fileUrl.split(",")[1]);
33140
- const bytes = Uint8Array.from(binary, (c2) => c2.charCodeAt(0));
33141
- return new File([bytes], name, { type: type2 });
33153
+ try {
33154
+ if (fileUrl.startsWith("data:") && fileUrl.includes(";base64,")) {
33155
+ const parts = fileUrl.split(",");
33156
+ if (parts.length !== 2) {
33157
+ throw new InvalidDataUriError(fileUrl);
33158
+ }
33159
+ const binary = atob(parts[1]);
33160
+ const bytes = Uint8Array.from(binary, (c2) => c2.charCodeAt(0));
33161
+ return new File([bytes], name, { type: type2 });
33162
+ }
33163
+ const response = await fetch(fileUrl);
33164
+ if (!response.ok) {
33165
+ throw new FetchFailedError(fileUrl, new Error(`HTTP ${response.status}: ${response.statusText}`));
33166
+ }
33167
+ const blob = await response.blob();
33168
+ return new File([blob], name, { type: type2 });
33169
+ } catch (error) {
33170
+ if (error instanceof FileObjectError) {
33171
+ throw error;
33172
+ }
33173
+ throw new FileObjectError("Failed to create file object", error);
33142
33174
  }
33143
- const response = await fetch(fileUrl);
33144
- const blob = await response.blob();
33145
- return new File([blob], name, { type: type2 });
33146
33175
  };
33147
33176
  const vClickOutside = {
33148
33177
  mounted(el, binding) {
33149
33178
  const clickOutsideHandler = (event) => {
33150
33179
  if (!el.contains(event.target)) {
33151
- binding.value(event);
33180
+ binding.value?.(event);
33152
33181
  }
33153
33182
  };
33154
33183
  document.addEventListener("click", clickOutsideHandler);
33155
33184
  el.__clickOutsideHandler = clickOutsideHandler;
33156
33185
  },
33157
33186
  unmounted(el) {
33158
- document.removeEventListener("click", el.__clickOutsideHandler);
33159
- delete el.__clickOutsideHandler;
33160
- }
33161
- };
33162
- const _hoisted_1$g = ["accept"];
33163
- const _sfc_main$h = {
33164
- __name: "BasicUpload",
33165
- props: {
33166
- accept: {
33167
- type: String,
33168
- default: ".docx, .pdf, .html, .md"
33187
+ if (el.__clickOutsideHandler) {
33188
+ document.removeEventListener("click", el.__clickOutsideHandler);
33189
+ delete el.__clickOutsideHandler;
33169
33190
  }
33170
- },
33171
- emits: ["file-change"],
33172
- setup(__props, { emit: __emit }) {
33173
- const emit = __emit;
33174
- const onFileChange = (event) => {
33175
- emit("file-change", event.target.files[0]);
33176
- };
33177
- return (_ctx, _cache) => {
33178
- return openBlock(), createElementBlock("div", null, [
33179
- createBaseVNode("input", {
33180
- type: "file",
33181
- id: "fileInput",
33182
- onChange: onFileChange,
33183
- accept: __props.accept
33184
- }, null, 40, _hoisted_1$g)
33185
- ]);
33186
- };
33187
33191
  }
33188
33192
  };
33189
33193
  const getDefaultStyleDefinition = (defaultStyleId, docx) => {
@@ -35373,13 +35377,14 @@ const mergeRelationshipElements = (existingRelationships = [], newRelationships
35373
35377
  const currentId = attributes.Id || "";
35374
35378
  attributes.Target = attributes?.Target?.replace(/&/g, "&");
35375
35379
  const existingTarget = existingRelationships.find((el) => el.attributes.Target === attributes.Target);
35376
- const isMedia = attributes.Target?.startsWith("media/");
35380
+ attributes.Target?.startsWith("media/");
35377
35381
  const isNewHyperlink = attributes.Type === HYPERLINK_RELATIONSHIP_TYPE && currentId.length > 6;
35378
35382
  const isNewHeadFoot = (attributes.Type === HEADER_RELATIONSHIP_TYPE || attributes.Type === FOOTER_RELATIONSHIP_TYPE) && currentId.length > 6;
35379
35383
  const hasSeenId = currentId && seenIds.has(currentId);
35380
- const shouldSkip = !isNewHyperlink && !isNewHeadFoot && (hasSeenId || existingTarget);
35381
- if (shouldSkip) return;
35382
- attributes.Id = currentId.length > 6 || isMedia ? currentId : `rId${++largestId}`;
35384
+ if (!isNewHyperlink && !isNewHeadFoot && existingTarget) return;
35385
+ if (!currentId || hasSeenId) {
35386
+ attributes.Id = `rId${++largestId}`;
35387
+ }
35383
35388
  seenIds.add(attributes.Id);
35384
35389
  additions.push(rel);
35385
35390
  });
@@ -35593,7 +35598,7 @@ const _SuperConverter = class _SuperConverter2 {
35593
35598
  static getStoredSuperdocVersion(docx) {
35594
35599
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
35595
35600
  }
35596
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.29.0-next.7") {
35601
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "0.29.0-next.9") {
35597
35602
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
35598
35603
  }
35599
35604
  /**
@@ -53782,7 +53787,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
53782
53787
  { default: remarkStringify },
53783
53788
  { default: remarkGfm }
53784
53789
  ] = await Promise.all([
53785
- import("./index-BqhJhdcP-B9XbOefk.es.js"),
53790
+ import("./index-sJFE-5Sw-r5deiWbP.es.js"),
53786
53791
  import("./index-DRCvimau-Cw339678.es.js"),
53787
53792
  import("./index-C_x_N6Uh-DJn8hIEt.es.js"),
53788
53793
  import("./index-D_sWOSiG-DE96TaT5.es.js"),
@@ -54000,7 +54005,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
54000
54005
  * @returns {Object | void} Migration results
54001
54006
  */
54002
54007
  processCollaborationMigrations() {
54003
- console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.7");
54008
+ console.debug("[checkVersionMigrations] Current editor version", "0.29.0-next.9");
54004
54009
  if (!this.options.ydoc) return;
54005
54010
  const metaMap = this.options.ydoc.getMap("meta");
54006
54011
  let docVersion = metaMap.get("version");
@@ -74083,12 +74088,12 @@ const _export_sfc = (sfc, props) => {
74083
74088
  }
74084
74089
  return target;
74085
74090
  };
74086
- const _hoisted_1$f = ["onClick", "onMouseenter"];
74091
+ const _hoisted_1$g = ["onClick", "onMouseenter"];
74087
74092
  const _hoisted_2$c = { key: 0 };
74088
74093
  const _hoisted_3$a = { key: 0 };
74089
74094
  const _hoisted_4$6 = { key: 1 };
74090
74095
  const _hoisted_5$5 = { key: 1 };
74091
- const _sfc_main$g = {
74096
+ const _sfc_main$h = {
74092
74097
  __name: "Mentions",
74093
74098
  props: {
74094
74099
  users: {
@@ -74165,13 +74170,13 @@ const _sfc_main$g = {
74165
74170
  ])) : (openBlock(), createElementBlock("div", _hoisted_5$5, [
74166
74171
  createBaseVNode("span", null, toDisplayString(user.email), 1)
74167
74172
  ]))
74168
- ], 42, _hoisted_1$f);
74173
+ ], 42, _hoisted_1$g);
74169
74174
  }), 128))
74170
74175
  ], 544);
74171
74176
  };
74172
74177
  }
74173
74178
  };
74174
- const Mentions = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-bcae18cf"]]);
74179
+ const Mentions = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-bcae18cf"]]);
74175
74180
  const popoverPluginKey = new PluginKey("popoverPlugin");
74176
74181
  const PopoverPlugin = Extension.create({
74177
74182
  name: "popoverPlugin",
@@ -86731,7 +86736,7 @@ const NSkeleton = defineComponent({
86731
86736
  return child;
86732
86737
  }
86733
86738
  });
86734
- const _hoisted_1$e = ["onKeydown", "tabindex", "data-item-id"];
86739
+ const _hoisted_1$f = ["onKeydown", "tabindex", "data-item-id"];
86735
86740
  const _hoisted_2$b = { key: 0 };
86736
86741
  const _hoisted_3$9 = { key: 0 };
86737
86742
  const _hoisted_4$5 = { key: 0 };
@@ -87002,14 +87007,14 @@ const _sfc_main$1$1 = {
87002
87007
  onButtonClick: ($event) => handleToolbarButtonClick(item),
87003
87008
  "overflow-items": __props.overflowItems
87004
87009
  }, null, 8, ["toolbar-item", "onButtonClick", "overflow-items"])) : createCommentVNode("", true)
87005
- ], 42, _hoisted_1$e);
87010
+ ], 42, _hoisted_1$f);
87006
87011
  }), 128))
87007
87012
  ], 36);
87008
87013
  };
87009
87014
  }
87010
87015
  };
87011
87016
  const ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main$1$1, [["__scopeId", "data-v-f42ec7e6"]]);
87012
- const _sfc_main$f = {
87017
+ const _sfc_main$g = {
87013
87018
  __name: "Toolbar",
87014
87019
  emits: ["command", "toggle", "select"],
87015
87020
  setup(__props, { emit: __emit }) {
@@ -87090,7 +87095,7 @@ const _sfc_main$f = {
87090
87095
  };
87091
87096
  }
87092
87097
  };
87093
- const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-639f50b4"]]);
87098
+ const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-639f50b4"]]);
87094
87099
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
87095
87100
  const SYSTEM_PROMPT = "You are an expert copywriter and you are immersed in a document editor. You are to provide document related text responses based on the user prompts. Only write what is asked for. Do not provide explanations. Try to keep placeholders as short as possible. Do not output your prompt. Your instructions are: ";
87096
87101
  async function baseInsightsFetch(payload, options = {}) {
@@ -87326,12 +87331,12 @@ function formatDocument(editor) {
87326
87331
  }
87327
87332
  const edit = '<!-- @note: includes color gradient for inline svg AI Writer -->\n<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->\n <linearGradient id="gradient" x1="125%" y1="50%" x2="-25%" y2="50%">\n <stop offset="-20%" stop-color="rgba(218, 215, 118, 0.5)" />\n <stop offset="30%" stop-color="rgb(191, 100, 100)" />\n <stop offset="60%" stop-color="rgb(77, 82, 217)" />\n <stop offset="150%" stop-color="rgb(255, 219, 102)" />\n </linearGradient>\n <path fill="url(#gradient)" d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1 .8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/>\n</svg>';
87328
87333
  const paperPlane = '<!-- @note: includes color gradient for inline svg AI Writer -->\n<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->\n <defs>\n <linearGradient id="gradient" x1="125%" y1="50%" x2="-25%" y2="50%">\n <stop offset="-20%" stop-color="rgba(218, 215, 118, 0.5)" />\n <stop offset="30%" stop-color="rgb(191, 100, 100)" />\n <stop offset="60%" stop-color="rgb(77, 82, 217)" />\n <stop offset="150%" stop-color="rgb(255, 219, 102)" />\n </linearGradient>\n </defs>\n <path fill="url(#gradient)" d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"/>\n</svg>';
87329
- const _hoisted_1$d = { class: "ai-user-input-field" };
87334
+ const _hoisted_1$e = { class: "ai-user-input-field" };
87330
87335
  const _hoisted_2$a = ["innerHTML"];
87331
87336
  const _hoisted_3$8 = ["placeholder"];
87332
87337
  const _hoisted_4$4 = { class: "ai-loader" };
87333
87338
  const _hoisted_5$3 = ["innerHTML"];
87334
- const _sfc_main$e = {
87339
+ const _sfc_main$f = {
87335
87340
  __name: "AIWriter",
87336
87341
  props: {
87337
87342
  selectedText: {
@@ -87577,7 +87582,7 @@ const _sfc_main$e = {
87577
87582
  onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {
87578
87583
  }, ["stop"]))
87579
87584
  }, [
87580
- createBaseVNode("div", _hoisted_1$d, [
87585
+ createBaseVNode("div", _hoisted_1$e, [
87581
87586
  createBaseVNode("span", {
87582
87587
  class: "ai-textarea-icon",
87583
87588
  innerHTML: unref(edit)
@@ -87607,7 +87612,7 @@ const _sfc_main$e = {
87607
87612
  };
87608
87613
  }
87609
87614
  };
87610
- const AIWriter = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-e8e0f607"]]);
87615
+ const AIWriter = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-d869be75"]]);
87611
87616
  async function createZip(blobs, fileNames) {
87612
87617
  const zip = new JSZip();
87613
87618
  blobs.forEach((blob, index2) => {
@@ -87920,8 +87925,8 @@ const useToolbarItem = (options) => {
87920
87925
  onDeactivate
87921
87926
  };
87922
87927
  };
87923
- const _hoisted_1$c = ["onClick", "innerHTML", "aria-label", "onKeydown"];
87924
- const _sfc_main$d = {
87928
+ const _hoisted_1$d = ["onClick", "innerHTML", "aria-label", "onKeydown"];
87929
+ const _sfc_main$e = {
87925
87930
  __name: "AlignmentButtons",
87926
87931
  emits: ["select"],
87927
87932
  setup(__props, { emit: __emit }) {
@@ -88006,20 +88011,20 @@ const _sfc_main$d = {
88006
88011
  ref_key: "alignmentButtonsRefs",
88007
88012
  ref: alignmentButtonsRefs,
88008
88013
  onKeydown: withModifiers((event) => handleKeyDown2(event, index2), ["prevent"])
88009
- }, null, 40, _hoisted_1$c);
88014
+ }, null, 40, _hoisted_1$d);
88010
88015
  }), 64))
88011
88016
  ], 2);
88012
88017
  };
88013
88018
  }
88014
88019
  };
88015
- const AlignmentButtons = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-d84f57b6"]]);
88016
- const _hoisted_1$b = ["onClick", "onKeydown"];
88020
+ const AlignmentButtons = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-d84f57b6"]]);
88021
+ const _hoisted_1$c = ["onClick", "onKeydown"];
88017
88022
  const _hoisted_2$9 = { class: "document-mode-column icon-column" };
88018
88023
  const _hoisted_3$7 = ["innerHTML"];
88019
88024
  const _hoisted_4$3 = { class: "document-mode-column text-column" };
88020
88025
  const _hoisted_5$2 = { class: "document-mode-type" };
88021
88026
  const _hoisted_6$1 = { class: "document-mode-description" };
88022
- const _sfc_main$c = {
88027
+ const _sfc_main$d = {
88023
88028
  __name: "DocumentMode",
88024
88029
  props: {
88025
88030
  options: {
@@ -88093,19 +88098,19 @@ const _sfc_main$c = {
88093
88098
  createBaseVNode("div", _hoisted_5$2, toDisplayString(option.label), 1),
88094
88099
  createBaseVNode("div", _hoisted_6$1, toDisplayString(option.description), 1)
88095
88100
  ])
88096
- ], 42, _hoisted_1$b);
88101
+ ], 42, _hoisted_1$c);
88097
88102
  }), 256))
88098
88103
  ], 2);
88099
88104
  };
88100
88105
  }
88101
88106
  };
88102
- const DocumentMode = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-8730b752"]]);
88103
- const _hoisted_1$a = {
88107
+ const DocumentMode = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-8730b752"]]);
88108
+ const _hoisted_1$b = {
88104
88109
  key: 0,
88105
88110
  class: "linked-style-buttons"
88106
88111
  };
88107
88112
  const _hoisted_2$8 = ["onClick", "onKeydown"];
88108
- const _sfc_main$b = {
88113
+ const _sfc_main$c = {
88109
88114
  __name: "LinkedStyle",
88110
88115
  props: {
88111
88116
  editor: {
@@ -88159,7 +88164,7 @@ const _sfc_main$b = {
88159
88164
  styleRefs.value[0].focus();
88160
88165
  });
88161
88166
  return (_ctx, _cache) => {
88162
- return props.editor ? (openBlock(), createElementBlock("div", _hoisted_1$a, [
88167
+ return props.editor ? (openBlock(), createElementBlock("div", _hoisted_1$b, [
88163
88168
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(unref(getQuickFormatList)(__props.editor), (style2, index2) => {
88164
88169
  return openBlock(), createElementBlock("div", {
88165
88170
  class: normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
@@ -88180,8 +88185,8 @@ const _sfc_main$b = {
88180
88185
  };
88181
88186
  }
88182
88187
  };
88183
- const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-698bdb8e"]]);
88184
- const _hoisted_1$9 = {
88188
+ const LinkedStyle = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-698bdb8e"]]);
88189
+ const _hoisted_1$a = {
88185
88190
  key: 0,
88186
88191
  class: "link-title"
88187
88192
  };
@@ -88209,7 +88214,7 @@ const _hoisted_13 = {
88209
88214
  key: 4,
88210
88215
  class: "input-row go-to-anchor clickable"
88211
88216
  };
88212
- const _sfc_main$a = {
88217
+ const _sfc_main$b = {
88213
88218
  __name: "LinkInput",
88214
88219
  props: {
88215
88220
  showInput: {
@@ -88348,7 +88353,7 @@ const _sfc_main$a = {
88348
88353
  return openBlock(), createElementBlock("div", {
88349
88354
  class: normalizeClass(["link-input-ctn", { "high-contrast": unref(isHighContrastMode2) }])
88350
88355
  }, [
88351
- isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_1$9, "Page anchor")) : isEditing.value ? (openBlock(), createElementBlock("div", _hoisted_2$7, "Edit link")) : (openBlock(), createElementBlock("div", _hoisted_3$6, "Add link")),
88356
+ isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_1$a, "Page anchor")) : isEditing.value ? (openBlock(), createElementBlock("div", _hoisted_2$7, "Edit link")) : (openBlock(), createElementBlock("div", _hoisted_3$6, "Add link")),
88352
88357
  __props.showInput && !isAnchor.value ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
88353
88358
  createBaseVNode("div", _hoisted_5$1, [
88354
88359
  _cache[4] || (_cache[4] = createBaseVNode("div", { class: "input-icon text-input-icon" }, "T", -1)),
@@ -88415,12 +88420,12 @@ const _sfc_main$a = {
88415
88420
  };
88416
88421
  }
88417
88422
  };
88418
- const LinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-ba50627b"]]);
88419
- const _hoisted_1$8 = ["aria-label", "onClick", "onKeydown"];
88423
+ const LinkInput = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-ba50627b"]]);
88424
+ const _hoisted_1$9 = ["aria-label", "onClick", "onKeydown"];
88420
88425
  const _hoisted_2$6 = ["innerHTML"];
88421
88426
  const _hoisted_3$5 = ["innerHTML"];
88422
88427
  const ROW_SIZE$1 = 7;
88423
- const _sfc_main$9 = {
88428
+ const _sfc_main$a = {
88424
88429
  __name: "IconGridRow",
88425
88430
  props: {
88426
88431
  icons: {
@@ -88546,19 +88551,19 @@ const _sfc_main$9 = {
88546
88551
  innerHTML: unref(toolbarIcons).colorOptionCheck,
88547
88552
  style: normalizeStyle(getCheckStyle(option.value, optionIndex))
88548
88553
  }, null, 12, _hoisted_3$5)) : createCommentVNode("", true)
88549
- ], 40, _hoisted_1$8);
88554
+ ], 40, _hoisted_1$9);
88550
88555
  }), 128))
88551
88556
  ]);
88552
88557
  }), 128);
88553
88558
  };
88554
88559
  }
88555
88560
  };
88556
- const IconGridRow = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-0f479b6c"]]);
88561
+ const IconGridRow = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-0f479b6c"]]);
88557
88562
  const DropIcon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg>\n';
88558
- const _hoisted_1$7 = { class: "options-grid-wrap" };
88563
+ const _hoisted_1$8 = { class: "options-grid-wrap" };
88559
88564
  const _hoisted_2$5 = ["innerHTML"];
88560
88565
  const _hoisted_3$4 = { class: "option-grid-ctn" };
88561
- const _sfc_main$8 = {
88566
+ const _sfc_main$9 = {
88562
88567
  __name: "IconGrid",
88563
88568
  props: {
88564
88569
  icons: {
@@ -88585,7 +88590,7 @@ const _sfc_main$8 = {
88585
88590
  emit("select", option);
88586
88591
  };
88587
88592
  return (_ctx, _cache) => {
88588
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
88593
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
88589
88594
  __props.hasNoneIcon ? (openBlock(), createElementBlock("div", {
88590
88595
  key: 0,
88591
88596
  class: "none-option",
@@ -88618,7 +88623,7 @@ const _sfc_main$8 = {
88618
88623
  };
88619
88624
  }
88620
88625
  };
88621
- const IconGrid = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-4c0091c8"]]);
88626
+ const IconGrid = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-3d19fedf"]]);
88622
88627
  const closeDropdown$1 = (dropdown) => {
88623
88628
  dropdown.expand.value = false;
88624
88629
  };
@@ -88727,10 +88732,10 @@ const icons = [
88727
88732
  const getAvailableColorOptions = () => {
88728
88733
  return icons.flat().map((item) => item.value);
88729
88734
  };
88730
- const _hoisted_1$6 = ["data-cols", "data-rows", "onKeydown", "onClick"];
88735
+ const _hoisted_1$7 = ["data-cols", "data-rows", "onKeydown", "onClick"];
88731
88736
  const _hoisted_2$4 = ["aria-valuetext"];
88732
88737
  const ROW_SIZE = 5;
88733
- const _sfc_main$7 = {
88738
+ const _sfc_main$8 = {
88734
88739
  __name: "TableGrid",
88735
88740
  emits: ["select", "clickoutside"],
88736
88741
  setup(__props, { emit: __emit }) {
@@ -88846,7 +88851,7 @@ const _sfc_main$7 = {
88846
88851
  ref: tableGridItems,
88847
88852
  onKeydown: withModifiers((event) => handleKeyDown2(event, n, i2), ["prevent"]),
88848
88853
  onClick: withModifiers(($event) => handleClick2({ cols: n, rows: i2 }), ["stop", "prevent"])
88849
- }, null, 40, _hoisted_1$6);
88854
+ }, null, 40, _hoisted_1$7);
88850
88855
  }), 64))
88851
88856
  ], 64);
88852
88857
  }), 64))
@@ -88859,13 +88864,13 @@ const _sfc_main$7 = {
88859
88864
  };
88860
88865
  }
88861
88866
  };
88862
- const TableGrid = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-92e8d5fb"]]);
88863
- const _hoisted_1$5 = { class: "toolbar-table-actions" };
88867
+ const TableGrid = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-92e8d5fb"]]);
88868
+ const _hoisted_1$6 = { class: "toolbar-table-actions" };
88864
88869
  const _hoisted_2$3 = ["onClick", "data-item", "ariaLabel"];
88865
88870
  const _hoisted_3$3 = { class: "toolbar-table-actions__icon" };
88866
88871
  const _hoisted_4$1 = ["innerHTML"];
88867
88872
  const _hoisted_5 = { class: "toolbar-table-actions__label" };
88868
- const _sfc_main$6 = {
88873
+ const _sfc_main$7 = {
88869
88874
  __name: "TableActions",
88870
88875
  props: {
88871
88876
  options: {
@@ -88879,7 +88884,7 @@ const _sfc_main$6 = {
88879
88884
  emit("select", { command: item.command });
88880
88885
  };
88881
88886
  return (_ctx, _cache) => {
88882
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
88887
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
88883
88888
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(__props.options, (option) => {
88884
88889
  return openBlock(), createElementBlock("div", {
88885
88890
  class: normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
@@ -88901,7 +88906,7 @@ const _sfc_main$6 = {
88901
88906
  };
88902
88907
  }
88903
88908
  };
88904
- const TableActions = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-990b9a25"]]);
88909
+ const TableActions = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-990b9a25"]]);
88905
88910
  function getScrollableParent(element) {
88906
88911
  let currentElement = element;
88907
88912
  while (currentElement) {
@@ -88925,10 +88930,10 @@ function scrollToElement(targetElement, options = { behavior: "smooth", block: "
88925
88930
  });
88926
88931
  }
88927
88932
  const checkIconSvg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>\n';
88928
- const _hoisted_1$4 = { class: "search-input-ctn" };
88933
+ const _hoisted_1$5 = { class: "search-input-ctn" };
88929
88934
  const _hoisted_2$2 = { class: "row" };
88930
88935
  const _hoisted_3$2 = ["onKeydown"];
88931
- const _sfc_main$5 = {
88936
+ const _sfc_main$6 = {
88932
88937
  __name: "SearchInput",
88933
88938
  props: {
88934
88939
  searchRef: {
@@ -88943,7 +88948,7 @@ const _sfc_main$5 = {
88943
88948
  emit("submit", { value: searchValue.value });
88944
88949
  };
88945
88950
  return (_ctx, _cache) => {
88946
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
88951
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
88947
88952
  createBaseVNode("div", _hoisted_2$2, [
88948
88953
  withDirectives(createBaseVNode("input", {
88949
88954
  ref: __props.searchRef,
@@ -88967,7 +88972,7 @@ const _sfc_main$5 = {
88967
88972
  };
88968
88973
  }
88969
88974
  };
88970
- const SearchInput = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-957cbcf2"]]);
88975
+ const SearchInput = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-957cbcf2"]]);
88971
88976
  const TOOLBAR_FONTS = [
88972
88977
  {
88973
88978
  label: "Georgia",
@@ -91609,7 +91614,7 @@ function getItems(context, customItems = [], includeDefaultItems = true) {
91609
91614
  }).filter((section) => section.items.length > 0);
91610
91615
  return filteredSections;
91611
91616
  }
91612
- const _hoisted_1$3 = { class: "slash-menu-items" };
91617
+ const _hoisted_1$4 = { class: "slash-menu-items" };
91613
91618
  const _hoisted_2$1 = {
91614
91619
  key: 0,
91615
91620
  class: "slash-menu-divider",
@@ -91617,7 +91622,7 @@ const _hoisted_2$1 = {
91617
91622
  };
91618
91623
  const _hoisted_3$1 = ["onClick"];
91619
91624
  const _hoisted_4 = ["innerHTML"];
91620
- const _sfc_main$4 = {
91625
+ const _sfc_main$5 = {
91621
91626
  __name: "SlashMenu",
91622
91627
  props: {
91623
91628
  editor: {
@@ -91915,7 +91920,7 @@ const _sfc_main$4 = {
91915
91920
  }, null, 544), [
91916
91921
  [vModelText, searchQuery.value]
91917
91922
  ]),
91918
- createBaseVNode("div", _hoisted_1$3, [
91923
+ createBaseVNode("div", _hoisted_1$4, [
91919
91924
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(filteredSections.value, (section, sectionIndex) => {
91920
91925
  return openBlock(), createElementBlock(Fragment$1, {
91921
91926
  key: section.id
@@ -91950,6 +91955,33 @@ const _sfc_main$4 = {
91950
91955
  };
91951
91956
  }
91952
91957
  };
91958
+ const _hoisted_1$3 = ["accept"];
91959
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
91960
+ __name: "BasicUpload",
91961
+ props: {
91962
+ accept: { default: ".docx, .pdf, .html, .md" }
91963
+ },
91964
+ emits: ["file-change"],
91965
+ setup(__props, { emit: __emit }) {
91966
+ const emit = __emit;
91967
+ const onFileChange = (event) => {
91968
+ const target = event.target;
91969
+ if (target.files?.[0]) {
91970
+ emit("file-change", target.files[0]);
91971
+ }
91972
+ };
91973
+ return (_ctx, _cache) => {
91974
+ return openBlock(), createElementBlock("div", null, [
91975
+ createBaseVNode("input", {
91976
+ type: "file",
91977
+ id: "fileInput",
91978
+ onChange: onFileChange,
91979
+ accept: __props.accept
91980
+ }, null, 40, _hoisted_1$3)
91981
+ ]);
91982
+ };
91983
+ }
91984
+ });
91953
91985
  function adjustPaginationBreaks(editorElem, editor) {
91954
91986
  if (!editorElem.value || !editor?.value?.options?.scale) return;
91955
91987
  const zoom = editor.value.options.scale;
@@ -92474,7 +92506,7 @@ const _sfc_main$1 = {
92474
92506
  class: "editor-element super-editor__element",
92475
92507
  role: "presentation"
92476
92508
  }, null, 512),
92477
- !props.options.disableContextMenu && editorReady.value && editor.value ? (openBlock(), createBlock(_sfc_main$4, {
92509
+ !props.options.disableContextMenu && editorReady.value && editor.value ? (openBlock(), createBlock(_sfc_main$5, {
92478
92510
  key: 0,
92479
92511
  editor: editor.value,
92480
92512
  popoverControls,
@@ -92543,7 +92575,7 @@ const _sfc_main$1 = {
92543
92575
  };
92544
92576
  }
92545
92577
  };
92546
- const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-0c36dd72"]]);
92578
+ const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-9d25f5b3"]]);
92547
92579
  const _hoisted_1 = ["innerHTML"];
92548
92580
  const _sfc_main = {
92549
92581
  __name: "SuperInput",
@@ -92744,10 +92776,10 @@ export {
92744
92776
  Editor as E,
92745
92777
  SectionHelpers as S,
92746
92778
  Toolbar as T,
92747
- _sfc_main$h as _,
92779
+ _sfc_main$4 as _,
92748
92780
  AnnotatorHelpers as a,
92749
92781
  Extensions as b,
92750
- _sfc_main$4 as c,
92782
+ _sfc_main$5 as c,
92751
92783
  SuperConverter as d,
92752
92784
  SuperEditor as e,
92753
92785
  SuperInput as f,