@stll/folio-core 0.66.1 → 0.66.2

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 (80) hide show
  1. package/dist/ai-edits/apply.d.ts +13 -1
  2. package/dist/ai-edits/apply.js +533 -136
  3. package/dist/ai-edits/batch-claims.d.ts +26 -0
  4. package/dist/ai-edits/batch-claims.js +30 -5
  5. package/dist/ai-edits/headless.d.ts +6 -0
  6. package/dist/ai-edits/headless.js +25 -3
  7. package/dist/ai-edits/newListNumbering.d.ts +4 -1
  8. package/dist/ai-edits/newListNumbering.js +4 -2
  9. package/dist/ai-edits/types.d.ts +1 -1
  10. package/dist/document-operations.d.ts +13 -1
  11. package/dist/document-operations.js +11 -4
  12. package/dist/docx/listNumberingInstances.d.ts +6 -4
  13. package/dist/docx/listNumberingInstances.js +12 -11
  14. package/dist/docx/numberingIds.d.ts +10 -0
  15. package/dist/docx/numberingIds.js +5 -1
  16. package/dist/docx/paragraphParser.js +16 -3
  17. package/dist/docx/paragraphProperties.js +2 -1
  18. package/dist/docx/serializer/paragraphSerializer.js +86 -66
  19. package/dist/i18n/messages/ar.gen.js +1 -0
  20. package/dist/i18n/messages/catalogs.gen.d.ts +17 -0
  21. package/dist/i18n/messages/catalogs.gen.js +17 -0
  22. package/dist/i18n/messages/cs.gen.js +1 -0
  23. package/dist/i18n/messages/de.gen.js +1 -0
  24. package/dist/i18n/messages/en.gen.js +1 -0
  25. package/dist/i18n/messages/es.gen.js +1 -0
  26. package/dist/i18n/messages/et.gen.js +1 -0
  27. package/dist/i18n/messages/fr.gen.js +1 -0
  28. package/dist/i18n/messages/he.gen.js +1 -0
  29. package/dist/i18n/messages/hi.gen.js +1 -0
  30. package/dist/i18n/messages/hu.gen.js +1 -0
  31. package/dist/i18n/messages/lt.gen.js +1 -0
  32. package/dist/i18n/messages/lv.gen.js +1 -0
  33. package/dist/i18n/messages/messages.gen.d.ts +1 -0
  34. package/dist/i18n/messages/pl.gen.js +1 -0
  35. package/dist/i18n/messages/pt-BR.gen.js +1 -0
  36. package/dist/i18n/messages/sk.gen.js +1 -0
  37. package/dist/i18n/messages/tr.gen.js +1 -0
  38. package/dist/i18n/messages/zh-CN.gen.js +1 -0
  39. package/dist/internal/wholeStoryRevisionResolution.d.ts +1 -1
  40. package/dist/internal/wholeStoryRevisionResolution.js +24 -9
  41. package/dist/layout-bridge/convert/runMarkFormatting.js +1 -0
  42. package/dist/markdown/renderRuns.js +68 -12
  43. package/dist/prosemirror/commands/comments.js +2 -0
  44. package/dist/prosemirror/commands/resolveParagraphProperties.js +15 -2
  45. package/dist/prosemirror/conversion/fromProseDoc.js +55 -18
  46. package/dist/prosemirror/conversion/hyphenTextCarriers.d.ts +23 -1
  47. package/dist/prosemirror/conversion/hyphenTextCarriers.js +46 -1
  48. package/dist/prosemirror/conversion/toProseDoc.js +15 -9
  49. package/dist/prosemirror/extensions/StarterKit.js +1 -1
  50. package/dist/prosemirror/extensions/features/pasteCleanup.js +6 -0
  51. package/dist/prosemirror/extensions/features/pastedHtmlLists.js +2 -1
  52. package/dist/prosemirror/extensions/markRegistry.d.ts +3 -1
  53. package/dist/prosemirror/extensions/markRegistry.js +3 -0
  54. package/dist/prosemirror/extensions/marks/HyphenElementExtension.d.ts +6 -0
  55. package/dist/prosemirror/extensions/marks/HyphenElementExtension.js +54 -0
  56. package/dist/prosemirror/fieldRepresentation.js +2 -1
  57. package/dist/prosemirror/hyphenElementAttrs.d.ts +10 -0
  58. package/dist/prosemirror/hyphenElementAttrs.js +32 -0
  59. package/dist/prosemirror/keptRangeBoundaries.d.ts +2 -0
  60. package/dist/prosemirror/keptRangeBoundaries.js +1 -1
  61. package/dist/prosemirror/listNumbering.js +3 -2
  62. package/dist/prosemirror/paragraphIndentation.js +2 -1
  63. package/dist/prosemirror/paragraphPropertyCarry.d.ts +1 -14
  64. package/dist/prosemirror/paragraphPropertyCarry.js +4 -28
  65. package/dist/prosemirror/plugins/suggestionMode.js +19 -6
  66. package/dist/prosemirror/replacedAnnotations.d.ts +1 -0
  67. package/dist/prosemirror/replacedAnnotations.js +1 -0
  68. package/dist/prosemirror/sectionCarrier.d.ts +8 -0
  69. package/dist/prosemirror/sectionCarrier.js +29 -1
  70. package/dist/prosemirror/styles/paragraphStyleCascade.d.ts +10 -0
  71. package/dist/prosemirror/styles/paragraphStyleCascade.js +12 -2
  72. package/dist/prosemirror/tableRunIn.d.ts +24 -9
  73. package/dist/prosemirror/tableRunIn.js +107 -21
  74. package/dist/prosemirror/textInput.js +3 -1
  75. package/dist/prosemirror/validation.js +6 -0
  76. package/dist/utils/createDocument.js +11 -8
  77. package/dist/utils/formatToStyle.js +2 -2
  78. package/dist/utils/units.d.ts +5 -0
  79. package/dist/utils/units.js +6 -1
  80. package/package.json +3 -3
@@ -299,20 +299,20 @@ function hyperlinkAttributes(hyperlink) {
299
299
  if (hyperlink.docLocation) attrs.push(`w:docLocation="${escapeXmlAttribute(hyperlink.docLocation)}"`);
300
300
  return attrs.length > 0 ? ` ${attrs.join(" ")}` : "";
301
301
  }
302
- /** One `w:hyperlink` child, written with the link's own disposition. */
303
- function serializeHyperlinkChild(child, disposition) {
302
+ /** One `w:hyperlink` child, written with the link's own spelling. */
303
+ function serializeHyperlinkChild(child, spelling) {
304
304
  switch (child.type) {
305
- case "run": return serializeInlineRun(child, disposition);
305
+ case "run": return serializeInlineRun(child, spelling);
306
306
  case "bookmarkStart": return serializeBookmarkMarker(child);
307
307
  case "bookmarkEnd": return serializeBookmarkMarker(child);
308
308
  case "commentRangeStart":
309
- case "commentRangeEnd": return serializeParagraphContent(child, disposition);
309
+ case "commentRangeEnd": return serializeParagraphContent(child, spelling);
310
310
  case "commentReference": return serializeCommentReferenceRun(child.id);
311
311
  case "moveFromRangeStart":
312
312
  case "moveFromRangeEnd":
313
313
  case "moveToRangeStart":
314
314
  case "moveToRangeEnd": return serializeMoveRangeMarker(child);
315
- case "inlineWrapper": return serializeParagraphContent(child, disposition);
315
+ case "inlineWrapper": return serializeParagraphContent(child, spelling);
316
316
  case "preservedInline": return child.xml;
317
317
  default: return child;
318
318
  }
@@ -320,8 +320,8 @@ function serializeHyperlinkChild(child, disposition) {
320
320
  /**
321
321
  * Serialize a hyperlink (w:hyperlink)
322
322
  */
323
- function serializeHyperlink(hyperlink, disposition = "kept") {
324
- const childrenXml = hyperlink.children.map((child) => serializeHyperlinkChild(child, disposition)).join("");
323
+ function serializeHyperlink(hyperlink, spelling = "text") {
324
+ const childrenXml = hyperlink.children.map((child) => serializeHyperlinkChild(child, spelling)).join("");
325
325
  return `<w:hyperlink${hyperlinkAttributes(hyperlink)}>${childrenXml}</w:hyperlink>`;
326
326
  }
327
327
  /** Serialize a simple field without changing its authored OOXML field form. */
@@ -356,16 +356,25 @@ function serializeComplexField(field) {
356
356
  }
357
357
  const UnrepresentableTrackedCaptureErrorBase = TaggedError("UnrepresentableTrackedCaptureError");
358
358
  var UnrepresentableTrackedCaptureError = class extends UnrepresentableTrackedCaptureErrorBase {};
359
+ /** Whether a capture is plain runs whose text a respelling can reach. */
360
+ const isPlainRunCapture = (xml) => /^<w:r[\s>]/u.test(xml) && !/<w:(?:drawing|pict|object)\b|<mc:AlternateContent\b/u.test(xml);
359
361
  /**
360
- * Preserved markup inside a removal. Markup captured from a removal already
361
- * spells its text as deleted text. Markup captured outside one and put under
362
- * a removal afterwards does not: plain runs are respelled here, as a deleted
363
- * run is. A folded list-number capture that cannot be respelled is refused,
364
- * rather than written as live text inside the removal.
362
+ * Preserved markup inside a revision, spelled the way the revision spells its
363
+ * typed runs. Markup captured inside a `w:del` already spells its text as
364
+ * deleted text; markup captured elsewhere and put under one afterwards does
365
+ * not, and markup captured from a move source that spelled its text as
366
+ * deleted text holds the reverse. Plain runs are respelled here, as a typed
367
+ * run is. A folded list-number capture that cannot be respelled into a
368
+ * deletion is refused, rather than written as live text inside it.
365
369
  */
366
- function serializeRemovedPreservedInline(item) {
370
+ function serializeTrackedPreservedInline(item, spelling) {
371
+ switch (spelling) {
372
+ case "text": return isPlainRunCapture(item.xml) ? rewriteRunTextAsText(item.xml) : item.xml;
373
+ case "deletedText": break;
374
+ default: return spelling;
375
+ }
367
376
  if (!/<w:(?:t|instrText)[\s>]/u.test(item.xml)) return item.xml;
368
- if (/^<w:r[\s>]/u.test(item.xml) && !/<w:(?:drawing|pict|object)\b|<mc:AlternateContent\b/u.test(item.xml)) return rewriteRunTextAsDeleted(item.xml);
377
+ if (isPlainRunCapture(item.xml)) return rewriteRunTextAsDeleted(item.xml);
369
378
  if (item.foldedListNumber) throw new UnrepresentableTrackedCaptureError({ message: "A folded list-number field holds markup that cannot be written as deleted content." });
370
379
  return item.xml;
371
380
  }
@@ -440,29 +449,29 @@ const trackedSimpleFieldContent = (field) => {
440
449
  * the properties block was re-synthesized from the modeled projection alone,
441
450
  * silently dropping every unmodeled feature (and `w:sdtEndPr`) on save.
442
451
  */
443
- function serializeInlineSdt(sdt, disposition = "kept") {
452
+ function serializeInlineSdt(sdt, spelling = "text") {
444
453
  const props = sdt.properties;
445
454
  const contentXml = sdt.content.map((item) => {
446
455
  switch (item.type) {
447
- case "run": return serializeInlineRun(item, disposition);
448
- case "hyperlink": return serializeHyperlink(item, disposition);
456
+ case "run": return serializeInlineRun(item, spelling);
457
+ case "hyperlink": return serializeHyperlink(item, spelling);
449
458
  case "simpleField": return serializeSimpleField(item);
450
459
  case "complexField": return serializeComplexField(item);
451
- case "inlineSdt": return serializeInlineSdt(item, disposition);
452
- case "inlineWrapper": return serializeParagraphContent(item, disposition);
460
+ case "inlineSdt": return serializeInlineSdt(item, spelling);
461
+ case "inlineWrapper": return serializeParagraphContent(item, spelling);
453
462
  case "bookmarkStart": return serializeBookmarkMarker(item);
454
463
  case "bookmarkEnd": return serializeBookmarkMarker(item);
455
464
  case "commentRangeStart":
456
- case "commentRangeEnd": return serializeParagraphContent(item, disposition);
465
+ case "commentRangeEnd": return serializeParagraphContent(item, spelling);
457
466
  case "commentReference": return serializeCommentReferenceRun(item.id);
458
467
  case "moveFromRangeStart":
459
468
  case "moveFromRangeEnd":
460
469
  case "moveToRangeStart":
461
470
  case "moveToRangeEnd": return serializeMoveRangeMarker(item);
462
- case "insertion": return serializeTrackedChange("ins", item);
463
- case "deletion": return serializeTrackedChange("del", item);
464
- case "moveFrom": return serializeTrackedChange("moveFrom", item);
465
- case "moveTo": return serializeTrackedChange("moveTo", item);
471
+ case "insertion":
472
+ case "deletion":
473
+ case "moveFrom":
474
+ case "moveTo": return serializeTrackedChange(item);
466
475
  case "mathEquation": return item.ommlXml || "";
467
476
  case "preservedInline": return item.xml;
468
477
  default: return item;
@@ -470,12 +479,35 @@ function serializeInlineSdt(sdt, disposition = "kept") {
470
479
  }).join("");
471
480
  return serializeSdtWrapper(props, contentXml);
472
481
  }
473
- /**
474
- * Serialize a tracked change wrapper (ins/del/moveFrom/moveTo)
475
- */
482
+ /** Respell a run's text and field code as deleted text and field code. */
476
483
  function rewriteRunTextAsDeleted(xml) {
477
484
  return xml.replace(/<w:t\b/gu, "<w:delText").replace(/<\/w:t>/gu, "</w:delText>").replace(/<w:instrText\b/gu, "<w:delInstrText").replace(/<\/w:instrText>/gu, "</w:delInstrText>");
478
485
  }
486
+ /** Respell a run's deleted text and field code as plain text and field code. */
487
+ function rewriteRunTextAsText(xml) {
488
+ return xml.replace(/<w:delText\b/gu, "<w:t").replace(/<\/w:delText>/gu, "</w:t>").replace(/<w:delInstrText\b/gu, "<w:instrText").replace(/<\/w:delInstrText>/gu, "</w:instrText>");
489
+ }
490
+ /** The element each tracked run change is written as. */
491
+ const TRACKED_CHANGE_ELEMENT = {
492
+ insertion: "ins",
493
+ deletion: "del",
494
+ moveFrom: "moveFrom",
495
+ moveTo: "moveTo"
496
+ };
497
+ /**
498
+ * The text spelling of the runs each revision holds.
499
+ *
500
+ * ISO/IEC 29500-1 §17.3.3.7 reserves `w:delText` for runs in a deleted region
501
+ * (`w:del`, §17.13.5.14), and `w:delInstrText` likewise. A move source
502
+ * (`w:moveFrom`, §17.13.5.22) is not a deletion: its content moved elsewhere,
503
+ * and the spec's own example spells its run text `w:t`.
504
+ */
505
+ const TRACKED_CHANGE_TEXT_SPELLING = {
506
+ ins: "text",
507
+ del: "deletedText",
508
+ moveFrom: "text",
509
+ moveTo: "text"
510
+ };
479
511
  function serializeDeletedRun(run) {
480
512
  const xml = serializeRun(run);
481
513
  if (!run.content.some((c) => c.type === "drawing" || c.type === "shape")) return rewriteRunTextAsDeleted(xml);
@@ -489,22 +521,12 @@ function serializeDeletedRun(run) {
489
521
  return rewriteRunTextAsDeleted(contentXml);
490
522
  }).join("");
491
523
  }
492
- function serializeInlineRun(run, disposition) {
493
- return disposition === "removed" ? serializeDeletedRun(run) : serializeRun(run);
494
- }
495
- function trackedChangeTag(change) {
496
- switch (change.type) {
497
- case "insertion": return "ins";
498
- case "deletion": return "del";
499
- case "moveFrom": return "moveFrom";
500
- case "moveTo": return "moveTo";
501
- }
524
+ function serializeInlineRun(run, spelling) {
525
+ return spelling === "deletedText" ? serializeDeletedRun(run) : serializeRun(run);
502
526
  }
503
- function serializeTrackedChange(tag, change) {
504
- return emitTrackedInlineSegments(trackedChangeSegments({
505
- tag,
506
- change
507
- }));
527
+ /** Serialize a tracked change wrapper (ins/del/moveFrom/moveTo). */
528
+ function serializeTrackedChange(change) {
529
+ return emitTrackedInlineSegments(trackedChangeSegments(change));
508
530
  }
509
531
  const emitTrackedInlineSegments = (segments) => segments.map((segment) => {
510
532
  switch (segment.type) {
@@ -546,9 +568,10 @@ const wrapTrackedInlineSegments = (segments, wrap) => {
546
568
  flush();
547
569
  return result;
548
570
  };
549
- const trackedChangeSegments = ({ tag, change }) => {
550
- const disposition = tag === "del" || tag === "moveFrom" ? "removed" : "kept";
551
- const segments = walkTrackedInlineContent(change.content, disposition);
571
+ const trackedChangeSegments = (change) => {
572
+ const tag = TRACKED_CHANGE_ELEMENT[change.type];
573
+ const spelling = TRACKED_CHANGE_TEXT_SPELLING[tag];
574
+ const segments = walkTrackedInlineContent(change.content, spelling);
552
575
  if (change.resolutionJoins !== void 0 && segments.some((segment) => segment.type === "hyperlink")) throw new ReviewResolutionProvenanceError({
553
576
  attribute: "resolutionJoins",
554
577
  reason: "unrepresentable",
@@ -560,11 +583,11 @@ const trackedChangeSegments = ({ tag, change }) => {
560
583
  const UnrepresentableNestedHyperlinkErrorBase = TaggedError("UnrepresentableNestedHyperlinkError");
561
584
  var UnrepresentableNestedHyperlinkError = class extends UnrepresentableNestedHyperlinkErrorBase {};
562
585
  /** One exhaustive recursive owner for all containers inside a tracked revision. */
563
- const walkTrackedInlineContent = (content, disposition) => {
586
+ const walkTrackedInlineContent = (content, spelling) => {
564
587
  const segments = [];
565
588
  for (const item of content) switch (item.type) {
566
589
  case "hyperlink": {
567
- const children = walkTrackedInlineContent(item.children, disposition);
590
+ const children = walkTrackedInlineContent(item.children, spelling);
568
591
  if (children.some((child) => child.type === "hyperlink")) throw new UnrepresentableNestedHyperlinkError({ message: "A tracked hyperlink cannot contain another hyperlink." });
569
592
  segments.push({
570
593
  type: "hyperlink",
@@ -574,31 +597,28 @@ const walkTrackedInlineContent = (content, disposition) => {
574
597
  break;
575
598
  }
576
599
  case "simpleField":
577
- segments.push(...walkTrackedInlineContent(trackedSimpleFieldContent(item), disposition));
600
+ segments.push(...walkTrackedInlineContent(trackedSimpleFieldContent(item), spelling));
578
601
  break;
579
602
  case "insertion":
580
603
  case "deletion":
581
604
  case "moveFrom":
582
605
  case "moveTo":
583
- segments.push(...trackedChangeSegments({
584
- tag: trackedChangeTag(item),
585
- change: item
586
- }));
606
+ segments.push(...trackedChangeSegments(item));
587
607
  break;
588
608
  case "inlineWrapper":
589
- segments.push(...wrapTrackedInlineSegments(walkTrackedInlineContent(item.content, disposition), (xml) => serializeInlineWrapperMarkup(item, xml)));
609
+ segments.push(...wrapTrackedInlineSegments(walkTrackedInlineContent(item.content, spelling), (xml) => serializeInlineWrapperMarkup(item, xml)));
590
610
  break;
591
611
  case "inlineSdt":
592
612
  segments.push({
593
613
  type: "plain",
594
- xml: serializeSdtWrapper(item.properties, emitTrackedInlineSegments(walkTrackedInlineContent(item.content, disposition)))
614
+ xml: serializeSdtWrapper(item.properties, emitTrackedInlineSegments(walkTrackedInlineContent(item.content, spelling)))
595
615
  });
596
616
  break;
597
617
  case "complexField": {
598
618
  const xml = serializeComplexField(item);
599
619
  segments.push({
600
620
  type: "plain",
601
- xml: disposition === "removed" ? rewriteRunTextAsDeleted(xml) : xml
621
+ xml: spelling === "deletedText" ? rewriteRunTextAsDeleted(xml) : xml
602
622
  });
603
623
  break;
604
624
  }
@@ -615,7 +635,7 @@ const walkTrackedInlineContent = (content, disposition) => {
615
635
  }
616
636
  segments.push({
617
637
  type: "plain",
618
- xml: disposition === "removed" ? serializeRemovedPreservedInline(item) : item.xml
638
+ xml: serializeTrackedPreservedInline(item, spelling)
619
639
  });
620
640
  break;
621
641
  }
@@ -632,7 +652,7 @@ const walkTrackedInlineContent = (content, disposition) => {
632
652
  case "commentReference":
633
653
  segments.push({
634
654
  type: "plain",
635
- xml: serializeParagraphContent(item, disposition)
655
+ xml: serializeParagraphContent(item, spelling)
636
656
  });
637
657
  break;
638
658
  default: return item;
@@ -694,27 +714,27 @@ function serializeInlineWrapperMarkup(content, inner) {
694
714
  * `completeCommentReferences` fills it in for a model that arrived without
695
715
  * one; a guess made here from one paragraph cannot see the rest of the story.
696
716
  */
697
- function serializeParagraphContent(content, disposition = "kept") {
717
+ function serializeParagraphContent(content, spelling = "text") {
698
718
  switch (content.type) {
699
- case "run": return serializeInlineRun(content, disposition);
700
- case "hyperlink": return serializeHyperlink(content, disposition);
719
+ case "run": return serializeInlineRun(content, spelling);
720
+ case "hyperlink": return serializeHyperlink(content, spelling);
701
721
  case "bookmarkStart":
702
722
  case "bookmarkEnd": return serializeBookmarkMarker(content);
703
723
  case "simpleField": return serializeSimpleField(content);
704
724
  case "complexField": return serializeComplexField(content);
705
- case "inlineSdt": return serializeInlineSdt(content, disposition);
725
+ case "inlineSdt": return serializeInlineSdt(content, spelling);
706
726
  case "commentRangeStart": return `<w:commentRangeStart ${markupRangeAttributes(content).join(" ")}/>`;
707
727
  case "commentRangeEnd": return `<w:commentRangeEnd ${markupRangeAttributes(content).join(" ")}/>`;
708
728
  case "commentReference": return serializeCommentReferenceRun(content.id);
709
- case "insertion": return serializeTrackedChange("ins", content);
710
- case "deletion": return serializeTrackedChange("del", content);
711
- case "moveFrom": return serializeTrackedChange("moveFrom", content);
712
- case "moveTo": return serializeTrackedChange("moveTo", content);
729
+ case "insertion":
730
+ case "deletion":
731
+ case "moveFrom":
732
+ case "moveTo": return serializeTrackedChange(content);
713
733
  case "moveFromRangeStart":
714
734
  case "moveFromRangeEnd":
715
735
  case "moveToRangeStart":
716
736
  case "moveToRangeEnd": return serializeMoveRangeMarker(content);
717
- case "inlineWrapper": return serializeInlineWrapperMarkup(content, content.content.map((child) => serializeParagraphContent(child, disposition)).join(""));
737
+ case "inlineWrapper": return serializeInlineWrapperMarkup(content, content.content.map((child) => serializeParagraphContent(child, spelling)).join(""));
718
738
  case "mathEquation": return content.ommlXml || "";
719
739
  case "preservedInline": return content.xml;
720
740
  default: return "";
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "تعذّر حفظ ملف DOCX",
336
336
  "editSessionTakenOver": "فتح علامة تبويب أو نافذة أو جهاز آخر هذا المستند للتعديل، لذا تم تحرير هذه الجلسة. تم الحفاظ على التغييرات المحلية غير المحفوظة؛ أعد فتح المستند للمتابعة.",
337
337
  "editor": {
338
+ "accessibleName": "محرر المستندات",
338
339
  "editing": "تحرير",
339
340
  "editingDescription": "تحرير المستند مباشرةً",
340
341
  "outlineDepthAll": "كل المستويات",
@@ -336,6 +336,7 @@ export declare const CATALOGS: {
336
336
  readonly editSaveFailedTitle: "Could not save DOCX";
337
337
  readonly editSessionTakenOver: "Another tab, window, or device opened this document for editing, so this session was released. Unsaved local changes are preserved — reopen the doc to continue.";
338
338
  readonly editor: {
339
+ readonly accessibleName: "Document editor";
339
340
  readonly editing: "Editing";
340
341
  readonly editingDescription: "Edit the document directly";
341
342
  readonly outlineDepthAll: "All levels";
@@ -996,6 +997,7 @@ export declare const CATALOGS: {
996
997
  readonly editSaveFailedTitle: "DOCX-Datei konnte nicht gespeichert werden";
997
998
  readonly editSessionTakenOver: "Diese Bearbeitungssitzung wurde an anderer Stelle übernommen.";
998
999
  readonly editor: {
1000
+ readonly accessibleName: "Dokumenteditor";
999
1001
  readonly editing: "Bearbeiten";
1000
1002
  readonly editingDescription: "Dokument direkt bearbeiten";
1001
1003
  readonly outlineDepthAll: "Alle Ebenen";
@@ -1656,6 +1658,7 @@ export declare const CATALOGS: {
1656
1658
  readonly editSaveFailedTitle: "Impossible d’enregistrer le DOCX";
1657
1659
  readonly editSessionTakenOver: "Cette session de modification a été reprise ailleurs.";
1658
1660
  readonly editor: {
1661
+ readonly accessibleName: "Éditeur de documents";
1659
1662
  readonly editing: "Modification";
1660
1663
  readonly editingDescription: "Modifier directement le document";
1661
1664
  readonly outlineDepthAll: "Tous les niveaux";
@@ -2316,6 +2319,7 @@ export declare const CATALOGS: {
2316
2319
  readonly editSaveFailedTitle: "No se pudo guardar el DOCX";
2317
2320
  readonly editSessionTakenOver: "Esta sesión de edición se tomó en otro lugar.";
2318
2321
  readonly editor: {
2322
+ readonly accessibleName: "Editor de documentos";
2319
2323
  readonly editing: "Edición";
2320
2324
  readonly editingDescription: "Editar el documento directamente";
2321
2325
  readonly outlineDepthAll: "Todos los niveles";
@@ -2976,6 +2980,7 @@ export declare const CATALOGS: {
2976
2980
  readonly editSaveFailedTitle: "DOCX se nepodařilo uložit";
2977
2981
  readonly editSessionTakenOver: "Tento dokument byl otevřen k úpravám v jiné kartě, okně nebo zařízení, takže byla tato relace ukončena. Neuložené místní změny zůstávají zachovány — otevřete dokument znovu a pokračujte.";
2978
2982
  readonly editor: {
2983
+ readonly accessibleName: "Editor dokumentů";
2979
2984
  readonly editing: "Úpravy";
2980
2985
  readonly editingDescription: "Upravovat dokument přímo";
2981
2986
  readonly outlineDepthAll: "Vše";
@@ -3636,6 +3641,7 @@ export declare const CATALOGS: {
3636
3641
  readonly editSaveFailedTitle: "تعذّر حفظ ملف DOCX";
3637
3642
  readonly editSessionTakenOver: "فتح علامة تبويب أو نافذة أو جهاز آخر هذا المستند للتعديل، لذا تم تحرير هذه الجلسة. تم الحفاظ على التغييرات المحلية غير المحفوظة؛ أعد فتح المستند للمتابعة.";
3638
3643
  readonly editor: {
3644
+ readonly accessibleName: "محرر المستندات";
3639
3645
  readonly editing: "تحرير";
3640
3646
  readonly editingDescription: "تحرير المستند مباشرةً";
3641
3647
  readonly outlineDepthAll: "كل المستويات";
@@ -4296,6 +4302,7 @@ export declare const CATALOGS: {
4296
4302
  readonly editSaveFailedTitle: "DOCX-i ei saanud salvestada";
4297
4303
  readonly editSessionTakenOver: "See muutmisseanss võeti mujal üle.";
4298
4304
  readonly editor: {
4305
+ readonly accessibleName: "Dokumendiredaktor";
4299
4306
  readonly editing: "Redigeerimine";
4300
4307
  readonly editingDescription: "Redigeerige dokumenti otse";
4301
4308
  readonly outlineDepthAll: "Kõik tasemed";
@@ -4956,6 +4963,7 @@ export declare const CATALOGS: {
4956
4963
  readonly editSaveFailedTitle: "לא ניתן לשמור את ה-DOCX";
4957
4964
  readonly editSessionTakenOver: "כרטיסייה, חלון או מכשיר אחר פתחו מסמך זה לעריכה, ולכן הפעלה זו שוחררה. שינויים מקומיים שלא נשמרו נשמרו — פתח מחדש את המסמך כדי להמשיך.";
4958
4965
  readonly editor: {
4966
+ readonly accessibleName: "עורך מסמכים";
4959
4967
  readonly editing: "עריכה";
4960
4968
  readonly editingDescription: "ערוך את המסמך ישירות";
4961
4969
  readonly outlineDepthAll: "כל הרמות";
@@ -5616,6 +5624,7 @@ export declare const CATALOGS: {
5616
5624
  readonly editSaveFailedTitle: "DOCX सहेजा नहीं जा सका";
5617
5625
  readonly editSessionTakenOver: "किसी अन्य टैब, विंडो या डिवाइस ने इस दस्तावेज़ को संपादन के लिए खोला, इसलिए यह सत्र बंद कर दिया गया। सहेजे नहीं गए स्थानीय परिवर्तन सुरक्षित हैं — जारी रखने के लिए दस्तावेज़ फिर से खोलें।";
5618
5626
  readonly editor: {
5627
+ readonly accessibleName: "दस्तावेज़ संपादक";
5619
5628
  readonly editing: "संपादन";
5620
5629
  readonly editingDescription: "दस्तावेज़ को सीधे संपादित करें";
5621
5630
  readonly outlineDepthAll: "सभी स्तर";
@@ -6276,6 +6285,7 @@ export declare const CATALOGS: {
6276
6285
  readonly editSaveFailedTitle: "A DOCX nem menthető";
6277
6286
  readonly editSessionTakenOver: "Ezt a szerkesztési munkamenetet máshol vették át.";
6278
6287
  readonly editor: {
6288
+ readonly accessibleName: "Dokumentumszerkesztő";
6279
6289
  readonly editing: "Szerkesztés";
6280
6290
  readonly editingDescription: "A dokumentum közvetlen szerkesztése";
6281
6291
  readonly outlineDepthAll: "Minden szint";
@@ -6936,6 +6946,7 @@ export declare const CATALOGS: {
6936
6946
  readonly editSaveFailedTitle: "Nepavyko išsaugoti DOCX";
6937
6947
  readonly editSessionTakenOver: "Ši redagavimo sesija buvo perimta kitur.";
6938
6948
  readonly editor: {
6949
+ readonly accessibleName: "Dokumentų redaktorius";
6939
6950
  readonly editing: "Redagavimas";
6940
6951
  readonly editingDescription: "Redaguokite dokumentą tiesiogiai";
6941
6952
  readonly outlineDepthAll: "Visi lygiai";
@@ -7596,6 +7607,7 @@ export declare const CATALOGS: {
7596
7607
  readonly editSaveFailedTitle: "Neizdevās saglabāt DOCX";
7597
7608
  readonly editSessionTakenOver: "Šo rediģēšanas sesiju pārņēma citur.";
7598
7609
  readonly editor: {
7610
+ readonly accessibleName: "Dokumentu redaktors";
7599
7611
  readonly editing: "Rediģēšana";
7600
7612
  readonly editingDescription: "Rediģējiet dokumentu tieši";
7601
7613
  readonly outlineDepthAll: "Visi līmeņi";
@@ -8256,6 +8268,7 @@ export declare const CATALOGS: {
8256
8268
  readonly editSaveFailedTitle: "Nie udało się zapisać pliku DOCX";
8257
8269
  readonly editSessionTakenOver: "Ta sesja edycji została przejęta gdzie indziej.";
8258
8270
  readonly editor: {
8271
+ readonly accessibleName: "Edytor dokumentów";
8259
8272
  readonly editing: "Edytowanie";
8260
8273
  readonly editingDescription: "Edytuj dokument bezpośrednio";
8261
8274
  readonly outlineDepthAll: "Wszystkie poziomy";
@@ -8916,6 +8929,7 @@ export declare const CATALOGS: {
8916
8929
  readonly editSaveFailedTitle: "Não foi possível salvar DOCX";
8917
8930
  readonly editSessionTakenOver: "Esta sessão de edição foi assumida em outro lugar.";
8918
8931
  readonly editor: {
8932
+ readonly accessibleName: "Editor de documentos";
8919
8933
  readonly editing: "Editando";
8920
8934
  readonly editingDescription: "Edite o documento diretamente";
8921
8935
  readonly outlineDepthAll: "Todos os níveis";
@@ -9576,6 +9590,7 @@ export declare const CATALOGS: {
9576
9590
  readonly editSaveFailedTitle: "DOCX sa nepodarilo uložiť";
9577
9591
  readonly editSessionTakenOver: "Túto reláciu úprav prevzalo iné okno.";
9578
9592
  readonly editor: {
9593
+ readonly accessibleName: "Editor dokumentov";
9579
9594
  readonly editing: "Úpravy";
9580
9595
  readonly editingDescription: "Upravujte dokument priamo";
9581
9596
  readonly outlineDepthAll: "Všetky úrovne";
@@ -10236,6 +10251,7 @@ export declare const CATALOGS: {
10236
10251
  readonly editSaveFailedTitle: "DOCX kaydedilemedi";
10237
10252
  readonly editSessionTakenOver: "Başka bir sekme, pencere veya cihaz bu belgeyi düzenlemek için açtığından bu oturum sonlandırıldı. Kaydedilmemiş yerel değişiklikler korunur; devam etmek için belgeyi yeniden açın.";
10238
10253
  readonly editor: {
10254
+ readonly accessibleName: "Belge düzenleyici";
10239
10255
  readonly editing: "Düzenleme";
10240
10256
  readonly editingDescription: "Belgeyi doğrudan düzenleyin";
10241
10257
  readonly outlineDepthAll: "Tüm düzeyler";
@@ -10896,6 +10912,7 @@ export declare const CATALOGS: {
10896
10912
  readonly editSaveFailedTitle: "无法保存 DOCX";
10897
10913
  readonly editSessionTakenOver: "另一个标签页、窗口或设备已打开此文档进行编辑,因此本会话已释放。未保存的本地更改会保留,请重新打开文档以继续。";
10898
10914
  readonly editor: {
10915
+ readonly accessibleName: "文档编辑器";
10899
10916
  readonly editing: "编辑";
10900
10917
  readonly editingDescription: "直接编辑文档";
10901
10918
  readonly outlineDepthAll: "所有级别";
@@ -336,6 +336,7 @@ const CATALOGS = {
336
336
  "editSaveFailedTitle": "Could not save DOCX",
337
337
  "editSessionTakenOver": "Another tab, window, or device opened this document for editing, so this session was released. Unsaved local changes are preserved — reopen the doc to continue.",
338
338
  "editor": {
339
+ "accessibleName": "Document editor",
339
340
  "editing": "Editing",
340
341
  "editingDescription": "Edit the document directly",
341
342
  "outlineDepthAll": "All levels",
@@ -994,6 +995,7 @@ const CATALOGS = {
994
995
  "editSaveFailedTitle": "DOCX-Datei konnte nicht gespeichert werden",
995
996
  "editSessionTakenOver": "Diese Bearbeitungssitzung wurde an anderer Stelle übernommen.",
996
997
  "editor": {
998
+ "accessibleName": "Dokumenteditor",
997
999
  "editing": "Bearbeiten",
998
1000
  "editingDescription": "Dokument direkt bearbeiten",
999
1001
  "outlineDepthAll": "Alle Ebenen",
@@ -1652,6 +1654,7 @@ const CATALOGS = {
1652
1654
  "editSaveFailedTitle": "Impossible d’enregistrer le DOCX",
1653
1655
  "editSessionTakenOver": "Cette session de modification a été reprise ailleurs.",
1654
1656
  "editor": {
1657
+ "accessibleName": "Éditeur de documents",
1655
1658
  "editing": "Modification",
1656
1659
  "editingDescription": "Modifier directement le document",
1657
1660
  "outlineDepthAll": "Tous les niveaux",
@@ -2310,6 +2313,7 @@ const CATALOGS = {
2310
2313
  "editSaveFailedTitle": "No se pudo guardar el DOCX",
2311
2314
  "editSessionTakenOver": "Esta sesión de edición se tomó en otro lugar.",
2312
2315
  "editor": {
2316
+ "accessibleName": "Editor de documentos",
2313
2317
  "editing": "Edición",
2314
2318
  "editingDescription": "Editar el documento directamente",
2315
2319
  "outlineDepthAll": "Todos los niveles",
@@ -2968,6 +2972,7 @@ const CATALOGS = {
2968
2972
  "editSaveFailedTitle": "DOCX se nepodařilo uložit",
2969
2973
  "editSessionTakenOver": "Tento dokument byl otevřen k úpravám v jiné kartě, okně nebo zařízení, takže byla tato relace ukončena. Neuložené místní změny zůstávají zachovány — otevřete dokument znovu a pokračujte.",
2970
2974
  "editor": {
2975
+ "accessibleName": "Editor dokumentů",
2971
2976
  "editing": "Úpravy",
2972
2977
  "editingDescription": "Upravovat dokument přímo",
2973
2978
  "outlineDepthAll": "Vše",
@@ -3626,6 +3631,7 @@ const CATALOGS = {
3626
3631
  "editSaveFailedTitle": "تعذّر حفظ ملف DOCX",
3627
3632
  "editSessionTakenOver": "فتح علامة تبويب أو نافذة أو جهاز آخر هذا المستند للتعديل، لذا تم تحرير هذه الجلسة. تم الحفاظ على التغييرات المحلية غير المحفوظة؛ أعد فتح المستند للمتابعة.",
3628
3633
  "editor": {
3634
+ "accessibleName": "محرر المستندات",
3629
3635
  "editing": "تحرير",
3630
3636
  "editingDescription": "تحرير المستند مباشرةً",
3631
3637
  "outlineDepthAll": "كل المستويات",
@@ -4284,6 +4290,7 @@ const CATALOGS = {
4284
4290
  "editSaveFailedTitle": "DOCX-i ei saanud salvestada",
4285
4291
  "editSessionTakenOver": "See muutmisseanss võeti mujal üle.",
4286
4292
  "editor": {
4293
+ "accessibleName": "Dokumendiredaktor",
4287
4294
  "editing": "Redigeerimine",
4288
4295
  "editingDescription": "Redigeerige dokumenti otse",
4289
4296
  "outlineDepthAll": "Kõik tasemed",
@@ -4942,6 +4949,7 @@ const CATALOGS = {
4942
4949
  "editSaveFailedTitle": "לא ניתן לשמור את ה-DOCX",
4943
4950
  "editSessionTakenOver": "כרטיסייה, חלון או מכשיר אחר פתחו מסמך זה לעריכה, ולכן הפעלה זו שוחררה. שינויים מקומיים שלא נשמרו נשמרו — פתח מחדש את המסמך כדי להמשיך.",
4944
4951
  "editor": {
4952
+ "accessibleName": "עורך מסמכים",
4945
4953
  "editing": "עריכה",
4946
4954
  "editingDescription": "ערוך את המסמך ישירות",
4947
4955
  "outlineDepthAll": "כל הרמות",
@@ -5600,6 +5608,7 @@ const CATALOGS = {
5600
5608
  "editSaveFailedTitle": "DOCX सहेजा नहीं जा सका",
5601
5609
  "editSessionTakenOver": "किसी अन्य टैब, विंडो या डिवाइस ने इस दस्तावेज़ को संपादन के लिए खोला, इसलिए यह सत्र बंद कर दिया गया। सहेजे नहीं गए स्थानीय परिवर्तन सुरक्षित हैं — जारी रखने के लिए दस्तावेज़ फिर से खोलें।",
5602
5610
  "editor": {
5611
+ "accessibleName": "दस्तावेज़ संपादक",
5603
5612
  "editing": "संपादन",
5604
5613
  "editingDescription": "दस्तावेज़ को सीधे संपादित करें",
5605
5614
  "outlineDepthAll": "सभी स्तर",
@@ -6258,6 +6267,7 @@ const CATALOGS = {
6258
6267
  "editSaveFailedTitle": "A DOCX nem menthető",
6259
6268
  "editSessionTakenOver": "Ezt a szerkesztési munkamenetet máshol vették át.",
6260
6269
  "editor": {
6270
+ "accessibleName": "Dokumentumszerkesztő",
6261
6271
  "editing": "Szerkesztés",
6262
6272
  "editingDescription": "A dokumentum közvetlen szerkesztése",
6263
6273
  "outlineDepthAll": "Minden szint",
@@ -6916,6 +6926,7 @@ const CATALOGS = {
6916
6926
  "editSaveFailedTitle": "Nepavyko išsaugoti DOCX",
6917
6927
  "editSessionTakenOver": "Ši redagavimo sesija buvo perimta kitur.",
6918
6928
  "editor": {
6929
+ "accessibleName": "Dokumentų redaktorius",
6919
6930
  "editing": "Redagavimas",
6920
6931
  "editingDescription": "Redaguokite dokumentą tiesiogiai",
6921
6932
  "outlineDepthAll": "Visi lygiai",
@@ -7574,6 +7585,7 @@ const CATALOGS = {
7574
7585
  "editSaveFailedTitle": "Neizdevās saglabāt DOCX",
7575
7586
  "editSessionTakenOver": "Šo rediģēšanas sesiju pārņēma citur.",
7576
7587
  "editor": {
7588
+ "accessibleName": "Dokumentu redaktors",
7577
7589
  "editing": "Rediģēšana",
7578
7590
  "editingDescription": "Rediģējiet dokumentu tieši",
7579
7591
  "outlineDepthAll": "Visi līmeņi",
@@ -8232,6 +8244,7 @@ const CATALOGS = {
8232
8244
  "editSaveFailedTitle": "Nie udało się zapisać pliku DOCX",
8233
8245
  "editSessionTakenOver": "Ta sesja edycji została przejęta gdzie indziej.",
8234
8246
  "editor": {
8247
+ "accessibleName": "Edytor dokumentów",
8235
8248
  "editing": "Edytowanie",
8236
8249
  "editingDescription": "Edytuj dokument bezpośrednio",
8237
8250
  "outlineDepthAll": "Wszystkie poziomy",
@@ -8890,6 +8903,7 @@ const CATALOGS = {
8890
8903
  "editSaveFailedTitle": "Não foi possível salvar DOCX",
8891
8904
  "editSessionTakenOver": "Esta sessão de edição foi assumida em outro lugar.",
8892
8905
  "editor": {
8906
+ "accessibleName": "Editor de documentos",
8893
8907
  "editing": "Editando",
8894
8908
  "editingDescription": "Edite o documento diretamente",
8895
8909
  "outlineDepthAll": "Todos os níveis",
@@ -9548,6 +9562,7 @@ const CATALOGS = {
9548
9562
  "editSaveFailedTitle": "DOCX sa nepodarilo uložiť",
9549
9563
  "editSessionTakenOver": "Túto reláciu úprav prevzalo iné okno.",
9550
9564
  "editor": {
9565
+ "accessibleName": "Editor dokumentov",
9551
9566
  "editing": "Úpravy",
9552
9567
  "editingDescription": "Upravujte dokument priamo",
9553
9568
  "outlineDepthAll": "Všetky úrovne",
@@ -10206,6 +10221,7 @@ const CATALOGS = {
10206
10221
  "editSaveFailedTitle": "DOCX kaydedilemedi",
10207
10222
  "editSessionTakenOver": "Başka bir sekme, pencere veya cihaz bu belgeyi düzenlemek için açtığından bu oturum sonlandırıldı. Kaydedilmemiş yerel değişiklikler korunur; devam etmek için belgeyi yeniden açın.",
10208
10223
  "editor": {
10224
+ "accessibleName": "Belge düzenleyici",
10209
10225
  "editing": "Düzenleme",
10210
10226
  "editingDescription": "Belgeyi doğrudan düzenleyin",
10211
10227
  "outlineDepthAll": "Tüm düzeyler",
@@ -10864,6 +10880,7 @@ const CATALOGS = {
10864
10880
  "editSaveFailedTitle": "无法保存 DOCX",
10865
10881
  "editSessionTakenOver": "另一个标签页、窗口或设备已打开此文档进行编辑,因此本会话已释放。未保存的本地更改会保留,请重新打开文档以继续。",
10866
10882
  "editor": {
10883
+ "accessibleName": "文档编辑器",
10867
10884
  "editing": "编辑",
10868
10885
  "editingDescription": "直接编辑文档",
10869
10886
  "outlineDepthAll": "所有级别",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "DOCX se nepodařilo uložit",
336
336
  "editSessionTakenOver": "Tento dokument byl otevřen k úpravám v jiné kartě, okně nebo zařízení, takže byla tato relace ukončena. Neuložené místní změny zůstávají zachovány — otevřete dokument znovu a pokračujte.",
337
337
  "editor": {
338
+ "accessibleName": "Editor dokumentů",
338
339
  "editing": "Úpravy",
339
340
  "editingDescription": "Upravovat dokument přímo",
340
341
  "outlineDepthAll": "Vše",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "DOCX-Datei konnte nicht gespeichert werden",
336
336
  "editSessionTakenOver": "Diese Bearbeitungssitzung wurde an anderer Stelle übernommen.",
337
337
  "editor": {
338
+ "accessibleName": "Dokumenteditor",
338
339
  "editing": "Bearbeiten",
339
340
  "editingDescription": "Dokument direkt bearbeiten",
340
341
  "outlineDepthAll": "Alle Ebenen",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "Could not save DOCX",
336
336
  "editSessionTakenOver": "Another tab, window, or device opened this document for editing, so this session was released. Unsaved local changes are preserved — reopen the doc to continue.",
337
337
  "editor": {
338
+ "accessibleName": "Document editor",
338
339
  "editing": "Editing",
339
340
  "editingDescription": "Edit the document directly",
340
341
  "outlineDepthAll": "All levels",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "No se pudo guardar el DOCX",
336
336
  "editSessionTakenOver": "Esta sesión de edición se tomó en otro lugar.",
337
337
  "editor": {
338
+ "accessibleName": "Editor de documentos",
338
339
  "editing": "Edición",
339
340
  "editingDescription": "Editar el documento directamente",
340
341
  "outlineDepthAll": "Todos los niveles",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "DOCX-i ei saanud salvestada",
336
336
  "editSessionTakenOver": "See muutmisseanss võeti mujal üle.",
337
337
  "editor": {
338
+ "accessibleName": "Dokumendiredaktor",
338
339
  "editing": "Redigeerimine",
339
340
  "editingDescription": "Redigeerige dokumenti otse",
340
341
  "outlineDepthAll": "Kõik tasemed",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "Impossible d’enregistrer le DOCX",
336
336
  "editSessionTakenOver": "Cette session de modification a été reprise ailleurs.",
337
337
  "editor": {
338
+ "accessibleName": "Éditeur de documents",
338
339
  "editing": "Modification",
339
340
  "editingDescription": "Modifier directement le document",
340
341
  "outlineDepthAll": "Tous les niveaux",
@@ -335,6 +335,7 @@ const messages = { "folio": {
335
335
  "editSaveFailedTitle": "לא ניתן לשמור את ה-DOCX",
336
336
  "editSessionTakenOver": "כרטיסייה, חלון או מכשיר אחר פתחו מסמך זה לעריכה, ולכן הפעלה זו שוחררה. שינויים מקומיים שלא נשמרו נשמרו — פתח מחדש את המסמך כדי להמשיך.",
337
337
  "editor": {
338
+ "accessibleName": "עורך מסמכים",
338
339
  "editing": "עריכה",
339
340
  "editingDescription": "ערוך את המסמך ישירות",
340
341
  "outlineDepthAll": "כל הרמות",