@harbour-enterprises/superdoc 0.27.0-next.3 → 0.27.0-next.4

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 (25) hide show
  1. package/dist/chunks/{PdfViewer-CymzL6pA.es.js → PdfViewer-BH326izt.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-C7U0afIq.cjs → PdfViewer-CsMYG9jY.cjs} +1 -1
  3. package/dist/chunks/{index-CCotbgzR.es.js → index-D4gqW11N.es.js} +2 -2
  4. package/dist/chunks/{index-FmOItkm6.cjs → index-DlKmbda5.cjs} +2 -2
  5. package/dist/chunks/{super-editor.es-C4b8Qz1U.cjs → super-editor.es-BOSseISU.cjs} +32 -10
  6. package/dist/chunks/{super-editor.es-DiNNVR7Q.es.js → super-editor.es-IuxTXi0S.es.js} +32 -10
  7. package/dist/super-editor/ai-writer.es.js +2 -2
  8. package/dist/super-editor/chunks/{converter-Bnmt0bNT.js → converter-DW0ykKpx.js} +32 -10
  9. package/dist/super-editor/chunks/{docx-zipper-B1_YD3fF.js → docx-zipper-eWjTV-8Q.js} +1 -1
  10. package/dist/super-editor/chunks/{editor-BHtGMc-u.js → editor-CUz7q8Xz.js} +2 -2
  11. package/dist/super-editor/chunks/{toolbar-Cgj3meLH.js → toolbar-DglPzsaY.js} +2 -2
  12. package/dist/super-editor/converter.es.js +1 -1
  13. package/dist/super-editor/docx-zipper.es.js +2 -2
  14. package/dist/super-editor/editor.es.js +3 -3
  15. package/dist/super-editor/file-zipper.es.js +1 -1
  16. package/dist/super-editor/super-editor/src/core/super-converter/helpers.d.ts +1 -1
  17. package/dist/super-editor/super-editor.es.js +6 -6
  18. package/dist/super-editor/toolbar.es.js +2 -2
  19. package/dist/super-editor.cjs +1 -1
  20. package/dist/super-editor.es.js +1 -1
  21. package/dist/superdoc.cjs +2 -2
  22. package/dist/superdoc.es.js +2 -2
  23. package/dist/superdoc.umd.js +32 -10
  24. package/dist/superdoc.umd.js.map +1 -1
  25. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { m as defineComponent, B as h, O as Transition, $ as process$1, I as watchEffect, d as computed, r as ref, j as onMounted, W as onUnmounted, c as createElementBlock, o as openBlock, a as createBaseVNode, f as createCommentVNode, v as createVNode, x as unref } from "./vue-ZWZLQtoU.es.js";
2
- import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-CCotbgzR.es.js";
2
+ import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-D4gqW11N.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
- const superdoc = require("./index-FmOItkm6.cjs");
4
+ const superdoc = require("./index-DlKmbda5.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,4 +1,4 @@
1
- import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-DiNNVR7Q.es.js";
1
+ import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-IuxTXi0S.es.js";
2
2
  import { a0 as effectScope, r as ref, _ as markRaw, $ as process$1, a1 as toRaw, d as computed, a2 as isRef, a3 as isReactive, C as toRef, i as inject, p as getCurrentInstance, l as watch, x as unref, a4 as hasInjectionContext, M as reactive, s as nextTick, a5 as getCurrentScope, a6 as onScopeDispose, a7 as toRefs, g as global$1, J as shallowRef, N as readonly, j as onMounted, k as onBeforeUnmount, h as onBeforeMount, S as onActivated, q as onDeactivated, z as createTextVNode, F as Fragment, Q as Comment, m as defineComponent, D as provide, H as withDirectives, B as h, U as Teleport, R as renderSlot, V as isVNode, I as watchEffect, O as Transition, a8 as TransitionGroup, E as mergeProps, P as vShow, G as cloneVNode, T as Text, c as createElementBlock, o as openBlock, t as toDisplayString, v as createVNode, y as withCtx, a as createBaseVNode, A as normalizeStyle, f as createCommentVNode, u as createBlock, w as withModifiers, n as normalizeClass, a9 as resolveDirective, e as renderList, b as createApp, X as resolveDynamicComponent, aa as defineAsyncComponent } from "./vue-ZWZLQtoU.es.js";
3
3
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
4
4
  import { E as EventEmitter } from "./eventemitter3-BWEnUdTY.es.js";
@@ -17145,7 +17145,7 @@ const _sfc_main = {
17145
17145
  __name: "SuperDoc",
17146
17146
  emits: ["selection-update"],
17147
17147
  setup(__props, { emit: __emit }) {
17148
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CymzL6pA.es.js"));
17148
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-BH326izt.es.js"));
17149
17149
  const superdocStore = useSuperdocStore();
17150
17150
  const commentsStore = useCommentsStore();
17151
17151
  const {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-C4b8Qz1U.cjs");
2
+ const superEditor_es = require("./super-editor.es-BOSseISU.cjs");
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
4
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
5
5
  const eventemitter3 = require("./eventemitter3-DkXkH2rT.cjs");
@@ -17162,7 +17162,7 @@ const _sfc_main = {
17162
17162
  __name: "SuperDoc",
17163
17163
  emits: ["selection-update"],
17164
17164
  setup(__props, { emit: __emit }) {
17165
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-C7U0afIq.cjs")));
17165
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-CsMYG9jY.cjs")));
17166
17166
  const superdocStore = useSuperdocStore();
17167
17167
  const commentsStore = useCommentsStore();
17168
17168
  const {
@@ -15247,17 +15247,39 @@ const getTextIndentExportValue = (indent) => {
15247
15247
  const exportValue = functionsMap[unit] ? functionsMap[unit](value) : pixelsToTwips(value);
15248
15248
  return exportValue;
15249
15249
  };
15250
- const getArrayBufferFromUrl = async (input, isHeadless) => {
15251
- const isLikelyUrl = /^https?:|^blob:|^file:|^data:/i.test(input);
15252
- if (isHeadless && isLikelyUrl && typeof fetch === "function") {
15253
- const res = await fetch(input);
15254
- if (!res.ok) throw new Error(`Fetch failed: ${res.status} ${res.statusText}`);
15255
- return await res.arrayBuffer();
15256
- }
15257
- const base64 = input.includes(",") ? input.split(",", 2)[1] : input.trim().replace(/\s/g, "");
15250
+ const REMOTE_RESOURCE_PATTERN = /^https?:|^blob:|^file:/i;
15251
+ const DATA_URI_PATTERN = /^data:/i;
15252
+ const getArrayBufferFromUrl = async (input, _isHeadless) => {
15253
+ if (input == null) {
15254
+ return new ArrayBuffer(0);
15255
+ }
15256
+ if (input instanceof ArrayBuffer) {
15257
+ return input;
15258
+ }
15259
+ if (ArrayBuffer.isView(input)) {
15260
+ const view = input;
15261
+ return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
15262
+ }
15263
+ if (typeof input !== "string") {
15264
+ throw new TypeError("Unsupported media input type");
15265
+ }
15266
+ const trimmed = input.trim();
15267
+ const shouldFetchRemote = REMOTE_RESOURCE_PATTERN.test(trimmed);
15268
+ const isDataUri = DATA_URI_PATTERN.test(trimmed);
15269
+ if (shouldFetchRemote) {
15270
+ if (typeof fetch !== "function") {
15271
+ throw new Error(`Fetch API is not available to retrieve media: ${trimmed}`);
15272
+ }
15273
+ const response = await fetch(trimmed);
15274
+ if (!response.ok) {
15275
+ throw new Error(`Fetch failed: ${response.status} ${response.statusText}`);
15276
+ }
15277
+ return await response.arrayBuffer();
15278
+ }
15279
+ const base64Payload = isDataUri ? trimmed.split(",", 2)[1] : trimmed.replace(/\s/g, "");
15258
15280
  try {
15259
15281
  if (typeof globalThis.atob === "function") {
15260
- const binary = globalThis.atob(base64);
15282
+ const binary = globalThis.atob(base64Payload);
15261
15283
  const bytes = new Uint8Array(binary.length);
15262
15284
  for (let i = 0; i < binary.length; i++) {
15263
15285
  bytes[i] = binary.charCodeAt(i);
@@ -15267,7 +15289,7 @@ const getArrayBufferFromUrl = async (input, isHeadless) => {
15267
15289
  } catch (err) {
15268
15290
  console.warn("atob failed, falling back to Buffer:", err);
15269
15291
  }
15270
- const buf = Buffer2.from(base64, "base64");
15292
+ const buf = Buffer2.from(base64Payload, "base64");
15271
15293
  return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
15272
15294
  };
15273
15295
  const getContentTypesFromXml = (contentTypesXml) => {
@@ -15230,17 +15230,39 @@ const getTextIndentExportValue = (indent) => {
15230
15230
  const exportValue = functionsMap[unit] ? functionsMap[unit](value) : pixelsToTwips(value);
15231
15231
  return exportValue;
15232
15232
  };
15233
- const getArrayBufferFromUrl = async (input, isHeadless) => {
15234
- const isLikelyUrl = /^https?:|^blob:|^file:|^data:/i.test(input);
15235
- if (isHeadless && isLikelyUrl && typeof fetch === "function") {
15236
- const res = await fetch(input);
15237
- if (!res.ok) throw new Error(`Fetch failed: ${res.status} ${res.statusText}`);
15238
- return await res.arrayBuffer();
15239
- }
15240
- const base64 = input.includes(",") ? input.split(",", 2)[1] : input.trim().replace(/\s/g, "");
15233
+ const REMOTE_RESOURCE_PATTERN = /^https?:|^blob:|^file:/i;
15234
+ const DATA_URI_PATTERN = /^data:/i;
15235
+ const getArrayBufferFromUrl = async (input, _isHeadless) => {
15236
+ if (input == null) {
15237
+ return new ArrayBuffer(0);
15238
+ }
15239
+ if (input instanceof ArrayBuffer) {
15240
+ return input;
15241
+ }
15242
+ if (ArrayBuffer.isView(input)) {
15243
+ const view = input;
15244
+ return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
15245
+ }
15246
+ if (typeof input !== "string") {
15247
+ throw new TypeError("Unsupported media input type");
15248
+ }
15249
+ const trimmed = input.trim();
15250
+ const shouldFetchRemote = REMOTE_RESOURCE_PATTERN.test(trimmed);
15251
+ const isDataUri = DATA_URI_PATTERN.test(trimmed);
15252
+ if (shouldFetchRemote) {
15253
+ if (typeof fetch !== "function") {
15254
+ throw new Error(`Fetch API is not available to retrieve media: ${trimmed}`);
15255
+ }
15256
+ const response = await fetch(trimmed);
15257
+ if (!response.ok) {
15258
+ throw new Error(`Fetch failed: ${response.status} ${response.statusText}`);
15259
+ }
15260
+ return await response.arrayBuffer();
15261
+ }
15262
+ const base64Payload = isDataUri ? trimmed.split(",", 2)[1] : trimmed.replace(/\s/g, "");
15241
15263
  try {
15242
15264
  if (typeof globalThis.atob === "function") {
15243
- const binary = globalThis.atob(base64);
15265
+ const binary = globalThis.atob(base64Payload);
15244
15266
  const bytes = new Uint8Array(binary.length);
15245
15267
  for (let i = 0; i < binary.length; i++) {
15246
15268
  bytes[i] = binary.charCodeAt(i);
@@ -15250,7 +15272,7 @@ const getArrayBufferFromUrl = async (input, isHeadless) => {
15250
15272
  } catch (err) {
15251
15273
  console.warn("atob failed, falling back to Buffer:", err);
15252
15274
  }
15253
- const buf = Buffer2.from(base64, "base64");
15275
+ const buf = Buffer2.from(base64Payload, "base64");
15254
15276
  return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
15255
15277
  };
15256
15278
  const getContentTypesFromXml = (contentTypesXml) => {
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, onUnmounted, computed, createElementBlock, openBlock, withModifiers, createElementVNode, withDirectives, unref, vModelText, createCommentVNode, nextTick } from "vue";
2
- import { T as TextSelection } from "./chunks/converter-Bnmt0bNT.js";
3
- import { _ as _export_sfc } from "./chunks/editor-BHtGMc-u.js";
2
+ import { T as TextSelection } from "./chunks/converter-DW0ykKpx.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-CUz7q8Xz.js";
4
4
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
5
5
  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: ";
6
6
  async function baseInsightsFetch(payload, options = {}) {
@@ -15228,17 +15228,39 @@ const getTextIndentExportValue = (indent) => {
15228
15228
  const exportValue = functionsMap[unit] ? functionsMap[unit](value) : pixelsToTwips(value);
15229
15229
  return exportValue;
15230
15230
  };
15231
- const getArrayBufferFromUrl = async (input, isHeadless) => {
15232
- const isLikelyUrl = /^https?:|^blob:|^file:|^data:/i.test(input);
15233
- if (isHeadless && isLikelyUrl && typeof fetch === "function") {
15234
- const res = await fetch(input);
15235
- if (!res.ok) throw new Error(`Fetch failed: ${res.status} ${res.statusText}`);
15236
- return await res.arrayBuffer();
15237
- }
15238
- const base64 = input.includes(",") ? input.split(",", 2)[1] : input.trim().replace(/\s/g, "");
15231
+ const REMOTE_RESOURCE_PATTERN = /^https?:|^blob:|^file:/i;
15232
+ const DATA_URI_PATTERN = /^data:/i;
15233
+ const getArrayBufferFromUrl = async (input, _isHeadless) => {
15234
+ if (input == null) {
15235
+ return new ArrayBuffer(0);
15236
+ }
15237
+ if (input instanceof ArrayBuffer) {
15238
+ return input;
15239
+ }
15240
+ if (ArrayBuffer.isView(input)) {
15241
+ const view = input;
15242
+ return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
15243
+ }
15244
+ if (typeof input !== "string") {
15245
+ throw new TypeError("Unsupported media input type");
15246
+ }
15247
+ const trimmed = input.trim();
15248
+ const shouldFetchRemote = REMOTE_RESOURCE_PATTERN.test(trimmed);
15249
+ const isDataUri = DATA_URI_PATTERN.test(trimmed);
15250
+ if (shouldFetchRemote) {
15251
+ if (typeof fetch !== "function") {
15252
+ throw new Error(`Fetch API is not available to retrieve media: ${trimmed}`);
15253
+ }
15254
+ const response = await fetch(trimmed);
15255
+ if (!response.ok) {
15256
+ throw new Error(`Fetch failed: ${response.status} ${response.statusText}`);
15257
+ }
15258
+ return await response.arrayBuffer();
15259
+ }
15260
+ const base64Payload = isDataUri ? trimmed.split(",", 2)[1] : trimmed.replace(/\s/g, "");
15239
15261
  try {
15240
15262
  if (typeof globalThis.atob === "function") {
15241
- const binary = globalThis.atob(base64);
15263
+ const binary = globalThis.atob(base64Payload);
15242
15264
  const bytes = new Uint8Array(binary.length);
15243
15265
  for (let i = 0; i < binary.length; i++) {
15244
15266
  bytes[i] = binary.charCodeAt(i);
@@ -15248,7 +15270,7 @@ const getArrayBufferFromUrl = async (input, isHeadless) => {
15248
15270
  } catch (err) {
15249
15271
  console.warn("atob failed, falling back to Buffer:", err);
15250
15272
  }
15251
- const buf = Buffer2.from(base64, "base64");
15273
+ const buf = Buffer2.from(base64Payload, "base64");
15252
15274
  return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
15253
15275
  };
15254
15276
  const getContentTypesFromXml = (contentTypesXml) => {
@@ -1,4 +1,4 @@
1
- import { p as process$1, az as commonjsGlobal, B as Buffer, aA as getDefaultExportFromCjs, aB as getContentTypesFromXml, aC as xmljs } from "./converter-Bnmt0bNT.js";
1
+ import { p as process$1, az as commonjsGlobal, B as Buffer, aA as getDefaultExportFromCjs, aB as getContentTypesFromXml, aC as xmljs } from "./converter-DW0ykKpx.js";
2
2
  function commonjsRequire(path) {
3
3
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4
4
  }
@@ -12,9 +12,9 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
12
12
  var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, applyIndentStyling_fn, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
13
13
  import * as Y from "yjs";
14
14
  import { UndoManager, Item as Item$1, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
15
- import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberingHelpers, ap as parseIndentElement, aq as combineIndents, ar as twipsToPixels, as as PIXELS_PER_INCH, at as SelectionRange, au as Transform, av as isInTable$1, aw as generateDocxRandomId, ax as insertNewRelationship, ay as inchesToPixels } from "./converter-Bnmt0bNT.js";
15
+ import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberingHelpers, ap as parseIndentElement, aq as combineIndents, ar as twipsToPixels, as as PIXELS_PER_INCH, at as SelectionRange, au as Transform, av as isInTable$1, aw as generateDocxRandomId, ax as insertNewRelationship, ay as inchesToPixels } from "./converter-DW0ykKpx.js";
16
16
  import { ref, computed, createElementBlock, openBlock, withModifiers, Fragment as Fragment$1, renderList, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, createApp } from "vue";
17
- import { D as DocxZipper } from "./docx-zipper-B1_YD3fF.js";
17
+ import { D as DocxZipper } from "./docx-zipper-eWjTV-8Q.js";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
20
20
  };
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, createVNode, readonly, watch, onMounted, onBeforeUnmount, reactive, onBeforeMount, inject, onActivated, onDeactivated, createTextVNode, Fragment, Comment, defineComponent, provide, h, Teleport, toRef, renderSlot, isVNode, shallowRef, watchEffect, mergeProps, Transition, vShow, cloneVNode, Text, renderList, withCtx } from "vue";
2
- import { p as process$1 } from "./converter-Bnmt0bNT.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-BHtGMc-u.js";
2
+ import { p as process$1 } from "./converter-DW0ykKpx.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CUz7q8Xz.js";
4
4
  const sanitizeNumber = (value, defaultNumber) => {
5
5
  let sanitized = value.replace(/[^0-9.]/g, "");
6
6
  sanitized = parseFloat(sanitized);
@@ -1,4 +1,4 @@
1
- import { a5 } from "./chunks/converter-Bnmt0bNT.js";
1
+ import { a5 } from "./chunks/converter-DW0ykKpx.js";
2
2
  import "vue";
3
3
  export {
4
4
  a5 as SuperConverter
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-Bnmt0bNT.js";
2
- import { D } from "./chunks/docx-zipper-B1_YD3fF.js";
1
+ import "./chunks/converter-DW0ykKpx.js";
2
+ import { D } from "./chunks/docx-zipper-eWjTV-8Q.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-BHtGMc-u.js";
2
- import "./chunks/converter-Bnmt0bNT.js";
3
- import "./chunks/docx-zipper-B1_YD3fF.js";
1
+ import { E } from "./chunks/editor-CUz7q8Xz.js";
2
+ import "./chunks/converter-DW0ykKpx.js";
3
+ import "./chunks/docx-zipper-eWjTV-8Q.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-B1_YD3fF.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-eWjTV-8Q.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -34,7 +34,7 @@ export function objToPolygon(points: Array<[number, number]>): any | null;
34
34
  * @returns {Array<[number, number]>|null} Array of [x, y] pixel coordinate pairs, or null if invalid input
35
35
  */
36
36
  export function polygonToObj(polygonNode: any): Array<[number, number]> | null;
37
- export function getArrayBufferFromUrl(input: any, isHeadless: any): Promise<ArrayBuffer>;
37
+ export function getArrayBufferFromUrl(input: any, _isHeadless: any): Promise<ArrayBuffer | SharedArrayBuffer>;
38
38
  export function getContentTypesFromXml(contentTypesXml: any): string[];
39
39
  export function getHexColorFromDocxSystem(docxColor: any): string;
40
40
  export function getDocxHighlightKeywordFromHex(hexColor: any): any;
@@ -9,14 +9,14 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
9
9
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
10
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
11
11
  var _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, enrichTrackedChanges_fn, runCommandWithArgumentOnly_fn;
12
- import { aA as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, aD as vClickOutside, H as findParentNode, aE as getActiveFormatting, av as isInTable, aF as readFromClipboard, aG as handleClipboardPaste, aH as getFileObject, aI as runPropertyTranslators, aJ as translator, aK as translator$1, aL as translator$2, aM as translator$3, aN as translator$4, aO as translator$5, aP as translator$6, aQ as translator$7, aR as translator$8, aS as translator$9, aT as translator$a, aU as translator$b, aV as translator$c, aW as translator$d, aX as translator$e, aY as commentRangeEndTranslator, aZ as commentRangeStartTranslator, a_ as translator$f, a$ as translator$g, b0 as translator$h, b1 as translator$i, b2 as translator$j, b3 as translator$k, b4 as translator$l, b5 as translator$m, b6 as translator$n, b7 as translator$o, b8 as translator$p, b9 as translator$q, ba as translator$r, bb as translator$s, bc as translator$t, bd as translator$u, be as translator$v, bf as translator$w, bg as translator$x, bh as translator$y, bi as translator$z, bj as translator$A, bk as translator$B, bl as translator$C, bm as translator$D, bn as translator$E, bo as translator$F, bp as translator$G, bq as translator$H, br as translator$I, bs as translator$J, bt as translator$K, bu as translator$L, bv as translator$M, bw as translator$N, bx as translator$O, by as translator$P, bz as translator$Q, bA as translator$R, bB as translator$S, bC as translator$T, bD as translator$U, bE as translator$V, bF as translator$W, bG as translator$X, bH as translator$Y, bI as translator$Z, bJ as translator$_, bK as translator$$, bL as translator$10, bM as translator$11, bN as translator$12, bO as translator$13, bP as translator$14, bQ as translator$15, bR as translator$16, bS as translator$17, bT as translator$18, bU as translator$19, bV as translator$1a, bW as translator$1b, bX as translator$1c, bY as translator$1d, bZ as translator$1e, b_ as translator$1f, b$ as translator$1g, c0 as translator$1h, P as PluginKey, a as Plugin } from "./chunks/converter-Bnmt0bNT.js";
13
- import { c1, a5, i, a2 } from "./chunks/converter-Bnmt0bNT.js";
14
- import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, E as Editor, l as getStarterExtensions, P as Placeholder, m as getRichTextExtensions, D as DecorationSet, n as Decoration, M as Mark, o as Extension, A as Attribute, N as Node } from "./chunks/editor-BHtGMc-u.js";
15
- import { t, C, v, T, p, w, q } from "./chunks/editor-BHtGMc-u.js";
12
+ import { aA as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, aD as vClickOutside, H as findParentNode, aE as getActiveFormatting, av as isInTable, aF as readFromClipboard, aG as handleClipboardPaste, aH as getFileObject, aI as runPropertyTranslators, aJ as translator, aK as translator$1, aL as translator$2, aM as translator$3, aN as translator$4, aO as translator$5, aP as translator$6, aQ as translator$7, aR as translator$8, aS as translator$9, aT as translator$a, aU as translator$b, aV as translator$c, aW as translator$d, aX as translator$e, aY as commentRangeEndTranslator, aZ as commentRangeStartTranslator, a_ as translator$f, a$ as translator$g, b0 as translator$h, b1 as translator$i, b2 as translator$j, b3 as translator$k, b4 as translator$l, b5 as translator$m, b6 as translator$n, b7 as translator$o, b8 as translator$p, b9 as translator$q, ba as translator$r, bb as translator$s, bc as translator$t, bd as translator$u, be as translator$v, bf as translator$w, bg as translator$x, bh as translator$y, bi as translator$z, bj as translator$A, bk as translator$B, bl as translator$C, bm as translator$D, bn as translator$E, bo as translator$F, bp as translator$G, bq as translator$H, br as translator$I, bs as translator$J, bt as translator$K, bu as translator$L, bv as translator$M, bw as translator$N, bx as translator$O, by as translator$P, bz as translator$Q, bA as translator$R, bB as translator$S, bC as translator$T, bD as translator$U, bE as translator$V, bF as translator$W, bG as translator$X, bH as translator$Y, bI as translator$Z, bJ as translator$_, bK as translator$$, bL as translator$10, bM as translator$11, bN as translator$12, bO as translator$13, bP as translator$14, bQ as translator$15, bR as translator$16, bS as translator$17, bT as translator$18, bU as translator$19, bV as translator$1a, bW as translator$1b, bX as translator$1c, bY as translator$1d, bZ as translator$1e, b_ as translator$1f, b$ as translator$1g, c0 as translator$1h, P as PluginKey, a as Plugin } from "./chunks/converter-DW0ykKpx.js";
13
+ import { c1, a5, i, a2 } from "./chunks/converter-DW0ykKpx.js";
14
+ import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, E as Editor, l as getStarterExtensions, P as Placeholder, m as getRichTextExtensions, D as DecorationSet, n as Decoration, M as Mark, o as Extension, A as Attribute, N as Node } from "./chunks/editor-CUz7q8Xz.js";
15
+ import { t, C, v, T, p, w, q } from "./chunks/editor-CUz7q8Xz.js";
16
16
  import { ref, onMounted, createElementBlock, openBlock, normalizeClass, unref, Fragment, renderList, createElementVNode, withModifiers, toDisplayString, createCommentVNode, normalizeStyle, computed, watch, withDirectives, withKeys, vModelText, createTextVNode, createVNode, h, createApp, markRaw, nextTick, onBeforeUnmount, reactive, onUnmounted, renderSlot, shallowRef, createBlock, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
17
- import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-Cgj3meLH.js";
17
+ import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-DglPzsaY.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-B1_YD3fF.js";
19
+ import { D } from "./chunks/docx-zipper-eWjTV-8Q.js";
20
20
  import { createZip } from "./file-zipper.es.js";
21
21
  var eventemitter3 = { exports: {} };
22
22
  var hasRequiredEventemitter3;
@@ -1,6 +1,6 @@
1
1
  import "vue";
2
- import { T } from "./chunks/toolbar-Cgj3meLH.js";
3
- import "./chunks/editor-BHtGMc-u.js";
2
+ import { T } from "./chunks/toolbar-DglPzsaY.js";
3
+ import "./chunks/editor-CUz7q8Xz.js";
4
4
  export {
5
5
  T as default
6
6
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-C4b8Qz1U.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-BOSseISU.cjs");
4
4
  require("./chunks/vue-DKMj1I9B.cjs");
5
5
  exports.AIWriter = superEditor_es.AIWriter;
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,4 +1,4 @@
1
- import { A, a, _, C, D, E, b, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-DiNNVR7Q.es.js";
1
+ import { A, a, _, C, D, E, b, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-IuxTXi0S.es.js";
2
2
  import "./chunks/vue-ZWZLQtoU.es.js";
3
3
  export {
4
4
  A as AIWriter,
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-C4b8Qz1U.cjs");
4
- const superdoc = require("./chunks/index-FmOItkm6.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-BOSseISU.cjs");
4
+ const superdoc = require("./chunks/index-DlKmbda5.cjs");
5
5
  require("./chunks/vue-DKMj1I9B.cjs");
6
6
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
7
7
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-DiNNVR7Q.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-CCotbgzR.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-IuxTXi0S.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-D4gqW11N.es.js";
3
3
  import "./chunks/vue-ZWZLQtoU.es.js";
4
4
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
5
5
  export {
@@ -22972,17 +22972,39 @@
22972
22972
  const exportValue = functionsMap[unit] ? functionsMap[unit](value) : pixelsToTwips(value);
22973
22973
  return exportValue;
22974
22974
  };
22975
- const getArrayBufferFromUrl = async (input, isHeadless) => {
22976
- const isLikelyUrl = /^https?:|^blob:|^file:|^data:/i.test(input);
22977
- if (isHeadless && isLikelyUrl && typeof fetch === "function") {
22978
- const res = await fetch(input);
22979
- if (!res.ok) throw new Error(`Fetch failed: ${res.status} ${res.statusText}`);
22980
- return await res.arrayBuffer();
22981
- }
22982
- const base64 = input.includes(",") ? input.split(",", 2)[1] : input.trim().replace(/\s/g, "");
22975
+ const REMOTE_RESOURCE_PATTERN = /^https?:|^blob:|^file:/i;
22976
+ const DATA_URI_PATTERN = /^data:/i;
22977
+ const getArrayBufferFromUrl = async (input, _isHeadless) => {
22978
+ if (input == null) {
22979
+ return new ArrayBuffer(0);
22980
+ }
22981
+ if (input instanceof ArrayBuffer) {
22982
+ return input;
22983
+ }
22984
+ if (ArrayBuffer.isView(input)) {
22985
+ const view = input;
22986
+ return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
22987
+ }
22988
+ if (typeof input !== "string") {
22989
+ throw new TypeError("Unsupported media input type");
22990
+ }
22991
+ const trimmed = input.trim();
22992
+ const shouldFetchRemote = REMOTE_RESOURCE_PATTERN.test(trimmed);
22993
+ const isDataUri = DATA_URI_PATTERN.test(trimmed);
22994
+ if (shouldFetchRemote) {
22995
+ if (typeof fetch !== "function") {
22996
+ throw new Error(`Fetch API is not available to retrieve media: ${trimmed}`);
22997
+ }
22998
+ const response = await fetch(trimmed);
22999
+ if (!response.ok) {
23000
+ throw new Error(`Fetch failed: ${response.status} ${response.statusText}`);
23001
+ }
23002
+ return await response.arrayBuffer();
23003
+ }
23004
+ const base64Payload = isDataUri ? trimmed.split(",", 2)[1] : trimmed.replace(/\s/g, "");
22983
23005
  try {
22984
23006
  if (typeof globalThis.atob === "function") {
22985
- const binary = globalThis.atob(base64);
23007
+ const binary = globalThis.atob(base64Payload);
22986
23008
  const bytes = new Uint8Array(binary.length);
22987
23009
  for (let i2 = 0; i2 < binary.length; i2++) {
22988
23010
  bytes[i2] = binary.charCodeAt(i2);
@@ -22992,7 +23014,7 @@
22992
23014
  } catch (err) {
22993
23015
  console.warn("atob failed, falling back to Buffer:", err);
22994
23016
  }
22995
- const buf = Buffer2.from(base64, "base64");
23017
+ const buf = Buffer2.from(base64Payload, "base64");
22996
23018
  return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
22997
23019
  };
22998
23020
  const getContentTypesFromXml = (contentTypesXml) => {