@harbour-enterprises/superdoc 1.0.0-beta.90 → 1.0.0-beta.92

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 (27) hide show
  1. package/dist/chunks/{PdfViewer-CLLXG5q4.cjs → PdfViewer-BYKB8fT_.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-CA7JXdaT.es.js → PdfViewer-CrMwuKcn.es.js} +1 -1
  3. package/dist/chunks/{index-m5UyYS6V.cjs → index-BZloH4nq.cjs} +3 -3
  4. package/dist/chunks/{index-BVll2b9C.es.js → index-CUUqzJ4M.es.js} +3 -3
  5. package/dist/chunks/{index-DwotqBvu-CpZ1ZTsk.es.js → index-CqnVFwjL-DJT5AqWq.es.js} +1 -1
  6. package/dist/chunks/{index-DwotqBvu-B162nlwz.cjs → index-CqnVFwjL-zbanjw1O.cjs} +1 -1
  7. package/dist/chunks/{super-editor.es-CNL1ZK31.es.js → super-editor.es-ALp2ApyE.es.js} +38 -44
  8. package/dist/chunks/{super-editor.es-BA8g4OE9.cjs → super-editor.es-DvpDTsC4.cjs} +38 -44
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-DsfA9vTm.js → converter-CpOA_SSA.js} +1 -1
  11. package/dist/super-editor/chunks/{docx-zipper-CXQWucNo.js → docx-zipper-zilXqAq6.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-D1LYOYm7.js → editor-DvF9Gp0h.js} +39 -45
  13. package/dist/super-editor/chunks/{index-DwotqBvu.js → index-CqnVFwjL.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-d9ylzcuJ.js → toolbar-BVOTlKFf.js} +2 -2
  15. package/dist/super-editor/converter.es.js +1 -1
  16. package/dist/super-editor/docx-zipper.es.js +2 -2
  17. package/dist/super-editor/editor.es.js +3 -3
  18. package/dist/super-editor/file-zipper.es.js +1 -1
  19. package/dist/super-editor/super-editor.es.js +6 -6
  20. package/dist/super-editor/toolbar.es.js +2 -2
  21. package/dist/super-editor.cjs +1 -1
  22. package/dist/super-editor.es.js +1 -1
  23. package/dist/superdoc.cjs +2 -2
  24. package/dist/superdoc.es.js +2 -2
  25. package/dist/superdoc.umd.js +40 -46
  26. package/dist/superdoc.umd.js.map +1 -1
  27. package/package.json +1 -1
@@ -12,8 +12,8 @@ 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, dispatchWithFallback_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, getPluginKeyName_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, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _map, _editor2, _descriptors, _collections, _editorEntries, _maxCachedEditors, _editorAccessOrder, _pendingCreations, _cacheHits, _cacheMisses, _evictions, _HeaderFooterEditorManager_instances, hasConverter_fn, extractCollections_fn, collectDescriptors_fn, teardownMissingEditors_fn, teardownEditors_fn, createEditor_fn, createEditorContainer_fn, registerConverterEditor_fn, unregisterConverterEditor_fn, updateAccessOrder_fn, enforceCacheSizeLimit_fn, _manager, _mediaFiles, _blockCache, _HeaderFooterLayoutAdapter_instances, getBlocks_fn, getConverterContext_fn, _selectionOverlay, _activeEditorHost, _activeDecorationContainer, _activeRegion, _borderLine, _dimmingOverlay, _EditorOverlayManager_instances, findDecorationContainer_fn, ensureEditorHost_fn, positionEditorHost_fn, hideDimmingOverlay_fn, showHeaderFooterBorder_fn, hideHeaderFooterBorder_fn, _instances, _options, _editor3, _visibleHost, _viewportHost, _painterHost, _selectionOverlay2, _hiddenHost, _layoutOptions, _layoutState, _domPainter, _dragHandlerCleanup, _layoutError, _layoutErrorState, _errorBanner, _errorBannerMessage, _telemetryEmitter, _renderScheduled, _pendingDocChange, _isRerendering, _selectionUpdateScheduled, _remoteCursorUpdateScheduled, _rafHandle, _editorListeners, _sectionMetadata, _documentMode, _inputBridge, _trackedChangesMode, _trackedChangesEnabled, _trackedChangesOverrides, _headerFooterManager, _headerFooterAdapter, _headerFooterIdentifier, _multiSectionIdentifier, _headerLayoutResults, _footerLayoutResults, _headerLayoutsByRId, _footerLayoutsByRId, _headerDecorationProvider, _footerDecorationProvider, _headerFooterManagerCleanups, _headerRegions, _footerRegions, _session, _activeHeaderFooterEditor, _overlayManager, _hoverOverlay, _hoverTooltip, _modeBanner, _ariaLiveRegion, _hoverRegion, _clickCount, _lastClickTime, _lastClickPosition, _lastSelectedImageBlockId, _dragAnchor, _isDragging, _dragExtensionMode, _cellAnchor, _cellDragMode, _remoteCursorState, _remoteCursorElements, _remoteCursorDirty, _remoteCursorOverlay, _localSelectionLayer, _awarenessCleanup, _scrollCleanup, _scrollTimeout, _lastRemoteCursorRenderTime, _remoteCursorThrottleTimeout, _PresentationEditor_instances, collectCommentPositions_fn, aggregateLayoutBounds_fn, safeCleanup_fn, setupEditorListeners_fn, setupCollaborationCursors_fn, updateLocalAwarenessCursor_fn, normalizeAwarenessStates_fn, getFallbackColor_fn, getValidatedColor_fn, scheduleRemoteCursorUpdate_fn, scheduleRemoteCursorReRender_fn, updateRemoteCursors_fn, renderRemoteCursors_fn, renderRemoteCaret_fn, renderRemoteCursorLabel_fn, renderRemoteSelection_fn, setupPointerHandlers_fn, setupDragHandlers_fn, focusEditorAfterImageSelection_fn, setupInputBridge_fn, initHeaderFooterRegistry_fn, _handlePointerDown, getFirstTextPosition_fn, registerPointerClick_fn, getCellPosFromTableHit_fn, getTablePosFromHit_fn, shouldUseCellSelection_fn, setCellAnchor_fn, clearCellAnchor_fn, hitTestTable_fn, selectWordAt_fn, selectParagraphAt_fn, calculateExtendedSelection_fn, isWordCharacter_fn, _handlePointerMove, _handlePointerLeave, _handlePointerUp, _handleDragOver, _handleDrop, _handleDoubleClick, _handleKeyDown, focusHeaderFooterShortcut_fn, scheduleRerender_fn, flushRerenderQueue_fn, rerender_fn, ensurePainter_fn, scheduleSelectionUpdate_fn, updateSelection_fn, resolveLayoutOptions_fn, buildHeaderFooterInput_fn, computeHeaderFooterConstraints_fn, layoutPerRIdHeaderFooters_fn, updateDecorationProviders_fn, createDecorationProvider_fn, findHeaderFooterPageForPageNumber_fn, computeDecorationBox_fn, computeExpectedSectionType_fn, rebuildHeaderFooterRegions_fn, hitTestHeaderFooterRegion_fn, pointInRegion_fn, activateHeaderFooterRegion_fn, enterHeaderFooterMode_fn, exitHeaderFooterMode_fn, getActiveDomTarget_fn, emitHeaderFooterModeChanged_fn, emitHeaderFooterEditingContext_fn, updateAwarenessSession_fn, updateModeBanner_fn, announce_fn, validateHeaderFooterEditPermission_fn, emitHeaderFooterEditBlocked_fn, resolveDescriptorForRegion_fn, createDefaultHeaderFooter_fn, getPageElement_fn, scrollPageIntoView_fn, computeAnchorMap_fn, waitForPageMount_fn, getBodyPageHeight_fn, getHeaderFooterPageHeight_fn, applyDomCorrectionToRects_fn, renderCellSelectionOverlay_fn, renderSelectionRects_fn, renderHoverRegion_fn, clearHoverRegion_fn, renderCaretOverlay_fn, getHeaderFooterContext_fn, computeHeaderFooterSelectionRects_fn, syncTrackedChangesPreferences_fn, deriveTrackedChangesMode_fn, deriveTrackedChangesEnabled_fn, getTrackChangesPluginState_fn, computeDefaultLayoutDefaults_fn, parseColumns_fn, inchesToPx_fn, applyZoom_fn, createLayoutMetrics_fn, getPageOffsetX_fn, convertPageLocalToOverlayCoords_fn, computeDomCaretPageLocal_fn, normalizeClientPoint_fn, computeCaretLayoutRectGeometry_fn, computeCaretLayoutRect_fn, computeCaretLayoutRectFromDOM_fn, computeTableCaretLayoutRect_fn, findLineContainingPos_fn, lineHeightBeforeIndex_fn, getCurrentPageIndex_fn, findRegionForPage_fn, handleLayoutError_fn, decorateError_fn, showLayoutErrorBanner_fn, dismissErrorBanner_fn, createHiddenHost_fn, _windowRoot, _layoutSurfaces, _getTargetDom, _isEditable, _onTargetChanged, _listeners, _currentTarget, _destroyed, _useWindowFallback, _PresentationInputBridge_instances, addListener_fn, dispatchToTarget_fn, forwardKeyboardEvent_fn, forwardTextEvent_fn, forwardCompositionEvent_fn, forwardContextMenu_fn, isEventOnActiveTarget_fn, shouldSkipSurface_fn, isInLayoutSurface_fn, getListenerTargets_fn, isPlainCharacterKey_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ParagraphNodeView_instances, checkShouldUpdate_fn, updateHTMLAttributes_fn, updateDOMStyles_fn, resolveNeighborParagraphProperties_fn, updateListStyles_fn, initList_fn, checkIsList_fn, createMarker_fn, createSeparator_fn, calculateTabSeparatorStyle_fn, calculateMarkerStyle_fn, removeList_fn, getParagraphContext_fn, scheduleAnimation_fn, cancelScheduledAnimation_fn, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn, _VectorShapeView_instances, ensureParentPositioned_fn, _ShapeGroupView_instances, ensureParentPositioned_fn2;
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 htmlHandler, E as ReplaceStep, G as twipsToInches, H as inchesToTwips, I as ptToTwips, J as getResolvedParagraphProperties, K as linesToTwips, L as changeListLevel, O as findParentNode, Q as isList, U as updateNumberingProperties, V as ListHelpers, W as isMacOS, X as isIOS, Y as getSchemaTypeByName, Z as inputRulesPlugin, _ as TrackDeleteMarkName$1, $ as TrackInsertMarkName$1, a0 as v4, a1 as TrackFormatMarkName$1, a2 as comments_module_events, a3 as findMark, a4 as objectIncludes, a5 as AddMarkStep, a6 as RemoveMarkStep, a7 as twipsToLines, a8 as pixelsToTwips, a9 as helpers, aa as posToDOMRect, ab as CommandService, ac as SuperConverter, ad as createDocument, ae as createDocFromMarkdown, af as createDocFromHTML, ag as EditorState, ah as isActive, ai as unflattenListsInHtml, aj as SelectionRange, ak as Transform, al as resolveParagraphProperties, am as _getReferencedTableStyles, an as parseSizeUnit, ao as minMax, ap as updateDOMAttributes, aq as findChildren$5, ar as generateRandomSigned32BitIntStrId, as as decodeRPrFromMarks, at as calculateResolvedParagraphProperties, au as resolveRunProperties, av as encodeCSSFromPPr, aw as twipsToPixels$2, ax as encodeCSSFromRPr, ay as generateOrderedListIndex, az as docxNumberingHelpers, aA as InputRule, aB as convertSizeToCSS, aC as findParentNodeClosestToPos, aD as isInTable$1, aE as generateDocxRandomId, aF as insertNewRelationship, aG as inchesToPixels, aH as kebabCase, aI as getUnderlineCssString } from "./converter-DsfA9vTm.js";
16
- import { D as DocxZipper } from "./docx-zipper-CXQWucNo.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 htmlHandler, E as ReplaceStep, G as twipsToInches, H as inchesToTwips, I as ptToTwips, J as getResolvedParagraphProperties, K as linesToTwips, L as changeListLevel, O as findParentNode, Q as isList, U as updateNumberingProperties, V as ListHelpers, W as isMacOS, X as isIOS, Y as getSchemaTypeByName, Z as inputRulesPlugin, _ as TrackDeleteMarkName$1, $ as TrackInsertMarkName$1, a0 as v4, a1 as TrackFormatMarkName$1, a2 as comments_module_events, a3 as findMark, a4 as objectIncludes, a5 as AddMarkStep, a6 as RemoveMarkStep, a7 as twipsToLines, a8 as pixelsToTwips, a9 as helpers, aa as posToDOMRect, ab as CommandService, ac as SuperConverter, ad as createDocument, ae as createDocFromMarkdown, af as createDocFromHTML, ag as EditorState, ah as isActive, ai as unflattenListsInHtml, aj as SelectionRange, ak as Transform, al as resolveParagraphProperties, am as _getReferencedTableStyles, an as parseSizeUnit, ao as minMax, ap as updateDOMAttributes, aq as findChildren$5, ar as generateRandomSigned32BitIntStrId, as as decodeRPrFromMarks, at as calculateResolvedParagraphProperties, au as resolveRunProperties, av as encodeCSSFromPPr, aw as twipsToPixels$2, ax as encodeCSSFromRPr, ay as generateOrderedListIndex, az as docxNumberingHelpers, aA as InputRule, aB as convertSizeToCSS, aC as findParentNodeClosestToPos, aD as isInTable$1, aE as generateDocxRandomId, aF as insertNewRelationship, aG as inchesToPixels, aH as kebabCase, aI as getUnderlineCssString } from "./converter-CpOA_SSA.js";
16
+ import { D as DocxZipper } from "./docx-zipper-zilXqAq6.js";
17
17
  import { ref, computed, createElementBlock, openBlock, withModifiers, Fragment as Fragment$1, renderList, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, createApp } from "vue";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
@@ -13940,7 +13940,7 @@ const isHeadless = (editor) => {
13940
13940
  const shouldSkipNodeView = (editor) => {
13941
13941
  return isHeadless(editor);
13942
13942
  };
13943
- const summaryVersion = "1.0.0-beta.90";
13943
+ const summaryVersion = "1.0.0-beta.92";
13944
13944
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
13945
13945
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
13946
13946
  function mapAttributes(attrs) {
@@ -14732,7 +14732,7 @@ const _Editor = class _Editor extends EventEmitter {
14732
14732
  { default: remarkStringify },
14733
14733
  { default: remarkGfm }
14734
14734
  ] = await Promise.all([
14735
- import("./index-DwotqBvu.js"),
14735
+ import("./index-CqnVFwjL.js"),
14736
14736
  import("./index-DRCvimau.js"),
14737
14737
  import("./index-C_x_N6Uh.js"),
14738
14738
  import("./index-D_sWOSiG.js"),
@@ -14937,7 +14937,7 @@ const _Editor = class _Editor extends EventEmitter {
14937
14937
  * Process collaboration migrations
14938
14938
  */
14939
14939
  processCollaborationMigrations() {
14940
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.90");
14940
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.92");
14941
14941
  if (!this.options.ydoc) return;
14942
14942
  const metaMap = this.options.ydoc.getMap("meta");
14943
14943
  let docVersion = metaMap.get("version");
@@ -20424,7 +20424,8 @@ const buildMarkerLayout = ({
20424
20424
  markerX,
20425
20425
  textStartX: textStartPx,
20426
20426
  baselineOffsetPx: markerRun.baselineShift ?? 0,
20427
- gutterWidthPx: markerBoxWidthPx,
20427
+ // Gutter is the small gap between marker and text, not the full marker box width
20428
+ gutterWidthPx: LIST_MARKER_GAP$3,
20428
20429
  justification: numbering.lvlJc ?? "left",
20429
20430
  suffix: normalizeSuffix$1(numbering.suffix) ?? "tab",
20430
20431
  run: markerRun,
@@ -22766,16 +22767,20 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
22766
22767
  paragraphAttrs.spacing = spacing;
22767
22768
  }
22768
22769
  if (paragraphAttrs?.numberingProperties && paragraphAttrs?.wordLayout) {
22770
+ const numberingProps = paragraphAttrs.numberingProperties;
22771
+ const resolvedMarkerRpr = numberingProps.resolvedMarkerRpr;
22772
+ const hasExplicitMarkerFont = resolvedMarkerRpr?.fontFamily != null;
22773
+ const hasExplicitMarkerSize = resolvedMarkerRpr?.fontSize != null;
22769
22774
  const firstRunFont = extractFirstTextRunFont(para);
22770
22775
  if (firstRunFont) {
22771
22776
  const wordLayout = paragraphAttrs.wordLayout;
22772
22777
  const marker = wordLayout.marker;
22773
22778
  if (marker?.run) {
22774
22779
  const markerRun = marker.run;
22775
- if (firstRunFont.fontSizePx != null && Number.isFinite(firstRunFont.fontSizePx)) {
22780
+ if (!hasExplicitMarkerSize && firstRunFont.fontSizePx != null && Number.isFinite(firstRunFont.fontSizePx)) {
22776
22781
  markerRun.fontSize = firstRunFont.fontSizePx;
22777
22782
  }
22778
- if (firstRunFont.fontFamily) {
22783
+ if (!hasExplicitMarkerFont && firstRunFont.fontFamily) {
22779
22784
  markerRun.fontFamily = firstRunFont.fontFamily;
22780
22785
  }
22781
22786
  }
@@ -27703,7 +27708,7 @@ function renderListMarker(params2) {
27703
27708
  markerEl.classList.add("superdoc-paragraph-marker");
27704
27709
  markerEl.textContent = markerLayout?.markerText ?? "";
27705
27710
  markerEl.style.display = "inline-block";
27706
- markerEl.style.fontFamily = markerLayout?.run?.fontFamily ?? "";
27711
+ markerEl.style.fontFamily = toCssFontFamily(markerLayout?.run?.fontFamily) ?? markerLayout?.run?.fontFamily ?? "";
27707
27712
  if (markerLayout?.run?.fontSize != null) {
27708
27713
  markerEl.style.fontSize = `${markerLayout.run.fontSize}px`;
27709
27714
  }
@@ -28842,6 +28847,9 @@ function isMinimalWordLayout(value) {
28842
28847
  return false;
28843
28848
  }
28844
28849
  const marker = obj.marker;
28850
+ if (marker.markerText !== void 0 && typeof marker.markerText !== "string") {
28851
+ return false;
28852
+ }
28845
28853
  if (marker.markerX !== void 0 && typeof marker.markerX !== "number") {
28846
28854
  return false;
28847
28855
  }
@@ -29827,7 +29835,7 @@ const _DomPainter = class _DomPainter {
29827
29835
  markerContainer.style.left = `${markerLeftX}px`;
29828
29836
  markerContainer.style.top = "0";
29829
29837
  }
29830
- markerEl.style.fontFamily = wordLayout.marker.run.fontFamily;
29838
+ markerEl.style.fontFamily = toCssFontFamily(wordLayout.marker.run.fontFamily) ?? wordLayout.marker.run.fontFamily;
29831
29839
  markerEl.style.fontSize = `${wordLayout.marker.run.fontSize}px`;
29832
29840
  markerEl.style.fontWeight = wordLayout.marker.run.bold ? "bold" : "";
29833
29841
  markerEl.style.fontStyle = wordLayout.marker.run.italic ? "italic" : "";
@@ -30024,7 +30032,7 @@ const _DomPainter = class _DomPainter {
30024
30032
  markerEl.style.width = `${Math.max(0, fragment.markerWidth - LIST_MARKER_GAP$1)}px`;
30025
30033
  markerEl.style.paddingRight = `${LIST_MARKER_GAP$1}px`;
30026
30034
  markerEl.style.textAlign = marker.justification ?? "left";
30027
- markerEl.style.fontFamily = marker.run.fontFamily;
30035
+ markerEl.style.fontFamily = toCssFontFamily(marker.run.fontFamily) ?? marker.run.fontFamily;
30028
30036
  markerEl.style.fontSize = `${marker.run.fontSize}px`;
30029
30037
  if (marker.run.bold) markerEl.style.fontWeight = "bold";
30030
30038
  if (marker.run.italic) markerEl.style.fontStyle = "italic";
@@ -33407,6 +33415,20 @@ const extractBlockPmRange = (block) => {
33407
33415
  pmEnd: end2 ?? (start2 != null ? start2 + 1 : void 0)
33408
33416
  };
33409
33417
  };
33418
+ function calculateFirstLineIndent(block, measure) {
33419
+ const wordLayout = block.attrs?.wordLayout;
33420
+ if (!wordLayout?.firstLineIndentMode) {
33421
+ return 0;
33422
+ }
33423
+ if (!wordLayout.marker || !measure.marker) {
33424
+ return 0;
33425
+ }
33426
+ const markerWidthRaw = measure.marker.markerWidth ?? wordLayout.marker.markerBoxWidthPx ?? 0;
33427
+ const markerWidth = Number.isFinite(markerWidthRaw) && markerWidthRaw >= 0 ? markerWidthRaw : 0;
33428
+ const gutterWidthRaw = measure.marker.gutterWidth ?? 0;
33429
+ const gutterWidth = Number.isFinite(gutterWidthRaw) && gutterWidthRaw >= 0 ? gutterWidthRaw : 0;
33430
+ return markerWidth + gutterWidth;
33431
+ }
33410
33432
  function layoutParagraphBlock(ctx2, anchors) {
33411
33433
  const { block, measure, columnWidth, ensurePage, advanceColumn, columnX, floatManager } = ctx2;
33412
33434
  const remeasureParagraph2 = ctx2.remeasureParagraph;
@@ -33529,16 +33551,7 @@ function layoutParagraphBlock(ctx2, anchors) {
33529
33551
  const measurementWidth = lines[0]?.maxWidth;
33530
33552
  let didRemeasureForColumnWidth = false;
33531
33553
  if (typeof remeasureParagraph2 === "function" && typeof measurementWidth === "number" && measurementWidth > columnWidth) {
33532
- let firstLineIndent = 0;
33533
- const wordLayout = block.attrs?.wordLayout;
33534
- if (wordLayout?.marker && measure.marker) {
33535
- const markerJustification = wordLayout.marker.justification ?? "left";
33536
- if (markerJustification === "left") {
33537
- const markerWidth = measure.marker.markerWidth ?? 0;
33538
- const gutterWidth = measure.marker.gutterWidth ?? wordLayout.marker.gutterWidthPx ?? 0;
33539
- firstLineIndent = markerWidth + gutterWidth;
33540
- }
33541
- }
33554
+ const firstLineIndent = calculateFirstLineIndent(block, measure);
33542
33555
  const newMeasure = remeasureParagraph2(block, columnWidth, firstLineIndent);
33543
33556
  lines = normalizeLines(newMeasure);
33544
33557
  didRemeasureForColumnWidth = true;
@@ -33618,16 +33631,7 @@ function layoutParagraphBlock(ctx2, anchors) {
33618
33631
  tempY += lineHeight;
33619
33632
  }
33620
33633
  if (narrowestWidth < columnWidth) {
33621
- let firstLineIndent = 0;
33622
- const wordLayout = block.attrs?.wordLayout;
33623
- if (wordLayout?.marker && measure.marker) {
33624
- const markerJustification = wordLayout.marker.justification ?? "left";
33625
- if (markerJustification === "left") {
33626
- const markerWidth = measure.marker.markerWidth ?? 0;
33627
- const gutterWidth = measure.marker.gutterWidth ?? wordLayout.marker.gutterWidthPx ?? 0;
33628
- firstLineIndent = markerWidth + gutterWidth;
33629
- }
33630
- }
33634
+ const firstLineIndent = calculateFirstLineIndent(block, measure);
33631
33635
  const newMeasure = remeasureParagraph2(block, narrowestWidth, firstLineIndent);
33632
33636
  lines = normalizeLines(newMeasure);
33633
33637
  didRemeasureForFloats = true;
@@ -38716,22 +38720,12 @@ async function measureParagraphBlock(block, maxWidth) {
38716
38720
  const clampedFirstLineOffset = Math.max(0, rawFirstLineOffset);
38717
38721
  const firstLineOffset = isWordLayoutList ? 0 : clampedFirstLineOffset;
38718
38722
  const contentWidth = Math.max(1, maxWidth - indentLeft - indentRight);
38719
- let leftJustifiedMarkerSpace = 0;
38720
- if (wordLayout?.marker) {
38721
- const markerJustification = wordLayout.marker.justification ?? "left";
38722
- if (markerJustification === "left") {
38723
- const markerBoxWidth = wordLayout.marker.markerBoxWidthPx ?? 0;
38724
- const gutterWidth = wordLayout.marker.gutterWidthPx ?? LIST_MARKER_GAP;
38725
- leftJustifiedMarkerSpace = markerBoxWidth + gutterWidth;
38726
- }
38727
- }
38728
38723
  let initialAvailableWidth;
38729
- const isFirstLineIndentMode = wordLayout?.firstLineIndentMode === true;
38730
38724
  const textStartPx = wordLayout?.textStartPx;
38731
- if (isFirstLineIndentMode && typeof textStartPx === "number" && textStartPx > 0) {
38725
+ if (typeof textStartPx === "number" && textStartPx > indentLeft) {
38732
38726
  initialAvailableWidth = Math.max(1, maxWidth - textStartPx - indentRight);
38733
38727
  } else {
38734
- initialAvailableWidth = Math.max(1, contentWidth - firstLineOffset - leftJustifiedMarkerSpace);
38728
+ initialAvailableWidth = Math.max(1, contentWidth - firstLineOffset);
38735
38729
  }
38736
38730
  const tabStops = buildTabStopsPx(
38737
38731
  indent,
@@ -39492,7 +39486,7 @@ async function measureParagraphBlock(block, maxWidth) {
39492
39486
  let markerInfo;
39493
39487
  if (wordLayout?.marker) {
39494
39488
  const markerRun = {
39495
- fontFamily: wordLayout.marker.run.fontFamily,
39489
+ fontFamily: toCssFontFamily(wordLayout.marker.run.fontFamily) ?? wordLayout.marker.run.fontFamily,
39496
39490
  fontSize: wordLayout.marker.run.fontSize,
39497
39491
  bold: wordLayout.marker.run.bold,
39498
39492
  italic: wordLayout.marker.run.italic
@@ -39820,7 +39814,7 @@ async function measureListBlock(block, constraints) {
39820
39814
  const marker = wordLayout.marker;
39821
39815
  const markerFontRun = {
39822
39816
  text: marker.markerText,
39823
- fontFamily: marker.run.fontFamily,
39817
+ fontFamily: toCssFontFamily(marker.run.fontFamily) ?? marker.run.fontFamily,
39824
39818
  fontSize: marker.run.fontSize,
39825
39819
  bold: marker.run.bold,
39826
39820
  italic: marker.run.italic,
@@ -1,4 +1,4 @@
1
- import { aK as getDefaultExportFromCjs } from "./converter-DsfA9vTm.js";
1
+ import { aK as getDefaultExportFromCjs } from "./converter-CpOA_SSA.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, onMounted, onBeforeUnmount, createVNode, readonly, watch, 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-DsfA9vTm.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-D1LYOYm7.js";
2
+ import { p as process$1 } from "./converter-CpOA_SSA.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-DvF9Gp0h.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 { ac } from "./chunks/converter-DsfA9vTm.js";
1
+ import { ac } from "./chunks/converter-CpOA_SSA.js";
2
2
  export {
3
3
  ac as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-DsfA9vTm.js";
2
- import { D } from "./chunks/docx-zipper-CXQWucNo.js";
1
+ import "./chunks/converter-CpOA_SSA.js";
2
+ import { D } from "./chunks/docx-zipper-zilXqAq6.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-D1LYOYm7.js";
2
- import "./chunks/converter-DsfA9vTm.js";
3
- import "./chunks/docx-zipper-CXQWucNo.js";
1
+ import { E } from "./chunks/editor-DvF9Gp0h.js";
2
+ import "./chunks/converter-CpOA_SSA.js";
3
+ import "./chunks/docx-zipper-zilXqAq6.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-CXQWucNo.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-zilXqAq6.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -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 _MARK_TOGGLE_NAMES, _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, enrichTrackedChanges_fn, runCommandWithArgumentOnly_fn, syncStickyMarksFromState_fn, restoreStickyMarksIfNeeded_fn, ensureStoredMarksForMarkToggle_fn;
12
- import { aK as getDefaultExportFromCjs, a0 as v4, T as TextSelection$1, v as getMarkRange, aN as vClickOutside, aO as getActiveFormatting, aD as isInTable, O as findParentNode, at as calculateResolvedParagraphProperties, a7 as twipsToLines, Q as isList, an as parseSizeUnit, a8 as pixelsToTwips, aP as getFileObject, P as PluginKey, a as Plugin } from "./chunks/converter-DsfA9vTm.js";
13
- import { ac, i, a9, aQ } from "./chunks/converter-DsfA9vTm.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 getEditorSurfaceElement, l as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, m as generateRulerDefinition, n as clampHandlePosition, o as calculateMarginFromHandle, p as measureCache, q as isHeadless, E as Editor, t as getStarterExtensions, P as PresentationEditor, v as Placeholder, w as getRichTextExtensions, D as DecorationSet, x as Decoration, M as Mark, z as Extension, A as Attribute, N as Node } from "./chunks/editor-D1LYOYm7.js";
15
- import { F, I, G, T, B, H, C } from "./chunks/editor-D1LYOYm7.js";
12
+ import { aK as getDefaultExportFromCjs, a0 as v4, T as TextSelection$1, v as getMarkRange, aN as vClickOutside, aO as getActiveFormatting, aD as isInTable, O as findParentNode, at as calculateResolvedParagraphProperties, a7 as twipsToLines, Q as isList, an as parseSizeUnit, a8 as pixelsToTwips, aP as getFileObject, P as PluginKey, a as Plugin } from "./chunks/converter-CpOA_SSA.js";
13
+ import { ac, i, a9, aQ } from "./chunks/converter-CpOA_SSA.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 getEditorSurfaceElement, l as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, m as generateRulerDefinition, n as clampHandlePosition, o as calculateMarginFromHandle, p as measureCache, q as isHeadless, E as Editor, t as getStarterExtensions, P as PresentationEditor, v as Placeholder, w as getRichTextExtensions, D as DecorationSet, x as Decoration, M as Mark, z as Extension, A as Attribute, N as Node } from "./chunks/editor-DvF9Gp0h.js";
15
+ import { F, I, G, T, B, H, C } from "./chunks/editor-DvF9Gp0h.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, defineComponent, reactive, onUnmounted, renderSlot, useCssVars, shallowRef, createBlock, Teleport, 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-d9ylzcuJ.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-BVOTlKFf.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-CXQWucNo.js";
19
+ import { D } from "./chunks/docx-zipper-zilXqAq6.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-d9ylzcuJ.js";
3
- import "./chunks/editor-D1LYOYm7.js";
2
+ import { T } from "./chunks/toolbar-BVOTlKFf.js";
3
+ import "./chunks/editor-DvF9Gp0h.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-BA8g4OE9.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-DvpDTsC4.cjs");
4
4
  require("./chunks/vue-jWLMl8Ts.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, P, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-CNL1ZK31.es.js";
1
+ import { A, a, _, C, D, E, b, P, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-ALp2ApyE.es.js";
2
2
  import "./chunks/vue-Dysv_7z5.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-BA8g4OE9.cjs");
4
- const superdoc = require("./chunks/index-m5UyYS6V.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-DvpDTsC4.cjs");
4
+ const superdoc = require("./chunks/index-BZloH4nq.cjs");
5
5
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
7
7
  exports.Editor = superEditor_es.Editor;
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-CNL1ZK31.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-BVll2b9C.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-ALp2ApyE.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-CUUqzJ4M.es.js";
3
3
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
4
4
  export {
5
5
  a as AnnotatorHelpers,
@@ -42398,7 +42398,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
42398
42398
  static getStoredSuperdocVersion(docx) {
42399
42399
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
42400
42400
  }
42401
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.90") {
42401
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.92") {
42402
42402
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
42403
42403
  }
42404
42404
  /**
@@ -67461,7 +67461,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
67461
67461
  const shouldSkipNodeView = (editor) => {
67462
67462
  return isHeadless(editor);
67463
67463
  };
67464
- const summaryVersion = "1.0.0-beta.90";
67464
+ const summaryVersion = "1.0.0-beta.92";
67465
67465
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
67466
67466
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
67467
67467
  function mapAttributes(attrs) {
@@ -68250,7 +68250,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
68250
68250
  { default: remarkStringify2 },
68251
68251
  { default: remarkGfm2 }
68252
68252
  ] = await Promise.all([
68253
- Promise.resolve().then(() => indexDwotqBvu),
68253
+ Promise.resolve().then(() => indexCqnVFwjL),
68254
68254
  Promise.resolve().then(() => indexDRCvimau),
68255
68255
  Promise.resolve().then(() => indexC_x_N6Uh),
68256
68256
  Promise.resolve().then(() => indexD_sWOSiG),
@@ -68455,7 +68455,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
68455
68455
  * Process collaboration migrations
68456
68456
  */
68457
68457
  processCollaborationMigrations() {
68458
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.90");
68458
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.92");
68459
68459
  if (!this.options.ydoc) return;
68460
68460
  const metaMap = this.options.ydoc.getMap("meta");
68461
68461
  let docVersion = metaMap.get("version");
@@ -73854,7 +73854,8 @@ Please report this to https://github.com/markedjs/marked.`, e) {
73854
73854
  markerX,
73855
73855
  textStartX: textStartPx,
73856
73856
  baselineOffsetPx: markerRun.baselineShift ?? 0,
73857
- gutterWidthPx: markerBoxWidthPx,
73857
+ // Gutter is the small gap between marker and text, not the full marker box width
73858
+ gutterWidthPx: LIST_MARKER_GAP$3,
73858
73859
  justification: numbering.lvlJc ?? "left",
73859
73860
  suffix: normalizeSuffix$1(numbering.suffix) ?? "tab",
73860
73861
  run: markerRun,
@@ -76196,16 +76197,20 @@ Please report this to https://github.com/markedjs/marked.`, e) {
76196
76197
  paragraphAttrs.spacing = spacing;
76197
76198
  }
76198
76199
  if (paragraphAttrs?.numberingProperties && paragraphAttrs?.wordLayout) {
76200
+ const numberingProps = paragraphAttrs.numberingProperties;
76201
+ const resolvedMarkerRpr = numberingProps.resolvedMarkerRpr;
76202
+ const hasExplicitMarkerFont = resolvedMarkerRpr?.fontFamily != null;
76203
+ const hasExplicitMarkerSize = resolvedMarkerRpr?.fontSize != null;
76199
76204
  const firstRunFont = extractFirstTextRunFont(para);
76200
76205
  if (firstRunFont) {
76201
76206
  const wordLayout = paragraphAttrs.wordLayout;
76202
76207
  const marker = wordLayout.marker;
76203
76208
  if (marker?.run) {
76204
76209
  const markerRun = marker.run;
76205
- if (firstRunFont.fontSizePx != null && Number.isFinite(firstRunFont.fontSizePx)) {
76210
+ if (!hasExplicitMarkerSize && firstRunFont.fontSizePx != null && Number.isFinite(firstRunFont.fontSizePx)) {
76206
76211
  markerRun.fontSize = firstRunFont.fontSizePx;
76207
76212
  }
76208
- if (firstRunFont.fontFamily) {
76213
+ if (!hasExplicitMarkerFont && firstRunFont.fontFamily) {
76209
76214
  markerRun.fontFamily = firstRunFont.fontFamily;
76210
76215
  }
76211
76216
  }
@@ -81133,7 +81138,7 @@ ${l}
81133
81138
  markerEl.classList.add("superdoc-paragraph-marker");
81134
81139
  markerEl.textContent = markerLayout?.markerText ?? "";
81135
81140
  markerEl.style.display = "inline-block";
81136
- markerEl.style.fontFamily = markerLayout?.run?.fontFamily ?? "";
81141
+ markerEl.style.fontFamily = toCssFontFamily(markerLayout?.run?.fontFamily) ?? markerLayout?.run?.fontFamily ?? "";
81137
81142
  if (markerLayout?.run?.fontSize != null) {
81138
81143
  markerEl.style.fontSize = `${markerLayout.run.fontSize}px`;
81139
81144
  }
@@ -82272,6 +82277,9 @@ ${l}
82272
82277
  return false;
82273
82278
  }
82274
82279
  const marker = obj.marker;
82280
+ if (marker.markerText !== void 0 && typeof marker.markerText !== "string") {
82281
+ return false;
82282
+ }
82275
82283
  if (marker.markerX !== void 0 && typeof marker.markerX !== "number") {
82276
82284
  return false;
82277
82285
  }
@@ -83257,7 +83265,7 @@ ${l}
83257
83265
  markerContainer.style.left = `${markerLeftX}px`;
83258
83266
  markerContainer.style.top = "0";
83259
83267
  }
83260
- markerEl.style.fontFamily = wordLayout.marker.run.fontFamily;
83268
+ markerEl.style.fontFamily = toCssFontFamily(wordLayout.marker.run.fontFamily) ?? wordLayout.marker.run.fontFamily;
83261
83269
  markerEl.style.fontSize = `${wordLayout.marker.run.fontSize}px`;
83262
83270
  markerEl.style.fontWeight = wordLayout.marker.run.bold ? "bold" : "";
83263
83271
  markerEl.style.fontStyle = wordLayout.marker.run.italic ? "italic" : "";
@@ -83454,7 +83462,7 @@ ${l}
83454
83462
  markerEl.style.width = `${Math.max(0, fragment.markerWidth - LIST_MARKER_GAP$1)}px`;
83455
83463
  markerEl.style.paddingRight = `${LIST_MARKER_GAP$1}px`;
83456
83464
  markerEl.style.textAlign = marker.justification ?? "left";
83457
- markerEl.style.fontFamily = marker.run.fontFamily;
83465
+ markerEl.style.fontFamily = toCssFontFamily(marker.run.fontFamily) ?? marker.run.fontFamily;
83458
83466
  markerEl.style.fontSize = `${marker.run.fontSize}px`;
83459
83467
  if (marker.run.bold) markerEl.style.fontWeight = "bold";
83460
83468
  if (marker.run.italic) markerEl.style.fontStyle = "italic";
@@ -86837,6 +86845,20 @@ ${l}
86837
86845
  pmEnd: end2 ?? (start2 != null ? start2 + 1 : void 0)
86838
86846
  };
86839
86847
  };
86848
+ function calculateFirstLineIndent(block, measure) {
86849
+ const wordLayout = block.attrs?.wordLayout;
86850
+ if (!wordLayout?.firstLineIndentMode) {
86851
+ return 0;
86852
+ }
86853
+ if (!wordLayout.marker || !measure.marker) {
86854
+ return 0;
86855
+ }
86856
+ const markerWidthRaw = measure.marker.markerWidth ?? wordLayout.marker.markerBoxWidthPx ?? 0;
86857
+ const markerWidth = Number.isFinite(markerWidthRaw) && markerWidthRaw >= 0 ? markerWidthRaw : 0;
86858
+ const gutterWidthRaw = measure.marker.gutterWidth ?? 0;
86859
+ const gutterWidth = Number.isFinite(gutterWidthRaw) && gutterWidthRaw >= 0 ? gutterWidthRaw : 0;
86860
+ return markerWidth + gutterWidth;
86861
+ }
86840
86862
  function layoutParagraphBlock(ctx2, anchors) {
86841
86863
  const { block, measure, columnWidth, ensurePage, advanceColumn, columnX, floatManager } = ctx2;
86842
86864
  const remeasureParagraph2 = ctx2.remeasureParagraph;
@@ -86959,16 +86981,7 @@ ${l}
86959
86981
  const measurementWidth = lines[0]?.maxWidth;
86960
86982
  let didRemeasureForColumnWidth = false;
86961
86983
  if (typeof remeasureParagraph2 === "function" && typeof measurementWidth === "number" && measurementWidth > columnWidth) {
86962
- let firstLineIndent = 0;
86963
- const wordLayout = block.attrs?.wordLayout;
86964
- if (wordLayout?.marker && measure.marker) {
86965
- const markerJustification = wordLayout.marker.justification ?? "left";
86966
- if (markerJustification === "left") {
86967
- const markerWidth = measure.marker.markerWidth ?? 0;
86968
- const gutterWidth = measure.marker.gutterWidth ?? wordLayout.marker.gutterWidthPx ?? 0;
86969
- firstLineIndent = markerWidth + gutterWidth;
86970
- }
86971
- }
86984
+ const firstLineIndent = calculateFirstLineIndent(block, measure);
86972
86985
  const newMeasure = remeasureParagraph2(block, columnWidth, firstLineIndent);
86973
86986
  lines = normalizeLines(newMeasure);
86974
86987
  didRemeasureForColumnWidth = true;
@@ -87048,16 +87061,7 @@ ${l}
87048
87061
  tempY += lineHeight2;
87049
87062
  }
87050
87063
  if (narrowestWidth < columnWidth) {
87051
- let firstLineIndent = 0;
87052
- const wordLayout = block.attrs?.wordLayout;
87053
- if (wordLayout?.marker && measure.marker) {
87054
- const markerJustification = wordLayout.marker.justification ?? "left";
87055
- if (markerJustification === "left") {
87056
- const markerWidth = measure.marker.markerWidth ?? 0;
87057
- const gutterWidth = measure.marker.gutterWidth ?? wordLayout.marker.gutterWidthPx ?? 0;
87058
- firstLineIndent = markerWidth + gutterWidth;
87059
- }
87060
- }
87064
+ const firstLineIndent = calculateFirstLineIndent(block, measure);
87061
87065
  const newMeasure = remeasureParagraph2(block, narrowestWidth, firstLineIndent);
87062
87066
  lines = normalizeLines(newMeasure);
87063
87067
  didRemeasureForFloats = true;
@@ -92146,22 +92150,12 @@ ${l}
92146
92150
  const clampedFirstLineOffset = Math.max(0, rawFirstLineOffset);
92147
92151
  const firstLineOffset = isWordLayoutList ? 0 : clampedFirstLineOffset;
92148
92152
  const contentWidth = Math.max(1, maxWidth - indentLeft - indentRight);
92149
- let leftJustifiedMarkerSpace = 0;
92150
- if (wordLayout?.marker) {
92151
- const markerJustification = wordLayout.marker.justification ?? "left";
92152
- if (markerJustification === "left") {
92153
- const markerBoxWidth = wordLayout.marker.markerBoxWidthPx ?? 0;
92154
- const gutterWidth = wordLayout.marker.gutterWidthPx ?? LIST_MARKER_GAP;
92155
- leftJustifiedMarkerSpace = markerBoxWidth + gutterWidth;
92156
- }
92157
- }
92158
92153
  let initialAvailableWidth;
92159
- const isFirstLineIndentMode = wordLayout?.firstLineIndentMode === true;
92160
92154
  const textStartPx = wordLayout?.textStartPx;
92161
- if (isFirstLineIndentMode && typeof textStartPx === "number" && textStartPx > 0) {
92155
+ if (typeof textStartPx === "number" && textStartPx > indentLeft) {
92162
92156
  initialAvailableWidth = Math.max(1, maxWidth - textStartPx - indentRight);
92163
92157
  } else {
92164
- initialAvailableWidth = Math.max(1, contentWidth - firstLineOffset - leftJustifiedMarkerSpace);
92158
+ initialAvailableWidth = Math.max(1, contentWidth - firstLineOffset);
92165
92159
  }
92166
92160
  const tabStops = buildTabStopsPx(
92167
92161
  indent2,
@@ -92922,7 +92916,7 @@ ${l}
92922
92916
  let markerInfo;
92923
92917
  if (wordLayout?.marker) {
92924
92918
  const markerRun = {
92925
- fontFamily: wordLayout.marker.run.fontFamily,
92919
+ fontFamily: toCssFontFamily(wordLayout.marker.run.fontFamily) ?? wordLayout.marker.run.fontFamily,
92926
92920
  fontSize: wordLayout.marker.run.fontSize,
92927
92921
  bold: wordLayout.marker.run.bold,
92928
92922
  italic: wordLayout.marker.run.italic
@@ -93250,7 +93244,7 @@ ${l}
93250
93244
  const marker = wordLayout.marker;
93251
93245
  const markerFontRun = {
93252
93246
  text: marker.markerText,
93253
- fontFamily: marker.run.fontFamily,
93247
+ fontFamily: toCssFontFamily(marker.run.fontFamily) ?? marker.run.fontFamily,
93254
93248
  fontSize: marker.run.fontSize,
93255
93249
  bold: marker.run.bold,
93256
93250
  italic: marker.run.italic,
@@ -151623,7 +151617,7 @@ ${style2}
151623
151617
  this.config.colors = shuffleArray(this.config.colors);
151624
151618
  this.userColorMap = /* @__PURE__ */ new Map();
151625
151619
  this.colorIndex = 0;
151626
- this.version = "1.0.0-beta.90";
151620
+ this.version = "1.0.0-beta.92";
151627
151621
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
151628
151622
  this.superdocId = config2.superdocId || v4();
151629
151623
  this.colors = this.config.colors;
@@ -154095,7 +154089,7 @@ ${style2}
154095
154089
  value && typeof value === "object" && "byteLength" in value && "byteOffset" in value
154096
154090
  );
154097
154091
  }
154098
- const indexDwotqBvu = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
154092
+ const indexCqnVFwjL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
154099
154093
  __proto__: null,
154100
154094
  unified
154101
154095
  }, Symbol.toStringTag, { value: "Module" }));