@harbour-enterprises/superdoc 0.25.0-next.2 → 0.25.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 (30) hide show
  1. package/dist/chunks/{PdfViewer-CEc5ST9t.cjs → PdfViewer-BETK3Bs4.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-CoEXViCu.es.js → PdfViewer-D4F3H-Ay.es.js} +1 -1
  3. package/dist/chunks/{index-ChgYIPZ8.cjs → index-BHS2aLqo.cjs} +5 -7
  4. package/dist/chunks/{index-DtXgSPMT.es.js → index-D9KYAvvg.es.js} +5 -7
  5. package/dist/chunks/{super-editor.es-B-E_YaLO.cjs → super-editor.es-BJzqCihw.cjs} +126 -125
  6. package/dist/chunks/{super-editor.es-BePxEtE8.es.js → super-editor.es-Beeng5kU.es.js} +126 -125
  7. package/dist/core/types/index.d.ts.map +1 -1
  8. package/dist/style.css +57 -54
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-gSy6s2VK.js → converter-DOkexB95.js} +89 -72
  11. package/dist/super-editor/chunks/{docx-zipper-CceGxV02.js → docx-zipper-Ci5JbfjE.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-yaef8OIs.js → editor-DC9ZOqdt.js} +25 -59
  13. package/dist/super-editor/chunks/{toolbar-Dc5uyyIp.js → toolbar-SPGEoEi0.js} +4 -4
  14. package/dist/super-editor/converter.es.js +1 -1
  15. package/dist/super-editor/docx-zipper.es.js +2 -2
  16. package/dist/super-editor/editor.es.js +3 -3
  17. package/dist/super-editor/file-zipper.es.js +1 -1
  18. package/dist/super-editor/style.css +30 -27
  19. package/dist/super-editor/super-editor/src/components/toolbar/use-toolbar-item.d.ts +1 -1
  20. package/dist/super-editor/super-editor/src/core/super-converter/v3/handlers/mc/altermateContent/alternate-content-translator.d.ts +11 -0
  21. package/dist/super-editor/super-editor/src/index.d.ts +8 -2
  22. package/dist/super-editor/super-editor.es.js +31 -18
  23. package/dist/super-editor/toolbar.es.js +2 -2
  24. package/dist/super-editor.cjs +1 -1
  25. package/dist/super-editor.es.js +1 -1
  26. package/dist/superdoc.cjs +2 -2
  27. package/dist/superdoc.es.js +2 -2
  28. package/dist/superdoc.umd.js +129 -130
  29. package/dist/superdoc.umd.js.map +1 -1
  30. package/package.json +1 -1
@@ -9,12 +9,12 @@ 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 __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
11
11
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
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, determineUnsupportedFontsWithLocalFonts_fn, determineUnsupportedFontsWithCanvas_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, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
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, _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 docxNumberigHelpers, 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-gSy6s2VK.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 docxNumberigHelpers, 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-DOkexB95.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-CceGxV02.js";
17
+ import { D as DocxZipper } from "./docx-zipper-Ci5JbfjE.js";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
20
20
  };
@@ -15271,9 +15271,6 @@ init_fn = function() {
15271
15271
  this.emit("beforeCreate", { editor: this });
15272
15272
  this.on("contentError", this.options.onContentError);
15273
15273
  this.mount(this.options.element);
15274
- if (!this.options.isHeadless) {
15275
- __privateMethod(this, _Editor_instances, checkFonts_fn).call(this);
15276
- }
15277
15274
  this.on("create", this.options.onCreate);
15278
15275
  this.on("update", this.options.onUpdate);
15279
15276
  this.on("selectionUpdate", this.options.onSelectionUpdate);
@@ -15290,12 +15287,17 @@ init_fn = function() {
15290
15287
  this.on("paginationUpdate", this.options.onPaginationUpdate);
15291
15288
  this.on("comment-positions", this.options.onCommentLocationsUpdate);
15292
15289
  this.on("list-definitions-change", this.options.onListDefinitionsChange);
15290
+ this.on("fonts-resolved", this.options.onFontsResolved);
15293
15291
  this.on("exception", this.options.onException);
15294
15292
  if (!this.options.isHeadless) {
15295
15293
  this.initializeCollaborationData();
15296
15294
  this.initDefaultStyles();
15295
+ __privateMethod(this, _Editor_instances, checkFonts_fn).call(this);
15297
15296
  }
15298
- if (!this.options.ydoc || this.options.markdown || this.options.html) {
15297
+ const shouldMigrateListsOnInit = Boolean(
15298
+ this.options.markdown || this.options.html || this.options.loadFromSchema || this.options.jsonOverride || this.options.mode === "html" || this.options.mode === "text"
15299
+ );
15300
+ if (shouldMigrateListsOnInit) {
15299
15301
  this.migrateListsToV2();
15300
15302
  }
15301
15303
  this.setDocumentMode(this.options.documentMode);
@@ -15489,58 +15491,17 @@ checkFonts_fn = async function() {
15489
15491
  if (this.options.isHeadless) {
15490
15492
  return;
15491
15493
  }
15492
- const fontsUsedInDocument = this.converter.getDocumentFonts();
15493
- if (!("queryLocalFonts" in window)) {
15494
- console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
15495
- const unsupportedFonts = __privateMethod(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
15496
- this.options.onFontsResolved({
15497
- documentFonts: fontsUsedInDocument,
15498
- unsupportedFonts
15499
- });
15500
- return;
15501
- }
15502
- const localFontAccess = await navigator.permissions.query({ name: "local-fonts" });
15503
- if (localFontAccess.state === "denied") {
15504
- console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
15505
- const unsupportedFonts = __privateMethod(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
15506
- this.options.onFontsResolved({
15507
- documentFonts: fontsUsedInDocument,
15508
- unsupportedFonts
15509
- });
15510
- return;
15511
- }
15512
15494
  try {
15513
- const localFonts = await window.queryLocalFonts();
15514
- const uniqueLocalFonts = [...new Set(localFonts.map((font) => font.family))];
15515
- const unsupportedFonts = __privateMethod(this, _Editor_instances, determineUnsupportedFontsWithLocalFonts_fn).call(this, fontsUsedInDocument, uniqueLocalFonts);
15516
- this.options.onFontsResolved({
15495
+ const fontsUsedInDocument = this.converter.getDocumentFonts();
15496
+ const unsupportedFonts = __privateMethod(this, _Editor_instances, determineUnsupportedFonts_fn).call(this, fontsUsedInDocument);
15497
+ this.emit("fonts-resolved", {
15517
15498
  documentFonts: fontsUsedInDocument,
15518
15499
  unsupportedFonts
15519
15500
  });
15520
15501
  } catch {
15521
- console.warn("[SuperDoc] Could not get access to local fonts. Using fallback solution.");
15522
- const unsupportedFonts = __privateMethod(this, _Editor_instances, determineUnsupportedFontsWithCanvas_fn).call(this, fontsUsedInDocument);
15523
- this.options.onFontsResolved({
15524
- documentFonts: fontsUsedInDocument,
15525
- unsupportedFonts
15526
- });
15502
+ console.warn("[SuperDoc] Could not determine document fonts and unsupported fonts");
15527
15503
  }
15528
15504
  };
15529
- /**
15530
- * Determines which fonts used in the document are not available locally nor imported.
15531
- *
15532
- * @param {string[]} fonts - Array of font family names used in the document.
15533
- * @param {string[]} localFonts - Array of local font family names available on the system.
15534
- * @returns {string[]} Array of font names that are unsupported.
15535
- */
15536
- determineUnsupportedFontsWithLocalFonts_fn = function(fonts, localFonts) {
15537
- const unsupportedFonts = fonts.filter((font) => {
15538
- const isLocalFont = localFonts.includes(font);
15539
- const isFontImported = this.fontsImported.includes(font);
15540
- return !isLocalFont && !isFontImported;
15541
- });
15542
- return unsupportedFonts;
15543
- };
15544
15505
  /**
15545
15506
  * Determines which fonts used in the document are not supported
15546
15507
  * by attempting to render them on a canvas.
@@ -15550,7 +15511,7 @@ determineUnsupportedFontsWithLocalFonts_fn = function(fonts, localFonts) {
15550
15511
  * @param {string[]} fonts - Array of font family names used in the document.
15551
15512
  * @returns {string[]} Array of unsupported font family names.
15552
15513
  */
15553
- determineUnsupportedFontsWithCanvas_fn = function(fonts) {
15514
+ determineUnsupportedFonts_fn = function(fonts) {
15554
15515
  const unsupportedFonts = fonts.filter((font) => {
15555
15516
  const canRender = canRenderFont(font);
15556
15517
  const isFontImported = this.fontsImported.includes(font);
@@ -15659,6 +15620,9 @@ onCollaborationReady_fn = function({ editor, ydoc }) {
15659
15620
  if (this.options.collaborationIsReady) return;
15660
15621
  console.debug("🔗 [super-editor] Collaboration ready");
15661
15622
  __privateMethod(this, _Editor_instances, validateDocumentInit_fn).call(this);
15623
+ if (this.options.ydoc) {
15624
+ this.migrateListsToV2();
15625
+ }
15662
15626
  this.options.onCollaborationReady({ editor, ydoc });
15663
15627
  this.options.collaborationIsReady = true;
15664
15628
  this.options.initialState = this.state;
@@ -35058,6 +35022,7 @@ const getStarterExtensions = () => {
35058
35022
  export {
35059
35023
  Attribute as A,
35060
35024
  CommentsPluginKey as C,
35025
+ DecorationSet as D,
35061
35026
  Editor as E,
35062
35027
  Mark as M,
35063
35028
  Node$1 as N,
@@ -35078,14 +35043,15 @@ export {
35078
35043
  collectTrackedChangesForContext as k,
35079
35044
  getStarterExtensions as l,
35080
35045
  getRichTextExtensions as m,
35081
- Extension as n,
35082
- index$1 as o,
35083
- index as p,
35084
- AnnotatorHelpers as q,
35046
+ Decoration as n,
35047
+ Extension as o,
35048
+ index$1 as p,
35049
+ index as q,
35085
35050
  replaceSelectionWithImagePlaceholder as r,
35086
35051
  shouldBypassContextMenu as s,
35087
- SectionHelpers as t,
35052
+ AnnotatorHelpers as t,
35088
35053
  useHighContrastMode as u,
35089
- getAllowedImageDimensions as v,
35054
+ SectionHelpers as v,
35055
+ getAllowedImageDimensions as w,
35090
35056
  yUndoPluginKey as y
35091
35057
  };
@@ -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-gSy6s2VK.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-yaef8OIs.js";
2
+ import { p as process$1 } from "./converter-DOkexB95.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-DC9ZOqdt.js";
4
4
  const sanitizeNumber = (value, defaultNumber) => {
5
5
  let sanitized = value.replace(/[^0-9.]/g, "");
6
6
  sanitized = parseFloat(sanitized);
@@ -326,7 +326,7 @@ const _sfc_main$4 = {
326
326
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inlineTextInput.value = $event),
327
327
  onKeydown: withKeys(withModifiers(handleInputSubmit, ["prevent"]), ["enter"]),
328
328
  type: "text",
329
- class: normalizeClass(["button-text-input", { "high-contrast": unref(isHighContrastMode) }]),
329
+ class: normalizeClass(["button-text-input button-text-input--font-size", { "high-contrast": unref(isHighContrastMode) }]),
330
330
  id: "inlineTextInput-" + unref(name),
331
331
  autocomplete: "off",
332
332
  ref_key: "inlineInput",
@@ -360,7 +360,7 @@ const _sfc_main$4 = {
360
360
  };
361
361
  }
362
362
  };
363
- const ToolbarButton = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-cea02a58"]]);
363
+ const ToolbarButton = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-ea93b080"]]);
364
364
  const _hoisted_1$2 = {
365
365
  class: "toolbar-separator",
366
366
  role: "separator",
@@ -1,4 +1,4 @@
1
- import { a5 } from "./chunks/converter-gSy6s2VK.js";
1
+ import { a5 } from "./chunks/converter-DOkexB95.js";
2
2
  import "vue";
3
3
  export {
4
4
  a5 as SuperConverter
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-gSy6s2VK.js";
2
- import { D } from "./chunks/docx-zipper-CceGxV02.js";
1
+ import "./chunks/converter-DOkexB95.js";
2
+ import { D } from "./chunks/docx-zipper-Ci5JbfjE.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-yaef8OIs.js";
2
- import "./chunks/converter-gSy6s2VK.js";
3
- import "./chunks/docx-zipper-CceGxV02.js";
1
+ import { E } from "./chunks/editor-DC9ZOqdt.js";
2
+ import "./chunks/converter-DOkexB95.js";
3
+ import "./chunks/docx-zipper-Ci5JbfjE.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-CceGxV02.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-Ci5JbfjE.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -64,20 +64,20 @@
64
64
  width: 16px;
65
65
  }
66
66
 
67
- .toolbar-item[data-v-cea02a58] {
67
+ .toolbar-item[data-v-ea93b080] {
68
68
  position: relative;
69
69
  z-index: 1;
70
70
  min-width: 30px;
71
71
  margin: 0 1px;
72
72
  }
73
- .visually-hidden[data-v-cea02a58] {
73
+ .visually-hidden[data-v-ea93b080] {
74
74
  position: absolute;
75
75
  left: -9999px;
76
76
  height: 1px;
77
77
  width: 1px;
78
78
  overflow: hidden;
79
79
  }
80
- .toolbar-button[data-v-cea02a58] {
80
+ .toolbar-button[data-v-ea93b080] {
81
81
  padding: 5px;
82
82
  height: 32px;
83
83
  max-height: 32px;
@@ -93,21 +93,21 @@
93
93
  position: relative;
94
94
  box-sizing: border-box;
95
95
  }
96
- .toolbar-button[data-v-cea02a58]:hover {
96
+ .toolbar-button[data-v-ea93b080]:hover {
97
97
  background-color: #dbdbdb;
98
98
  }
99
- .toolbar-button:hover .toolbar-icon.high-contrast[data-v-cea02a58] {
99
+ .toolbar-button:hover .toolbar-icon.high-contrast[data-v-ea93b080] {
100
100
  color: #fff;
101
101
  }
102
- .toolbar-button:hover.high-contrast[data-v-cea02a58] {
102
+ .toolbar-button:hover.high-contrast[data-v-ea93b080] {
103
103
  background-color: #000;
104
104
  color: #fff;
105
105
  }
106
- .toolbar-button[data-v-cea02a58]:active,
107
- .active[data-v-cea02a58] {
106
+ .toolbar-button[data-v-ea93b080]:active,
107
+ .active[data-v-ea93b080] {
108
108
  background-color: #c8d0d8;
109
109
  }
110
- .button-label[data-v-cea02a58] {
110
+ .button-label[data-v-ea93b080] {
111
111
  overflow: hidden;
112
112
  width: 100%;
113
113
  text-align: center;
@@ -117,37 +117,37 @@
117
117
  font-size: 15px;
118
118
  margin: 5px;
119
119
  }
120
- .toolbar-icon + .dropdown-caret[data-v-cea02a58] {
120
+ .toolbar-icon + .dropdown-caret[data-v-ea93b080] {
121
121
  margin-left: 4px;
122
122
  }
123
- .left[data-v-cea02a58],
124
- .right[data-v-cea02a58] {
123
+ .left[data-v-ea93b080],
124
+ .right[data-v-ea93b080] {
125
125
  width: 50%;
126
126
  height: 100%;
127
127
  background-color: #dbdbdb;
128
128
  border-radius: 60%;
129
129
  }
130
- .has-inline-text-input[data-v-cea02a58]:hover {
130
+ .has-inline-text-input[data-v-ea93b080]:hover {
131
131
  cursor: text;
132
132
  }
133
- .disabled[data-v-cea02a58] {
133
+ .disabled[data-v-ea93b080] {
134
134
  cursor: default;
135
135
  }
136
- .disabled[data-v-cea02a58]:hover {
136
+ .disabled[data-v-ea93b080]:hover {
137
137
  cursor: default;
138
138
  background-color: initial;
139
139
  }
140
- .disabled .toolbar-icon[data-v-cea02a58],
141
- .disabled .caret[data-v-cea02a58],
142
- .disabled .button-label[data-v-cea02a58] {
140
+ .disabled .toolbar-icon[data-v-ea93b080],
141
+ .disabled .caret[data-v-ea93b080],
142
+ .disabled .button-label[data-v-ea93b080] {
143
143
  opacity: 0.35;
144
144
  }
145
- .caret[data-v-cea02a58] {
145
+ .caret[data-v-ea93b080] {
146
146
  font-size: 1em;
147
147
  padding-left: 2px;
148
148
  padding-right: 2px;
149
149
  }
150
- .button-text-input[data-v-cea02a58] {
150
+ .button-text-input[data-v-ea93b080] {
151
151
  color: #47484a;
152
152
  border-radius: 4px;
153
153
  text-align: center;
@@ -161,13 +161,16 @@
161
161
  border: 1px solid #d8dee5;
162
162
  box-sizing: border-box;
163
163
  }
164
- .button-text-input.high-contrast[data-v-cea02a58] {
164
+ .button-text-input.high-contrast[data-v-ea93b080] {
165
165
  background-color: #fff;
166
166
  }
167
- .button-text-input[data-v-cea02a58]::placeholder {
167
+ .button-text-input--font-size[data-v-ea93b080] {
168
+ width: 36px;
169
+ }
170
+ .button-text-input[data-v-ea93b080]::placeholder {
168
171
  color: #47484a;
169
172
  }
170
- .dropdown-caret[data-v-cea02a58] {
173
+ .dropdown-caret[data-v-ea93b080] {
171
174
  display: inline-flex;
172
175
  align-items: center;
173
176
  justify-content: center;
@@ -177,16 +180,16 @@
177
180
  height: 10px;
178
181
  }
179
182
  @media (max-width: 1280px) {
180
- .toolbar-item--doc-mode .button-label[data-v-cea02a58] {
183
+ .toolbar-item--doc-mode .button-label[data-v-ea93b080] {
181
184
  display: none;
182
185
  }
183
- .toolbar-item--doc-mode .toolbar-icon[data-v-cea02a58] {
186
+ .toolbar-item--doc-mode .toolbar-icon[data-v-ea93b080] {
184
187
  margin-right: 5px;
185
188
  }
186
- .toolbar-item--linked-styles[data-v-cea02a58] {
189
+ .toolbar-item--linked-styles[data-v-ea93b080] {
187
190
  width: auto !important;
188
191
  }
189
- .toolbar-item--linked-styles .button-label[data-v-cea02a58] {
192
+ .toolbar-item--linked-styles .button-label[data-v-ea93b080] {
190
193
  display: none;
191
194
  }
192
195
  }
@@ -1,6 +1,6 @@
1
1
  export function useToolbarItem(options: any): {
2
2
  unref: () => {};
3
- activate: (attrs: any) => void;
3
+ activate: (attrs: any, ...args: any[]) => void;
4
4
  deactivate: () => void;
5
5
  setDisabled: (state: any) => void;
6
6
  resetDisabled: () => void;
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Selects the best-fit mc:AlternateContent branch, mirroring the legacy importer logic.
3
+ * @param {import('@translator').SCExtraParams['node']} node
4
+ * @returns {{ branch: import('@translator').XmlNode|null, elements: import('@translator').XmlNode[]|null }}
5
+ */
6
+ export function selectAlternateContentElements(node: import("@translator").SCExtraParams["node"]): {
7
+ branch: import("@translator").XmlNode | null;
8
+ elements: import("@translator").XmlNode[] | null;
9
+ };
10
+ /** @type {Set<string>} */
11
+ export const SUPPORTED_ALTERNATE_CONTENT_REQUIRES: Set<string>;
1
12
  /** @type {import('@translator').NodeTranslatorConfig} */
2
13
  export const config: import("@translator").NodeTranslatorConfig;
3
14
  /**
@@ -19,14 +19,20 @@ export namespace Extensions {
19
19
  export { Node };
20
20
  export { Attribute };
21
21
  export { Extension };
22
- export { Plugin };
23
22
  export { Mark };
23
+ export { Plugin };
24
+ export { PluginKey };
25
+ export { Decoration };
26
+ export { DecorationSet };
24
27
  }
25
28
  import { TrackChangesBasePluginKey } from './extensions/track-changes/plugins/index.js';
26
29
  import { CommentsPluginKey } from './extensions/comment/comments-plugin.js';
27
30
  import { Node } from '@core/index.js';
28
31
  import { Attribute } from '@core/index.js';
29
32
  import { Extension } from '@core/Extension.js';
30
- import { Plugin } from 'prosemirror-state';
31
33
  import { Mark } from '@core/Mark.js';
34
+ import { Plugin } from 'prosemirror-state';
35
+ import { PluginKey } from 'prosemirror-state';
36
+ import { Decoration } from 'prosemirror-view';
37
+ import { DecorationSet } from 'prosemirror-view';
32
38
  export { SuperConverter, DocxZipper, SuperToolbar, Editor, SuperEditor, SuperInput, BasicUpload, Toolbar, AIWriter, SlashMenu, helpers, fieldAnnotationHelpers, trackChangesHelpers, AnnotatorHelpers, SectionHelpers, getMarksFromSelection, getActiveFormatting, getStarterExtensions, getRichTextExtensions, createZip, getAllowedImageDimensions, registeredHandlers, TrackChangesBasePluginKey, CommentsPluginKey };
@@ -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, a as Plugin } from "./chunks/converter-gSy6s2VK.js";
13
- import { c1, a5, i, a2 } from "./chunks/converter-gSy6s2VK.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, M as Mark, n as Extension, A as Attribute, N as Node } from "./chunks/editor-yaef8OIs.js";
15
- import { q, C, t, T, o, v, p } from "./chunks/editor-yaef8OIs.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-DOkexB95.js";
13
+ import { c1, a5, i, a2 } from "./chunks/converter-DOkexB95.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-DC9ZOqdt.js";
15
+ import { t, C, v, T, p, w, q } from "./chunks/editor-DC9ZOqdt.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-Dc5uyyIp.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-SPGEoEi0.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-CceGxV02.js";
19
+ import { D } from "./chunks/docx-zipper-Ci5JbfjE.js";
20
20
  import { createZip } from "./file-zipper.es.js";
21
21
  var eventemitter3 = { exports: {} };
22
22
  var hasRequiredEventemitter3;
@@ -236,8 +236,8 @@ const useToolbarItem = (options) => {
236
236
  if (!Array.isArray(options.options)) throw new Error("Invalid toolbar item options - " + options.options);
237
237
  nestedOptions.value?.push(...options.options);
238
238
  }
239
- const activate = (attrs) => {
240
- onActivate(attrs);
239
+ const activate = (attrs, ...args) => {
240
+ onActivate(attrs, ...args);
241
241
  if (suppressActiveHighlight.value) return;
242
242
  active.value = true;
243
243
  };
@@ -1538,7 +1538,12 @@ const makeDefaultItems = ({
1538
1538
  ariaLabel: "Font size"
1539
1539
  },
1540
1540
  options: fontSizeOptions,
1541
- onActivate: ({ fontSize: size }) => {
1541
+ onActivate: ({ fontSize: size }, isMultiple = false) => {
1542
+ if (isMultiple) {
1543
+ fontSize.label.value = "";
1544
+ fontSize.selectedValue.value = "";
1545
+ return;
1546
+ }
1542
1547
  const defaultSize = fontSizeOptions.find((i2) => i2.label === String(fontSize.defaultLabel.value));
1543
1548
  if (!size) {
1544
1549
  fontSize.label.value = fontSize.defaultLabel.value;
@@ -1555,8 +1560,6 @@ const makeDefaultItems = ({
1555
1560
  });
1556
1561
  if (foundSize) {
1557
1562
  fontSize.selectedValue.value = foundSize.key;
1558
- } else if (defaultSize) {
1559
- fontSize.selectedValue.value = defaultSize.key;
1560
1563
  } else {
1561
1564
  fontSize.selectedValue.value = "";
1562
1565
  }
@@ -3020,7 +3023,13 @@ class SuperToolbar extends EventEmitter {
3020
3023
  const markNegated = rawActiveMark ? isNegatedMark(rawActiveMark.name, rawActiveMark.attrs) : false;
3021
3024
  const activeMark = markNegated ? null : rawActiveMark;
3022
3025
  if (activeMark) {
3023
- item.activate(activeMark.attrs);
3026
+ if (activeMark.name === "fontSize") {
3027
+ const fontSizes = marks.filter((i2) => i2.name === "fontSize").map((i2) => i2.attrs.fontSize);
3028
+ const isMultiple = [...new Set(fontSizes)].length > 1;
3029
+ item.activate(activeMark.attrs, isMultiple);
3030
+ } else {
3031
+ item.activate(activeMark.attrs);
3032
+ }
3024
3033
  } else {
3025
3034
  item.deactivate();
3026
3035
  }
@@ -5170,18 +5179,22 @@ const Extensions = {
5170
5179
  Node,
5171
5180
  Attribute,
5172
5181
  Extension,
5182
+ Mark,
5183
+ //
5173
5184
  Plugin,
5174
- Mark
5185
+ PluginKey,
5186
+ Decoration,
5187
+ DecorationSet
5175
5188
  };
5176
5189
  export {
5177
5190
  AIWriter,
5178
- q as AnnotatorHelpers,
5191
+ t as AnnotatorHelpers,
5179
5192
  c1 as BasicUpload,
5180
5193
  C as CommentsPluginKey,
5181
5194
  D as DocxZipper,
5182
5195
  Editor,
5183
5196
  Extensions,
5184
- t as SectionHelpers,
5197
+ v as SectionHelpers,
5185
5198
  _sfc_main$4 as SlashMenu,
5186
5199
  a5 as SuperConverter,
5187
5200
  SuperEditor,
@@ -5190,13 +5203,13 @@ export {
5190
5203
  Toolbar,
5191
5204
  T as TrackChangesBasePluginKey,
5192
5205
  createZip,
5193
- o as fieldAnnotationHelpers,
5206
+ p as fieldAnnotationHelpers,
5194
5207
  getActiveFormatting,
5195
- v as getAllowedImageDimensions,
5208
+ w as getAllowedImageDimensions,
5196
5209
  i as getMarksFromSelection,
5197
5210
  getRichTextExtensions,
5198
5211
  getStarterExtensions,
5199
5212
  a2 as helpers,
5200
5213
  registeredHandlers,
5201
- p as trackChangesHelpers
5214
+ q as trackChangesHelpers
5202
5215
  };
@@ -1,6 +1,6 @@
1
1
  import "vue";
2
- import { T } from "./chunks/toolbar-Dc5uyyIp.js";
3
- import "./chunks/editor-yaef8OIs.js";
2
+ import { T } from "./chunks/toolbar-SPGEoEi0.js";
3
+ import "./chunks/editor-DC9ZOqdt.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-B-E_YaLO.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-BJzqCihw.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-BePxEtE8.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-Beeng5kU.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-B-E_YaLO.cjs");
4
- const superdoc = require("./chunks/index-ChgYIPZ8.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-BJzqCihw.cjs");
4
+ const superdoc = require("./chunks/index-BHS2aLqo.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-BePxEtE8.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-DtXgSPMT.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-Beeng5kU.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-D9KYAvvg.es.js";
3
3
  import "./chunks/vue-ZWZLQtoU.es.js";
4
4
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
5
5
  export {