@harbour-enterprises/superdoc 0.16.0-next.7 → 0.16.0-next.8

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-Dxf6Q8xr.es.js → PdfViewer-9PXb3rXA.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-C5x7AU8q.cjs → PdfViewer-BgQbGxHT.cjs} +1 -1
  3. package/dist/chunks/{index-FvnrFhAG.cjs → index-DUgJwepM.cjs} +3 -3
  4. package/dist/chunks/{index-BjIQt0Ko.es.js → index-YhT-JqcA.es.js} +3 -3
  5. package/dist/chunks/{super-editor.es-C1fdpMgg.cjs → super-editor.es-BG4kMZpU.cjs} +34 -7
  6. package/dist/chunks/{super-editor.es-DuPg67jP.es.js → super-editor.es-DB_XiddH.es.js} +34 -7
  7. package/dist/super-editor/ai-writer.es.js +2 -2
  8. package/dist/super-editor/chunks/{converter-BNYWJQ3Z.js → converter-CY1WQn6N.js} +33 -6
  9. package/dist/super-editor/chunks/{docx-zipper-Csj1FkZx.js → docx-zipper-DAn84JFm.js} +1 -1
  10. package/dist/super-editor/chunks/{editor-DvMBcEqO.js → editor-C66ryrYS.js} +3 -3
  11. package/dist/super-editor/chunks/{toolbar--6fQXx6v.js → toolbar-Br_su5P2.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/src/core/utilities/clipboardUtils.d.ts +7 -17
  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 +35 -8
  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-xvq3uP6K.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-BjIQt0Ko.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-YhT-JqcA.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-B6WOnFdF.cjs");
4
- const superdoc = require("./index-FvnrFhAG.cjs");
4
+ const superdoc = require("./index-DUgJwepM.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-C1fdpMgg.cjs");
2
+ const superEditor_es = require("./super-editor.es-BG4kMZpU.cjs");
3
3
  const vue = require("./vue-B6WOnFdF.cjs");
4
4
  const jszip = require("./jszip-DmmUnPkH.cjs");
5
5
  const blankDocx = require("./blank-docx-CPqX9RF5.cjs");
@@ -17266,7 +17266,7 @@ const _sfc_main = {
17266
17266
  __name: "SuperDoc",
17267
17267
  emits: ["selection-update"],
17268
17268
  setup(__props, { emit: __emit }) {
17269
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-C5x7AU8q.cjs")));
17269
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BgQbGxHT.cjs")));
17270
17270
  const superdocStore = useSuperdocStore();
17271
17271
  const commentsStore = useCommentsStore();
17272
17272
  const {
@@ -17909,7 +17909,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
17909
17909
  this.config.colors = shuffleArray(this.config.colors);
17910
17910
  this.userColorMap = /* @__PURE__ */ new Map();
17911
17911
  this.colorIndex = 0;
17912
- this.version = "0.16.0-next.6";
17912
+ this.version = "0.16.0-next.7";
17913
17913
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
17914
17914
  this.superdocId = config.superdocId || uuid.v4();
17915
17915
  this.colors = this.config.colors;
@@ -1,4 +1,4 @@
1
- import { q as index$1, 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-DuPg67jP.es.js";
1
+ import { q as index$1, 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-DB_XiddH.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-xvq3uP6K.es.js";
3
3
  import { B as Buffer$2 } from "./jszip-DXHu60h9.es.js";
4
4
  import { B as BlankDOCX } from "./blank-docx-iwdyG9RH.es.js";
@@ -17249,7 +17249,7 @@ const _sfc_main = {
17249
17249
  __name: "SuperDoc",
17250
17250
  emits: ["selection-update"],
17251
17251
  setup(__props, { emit: __emit }) {
17252
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-Dxf6Q8xr.es.js"));
17252
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-9PXb3rXA.es.js"));
17253
17253
  const superdocStore = useSuperdocStore();
17254
17254
  const commentsStore = useCommentsStore();
17255
17255
  const {
@@ -17892,7 +17892,7 @@ class SuperDoc extends EventEmitter {
17892
17892
  this.config.colors = shuffleArray(this.config.colors);
17893
17893
  this.userColorMap = /* @__PURE__ */ new Map();
17894
17894
  this.colorIndex = 0;
17895
- this.version = "0.16.0-next.6";
17895
+ this.version = "0.16.0-next.7";
17896
17896
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
17897
17897
  this.superdocId = config.superdocId || v4();
17898
17898
  this.colors = this.config.colors;
@@ -17720,10 +17720,36 @@ function parseSizeUnit(val = "0") {
17720
17720
  function minMax(value = 0, min2 = 0, max2 = 0) {
17721
17721
  return Math.min(Math.max(value, min2), max2);
17722
17722
  }
17723
+ async function ensureClipboardPermission() {
17724
+ if (typeof navigator === "undefined" || !navigator.clipboard) {
17725
+ return false;
17726
+ }
17727
+ if (!navigator.permissions || typeof navigator.permissions.query !== "function") {
17728
+ return true;
17729
+ }
17730
+ try {
17731
+ const status = await navigator.permissions.query({ name: "clipboard-read" });
17732
+ if (status.state === "granted") {
17733
+ return true;
17734
+ }
17735
+ if (status.state === "prompt") {
17736
+ try {
17737
+ await navigator.clipboard.readText();
17738
+ return true;
17739
+ } catch {
17740
+ return false;
17741
+ }
17742
+ }
17743
+ return false;
17744
+ } catch {
17745
+ return false;
17746
+ }
17747
+ }
17723
17748
  async function readFromClipboard(state2) {
17724
17749
  let html = "";
17725
17750
  let text = "";
17726
- if (navigator.clipboard && navigator.clipboard.read) {
17751
+ const hasPermission = await ensureClipboardPermission();
17752
+ if (hasPermission && navigator.clipboard && navigator.clipboard.read) {
17727
17753
  try {
17728
17754
  const items = await navigator.clipboard.read();
17729
17755
  for (const item of items) {
@@ -17735,10 +17761,11 @@ async function readFromClipboard(state2) {
17735
17761
  }
17736
17762
  }
17737
17763
  } catch {
17738
- text = await navigator.clipboard.readText();
17764
+ try {
17765
+ text = await navigator.clipboard.readText();
17766
+ } catch {
17767
+ }
17739
17768
  }
17740
- } else {
17741
- text = await navigator.clipboard.readText();
17742
17769
  }
17743
17770
  let content = null;
17744
17771
  if (html) {
@@ -30055,7 +30082,7 @@ const _SuperConverter = class _SuperConverter2 {
30055
30082
  return;
30056
30083
  }
30057
30084
  }
30058
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.16.0-next.6") {
30085
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.16.0-next.7") {
30059
30086
  const customLocation = "docProps/custom.xml";
30060
30087
  if (!docx[customLocation]) {
30061
30088
  docx[customLocation] = generateCustomXml();
@@ -30537,7 +30564,7 @@ function storeSuperdocVersion(docx) {
30537
30564
  function generateCustomXml() {
30538
30565
  return DEFAULT_CUSTOM_XML;
30539
30566
  }
30540
- function generateSuperdocVersion(pid = 2, version2 = "0.16.0-next.6") {
30567
+ function generateSuperdocVersion(pid = 2, version2 = "0.16.0-next.7") {
30541
30568
  return {
30542
30569
  type: "element",
30543
30570
  name: "property",
@@ -47307,7 +47334,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
47307
47334
  * @returns {Object | void} Migration results
47308
47335
  */
47309
47336
  processCollaborationMigrations() {
47310
- console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.6");
47337
+ console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.7");
47311
47338
  if (!this.options.ydoc) return;
47312
47339
  const metaMap = this.options.ydoc.getMap("meta");
47313
47340
  let docVersion = metaMap.get("version");
@@ -17703,10 +17703,36 @@ function parseSizeUnit(val = "0") {
17703
17703
  function minMax(value = 0, min2 = 0, max2 = 0) {
17704
17704
  return Math.min(Math.max(value, min2), max2);
17705
17705
  }
17706
+ async function ensureClipboardPermission() {
17707
+ if (typeof navigator === "undefined" || !navigator.clipboard) {
17708
+ return false;
17709
+ }
17710
+ if (!navigator.permissions || typeof navigator.permissions.query !== "function") {
17711
+ return true;
17712
+ }
17713
+ try {
17714
+ const status = await navigator.permissions.query({ name: "clipboard-read" });
17715
+ if (status.state === "granted") {
17716
+ return true;
17717
+ }
17718
+ if (status.state === "prompt") {
17719
+ try {
17720
+ await navigator.clipboard.readText();
17721
+ return true;
17722
+ } catch {
17723
+ return false;
17724
+ }
17725
+ }
17726
+ return false;
17727
+ } catch {
17728
+ return false;
17729
+ }
17730
+ }
17706
17731
  async function readFromClipboard(state2) {
17707
17732
  let html = "";
17708
17733
  let text = "";
17709
- if (navigator.clipboard && navigator.clipboard.read) {
17734
+ const hasPermission = await ensureClipboardPermission();
17735
+ if (hasPermission && navigator.clipboard && navigator.clipboard.read) {
17710
17736
  try {
17711
17737
  const items = await navigator.clipboard.read();
17712
17738
  for (const item of items) {
@@ -17718,10 +17744,11 @@ async function readFromClipboard(state2) {
17718
17744
  }
17719
17745
  }
17720
17746
  } catch {
17721
- text = await navigator.clipboard.readText();
17747
+ try {
17748
+ text = await navigator.clipboard.readText();
17749
+ } catch {
17750
+ }
17722
17751
  }
17723
- } else {
17724
- text = await navigator.clipboard.readText();
17725
17752
  }
17726
17753
  let content = null;
17727
17754
  if (html) {
@@ -30038,7 +30065,7 @@ const _SuperConverter = class _SuperConverter2 {
30038
30065
  return;
30039
30066
  }
30040
30067
  }
30041
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.16.0-next.6") {
30068
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.16.0-next.7") {
30042
30069
  const customLocation = "docProps/custom.xml";
30043
30070
  if (!docx[customLocation]) {
30044
30071
  docx[customLocation] = generateCustomXml();
@@ -30520,7 +30547,7 @@ function storeSuperdocVersion(docx) {
30520
30547
  function generateCustomXml() {
30521
30548
  return DEFAULT_CUSTOM_XML;
30522
30549
  }
30523
- function generateSuperdocVersion(pid = 2, version2 = "0.16.0-next.6") {
30550
+ function generateSuperdocVersion(pid = 2, version2 = "0.16.0-next.7") {
30524
30551
  return {
30525
30552
  type: "element",
30526
30553
  name: "property",
@@ -47290,7 +47317,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
47290
47317
  * @returns {Object | void} Migration results
47291
47318
  */
47292
47319
  processCollaborationMigrations() {
47293
- console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.6");
47320
+ console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.7");
47294
47321
  if (!this.options.ydoc) return;
47295
47322
  const metaMap = this.options.ydoc.getMap("meta");
47296
47323
  let docVersion = metaMap.get("version");
@@ -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-BNYWJQ3Z.js";
3
- import { _ as _export_sfc } from "./chunks/editor-DvMBcEqO.js";
2
+ import { T as TextSelection } from "./chunks/converter-CY1WQn6N.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-C66ryrYS.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 = {}) {
@@ -17701,10 +17701,36 @@ function parseSizeUnit(val = "0") {
17701
17701
  function minMax(value = 0, min2 = 0, max2 = 0) {
17702
17702
  return Math.min(Math.max(value, min2), max2);
17703
17703
  }
17704
+ async function ensureClipboardPermission() {
17705
+ if (typeof navigator === "undefined" || !navigator.clipboard) {
17706
+ return false;
17707
+ }
17708
+ if (!navigator.permissions || typeof navigator.permissions.query !== "function") {
17709
+ return true;
17710
+ }
17711
+ try {
17712
+ const status = await navigator.permissions.query({ name: "clipboard-read" });
17713
+ if (status.state === "granted") {
17714
+ return true;
17715
+ }
17716
+ if (status.state === "prompt") {
17717
+ try {
17718
+ await navigator.clipboard.readText();
17719
+ return true;
17720
+ } catch {
17721
+ return false;
17722
+ }
17723
+ }
17724
+ return false;
17725
+ } catch {
17726
+ return false;
17727
+ }
17728
+ }
17704
17729
  async function readFromClipboard(state2) {
17705
17730
  let html = "";
17706
17731
  let text = "";
17707
- if (navigator.clipboard && navigator.clipboard.read) {
17732
+ const hasPermission = await ensureClipboardPermission();
17733
+ if (hasPermission && navigator.clipboard && navigator.clipboard.read) {
17708
17734
  try {
17709
17735
  const items = await navigator.clipboard.read();
17710
17736
  for (const item of items) {
@@ -17716,10 +17742,11 @@ async function readFromClipboard(state2) {
17716
17742
  }
17717
17743
  }
17718
17744
  } catch {
17719
- text = await navigator.clipboard.readText();
17745
+ try {
17746
+ text = await navigator.clipboard.readText();
17747
+ } catch {
17748
+ }
17720
17749
  }
17721
- } else {
17722
- text = await navigator.clipboard.readText();
17723
17750
  }
17724
17751
  let content = null;
17725
17752
  if (html) {
@@ -30036,7 +30063,7 @@ const _SuperConverter = class _SuperConverter {
30036
30063
  return;
30037
30064
  }
30038
30065
  }
30039
- static updateDocumentVersion(docx = this.convertedXml, version = "0.16.0-next.6") {
30066
+ static updateDocumentVersion(docx = this.convertedXml, version = "0.16.0-next.7") {
30040
30067
  const customLocation = "docProps/custom.xml";
30041
30068
  if (!docx[customLocation]) {
30042
30069
  docx[customLocation] = generateCustomXml();
@@ -30521,7 +30548,7 @@ function storeSuperdocVersion(docx) {
30521
30548
  function generateCustomXml() {
30522
30549
  return DEFAULT_CUSTOM_XML;
30523
30550
  }
30524
- function generateSuperdocVersion(pid = 2, version = "0.16.0-next.6") {
30551
+ function generateSuperdocVersion(pid = 2, version = "0.16.0-next.7") {
30525
30552
  return {
30526
30553
  type: "element",
30527
30554
  name: "property",
@@ -1,4 +1,4 @@
1
- import { H as process$1, av as commonjsGlobal, I as Buffer, aw as getDefaultExportFromCjs, ax as getContentTypesFromXml, ay as xmljs } from "./converter-BNYWJQ3Z.js";
1
+ import { H as process$1, av as commonjsGlobal, I as Buffer, aw as getDefaultExportFromCjs, ax as getContentTypesFromXml, ay as xmljs } from "./converter-CY1WQn6N.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, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_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, _ListItemNodeView_instances, init_fn2, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn, _DocumentSectionView_instances, init_fn3, addToolTip_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, c as callOrGet, g as getExtensionConfigField, b as getMarkType, d as getMarksFromSelection, e as getNodeType, f as getSchemaTypeNameByName, S as Schema$1, h as cleanSchemaItem, T as TextSelection, N as NodeSelection, i as canSplit, j as defaultBlockAt$1, l as liftTarget, A as AllSelection, k as canJoin, m as joinPoint, n as Selection, r as replaceStep$1, F as Fragment, R as ReplaceAroundStep$1, o as Slice, p as isTextSelection, q as getMarkRange, s as isMarkActive, t as isNodeActive, u as deleteProps, D as DOMParser$1, v as ReplaceStep, w as NodeRange, x as findWrapping, L as ListHelpers, y as findParentNode, z as isMacOS, B as isIOS, C as DOMSerializer, E as Mark$1, G as dropPoint, H as process$1, I as Buffer2, J as getSchemaTypeByName, K as inputRulesPlugin, O as TrackDeleteMarkName, Q as TrackInsertMarkName, U as v4, V as TrackFormatMarkName, W as comments_module_events, X as findMark, Y as objectIncludes, Z as AddMarkStep, _ as RemoveMarkStep, $ as twipsToLines, a0 as pixelsToTwips, a1 as helpers, a2 as posToDOMRect, a3 as CommandService, a4 as SuperConverter, a5 as createDocument, a6 as createDocFromMarkdown, a7 as createDocFromHTML, a8 as EditorState, a9 as hasSomeParentWithClass, aa as isActive, ab as unflattenListsInHtml, ac as parseSizeUnit, ad as minMax, ae as getLineHeightValueString, af as InputRule, ag as kebabCase, ah as getListItemStyleDefinitions, ai as docxNumberigHelpers, aj as parseIndentElement, ak as combineIndents, al as StepMap, am as getColStyleDeclaration, an as SelectionRange, ao as Transform, ap as findParentNodeClosestToPos, aq as isInTable$1, ar as createColGroup, as as generateDocxRandomId, at as insertNewRelationship, au as htmlHandler } from "./converter-BNYWJQ3Z.js";
15
+ import { P as PluginKey, a as Plugin, M as Mapping, c as callOrGet, g as getExtensionConfigField, b as getMarkType, d as getMarksFromSelection, e as getNodeType, f as getSchemaTypeNameByName, S as Schema$1, h as cleanSchemaItem, T as TextSelection, N as NodeSelection, i as canSplit, j as defaultBlockAt$1, l as liftTarget, A as AllSelection, k as canJoin, m as joinPoint, n as Selection, r as replaceStep$1, F as Fragment, R as ReplaceAroundStep$1, o as Slice, p as isTextSelection, q as getMarkRange, s as isMarkActive, t as isNodeActive, u as deleteProps, D as DOMParser$1, v as ReplaceStep, w as NodeRange, x as findWrapping, L as ListHelpers, y as findParentNode, z as isMacOS, B as isIOS, C as DOMSerializer, E as Mark$1, G as dropPoint, H as process$1, I as Buffer2, J as getSchemaTypeByName, K as inputRulesPlugin, O as TrackDeleteMarkName, Q as TrackInsertMarkName, U as v4, V as TrackFormatMarkName, W as comments_module_events, X as findMark, Y as objectIncludes, Z as AddMarkStep, _ as RemoveMarkStep, $ as twipsToLines, a0 as pixelsToTwips, a1 as helpers, a2 as posToDOMRect, a3 as CommandService, a4 as SuperConverter, a5 as createDocument, a6 as createDocFromMarkdown, a7 as createDocFromHTML, a8 as EditorState, a9 as hasSomeParentWithClass, aa as isActive, ab as unflattenListsInHtml, ac as parseSizeUnit, ad as minMax, ae as getLineHeightValueString, af as InputRule, ag as kebabCase, ah as getListItemStyleDefinitions, ai as docxNumberigHelpers, aj as parseIndentElement, ak as combineIndents, al as StepMap, am as getColStyleDeclaration, an as SelectionRange, ao as Transform, ap as findParentNodeClosestToPos, aq as isInTable$1, ar as createColGroup, as as generateDocxRandomId, at as insertNewRelationship, au as htmlHandler } from "./converter-CY1WQn6N.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-Csj1FkZx.js";
17
+ import { D as DocxZipper } from "./docx-zipper-DAn84JFm.js";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
20
20
  };
@@ -14255,7 +14255,7 @@ const _Editor = class _Editor extends EventEmitter {
14255
14255
  * @returns {Object | void} Migration results
14256
14256
  */
14257
14257
  processCollaborationMigrations() {
14258
- console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.6");
14258
+ console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.7");
14259
14259
  if (!this.options.ydoc) return;
14260
14260
  const metaMap = this.options.ydoc.getMap("meta");
14261
14261
  let docVersion = metaMap.get("version");
@@ -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 { H as process$1 } from "./converter-BNYWJQ3Z.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-DvMBcEqO.js";
2
+ import { H as process$1 } from "./converter-CY1WQn6N.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-C66ryrYS.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 { a4 } from "./chunks/converter-BNYWJQ3Z.js";
1
+ import { a4 } from "./chunks/converter-CY1WQn6N.js";
2
2
  export {
3
3
  a4 as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-BNYWJQ3Z.js";
2
- import { D } from "./chunks/docx-zipper-Csj1FkZx.js";
1
+ import "./chunks/converter-CY1WQn6N.js";
2
+ import { D } from "./chunks/docx-zipper-DAn84JFm.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-DvMBcEqO.js";
2
- import "./chunks/converter-BNYWJQ3Z.js";
3
- import "./chunks/docx-zipper-Csj1FkZx.js";
1
+ import { E } from "./chunks/editor-C66ryrYS.js";
2
+ import "./chunks/converter-CY1WQn6N.js";
3
+ import "./chunks/docx-zipper-DAn84JFm.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-Csj1FkZx.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-DAn84JFm.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -1,22 +1,12 @@
1
1
  /**
2
- * Serializes the current selection in the editor state to HTML and plain text for clipboard use.
3
- * @param {EditorState} state - The ProseMirror editor state containing the current selection.
4
- * @returns {{ htmlString: string, text: string }} An object with the HTML string and plain text of the selection.
2
+ * Checks if clipboard read permission is granted and handles permission prompts.
3
+ * Returns true if clipboard-read permission is granted. If state is "prompt" it will
4
+ * proactively trigger a readText() call which will surface the browser permission
5
+ * dialog to the user. Falls back gracefully in older browsers that lack the
6
+ * Permissions API.
7
+ * @returns {Promise<boolean>} Whether clipboard read permission is granted
5
8
  */
6
- export function serializeSelectionToClipboard(state: EditorState): {
7
- htmlString: string;
8
- text: string;
9
- };
10
- /**
11
- * Writes HTML and plain text data to the system clipboard.
12
- * Uses the Clipboard API if available, otherwise falls back to plain text.
13
- * @param {{ htmlString: string, text: string }} param0 - The HTML and plain text to write to the clipboard.
14
- * @returns {Promise<void>} A promise that resolves when the clipboard write is complete.
15
- */
16
- export function writeToClipboard({ htmlString, text }: {
17
- htmlString: string;
18
- text: string;
19
- }): Promise<void>;
9
+ export function ensureClipboardPermission(): Promise<boolean>;
20
10
  /**
21
11
  * Reads content from the system clipboard and parses it into a ProseMirror fragment.
22
12
  * Attempts to read HTML first, falling back to plain text if necessary.
@@ -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, runCommandWithArgumentOnly_fn;
12
- import { aw as getDefaultExportFromCjs, U as v4, T as TextSelection$1, q as getMarkRange, az as vClickOutside, y as findParentNode, aA as getActiveFormatting, aq as isInTable, aB as readFromClipboard, aC as handleClipboardPaste, aD as getFileObject, a as Plugin } from "./chunks/converter-BNYWJQ3Z.js";
13
- import { aE, a4, d, a1 } from "./chunks/converter-BNYWJQ3Z.js";
14
- import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, s as startImageUpload, y as yUndoPluginKey, d as undoDepth, r as redoDepth, S as SlashMenuPluginKey, E as Editor, e as getStarterExtensions, P as Placeholder, f as getRichTextExtensions, M as Mark, h as Extension, A as Attribute, N as Node } from "./chunks/editor-DvMBcEqO.js";
15
- import { k, C, l, T, i, m, j } from "./chunks/editor-DvMBcEqO.js";
12
+ import { aw as getDefaultExportFromCjs, U as v4, T as TextSelection$1, q as getMarkRange, az as vClickOutside, y as findParentNode, aA as getActiveFormatting, aq as isInTable, aB as readFromClipboard, aC as handleClipboardPaste, aD as getFileObject, a as Plugin } from "./chunks/converter-CY1WQn6N.js";
13
+ import { aE, a4, d, a1 } from "./chunks/converter-CY1WQn6N.js";
14
+ import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, s as startImageUpload, y as yUndoPluginKey, d as undoDepth, r as redoDepth, S as SlashMenuPluginKey, E as Editor, e as getStarterExtensions, P as Placeholder, f as getRichTextExtensions, M as Mark, h as Extension, A as Attribute, N as Node } from "./chunks/editor-C66ryrYS.js";
15
+ import { k, C, l, T, i, m, j } from "./chunks/editor-C66ryrYS.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, m as magicWandIcon, p as plusIconSvg, a as trashIconSvg, l as linkIconSvg, b as tableIconSvg, c as scissorsIconSvg, d as copyIconSvg, e as pasteIconSvg, f as borderNoneIconSvg, g as arrowsToDotIconSvg, h as arrowsLeftRightIconSvg, w as wrenchIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar--6fQXx6v.js";
17
+ import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, m as magicWandIcon, p as plusIconSvg, a as trashIconSvg, l as linkIconSvg, b as tableIconSvg, c as scissorsIconSvg, d as copyIconSvg, e as pasteIconSvg, f as borderNoneIconSvg, g as arrowsToDotIconSvg, h as arrowsLeftRightIconSvg, w as wrenchIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-Br_su5P2.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-Csj1FkZx.js";
19
+ import { D } from "./chunks/docx-zipper-DAn84JFm.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--6fQXx6v.js";
3
- import "./chunks/editor-DvMBcEqO.js";
2
+ import { T } from "./chunks/toolbar-Br_su5P2.js";
3
+ import "./chunks/editor-C66ryrYS.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-C1fdpMgg.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-BG4kMZpU.cjs");
4
4
  require("./chunks/vue-B6WOnFdF.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, q } from "./chunks/super-editor.es-DuPg67jP.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, q } from "./chunks/super-editor.es-DB_XiddH.es.js";
2
2
  import "./chunks/vue-xvq3uP6K.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-C1fdpMgg.cjs");
4
- const superdoc = require("./chunks/index-FvnrFhAG.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-BG4kMZpU.cjs");
4
+ const superdoc = require("./chunks/index-DUgJwepM.cjs");
5
5
  require("./chunks/vue-B6WOnFdF.cjs");
6
6
  require("./chunks/jszip-DmmUnPkH.cjs");
7
7
  const blankDocx = require("./chunks/blank-docx-CPqX9RF5.cjs");
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, p, q } from "./chunks/super-editor.es-DuPg67jP.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-BjIQt0Ko.es.js";
1
+ import { a, E, b, S, d, i, j, n, p, q } from "./chunks/super-editor.es-DB_XiddH.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-YhT-JqcA.es.js";
3
3
  import "./chunks/vue-xvq3uP6K.es.js";
4
4
  import "./chunks/jszip-DXHu60h9.es.js";
5
5
  import { B } from "./chunks/blank-docx-iwdyG9RH.es.js";
@@ -25412,10 +25412,36 @@
25412
25412
  function minMax(value = 0, min2 = 0, max2 = 0) {
25413
25413
  return Math.min(Math.max(value, min2), max2);
25414
25414
  }
25415
+ async function ensureClipboardPermission() {
25416
+ if (typeof navigator === "undefined" || !navigator.clipboard) {
25417
+ return false;
25418
+ }
25419
+ if (!navigator.permissions || typeof navigator.permissions.query !== "function") {
25420
+ return true;
25421
+ }
25422
+ try {
25423
+ const status = await navigator.permissions.query({ name: "clipboard-read" });
25424
+ if (status.state === "granted") {
25425
+ return true;
25426
+ }
25427
+ if (status.state === "prompt") {
25428
+ try {
25429
+ await navigator.clipboard.readText();
25430
+ return true;
25431
+ } catch {
25432
+ return false;
25433
+ }
25434
+ }
25435
+ return false;
25436
+ } catch {
25437
+ return false;
25438
+ }
25439
+ }
25415
25440
  async function readFromClipboard(state2) {
25416
25441
  let html = "";
25417
25442
  let text = "";
25418
- if (navigator.clipboard && navigator.clipboard.read) {
25443
+ const hasPermission = await ensureClipboardPermission();
25444
+ if (hasPermission && navigator.clipboard && navigator.clipboard.read) {
25419
25445
  try {
25420
25446
  const items = await navigator.clipboard.read();
25421
25447
  for (const item of items) {
@@ -25427,10 +25453,11 @@
25427
25453
  }
25428
25454
  }
25429
25455
  } catch {
25430
- text = await navigator.clipboard.readText();
25456
+ try {
25457
+ text = await navigator.clipboard.readText();
25458
+ } catch {
25459
+ }
25431
25460
  }
25432
- } else {
25433
- text = await navigator.clipboard.readText();
25434
25461
  }
25435
25462
  let content = null;
25436
25463
  if (html) {
@@ -37720,7 +37747,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
37720
37747
  return;
37721
37748
  }
37722
37749
  }
37723
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.16.0-next.6") {
37750
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.16.0-next.7") {
37724
37751
  const customLocation = "docProps/custom.xml";
37725
37752
  if (!docx[customLocation]) {
37726
37753
  docx[customLocation] = generateCustomXml();
@@ -38202,7 +38229,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
38202
38229
  function generateCustomXml() {
38203
38230
  return DEFAULT_CUSTOM_XML;
38204
38231
  }
38205
- function generateSuperdocVersion(pid = 2, version2 = "0.16.0-next.6") {
38232
+ function generateSuperdocVersion(pid = 2, version2 = "0.16.0-next.7") {
38206
38233
  return {
38207
38234
  type: "element",
38208
38235
  name: "property",
@@ -54972,7 +54999,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
54972
54999
  * @returns {Object | void} Migration results
54973
55000
  */
54974
55001
  processCollaborationMigrations() {
54975
- console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.6");
55002
+ console.debug("[checkVersionMigrations] Current editor version", "0.16.0-next.7");
54976
55003
  if (!this.options.ydoc) return;
54977
55004
  const metaMap = this.options.ydoc.getMap("meta");
54978
55005
  let docVersion = metaMap.get("version");
@@ -104486,7 +104513,7 @@ ${style2}
104486
104513
  this.config.colors = shuffleArray(this.config.colors);
104487
104514
  this.userColorMap = /* @__PURE__ */ new Map();
104488
104515
  this.colorIndex = 0;
104489
- this.version = "0.16.0-next.6";
104516
+ this.version = "0.16.0-next.7";
104490
104517
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
104491
104518
  this.superdocId = config.superdocId || v4();
104492
104519
  this.colors = this.config.colors;