oasis-editor 0.0.121 → 0.0.122

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 (66) hide show
  1. package/dist/{OasisEditorApp-XzK_1rLE.js → OasisEditorApp-Dwc5ee9G.js} +1993 -918
  2. package/dist/adapters/vue.d.ts +3 -3
  3. package/dist/app/controllers/EditorCommandsController.d.ts +3 -1
  4. package/dist/app/controllers/tableOpsCellSpanCommands.d.ts +2 -1
  5. package/dist/app/controllers/tableOpsGuards.d.ts +2 -1
  6. package/dist/app/controllers/tableOpsRowColumnCommands.d.ts +2 -1
  7. package/dist/app/controllers/tableOpsSelectionAwareCommands.d.ts +2 -1
  8. package/dist/app/controllers/tableOpsSelectionRanges.d.ts +2 -1
  9. package/dist/app/controllers/useEditorClipboard.d.ts +3 -1
  10. package/dist/app/controllers/useEditorDocumentIO.d.ts +2 -1
  11. package/dist/app/controllers/useEditorHistoryActions.d.ts +3 -1
  12. package/dist/app/controllers/useEditorImageOperations.d.ts +7 -7
  13. package/dist/app/controllers/useEditorKeyboard.d.ts +2 -1
  14. package/dist/app/controllers/useEditorLayout.d.ts +2 -1
  15. package/dist/app/controllers/useEditorNavigation.d.ts +3 -1
  16. package/dist/app/controllers/useEditorRevision.d.ts +3 -1
  17. package/dist/app/controllers/useEditorStyle.d.ts +2 -1
  18. package/dist/app/controllers/useEditorSurfaceEvents.d.ts +3 -1
  19. package/dist/app/controllers/useEditorTableDrag.d.ts +7 -0
  20. package/dist/app/controllers/useEditorTableOperations.d.ts +3 -1
  21. package/dist/app/controllers/useEditorTextBoxOperations.d.ts +3 -1
  22. package/dist/app/controllers/useEditorTextDrag.d.ts +3 -1
  23. package/dist/app/controllers/useEditorTextInput.d.ts +3 -1
  24. package/dist/assets/{importDocxWorker-nIS-zjkj.js → importDocxWorker-A73eR_fM.js} +1 -1
  25. package/dist/core/model/types/styles.d.ts +2 -0
  26. package/dist/core/textStyle/textStyleKeys.d.ts +1 -1
  27. package/dist/i18n/locales/en.d.ts +42 -0
  28. package/dist/i18n/locales/pt-BR.d.ts +42 -0
  29. package/dist/{index-DF_Uf74V.js → index-YMlNF1Ya.js} +757 -466
  30. package/dist/oasis-editor.css +1 -1
  31. package/dist/oasis-editor.js +71 -71
  32. package/dist/oasis-editor.umd.cjs +4 -4
  33. package/dist/ui/OasisEditorContainer.d.ts +2 -1
  34. package/dist/ui/app/EditorDialogsLayer.d.ts +1 -0
  35. package/dist/ui/app/createAppCommandsController.d.ts +2 -1
  36. package/dist/ui/app/createEditorChrome.d.ts +3 -1
  37. package/dist/ui/app/createEditorCommandRuntime.d.ts +2 -1
  38. package/dist/ui/app/createEditorDocumentRuntime.d.ts +2 -1
  39. package/dist/ui/app/createEditorInteractionRuntime.d.ts +3 -5
  40. package/dist/ui/app/useEditorAppState.d.ts +2 -1
  41. package/dist/ui/app/useEditorContextMenuClipboard.d.ts +2 -1
  42. package/dist/ui/app/useEditorDialogs.d.ts +18 -16
  43. package/dist/ui/app/useEditorFocus.d.ts +7 -4
  44. package/dist/ui/app/useEditorFontOptions.d.ts +3 -1
  45. package/dist/ui/app/useEditorTransactions.d.ts +3 -1
  46. package/dist/ui/app/useParagraphDialogBridge.d.ts +1 -0
  47. package/dist/ui/components/CaretOverlay.d.ts +3 -1
  48. package/dist/ui/components/Dialogs/FontDialog.d.ts +2 -1
  49. package/dist/ui/components/Dialogs/ImageAltDialog.d.ts +3 -1
  50. package/dist/ui/components/Dialogs/ImageCaptionDialog.d.ts +3 -1
  51. package/dist/ui/components/Dialogs/LinkDialog.d.ts +3 -1
  52. package/dist/ui/components/Dialogs/ParagraphDialog.d.ts +23 -1
  53. package/dist/ui/components/Dialogs/TabStopsDialog.d.ts +10 -0
  54. package/dist/ui/components/Dialogs/TablePropertiesDialog.d.ts +2 -1
  55. package/dist/ui/components/Dialogs/font-dialog/AdvancedFontTab.d.ts +2 -1
  56. package/dist/ui/components/Dialogs/font-dialog/FontPreview.d.ts +3 -1
  57. package/dist/ui/components/Dialogs/table-properties/AltTextTabPanel.d.ts +2 -1
  58. package/dist/ui/components/Dialogs/table-properties/ColumnTabPanel.d.ts +2 -1
  59. package/dist/ui/components/Dialogs/table-properties/RowTabPanel.d.ts +2 -1
  60. package/dist/ui/components/PageBreak.d.ts +3 -1
  61. package/dist/ui/components/RevisionOverlay.d.ts +2 -1
  62. package/dist/ui/components/Toolbar/groups/MetricGroup.d.ts +2 -1
  63. package/dist/ui/shells/BalloonShell.d.ts +2 -1
  64. package/dist/ui/toolbarStyleState.d.ts +9 -2
  65. package/dist/vue.d.ts +3 -3
  66. package/package.json +1 -1
@@ -1595,6 +1595,48 @@ const en = {
1595
1595
  "paragraph.borderSideLeft": "Left",
1596
1596
  "paragraph.preview": "Preview",
1597
1597
  "paragraph.previewText": "The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.",
1598
+ "paragraph.tabIndentsSpacing": "Indents and spacing",
1599
+ "paragraph.tabLineBreaks": "Line and page breaks",
1600
+ "paragraph.groupGeneral": "General",
1601
+ "paragraph.groupIndent": "Indentation",
1602
+ "paragraph.groupSpacing": "Spacing",
1603
+ "paragraph.groupBorders": "Borders and shading",
1604
+ "paragraph.groupPagination": "Pagination",
1605
+ "paragraph.outlineLevelLabel": "Outline level",
1606
+ "paragraph.outlineBodyText": "Body Text",
1607
+ "paragraph.outlineLevelN": "Level {0}",
1608
+ "paragraph.mirrorIndentsLabel": "Mirror indents",
1609
+ "paragraph.lineSpacingSingle": "Single",
1610
+ "paragraph.lineSpacingOnePointFive": "1.5 lines",
1611
+ "paragraph.lineSpacingDouble": "Double",
1612
+ "paragraph.lineSpacingMultiple": "Multiple",
1613
+ "paragraph.lineSpacingAtLeast": "At least",
1614
+ "paragraph.lineSpacingExact": "Exactly",
1615
+ "paragraph.lineSpacingAt": "At",
1616
+ "paragraph.contextualSpacingLabel": "Don't add space between paragraphs of the same style",
1617
+ "paragraph.widowControlLabel": "Widow/Orphan control",
1618
+ "paragraph.keepWithNextLabel": "Keep with next",
1619
+ "paragraph.keepLinesTogetherLabel": "Keep lines together",
1620
+ "paragraph.pageBreakBeforeLabel": "Page break before",
1621
+ "paragraph.tabsButton": "Tabs…",
1622
+ "paragraph.setAsDefault": "Set as Default",
1623
+ "paragraph.tabsTitle": "Tabs",
1624
+ "paragraph.tabsPosition": "Position (pt)",
1625
+ "paragraph.tabsAlignment": "Alignment",
1626
+ "paragraph.tabsLeader": "Leader",
1627
+ "paragraph.tabsAdd": "Add",
1628
+ "paragraph.tabsRemove": "Remove",
1629
+ "paragraph.tabsClearAll": "Clear all",
1630
+ "paragraph.tabsEmpty": "No tab stops defined.",
1631
+ "paragraph.tabAlignLeft": "Left",
1632
+ "paragraph.tabAlignCenter": "Center",
1633
+ "paragraph.tabAlignRight": "Right",
1634
+ "paragraph.tabAlignDecimal": "Decimal",
1635
+ "paragraph.tabAlignBar": "Bar",
1636
+ "paragraph.tabLeaderNone": "(none)",
1637
+ "paragraph.tabLeaderDot": "Dots",
1638
+ "paragraph.tabLeaderHyphen": "Hyphens",
1639
+ "paragraph.tabLeaderUnderscore": "Underline",
1598
1640
  // Section
1599
1641
  "section.orient": "Orient",
1600
1642
  "section.orientation": "Orientation",
@@ -2081,6 +2123,48 @@ const ptBR = {
2081
2123
  "paragraph.borderSideLeft": "Esquerda",
2082
2124
  "paragraph.preview": "Pré-visualização",
2083
2125
  "paragraph.previewText": "Texto de Exemplo Texto de Exemplo Texto de Exemplo Texto de Exemplo Texto de Exemplo Texto de Exemplo.",
2126
+ "paragraph.tabIndentsSpacing": "Recuos e espaçamento",
2127
+ "paragraph.tabLineBreaks": "Quebras de linha e de página",
2128
+ "paragraph.groupGeneral": "Geral",
2129
+ "paragraph.groupIndent": "Recuo",
2130
+ "paragraph.groupSpacing": "Espaçamento",
2131
+ "paragraph.groupBorders": "Bordas e sombreamento",
2132
+ "paragraph.groupPagination": "Paginação",
2133
+ "paragraph.outlineLevelLabel": "Nível do tópico",
2134
+ "paragraph.outlineBodyText": "Corpo de Texto",
2135
+ "paragraph.outlineLevelN": "Nível {0}",
2136
+ "paragraph.mirrorIndentsLabel": "Espelhar recuos",
2137
+ "paragraph.lineSpacingSingle": "Simples",
2138
+ "paragraph.lineSpacingOnePointFive": "1,5 linhas",
2139
+ "paragraph.lineSpacingDouble": "Duplo",
2140
+ "paragraph.lineSpacingMultiple": "Múltiplos",
2141
+ "paragraph.lineSpacingAtLeast": "Pelo menos",
2142
+ "paragraph.lineSpacingExact": "Exatamente",
2143
+ "paragraph.lineSpacingAt": "Em",
2144
+ "paragraph.contextualSpacingLabel": "Não adicionar espaço entre parágrafos do mesmo estilo",
2145
+ "paragraph.widowControlLabel": "Controle de linhas órfãs/viúvas",
2146
+ "paragraph.keepWithNextLabel": "Manter com o próximo",
2147
+ "paragraph.keepLinesTogetherLabel": "Manter linhas juntas",
2148
+ "paragraph.pageBreakBeforeLabel": "Quebrar página antes",
2149
+ "paragraph.tabsButton": "Tabulação…",
2150
+ "paragraph.setAsDefault": "Definir como padrão",
2151
+ "paragraph.tabsTitle": "Tabulação",
2152
+ "paragraph.tabsPosition": "Posição (pt)",
2153
+ "paragraph.tabsAlignment": "Alinhamento",
2154
+ "paragraph.tabsLeader": "Preenchimento",
2155
+ "paragraph.tabsAdd": "Adicionar",
2156
+ "paragraph.tabsRemove": "Remover",
2157
+ "paragraph.tabsClearAll": "Limpar tudo",
2158
+ "paragraph.tabsEmpty": "Nenhuma tabulação definida.",
2159
+ "paragraph.tabAlignLeft": "Esquerda",
2160
+ "paragraph.tabAlignCenter": "Centro",
2161
+ "paragraph.tabAlignRight": "Direita",
2162
+ "paragraph.tabAlignDecimal": "Decimal",
2163
+ "paragraph.tabAlignBar": "Barra",
2164
+ "paragraph.tabLeaderNone": "(nenhum)",
2165
+ "paragraph.tabLeaderDot": "Pontos",
2166
+ "paragraph.tabLeaderHyphen": "Hifens",
2167
+ "paragraph.tabLeaderUnderscore": "Sublinhado",
2084
2168
  // Section
2085
2169
  "section.orient": "Orient",
2086
2170
  "section.orientation": "Orientação",
@@ -2539,7 +2623,7 @@ function OasisEditorAppLazy(props = {}) {
2539
2623
  onCleanup(() => {
2540
2624
  cancelled = true;
2541
2625
  });
2542
- import("./OasisEditorApp-XzK_1rLE.js").then((m) => {
2626
+ import("./OasisEditorApp-Dwc5ee9G.js").then((m) => {
2543
2627
  cancelled = true;
2544
2628
  setProgress(1);
2545
2629
  setTimeout(() => setApp(() => m.OasisEditorApp), 180);
@@ -3269,6 +3353,7 @@ const DEFAULT_PARAGRAPH_STYLE = asRequired({
3269
3353
  indentRight: 0,
3270
3354
  indentFirstLine: 0,
3271
3355
  indentHanging: 0,
3356
+ mirrorIndents: false,
3272
3357
  shading: null,
3273
3358
  borderTop: null,
3274
3359
  borderRight: null,
@@ -4162,7 +4247,9 @@ function isSelectionCollapsed(selection) {
4162
4247
  function normalizeSelection(state, providedParagraphs) {
4163
4248
  const paragraphs = providedParagraphs ?? getParagraphs(state);
4164
4249
  const indexById = new Map(
4165
- paragraphs.map((paragraph, index) => [paragraph.id, index])
4250
+ paragraphs.map(
4251
+ (paragraph, index) => [paragraph.id, index]
4252
+ )
4166
4253
  );
4167
4254
  const rawAnchorIndex = indexById.get(state.selection.anchor.paragraphId) ?? 0;
4168
4255
  const rawFocusIndex = indexById.get(state.selection.focus.paragraphId) ?? 0;
@@ -4235,7 +4322,12 @@ function createEditorParagraphFromRuns(runs) {
4235
4322
  id: createEditorNodeId("paragraph"),
4236
4323
  type: "paragraph",
4237
4324
  runs: runs.length > 0 ? runs.map(
4238
- (run) => createEditorStyledRun(run.text, run.styles, run.image, run.textBox)
4325
+ (run) => createEditorStyledRun(
4326
+ run.text,
4327
+ run.styles,
4328
+ run.image,
4329
+ run.textBox
4330
+ )
4239
4331
  ) : [createEditorRun("")]
4240
4332
  };
4241
4333
  return paragraph;
@@ -4490,7 +4582,10 @@ function getDocumentWordCount(document2) {
4490
4582
  const paragraphs = getDocumentParagraphsCanonical(document2);
4491
4583
  let totalWords = 0;
4492
4584
  for (const paragraph of paragraphs) {
4493
- const text = paragraph.runs.reduce((sum, run) => sum + run.text, "");
4585
+ const text = paragraph.runs.reduce(
4586
+ (sum, run) => sum + run.text,
4587
+ ""
4588
+ );
4494
4589
  if (!text.trim()) continue;
4495
4590
  const words = text.split(/[\s\p{P}]+/u).filter((word) => word.length > 0);
4496
4591
  totalWords += words.length;
@@ -4840,7 +4935,9 @@ class PluginUiRegistry {
4840
4935
  this.emit();
4841
4936
  }
4842
4937
  unregisterFloatingAction(id) {
4843
- const next = this.floatingActions.filter((action) => action.id !== id);
4938
+ const next = this.floatingActions.filter(
4939
+ (action) => action.id !== id
4940
+ );
4844
4941
  if (next.length === this.floatingActions.length) {
4845
4942
  return;
4846
4943
  }
@@ -5518,7 +5615,9 @@ function getCaretRectFromSnapshot(snapshot, position2, paragraphOffset) {
5518
5615
  if (!line || line.slots.length === 0) {
5519
5616
  return rectFromBox(entry.left, entry.top, 1, Math.max(entry.height, 16));
5520
5617
  }
5521
- const slot = line.slots.find((candidate) => candidate.offset === paragraphOffset) ?? line.slots.reduce(
5618
+ const slot = line.slots.find(
5619
+ (candidate) => candidate.offset === paragraphOffset
5620
+ ) ?? line.slots.reduce(
5522
5621
  (best, candidate) => Math.abs(candidate.offset - paragraphOffset) < Math.abs(best.offset - paragraphOffset) ? candidate : best,
5523
5622
  line.slots[0]
5524
5623
  );
@@ -7987,7 +8086,9 @@ function buildTableCellLayout(table) {
7987
8086
  }
7988
8087
  if (((_c = table.style) == null ? void 0 : _c.bidiVisual) && entries2.length > 0) {
7989
8088
  const visualColumnCount = Math.max(
7990
- ...entries2.map((entry) => entry.visualColumnIndex + entry.colSpan)
8089
+ ...entries2.map(
8090
+ (entry) => entry.visualColumnIndex + entry.colSpan
8091
+ )
7991
8092
  );
7992
8093
  for (const entry of entries2) {
7993
8094
  entry.visualColumnIndex = visualColumnCount - entry.visualColumnIndex - entry.colSpan;
@@ -11698,7 +11799,9 @@ const SFNT_HEADER_SIZE = 12;
11698
11799
  const SFNT_ENTRY_SIZE = 16;
11699
11800
  const CHECKSUM_ADJUSTMENT_OFFSET = 8;
11700
11801
  function buildSfnt(flavor, tableData) {
11701
- const entries2 = Array.from(tableData.entries()).sort((a, b) => a[0] - b[0]);
11802
+ const entries2 = Array.from(tableData.entries()).sort(
11803
+ (a, b) => a[0] - b[0]
11804
+ );
11702
11805
  const numTables = entries2.length;
11703
11806
  let offset = SFNT_HEADER_SIZE + SFNT_ENTRY_SIZE * numTables;
11704
11807
  const records = [];
@@ -12269,7 +12372,9 @@ function createDefaultTransformers() {
12269
12372
  }
12270
12373
  function rebuildFont(header, transformed, deps) {
12271
12374
  const tableMap = /* @__PURE__ */ new Map();
12272
- const tablesByTag = new Map(header.tables.map((t) => [t.tag, t]));
12375
+ const tablesByTag = new Map(
12376
+ header.tables.map((t) => [t.tag, t])
12377
+ );
12273
12378
  const state = { glyfInfo: null, numHMetrics: 0 };
12274
12379
  const context2 = { header, tableMap, tablesByTag, state };
12275
12380
  const transformers = deps.transformers;
@@ -13010,7 +13115,9 @@ function readSignedFixed16_16(reader, offset) {
13010
13115
  return signed + fraction / 65536;
13011
13116
  }
13012
13117
  function readAscii(bytes) {
13013
- return Array.from(bytes, (byte) => String.fromCharCode(byte)).join("");
13118
+ return Array.from(bytes, (byte) => String.fromCharCode(byte)).join(
13119
+ ""
13120
+ );
13014
13121
  }
13015
13122
  function readUtf16Be(bytes) {
13016
13123
  const units = [];
@@ -13187,9 +13294,10 @@ function setPreciseFontModeEnabled(value) {
13187
13294
  }
13188
13295
  function setAvailableLocalFontFamilies(families) {
13189
13296
  availableLocalFamilies = new Set(
13190
- Array.from(families, (family) => family.trim().toLowerCase()).filter(
13191
- Boolean
13192
- )
13297
+ Array.from(
13298
+ families,
13299
+ (family) => family.trim().toLowerCase()
13300
+ ).filter(Boolean)
13193
13301
  );
13194
13302
  setVersion((current) => current + 1);
13195
13303
  }
@@ -13257,7 +13365,11 @@ function registerBrowserFontFace(family, style2, bytes) {
13257
13365
  });
13258
13366
  document.fonts.add(fontFace);
13259
13367
  return fontFace.load().then(
13260
- () => ({ family, style: style2, status: "loaded" }),
13368
+ () => ({
13369
+ family,
13370
+ style: style2,
13371
+ status: "loaded"
13372
+ }),
13261
13373
  (error) => ({
13262
13374
  family,
13263
13375
  style: style2,
@@ -13359,13 +13471,17 @@ async function preloadLayoutFonts(families) {
13359
13471
  collect(["Roboto"], ROBOTO_FONT_FILES);
13360
13472
  }
13361
13473
  fontLogger$1.info("preload:start", {
13362
- requestedFamilies: requestedFamilies == null ? void 0 : requestedFamilies.map((family) => family ?? null),
13474
+ requestedFamilies: requestedFamilies == null ? void 0 : requestedFamilies.map(
13475
+ (family) => family ?? null
13476
+ ),
13363
13477
  faceCount: fontFaces.size,
13364
- faces: Array.from(fontFaces.values()).map((entry) => ({
13365
- fileName: entry.fileName,
13366
- style: entry.style,
13367
- familyNames: Array.from(entry.familyNames)
13368
- }))
13478
+ faces: Array.from(fontFaces.values()).map(
13479
+ (entry) => ({
13480
+ fileName: entry.fileName,
13481
+ style: entry.style,
13482
+ familyNames: Array.from(entry.familyNames)
13483
+ })
13484
+ )
13369
13485
  });
13370
13486
  const results = await Promise.all(
13371
13487
  Array.from(fontFaces.values(), async (entry) => {
@@ -13375,12 +13491,14 @@ async function preloadLayoutFonts(families) {
13375
13491
  fileName: entry.fileName,
13376
13492
  style: entry.style,
13377
13493
  bytes: 0,
13378
- registrations: Array.from(entry.familyNames).map((family) => ({
13379
- family,
13380
- style: entry.style,
13381
- status: "failed",
13382
- error: "font asset returned no bytes"
13383
- }))
13494
+ registrations: Array.from(entry.familyNames).map(
13495
+ (family) => ({
13496
+ family,
13497
+ style: entry.style,
13498
+ status: "failed",
13499
+ error: "font asset returned no bytes"
13500
+ })
13501
+ )
13384
13502
  };
13385
13503
  }
13386
13504
  sharedProvider.ingest(entry.fileName, bytes);
@@ -13569,11 +13687,13 @@ function measureCharacterWidth(char, styles, fallbackFontSize) {
13569
13687
  function buildParagraphFragments(paragraph) {
13570
13688
  let paragraphOffset = 0;
13571
13689
  return paragraph.runs.map((run) => {
13572
- const chars2 = Array.from(run.text).map((char, index) => ({
13573
- char,
13574
- paragraphOffset: paragraphOffset + index,
13575
- runOffset: index
13576
- }));
13690
+ const chars2 = Array.from(run.text).map(
13691
+ (char, index) => ({
13692
+ char,
13693
+ paragraphOffset: paragraphOffset + index,
13694
+ runOffset: index
13695
+ })
13696
+ );
13577
13697
  const runImage = getRunImage(run);
13578
13698
  const runTextBox = getRunTextBox(run);
13579
13699
  const fragment = {
@@ -13595,7 +13715,11 @@ function buildParagraphFragments(paragraph) {
13595
13715
  function buildMeasuredChars(paragraph, fragments, styles) {
13596
13716
  var _a;
13597
13717
  const measured = [];
13598
- const runsById = new Map(paragraph.runs.map((run) => [run.id, run]));
13718
+ const runsById = new Map(
13719
+ paragraph.runs.map(
13720
+ (run) => [run.id, run]
13721
+ )
13722
+ );
13599
13723
  const fallbackFontSize = Math.max(
13600
13724
  DEFAULT_FONT_SIZE_PX,
13601
13725
  ...paragraph.runs.map(
@@ -13692,7 +13816,9 @@ function getListTextFirstLineInset(paragraph, paragraphStyle, baseInset) {
13692
13816
  if (suffix !== "tab") {
13693
13817
  return baseInset;
13694
13818
  }
13695
- const nextTabStop = (paragraphStyle.tabs ?? []).filter((tab) => tab.type !== "clear" && Number.isFinite(tab.position)).map((tab) => tab.position * PX_PER_POINT).filter((positionPx) => positionPx > numberStart + 0.01).sort((a, b) => a - b)[0];
13819
+ const nextTabStop = (paragraphStyle.tabs ?? []).filter(
13820
+ (tab) => tab.type !== "clear" && Number.isFinite(tab.position)
13821
+ ).map((tab) => tab.position * PX_PER_POINT).filter((positionPx) => positionPx > numberStart + 0.01).sort((a, b) => a - b)[0];
13696
13822
  return nextTabStop !== void 0 ? Math.max(baseInset, nextTabStop) : baseInset;
13697
13823
  }
13698
13824
  function getListLabelInset(paragraph, styles) {
@@ -13837,7 +13963,9 @@ function resolveTabAdvancePx(paragraph, styles, defaultTabStop, lineStartInset,
13837
13963
  );
13838
13964
  const currentLeft = lineStartInset + lineWidth;
13839
13965
  const tabOrigin = 0;
13840
- const explicitStops = (paragraphStyle.tabs ?? []).filter((tab) => tab.type !== "clear" && Number.isFinite(tab.position)).map((tab) => ({
13966
+ const explicitStops = (paragraphStyle.tabs ?? []).filter(
13967
+ (tab) => tab.type !== "clear" && Number.isFinite(tab.position)
13968
+ ).map((tab) => ({
13841
13969
  ...tab,
13842
13970
  positionPx: tabOrigin + tab.position * PX_PER_POINT
13843
13971
  })).filter((tab) => tab.positionPx > currentLeft + 0.01).sort((a, b) => a.positionPx - b.positionPx);
@@ -13894,10 +14022,12 @@ function shiftLine(line, deltaX) {
13894
14022
  }
13895
14023
  return {
13896
14024
  ...line,
13897
- slots: line.slots.map((slot) => ({
13898
- ...slot,
13899
- left: slot.left + deltaX
13900
- }))
14025
+ slots: line.slots.map(
14026
+ (slot) => ({
14027
+ ...slot,
14028
+ left: slot.left + deltaX
14029
+ })
14030
+ )
13901
14031
  };
13902
14032
  }
13903
14033
  function lastContentOffset(line, charByOffset) {
@@ -13944,16 +14074,18 @@ function justifyLineBySpaces(line, extraSpace, charByOffset) {
13944
14074
  let shift = 0;
13945
14075
  return {
13946
14076
  ...line,
13947
- slots: line.slots.map((slot) => {
13948
- while (spaceIndex < spaceOffsets.length && slot.offset > spaceOffsets[spaceIndex]) {
13949
- shift += gap;
13950
- spaceIndex += 1;
14077
+ slots: line.slots.map(
14078
+ (slot) => {
14079
+ while (spaceIndex < spaceOffsets.length && slot.offset > spaceOffsets[spaceIndex]) {
14080
+ shift += gap;
14081
+ spaceIndex += 1;
14082
+ }
14083
+ return {
14084
+ ...slot,
14085
+ left: slot.left + shift
14086
+ };
13951
14087
  }
13952
- return {
13953
- ...slot,
13954
- left: slot.left + shift
13955
- };
13956
- })
14088
+ )
13957
14089
  };
13958
14090
  }
13959
14091
  function applyParagraphAlignment(paragraph, styles, contentWidth, lines, lineHardBreaks, charByOffset) {
@@ -14353,7 +14485,9 @@ function composeMeasuredParagraphLines(options) {
14353
14485
  const measuredChars = buildMeasuredChars(paragraph, fragments, styles);
14354
14486
  const tokens = tokenizeMeasuredChars(measuredChars);
14355
14487
  const charByOffset = new Map(
14356
- measuredChars.map((char) => [char.offset, char.char])
14488
+ measuredChars.map(
14489
+ (char) => [char.offset, char.char]
14490
+ )
14357
14491
  );
14358
14492
  const fallbackFontSize = Math.max(
14359
14493
  DEFAULT_FONT_SIZE_PX,
@@ -14557,10 +14691,12 @@ function composeMeasuredParagraphLines(options) {
14557
14691
  })) {
14558
14692
  return null;
14559
14693
  }
14560
- const langTag = (_c = (_b = (_a = chars2.find((char) => {
14561
- var _a2, _b2;
14562
- return (_b2 = (_a2 = char.style) == null ? void 0 : _a2.language) == null ? void 0 : _b2.value;
14563
- })) == null ? void 0 : _a.style) == null ? void 0 : _b.language) == null ? void 0 : _c.value;
14694
+ const langTag = (_c = (_b = (_a = chars2.find(
14695
+ (char) => {
14696
+ var _a2, _b2;
14697
+ return (_b2 = (_a2 = char.style) == null ? void 0 : _a2.language) == null ? void 0 : _b2.value;
14698
+ }
14699
+ )) == null ? void 0 : _a.style) == null ? void 0 : _b.language) == null ? void 0 : _c.value;
14564
14700
  const points = findHyphenationPoints(
14565
14701
  word,
14566
14702
  resolveHyphenationLanguage(langTag ?? void 0)
@@ -14706,10 +14842,12 @@ function probeLocalFontFamilies() {
14706
14842
  const fonts = await queryLocalFonts();
14707
14843
  const families = Array.from(
14708
14844
  new Set(
14709
- fonts.map((font) => {
14710
- var _a, _b;
14711
- return ((_a = font.family) == null ? void 0 : _a.trim()) || ((_b = font.fullName) == null ? void 0 : _b.trim()) || "";
14712
- }).filter(Boolean)
14845
+ fonts.map(
14846
+ (font) => {
14847
+ var _a, _b;
14848
+ return ((_a = font.family) == null ? void 0 : _a.trim()) || ((_b = font.fullName) == null ? void 0 : _b.trim()) || "";
14849
+ }
14850
+ ).filter(Boolean)
14713
14851
  )
14714
14852
  ).sort((a, b) => a.localeCompare(b));
14715
14853
  cachedFamilies = families;
@@ -14753,7 +14891,10 @@ async function loadPreciseFontProgramsForFamilies(families) {
14753
14891
  const queryLocalFonts = getQueryLocalFonts();
14754
14892
  if (!queryLocalFonts) return false;
14755
14893
  const wanted = new Set(
14756
- Array.from(families, (family) => normalizeFamily(family).toLowerCase())
14894
+ Array.from(
14895
+ families,
14896
+ (family) => normalizeFamily(family).toLowerCase()
14897
+ )
14757
14898
  );
14758
14899
  wanted.delete("helvetica");
14759
14900
  if (wanted.size === 0) return false;
@@ -14790,14 +14931,18 @@ async function loadPreciseFontProgramsForFamilies(families) {
14790
14931
  }
14791
14932
  }
14792
14933
  const localFamilies = Array.from(
14793
- new Set(fonts.map((font) => (font.family ?? "").trim()).filter(Boolean))
14934
+ new Set(
14935
+ fonts.map((font) => (font.family ?? "").trim()).filter(Boolean)
14936
+ )
14794
14937
  );
14795
14938
  const unmatched = Array.from(wanted).filter(
14796
14939
  (token) => !localFamilies.some((name) => name.toLowerCase() === token)
14797
14940
  );
14798
14941
  const nearMatches = unmatched.flatMap((token) => {
14799
14942
  const stem = token.split(" ")[0];
14800
- return localFamilies.filter((name) => name.toLowerCase().includes(stem));
14943
+ return localFamilies.filter(
14944
+ (name) => name.toLowerCase().includes(stem)
14945
+ );
14801
14946
  });
14802
14947
  fontLogger.info("precise:load", {
14803
14948
  wanted: Array.from(wanted),
@@ -15384,40 +15529,44 @@ function projectParagraphLayout(paragraph, pageIndex, totalPages, styles, conten
15384
15529
  "layout:projectParagraphLayout",
15385
15530
  () => {
15386
15531
  let paragraphOffset = 0;
15387
- const fragments = paragraph.runs.map((run) => {
15388
- let resolvedText = run.text;
15389
- const field = getRunField(run);
15390
- if (field) {
15391
- if (field.type === "PAGE") {
15392
- resolvedText = typeof pageIndex === "number" ? String(pageIndex + 1) : "1";
15393
- } else if (field.type === "NUMPAGES") {
15394
- resolvedText = typeof totalPages === "number" ? String(totalPages) : "1";
15532
+ const fragments = paragraph.runs.map(
15533
+ (run) => {
15534
+ let resolvedText = run.text;
15535
+ const field = getRunField(run);
15536
+ if (field) {
15537
+ if (field.type === "PAGE") {
15538
+ resolvedText = typeof pageIndex === "number" ? String(pageIndex + 1) : "1";
15539
+ } else if (field.type === "NUMPAGES") {
15540
+ resolvedText = typeof totalPages === "number" ? String(totalPages) : "1";
15541
+ }
15395
15542
  }
15543
+ const chars2 = Array.from(
15544
+ resolvedText
15545
+ ).map(
15546
+ (char, index) => ({
15547
+ char,
15548
+ paragraphOffset: paragraphOffset + index,
15549
+ runOffset: index
15550
+ })
15551
+ );
15552
+ const runImage = getRunImage(run);
15553
+ const runTextBox = getRunTextBox(run);
15554
+ const fragment = {
15555
+ paragraphId: paragraph.id,
15556
+ runId: run.id,
15557
+ startOffset: paragraphOffset,
15558
+ endOffset: paragraphOffset + resolvedText.length,
15559
+ text: resolvedText,
15560
+ styles: run.styles ? { ...run.styles } : void 0,
15561
+ image: runImage ? { ...runImage } : void 0,
15562
+ textBox: runTextBox ? { ...runTextBox } : void 0,
15563
+ revision: run.revision ? { ...run.revision } : void 0,
15564
+ chars: chars2
15565
+ };
15566
+ paragraphOffset += resolvedText.length;
15567
+ return fragment;
15396
15568
  }
15397
- const chars2 = Array.from(resolvedText).map(
15398
- (char, index) => ({
15399
- char,
15400
- paragraphOffset: paragraphOffset + index,
15401
- runOffset: index
15402
- })
15403
- );
15404
- const runImage = getRunImage(run);
15405
- const runTextBox = getRunTextBox(run);
15406
- const fragment = {
15407
- paragraphId: paragraph.id,
15408
- runId: run.id,
15409
- startOffset: paragraphOffset,
15410
- endOffset: paragraphOffset + resolvedText.length,
15411
- text: resolvedText,
15412
- styles: run.styles ? { ...run.styles } : void 0,
15413
- image: runImage ? { ...runImage } : void 0,
15414
- textBox: runTextBox ? { ...runTextBox } : void 0,
15415
- revision: run.revision ? { ...run.revision } : void 0,
15416
- chars: chars2
15417
- };
15418
- paragraphOffset += resolvedText.length;
15419
- return fragment;
15420
- });
15569
+ );
15421
15570
  const fontSize = estimateParagraphFontSize(paragraph, styles);
15422
15571
  const lineHeight = estimateParagraphLineHeight(
15423
15572
  paragraph,
@@ -15542,13 +15691,15 @@ function applyMeasuredLineGeometry(projected, measured) {
15542
15691
  endOffset: line.endOffset,
15543
15692
  top: line.top,
15544
15693
  height: line.height,
15545
- slots: line.slots.map((slot) => ({
15546
- paragraphId: projected.paragraphId,
15547
- offset: slot.offset,
15548
- left: slot.left,
15549
- top: slot.top,
15550
- height: slot.height
15551
- })),
15694
+ slots: line.slots.map(
15695
+ (slot) => ({
15696
+ paragraphId: projected.paragraphId,
15697
+ offset: slot.offset,
15698
+ left: slot.left,
15699
+ top: slot.top,
15700
+ height: slot.height
15701
+ })
15702
+ ),
15552
15703
  fragments: projected.fragments.map(
15553
15704
  (fragment) => sliceFragmentToRange(fragment, line.startOffset, line.endOffset)
15554
15705
  ).filter(
@@ -15663,17 +15814,21 @@ function createParagraphSegmentLayout(layout, startLineIndex, endLineIndexExclus
15663
15814
  return {
15664
15815
  paragraphId: layout.paragraphId,
15665
15816
  text: layout.text.slice(startOffset, endOffset),
15666
- fragments: layout.fragments.map((fragment) => sliceFragmentToRange(fragment, startOffset, endOffset)).filter(
15817
+ fragments: layout.fragments.map(
15818
+ (fragment) => sliceFragmentToRange(fragment, startOffset, endOffset)
15819
+ ).filter(
15667
15820
  (fragment) => fragment !== null
15668
15821
  ),
15669
15822
  lines: segmentLines.map((line, index) => ({
15670
15823
  ...line,
15671
15824
  index,
15672
15825
  top: line.top - topOffset,
15673
- slots: line.slots.map((slot) => ({
15674
- ...slot,
15675
- top: slot.top - topOffset
15676
- }))
15826
+ slots: line.slots.map(
15827
+ (slot) => ({
15828
+ ...slot,
15829
+ top: slot.top - topOffset
15830
+ })
15831
+ )
15677
15832
  })),
15678
15833
  startOffset,
15679
15834
  endOffset,
@@ -15720,7 +15875,10 @@ function estimateParagraphBlockHeight(paragraph, styles, contentWidth, measurer
15720
15875
  measurer,
15721
15876
  defaultTabStop
15722
15877
  );
15723
- const lineHeightPx = layout.lines.reduce((sum, line) => sum + line.height, 0);
15878
+ const lineHeightPx = layout.lines.reduce(
15879
+ (sum, line) => sum + line.height,
15880
+ 0
15881
+ );
15724
15882
  const paragraphStyle = getEffectiveParagraphStyle(paragraph, styles);
15725
15883
  const spacingBefore = options.allowSpacingBefore === false ? 0 : paragraphStyle.spacingBefore ?? 0;
15726
15884
  const spacingAfter = options.allowSpacingAfter === false ? 0 : paragraphStyle.spacingAfter ?? 0;
@@ -16647,13 +16805,15 @@ function paginateParagraphBlock(track, params, sourceBlock, nextBlock, index) {
16647
16805
  });
16648
16806
  }
16649
16807
  function normalizeCellStartPositions(row, starts, legacyStarts) {
16650
- return row.cells.map((_, cellIdx) => {
16651
- var _a, _b;
16652
- return {
16653
- blockIndex: ((_a = starts == null ? void 0 : starts[cellIdx]) == null ? void 0 : _a.blockIndex) ?? (legacyStarts == null ? void 0 : legacyStarts[cellIdx]) ?? 0,
16654
- offset: (_b = starts == null ? void 0 : starts[cellIdx]) == null ? void 0 : _b.offset
16655
- };
16656
- });
16808
+ return row.cells.map(
16809
+ (_, cellIdx) => {
16810
+ var _a, _b;
16811
+ return {
16812
+ blockIndex: ((_a = starts == null ? void 0 : starts[cellIdx]) == null ? void 0 : _a.blockIndex) ?? (legacyStarts == null ? void 0 : legacyStarts[cellIdx]) ?? 0,
16813
+ offset: (_b = starts == null ? void 0 : starts[cellIdx]) == null ? void 0 : _b.offset
16814
+ };
16815
+ }
16816
+ );
16657
16817
  }
16658
16818
  function positionsToBlockIndexes(positions) {
16659
16819
  return positions == null ? void 0 : positions.map((position2) => position2.blockIndex);
@@ -16967,7 +17127,9 @@ function paginateTableBlock(track, params, sourceBlock, index) {
16967
17127
  if (isLastRowSplit) {
16968
17128
  const lastRowIndex = rowGroups[groupEndIndex - 1].startRowIndex;
16969
17129
  const lastRow = sourceBlock.rows[lastRowIndex];
16970
- const ends = splitEndPositions ?? (splitEnds == null ? void 0 : splitEnds.map((blockIndex) => ({ blockIndex }))) ?? [];
17130
+ const ends = splitEndPositions ?? (splitEnds == null ? void 0 : splitEnds.map((blockIndex) => ({
17131
+ blockIndex
17132
+ }))) ?? [];
16971
17133
  if (positionsFinishedRow(lastRow, ends)) {
16972
17134
  currentCellBlockPositions = void 0;
16973
17135
  groupStartIndex = groupEndIndex;
@@ -17363,48 +17525,52 @@ function computeNoteRenumber(document2, collection, traversal) {
17363
17525
  const rewriteBlocks = (blocks) => {
17364
17526
  if (!blocks) return blocks;
17365
17527
  let blockChanged = false;
17366
- const nextBlocks = blocks.map((block) => {
17367
- switch (block.type) {
17368
- case "paragraph": {
17369
- const updated = rewriteParagraphMarkers(
17370
- block,
17371
- traversal,
17372
- markerById
17373
- );
17374
- if (updated !== block) blockChanged = true;
17375
- return updated;
17376
- }
17377
- case "table": {
17378
- let tableChanged = false;
17379
- const nextRows = block.rows.map((row) => {
17380
- let rowChanged = false;
17381
- const nextCells = row.cells.map((cell) => {
17382
- let cellChanged = false;
17383
- const nextCellBlocks = cell.blocks.map((p) => {
17384
- const updated = rewriteParagraphMarkers(
17385
- p,
17386
- traversal,
17387
- markerById
17528
+ const nextBlocks = blocks.map(
17529
+ (block) => {
17530
+ switch (block.type) {
17531
+ case "paragraph": {
17532
+ const updated = rewriteParagraphMarkers(
17533
+ block,
17534
+ traversal,
17535
+ markerById
17536
+ );
17537
+ if (updated !== block) blockChanged = true;
17538
+ return updated;
17539
+ }
17540
+ case "table": {
17541
+ let tableChanged = false;
17542
+ const nextRows = block.rows.map((row) => {
17543
+ let rowChanged = false;
17544
+ const nextCells = row.cells.map((cell) => {
17545
+ let cellChanged = false;
17546
+ const nextCellBlocks = cell.blocks.map(
17547
+ (p) => {
17548
+ const updated = rewriteParagraphMarkers(
17549
+ p,
17550
+ traversal,
17551
+ markerById
17552
+ );
17553
+ if (updated !== p) cellChanged = true;
17554
+ return updated;
17555
+ }
17388
17556
  );
17389
- if (updated !== p) cellChanged = true;
17390
- return updated;
17557
+ if (!cellChanged) return cell;
17558
+ rowChanged = true;
17559
+ return { ...cell, blocks: nextCellBlocks };
17391
17560
  });
17392
- if (!cellChanged) return cell;
17393
- rowChanged = true;
17394
- return { ...cell, blocks: nextCellBlocks };
17561
+ if (!rowChanged) return row;
17562
+ tableChanged = true;
17563
+ return { ...row, cells: nextCells };
17395
17564
  });
17396
- if (!rowChanged) return row;
17397
- tableChanged = true;
17398
- return { ...row, cells: nextCells };
17399
- });
17400
- if (!tableChanged) return block;
17401
- blockChanged = true;
17402
- return { ...block, rows: nextRows };
17565
+ if (!tableChanged) return block;
17566
+ blockChanged = true;
17567
+ return { ...block, rows: nextRows };
17568
+ }
17569
+ default:
17570
+ return assertNever(block, "block");
17403
17571
  }
17404
- default:
17405
- return assertNever(block, "block");
17406
17572
  }
17407
- });
17573
+ );
17408
17574
  if (!blockChanged) return blocks;
17409
17575
  sectionsChanged = true;
17410
17576
  return nextBlocks;
@@ -17549,11 +17715,13 @@ function iterateEndnoteReferenceRuns(document2) {
17549
17715
  return iterateNoteReferenceRuns(document2, "endnoteReference");
17550
17716
  }
17551
17717
  function listReferencedEndnotes(document2) {
17552
- return listReferencedNotes(document2, endnoteTraversal).map((info) => ({
17553
- endnoteId: info.id,
17554
- customMark: info.customMark,
17555
- index: info.index
17556
- }));
17718
+ return listReferencedNotes(document2, endnoteTraversal).map(
17719
+ (info) => ({
17720
+ endnoteId: info.id,
17721
+ customMark: info.customMark,
17722
+ index: info.index
17723
+ })
17724
+ );
17557
17725
  }
17558
17726
  function renumberEndnotes(document2) {
17559
17727
  const endnotes = document2.endnotes;
@@ -18100,7 +18268,11 @@ function prepareCells(options) {
18100
18268
  void 0,
18101
18269
  (_w = state.document.settings) == null ? void 0 : _w.defaultTabStop
18102
18270
  );
18103
- const linesBottom = projected.lines.length > 0 ? Math.max(...projected.lines.map((line) => line.top + line.height)) : 1;
18271
+ const linesBottom = projected.lines.length > 0 ? Math.max(
18272
+ ...projected.lines.map(
18273
+ (line) => line.top + line.height
18274
+ )
18275
+ ) : 1;
18104
18276
  let effectiveSpacingBefore = spacingBefore;
18105
18277
  if (!isRotated && projectedParagraphs.length > 0) {
18106
18278
  const previous = projectedParagraphs[projectedParagraphs.length - 1];
@@ -18381,19 +18553,21 @@ function buildCanvasTableLayout(options) {
18381
18553
  for (let i = 0; i < resolvedColumnWidths.length; i++) {
18382
18554
  columnOffsets[i + 1] = columnOffsets[i] + resolvedColumnWidths[i] + cellSpacingPx;
18383
18555
  }
18384
- const effectiveRowStyles = table.rows.map((row, rowIndex) => {
18385
- const entry = tableEntries.find(
18386
- (candidate) => candidate.rowIndex === rowIndex
18387
- );
18388
- return entry ? resolveEffectiveTableCellFormatting({
18389
- table: sourceTable,
18390
- rowIndex,
18391
- cellIndex: entry.cellIndex,
18392
- visualColumnIndex: entry.visualColumnIndex,
18393
- columnCount: visualColumnCount,
18394
- styles: state.document.styles
18395
- }).rowStyle : row.style;
18396
- });
18556
+ const effectiveRowStyles = table.rows.map(
18557
+ (row, rowIndex) => {
18558
+ const entry = tableEntries.find(
18559
+ (candidate) => candidate.rowIndex === rowIndex
18560
+ );
18561
+ return entry ? resolveEffectiveTableCellFormatting({
18562
+ table: sourceTable,
18563
+ rowIndex,
18564
+ cellIndex: entry.cellIndex,
18565
+ visualColumnIndex: entry.visualColumnIndex,
18566
+ columnCount: visualColumnCount,
18567
+ styles: state.document.styles
18568
+ }).rowStyle : row.style;
18569
+ }
18570
+ );
18397
18571
  const { prepared, unsupported } = prepareCells({
18398
18572
  table,
18399
18573
  sourceTable,
@@ -18738,16 +18912,19 @@ function starPointCount(preset) {
18738
18912
  return Number.parseInt(preset.replace("star", ""), 10);
18739
18913
  }
18740
18914
  function starSegments(cx, cy, rx, ry, points, innerRatio = 0.45) {
18741
- const vertices = Array.from({ length: points * 2 }, (_, index) => {
18742
- const radius = index % 2 === 0 ? 1 : innerRatio;
18743
- return pointOnEllipse(
18744
- cx,
18745
- cy,
18746
- rx * radius,
18747
- ry * radius,
18748
- -90 + 180 * index / points
18749
- );
18750
- });
18915
+ const vertices = Array.from(
18916
+ { length: points * 2 },
18917
+ (_, index) => {
18918
+ const radius = index % 2 === 0 ? 1 : innerRatio;
18919
+ return pointOnEllipse(
18920
+ cx,
18921
+ cy,
18922
+ rx * radius,
18923
+ ry * radius,
18924
+ -90 + 180 * index / points
18925
+ );
18926
+ }
18927
+ );
18751
18928
  return polygon(vertices);
18752
18929
  }
18753
18930
  function roundRectSegments(x, y, width, height, radius) {
@@ -20230,7 +20407,9 @@ function drawFloatingTextBoxesForParagraph(options) {
20230
20407
  } = options;
20231
20408
  for (const line of paragraphLines) {
20232
20409
  const slotByOffset = new Map(
20233
- line.slots.map((slot) => [slot.offset, slot])
20410
+ line.slots.map(
20411
+ (slot) => [slot.offset, slot]
20412
+ )
20234
20413
  );
20235
20414
  for (const fragment of line.fragments) {
20236
20415
  const textBox = fragment.textBox;
@@ -20291,7 +20470,11 @@ function collectInlineImagesFromLines(options) {
20291
20470
  }
20292
20471
  const imageStartOffset = fragment.startOffset;
20293
20472
  const imageEndOffset = fragment.endOffset > imageStartOffset ? fragment.endOffset : imageStartOffset + 1;
20294
- const slot = line.slots.find((candidate) => candidate.offset === imageStartOffset) ?? line.slots.find((candidate) => candidate.offset >= imageStartOffset);
20473
+ const slot = line.slots.find(
20474
+ (candidate) => candidate.offset === imageStartOffset
20475
+ ) ?? line.slots.find(
20476
+ (candidate) => candidate.offset >= imageStartOffset
20477
+ );
20295
20478
  if (!slot) {
20296
20479
  continue;
20297
20480
  }
@@ -20331,7 +20514,11 @@ function collectInlineTextBoxesFromLines(options) {
20331
20514
  }
20332
20515
  const startOffset = fragment.startOffset;
20333
20516
  const endOffset = fragment.endOffset > startOffset ? fragment.endOffset : startOffset + 1;
20334
- const slot = line.slots.find((candidate) => candidate.offset === startOffset) ?? line.slots.find((candidate) => candidate.offset >= startOffset);
20517
+ const slot = line.slots.find(
20518
+ (candidate) => candidate.offset === startOffset
20519
+ ) ?? line.slots.find(
20520
+ (candidate) => candidate.offset >= startOffset
20521
+ );
20335
20522
  if (!slot) {
20336
20523
  continue;
20337
20524
  }
@@ -20377,9 +20564,13 @@ function getCachedCanvasImage(src, onUpdate) {
20377
20564
  }
20378
20565
  function resolveFragmentPaintBounds(line, fragment) {
20379
20566
  const slotByOffset = new Map(
20380
- line.slots.map((slot) => [slot.offset, slot])
20567
+ line.slots.map(
20568
+ (slot) => [slot.offset, slot]
20569
+ )
20381
20570
  );
20382
- const slots = fragment.chars.filter((char) => char.char !== "\n").map((char) => slotByOffset.get(char.paragraphOffset)).filter((slot) => Boolean(slot));
20571
+ const slots = fragment.chars.filter((char) => char.char !== "\n").map(
20572
+ (char) => slotByOffset.get(char.paragraphOffset)
20573
+ ).filter((slot) => Boolean(slot));
20383
20574
  if (slots.length === 0) return null;
20384
20575
  const first = slots[0];
20385
20576
  const last = slots[slots.length - 1];
@@ -20884,7 +21075,9 @@ function drawFloatingImagesForParagraph(options) {
20884
21075
  } = options;
20885
21076
  for (const line of paragraphLines) {
20886
21077
  const slotByOffset = new Map(
20887
- line.slots.map((slot) => [slot.offset, slot])
21078
+ line.slots.map(
21079
+ (slot) => [slot.offset, slot]
21080
+ )
20888
21081
  );
20889
21082
  for (const fragment of line.fragments) {
20890
21083
  const image = fragment.image;
@@ -22280,7 +22473,9 @@ function resolveUniformStyleValue(styles, key) {
22280
22473
  return "";
22281
22474
  }
22282
22475
  const serialized = String(first);
22283
- return styles.every((style2) => String(style2[key] ?? "") === serialized) ? serialized : "";
22476
+ return styles.every(
22477
+ (style2) => String(style2[key] ?? "") === serialized
22478
+ ) ? serialized : "";
22284
22479
  }
22285
22480
  function getSelectedParagraphStyles(state, paragraphs, normalized) {
22286
22481
  const { styles: docStyles } = state.document;
@@ -22298,7 +22493,9 @@ function resolveUniformParagraphStyleValue(styles, key) {
22298
22493
  return "";
22299
22494
  }
22300
22495
  const serialized = String(first);
22301
- return styles.every((style2) => String(style2[key] ?? "") === serialized) ? serialized : "";
22496
+ return styles.every(
22497
+ (style2) => String(style2[key] ?? "") === serialized
22498
+ ) ? serialized : "";
22302
22499
  }
22303
22500
  function resolveUniformParagraphFlag(styles, key) {
22304
22501
  return styles.length > 0 && styles.every((style2) => style2[key] === true);
@@ -22351,12 +22548,15 @@ function resolveUniformListKind(paragraphs) {
22351
22548
  if (!firstKind) {
22352
22549
  return "";
22353
22550
  }
22354
- return paragraphs.every((paragraph) => {
22355
- var _a2;
22356
- return ((_a2 = paragraph.list) == null ? void 0 : _a2.kind) === firstKind;
22357
- }) ? firstKind : "";
22551
+ return paragraphs.every(
22552
+ (paragraph) => {
22553
+ var _a2;
22554
+ return ((_a2 = paragraph.list) == null ? void 0 : _a2.kind) === firstKind;
22555
+ }
22556
+ ) ? firstKind : "";
22358
22557
  }
22359
22558
  function getToolbarStyleState(state) {
22559
+ var _a;
22360
22560
  const paragraphs = getParagraphs(state);
22361
22561
  const normalized = normalizeSelection(state, paragraphs);
22362
22562
  const styles = getSelectedRunStyles(state, paragraphs, normalized);
@@ -22445,11 +22645,30 @@ function getToolbarStyleState(state) {
22445
22645
  borderSideBottom: boxBorder.sides.borderBottom,
22446
22646
  borderSideLeft: boxBorder.sides.borderLeft,
22447
22647
  listKind: resolveUniformListKind(selectedParagraphs),
22648
+ tabs: ((_a = paragraphStyles[0]) == null ? void 0 : _a.tabs) ?? [],
22649
+ lineRule: resolveUniformParagraphStyleValue(paragraphStyles, "lineRule"),
22650
+ contextualSpacing: resolveUniformParagraphFlag(
22651
+ paragraphStyles,
22652
+ "contextualSpacing"
22653
+ ),
22654
+ outlineLevel: resolveUniformParagraphStyleValue(
22655
+ paragraphStyles,
22656
+ "outlineLevel"
22657
+ ),
22658
+ mirrorIndents: resolveUniformParagraphFlag(
22659
+ paragraphStyles,
22660
+ "mirrorIndents"
22661
+ ),
22448
22662
  pageBreakBefore: resolveUniformParagraphFlag(
22449
22663
  paragraphStyles,
22450
22664
  "pageBreakBefore"
22451
22665
  ),
22452
- keepWithNext: resolveUniformParagraphFlag(paragraphStyles, "keepWithNext")
22666
+ keepWithNext: resolveUniformParagraphFlag(paragraphStyles, "keepWithNext"),
22667
+ keepLinesTogether: resolveUniformParagraphFlag(
22668
+ paragraphStyles,
22669
+ "keepLinesTogether"
22670
+ ),
22671
+ widowControl: resolveUniformParagraphFlag(paragraphStyles, "widowControl")
22453
22672
  };
22454
22673
  }
22455
22674
  const EDITOR_SCROLL_PADDING_PX = 34;
@@ -32185,7 +32404,9 @@ function parseStyleIdProperty(parent, localName) {
32185
32404
  }
32186
32405
  async function yieldToEventLoop(every, counter2) {
32187
32406
  if (counter2 > 0 && counter2 % every === 0) {
32188
- await new Promise((resolve) => setTimeout(resolve, 0));
32407
+ await new Promise(
32408
+ (resolve) => setTimeout(resolve, 0)
32409
+ );
32189
32410
  }
32190
32411
  }
32191
32412
  function createAssetRegistry() {
@@ -32825,7 +33046,9 @@ function parseDocxTableBorders(container) {
32825
33046
  };
32826
33047
  }
32827
33048
  function stripUndefined(value) {
32828
- const entries2 = Object.entries(value).filter(([, v]) => v !== void 0);
33049
+ const entries2 = Object.entries(value).filter(
33050
+ ([, v]) => v !== void 0
33051
+ );
32829
33052
  return entries2.length > 0 ? Object.fromEntries(entries2) : void 0;
32830
33053
  }
32831
33054
  function emptyOrUndefined(obj) {
@@ -33402,6 +33625,7 @@ function normalizeImportedParagraphStyle(style2) {
33402
33625
  indentRight: style2.indentRight !== void 0 || effective.indentRight !== defaultEffective.indentRight ? effective.indentRight : void 0,
33403
33626
  indentFirstLine: style2.indentFirstLine !== void 0 || effective.indentFirstLine !== defaultEffective.indentFirstLine ? effective.indentFirstLine : void 0,
33404
33627
  indentHanging: style2.indentHanging !== void 0 || effective.indentHanging !== defaultEffective.indentHanging ? effective.indentHanging : void 0,
33628
+ mirrorIndents: style2.mirrorIndents !== void 0 || effective.mirrorIndents !== defaultEffective.mirrorIndents ? effective.mirrorIndents : void 0,
33405
33629
  pageBreakBefore: style2.pageBreakBefore !== void 0 || effective.pageBreakBefore !== defaultEffective.pageBreakBefore ? effective.pageBreakBefore : void 0,
33406
33630
  keepWithNext: style2.keepWithNext !== void 0 || effective.keepWithNext !== defaultEffective.keepWithNext ? effective.keepWithNext : void 0,
33407
33631
  keepLinesTogether: style2.keepLinesTogether !== void 0 || effective.keepLinesTogether !== defaultEffective.keepLinesTogether ? effective.keepLinesTogether : void 0,
@@ -33562,6 +33786,13 @@ function parseParagraphStyle$1(paragraphProperties, colors) {
33562
33786
  if (widowControl !== void 0) {
33563
33787
  style2.widowControl = widowControl;
33564
33788
  }
33789
+ const mirrorIndents = parseOnOffProperty(
33790
+ paragraphProperties,
33791
+ "mirrorIndents"
33792
+ );
33793
+ if (mirrorIndents !== void 0) {
33794
+ style2.mirrorIndents = mirrorIndents;
33795
+ }
33565
33796
  const paragraphBorders = getFirstChildByTagNameNS(
33566
33797
  paragraphProperties,
33567
33798
  WORD_NS,
@@ -35495,14 +35726,18 @@ async function parseRunsContainer(container, numberingMaps, zip, relsMap, assets
35495
35726
  (styles ?? (styles = {})).link = inheritedLink;
35496
35727
  }
35497
35728
  const innerMarkers = [
35498
- ...(innerBookmarks ?? []).map((m) => ({
35499
- offset: m.offset,
35500
- run: { text: "", bookmark: m.marker }
35501
- })),
35502
- ...(innerComments ?? []).map((m) => ({
35503
- offset: m.offset,
35504
- run: { text: "", comment: m.marker }
35505
- }))
35729
+ ...(innerBookmarks ?? []).map(
35730
+ (m) => ({
35731
+ offset: m.offset,
35732
+ run: { text: "", bookmark: m.marker }
35733
+ })
35734
+ ),
35735
+ ...(innerComments ?? []).map(
35736
+ (m) => ({
35737
+ offset: m.offset,
35738
+ run: { text: "", comment: m.marker }
35739
+ })
35740
+ )
35506
35741
  ];
35507
35742
  if (innerMarkers.length > 0 && !image && !textBox) {
35508
35743
  innerMarkers.sort((a, b) => a.offset - b.offset);
@@ -35553,7 +35788,9 @@ async function parseRunsContainer(container, numberingMaps, zip, relsMap, assets
35553
35788
  );
35554
35789
  if (fieldType) {
35555
35790
  const displayText = fieldRuns.map((run) => run.text).join("") || "1";
35556
- const styles = (_c = fieldRuns.find((run) => run.styles)) == null ? void 0 : _c.styles;
35791
+ const styles = (_c = fieldRuns.find(
35792
+ (run) => run.styles
35793
+ )) == null ? void 0 : _c.styles;
35557
35794
  runs.push({
35558
35795
  text: displayText,
35559
35796
  styles,
@@ -35986,7 +36223,9 @@ async function parseTableNode(tableNode, numberingMaps, zip, relsMap, assets, th
35986
36223
  WORD_NS,
35987
36224
  "tblGrid"
35988
36225
  );
35989
- const previous = previousGrid ? getChildrenByTagNameNS(previousGrid, WORD_NS, "gridCol").map((gridCol) => twipsToPoints(getAttributeValue(gridCol, "w"))).filter((width) => width !== void 0) : [];
36226
+ const previous = previousGrid ? getChildrenByTagNameNS(previousGrid, WORD_NS, "gridCol").map(
36227
+ (gridCol) => twipsToPoints(getAttributeValue(gridCol, "w"))
36228
+ ).filter((width) => width !== void 0) : [];
35990
36229
  const rawDate = getAttributeValue(tblGridChangeXml, "date");
35991
36230
  const parsedDate = rawDate ? Date.parse(rawDate) : Number.NaN;
35992
36231
  table.gridRevision = {
@@ -36336,7 +36575,9 @@ function extractBookmarksFromSections(sections) {
36336
36575
  const boundaries = [];
36337
36576
  const seqRef = { value: 0 };
36338
36577
  const visit = (blocks) => {
36339
- blocks == null ? void 0 : blocks.forEach((block) => collectFromBlock$1(block, boundaries, seqRef));
36578
+ blocks == null ? void 0 : blocks.forEach(
36579
+ (block) => collectFromBlock$1(block, boundaries, seqRef)
36580
+ );
36340
36581
  };
36341
36582
  for (const section of sections) {
36342
36583
  visit(section.blocks);
@@ -36363,7 +36604,9 @@ function extractBookmarksFromSections(sections) {
36363
36604
  }
36364
36605
  const items = {};
36365
36606
  const order = [];
36366
- const startBoundaries = boundaries.filter((b) => b.marker.kind === "start");
36607
+ const startBoundaries = boundaries.filter(
36608
+ (b) => b.marker.kind === "start"
36609
+ );
36367
36610
  for (const startBoundary of startBoundaries) {
36368
36611
  const { marker, anchor } = startBoundary;
36369
36612
  const name = marker.name;
@@ -36439,7 +36682,9 @@ function extractCommentRangesFromSections(sections) {
36439
36682
  const boundaries = [];
36440
36683
  const seqRef = { value: 0 };
36441
36684
  const visit = (blocks) => {
36442
- blocks == null ? void 0 : blocks.forEach((block) => collectFromBlock(block, boundaries, seqRef));
36685
+ blocks == null ? void 0 : blocks.forEach(
36686
+ (block) => collectFromBlock(block, boundaries, seqRef)
36687
+ );
36443
36688
  };
36444
36689
  for (const section of sections) {
36445
36690
  visit(section.blocks);
@@ -37047,7 +37292,7 @@ function importDocxInWorker(buffer, options = {}) {
37047
37292
  const worker = new Worker(
37048
37293
  new URL(
37049
37294
  /* @vite-ignore */
37050
- "" + new URL("assets/importDocxWorker-nIS-zjkj.js", import.meta.url).href,
37295
+ "" + new URL("assets/importDocxWorker-A73eR_fM.js", import.meta.url).href,
37051
37296
  import.meta.url
37052
37297
  ),
37053
37298
  {
@@ -37432,11 +37677,13 @@ const HEADING_STYLE_IDS = {
37432
37677
  H6: "heading3"
37433
37678
  };
37434
37679
  function runsToParagraphSpecs(runs) {
37435
- return runs.map((run) => ({
37436
- text: run.text,
37437
- styles: run.styles,
37438
- image: getRunImage(run)
37439
- }));
37680
+ return runs.map(
37681
+ (run) => ({
37682
+ text: run.text,
37683
+ styles: run.styles,
37684
+ image: getRunImage(run)
37685
+ })
37686
+ );
37440
37687
  }
37441
37688
  function buildParagraph(element, list) {
37442
37689
  const runs = collectInlineRuns(element, void 0);
@@ -37618,7 +37865,9 @@ function resolveImporterForFile(file) {
37618
37865
  return IMPORTERS.find((importer) => importer.matches(file));
37619
37866
  }
37620
37867
  function importFileAccept() {
37621
- return IMPORTERS.flatMap((importer) => importer.accept).join(",");
37868
+ return IMPORTERS.flatMap(
37869
+ (importer) => importer.accept
37870
+ ).join(",");
37622
37871
  }
37623
37872
  const RESIZE_HANDLE_DIRECTIONS = [
37624
37873
  "nw",
@@ -38507,7 +38756,9 @@ function buildCanvasLayoutSnapshot(options) {
38507
38756
  }
38508
38757
  const paragraphs = getDocumentParagraphs(state.document);
38509
38758
  const paragraphIndexById = new Map(
38510
- paragraphs.map((paragraph, index) => [paragraph.id, index])
38759
+ paragraphs.map(
38760
+ (paragraph, index) => [paragraph.id, index]
38761
+ )
38511
38762
  );
38512
38763
  const surfaceRect = surface.getBoundingClientRect();
38513
38764
  const snapshotPages = [];
@@ -38596,12 +38847,14 @@ function buildCanvasLayoutSnapshot(options) {
38596
38847
  endOffset: line.endOffset,
38597
38848
  top: lineTopOffset + line.top,
38598
38849
  height: line.height,
38599
- slots: line.slots.map((slot) => ({
38600
- offset: slot.offset,
38601
- left: blockContentLeft + slot.left,
38602
- top: lineTopOffset + slot.top,
38603
- height: slot.height
38604
- }))
38850
+ slots: line.slots.map(
38851
+ (slot) => ({
38852
+ offset: slot.offset,
38853
+ left: blockContentLeft + slot.left,
38854
+ top: lineTopOffset + slot.top,
38855
+ height: slot.height
38856
+ })
38857
+ )
38605
38858
  }))
38606
38859
  });
38607
38860
  inlineImages.push(
@@ -38751,12 +39004,14 @@ function buildCanvasLayoutSnapshot(options) {
38751
39004
  endOffset: line.endOffset,
38752
39005
  top: paragraphLayout.originY + line.top,
38753
39006
  height: line.height,
38754
- slots: line.slots.map((slot) => ({
38755
- offset: slot.offset,
38756
- left: paragraphLayout.originX + slot.left,
38757
- top: paragraphLayout.originY + slot.top,
38758
- height: slot.height
38759
- }))
39007
+ slots: line.slots.map(
39008
+ (slot) => ({
39009
+ offset: slot.offset,
39010
+ left: paragraphLayout.originX + slot.left,
39011
+ top: paragraphLayout.originY + slot.top,
39012
+ height: slot.height
39013
+ })
39014
+ )
38760
39015
  }));
38761
39016
  snapshotParagraphs.push({
38762
39017
  paragraph: paragraphLayout.paragraph,
@@ -39998,6 +40253,14 @@ function Stack(props) {
39998
40253
  }
39999
40254
  }));
40000
40255
  }
40256
+ function columnSpacingVar(breakpoint) {
40257
+ const index = BREAKPOINTS.indexOf(breakpoint);
40258
+ let expr = "0px";
40259
+ for (let i = 0; i <= index; i++) {
40260
+ expr = `var(--oasis-grid-column-spacing-${BREAKPOINTS[i]}, ${expr})`;
40261
+ }
40262
+ return expr;
40263
+ }
40001
40264
  function gridSizeVars(value) {
40002
40265
  const vars = {};
40003
40266
  const record = toResponsiveRecord(value);
@@ -40005,7 +40268,8 @@ function gridSizeVars(value) {
40005
40268
  const size = record[breakpoint];
40006
40269
  if (size === void 0) continue;
40007
40270
  if (typeof size === "number") {
40008
- const basis = `calc(${size} / var(--oasis-grid-columns-current) * 100%)`;
40271
+ const gap = columnSpacingVar(breakpoint);
40272
+ const basis = `calc(${size} / var(--oasis-grid-columns-current) * 100% - ${gap} * (var(--oasis-grid-columns-current) - ${size}) / var(--oasis-grid-columns-current))`;
40009
40273
  vars[`--oasis-grid-size-basis-${breakpoint}`] = basis;
40010
40274
  vars[`--oasis-grid-size-grow-${breakpoint}`] = "0";
40011
40275
  vars[`--oasis-grid-size-max-${breakpoint}`] = basis;
@@ -40330,7 +40594,8 @@ function Checkbox(props) {
40330
40594
  var _tmpl$$f = /* @__PURE__ */ template(`<span>`), _tmpl$2$9 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$6 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$6 = /* @__PURE__ */ template(`<label><select>`), _tmpl$5$4 = /* @__PURE__ */ template(`<option>`);
40331
40595
  function SelectField(props) {
40332
40596
  const fallbackId = createUniqueId();
40333
- const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "options", "onChange", "class", "classList", "id"]);
40597
+ const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "options", "onChange", "class", "classList", "id", "value"]);
40598
+ const currentValue = () => local.value === void 0 || local.value === null ? "" : String(local.value);
40334
40599
  const id = () => local.id ?? fallbackId;
40335
40600
  const descriptionId = () => `${id()}-description`;
40336
40601
  const errorId = () => `${id()}-error`;
@@ -40364,7 +40629,11 @@ function SelectField(props) {
40364
40629
  get ["aria-describedby"]() {
40365
40630
  return [local.description ? descriptionId() : null, local.error ? errorId() : null].filter(Boolean).join(" ");
40366
40631
  }
40367
- }, others), false, true);
40632
+ }, others, {
40633
+ get value() {
40634
+ return currentValue();
40635
+ }
40636
+ }), false, true);
40368
40637
  insert(_el$3, createComponent(For, {
40369
40638
  get each() {
40370
40639
  return local.options;
@@ -40372,7 +40641,15 @@ function SelectField(props) {
40372
40641
  children: (option) => (() => {
40373
40642
  var _el$6 = _tmpl$5$4();
40374
40643
  insert(_el$6, () => option.label);
40375
- createRenderEffect(() => _el$6.disabled = option.disabled);
40644
+ createRenderEffect((_p$) => {
40645
+ var _v$4 = option.disabled, _v$5 = option.value === currentValue();
40646
+ _v$4 !== _p$.e && (_el$6.disabled = _p$.e = _v$4);
40647
+ _v$5 !== _p$.t && (_el$6.selected = _p$.t = _v$5);
40648
+ return _p$;
40649
+ }, {
40650
+ e: void 0,
40651
+ t: void 0
40652
+ });
40376
40653
  createRenderEffect(() => _el$6.value = option.value);
40377
40654
  return _el$6;
40378
40655
  })()
@@ -40663,7 +40940,9 @@ class ToolbarRegistryImpl {
40663
40940
  __publicField(this, "listeners", /* @__PURE__ */ new Set());
40664
40941
  }
40665
40942
  register(item) {
40666
- const index = this.entries.findIndex((entry) => entry.id === item.id);
40943
+ const index = this.entries.findIndex(
40944
+ (entry) => entry.id === item.id
40945
+ );
40667
40946
  if (index >= 0) {
40668
40947
  this.entries[index] = item;
40669
40948
  } else {
@@ -40679,7 +40958,9 @@ class ToolbarRegistryImpl {
40679
40958
  this.spliceRelative(targetId, item, 1);
40680
40959
  }
40681
40960
  replace(targetId, item) {
40682
- const index = this.entries.findIndex((entry) => entry.id === targetId);
40961
+ const index = this.entries.findIndex(
40962
+ (entry) => entry.id === targetId
40963
+ );
40683
40964
  if (index < 0) {
40684
40965
  this.register(item);
40685
40966
  return;
@@ -40730,7 +41011,9 @@ class ToolbarRegistryImpl {
40730
41011
  return () => this.listeners.delete(callback);
40731
41012
  }
40732
41013
  spliceRelative(targetId, item, offset) {
40733
- this.entries = this.entries.filter((entry) => entry.id !== item.id);
41014
+ this.entries = this.entries.filter(
41015
+ (entry) => entry.id !== item.id
41016
+ );
40734
41017
  const targetIndex = this.entries.findIndex(
40735
41018
  (entry) => entry.id === targetId
40736
41019
  );
@@ -40751,11 +41034,16 @@ class ToolbarRegistryImpl {
40751
41034
  );
40752
41035
  return index2 >= 0 ? index2 : null;
40753
41036
  }
40754
- const index = this.entries.findIndex((entry) => entry.id === target.after);
41037
+ const index = this.entries.findIndex(
41038
+ (entry) => entry.id === target.after
41039
+ );
40755
41040
  return index >= 0 ? index + 1 : null;
40756
41041
  }
40757
41042
  sortByOrder() {
40758
- this.entries = this.entries.map((item, index) => ({ item, index })).sort((a, b) => {
41043
+ this.entries = this.entries.map((item, index) => ({
41044
+ item,
41045
+ index
41046
+ })).sort((a, b) => {
40759
41047
  const orderA = a.item.order ?? MAX_ORDER;
40760
41048
  const orderB = b.item.order ?? MAX_ORDER;
40761
41049
  return orderA - orderB || a.index - b.index;
@@ -40775,7 +41063,9 @@ class MenuRegistry {
40775
41063
  __publicField(this, "items", []);
40776
41064
  }
40777
41065
  register(item) {
40778
- const existingIndex = this.items.findIndex((entry) => entry.id === item.id);
41066
+ const existingIndex = this.items.findIndex(
41067
+ (entry) => entry.id === item.id
41068
+ );
40779
41069
  if (existingIndex >= 0) {
40780
41070
  this.items[existingIndex] = item;
40781
41071
  } else {
@@ -42603,10 +42893,10 @@ function getRecentShapes() {
42603
42893
  }
42604
42894
  function pushRecentShape(preset) {
42605
42895
  var _a;
42606
- const next = [preset, ...getRecentShapes().filter((p) => p !== preset)].slice(
42607
- 0,
42608
- MAX_RECENT
42609
- );
42896
+ const next = [
42897
+ preset,
42898
+ ...getRecentShapes().filter((p) => p !== preset)
42899
+ ].slice(0, MAX_RECENT);
42610
42900
  try {
42611
42901
  (_a = globalThis.localStorage) == null ? void 0 : _a.setItem(STORAGE_KEY, JSON.stringify(next));
42612
42902
  } catch {
@@ -43377,7 +43667,7 @@ const OASIS_MENU_ITEMS = {
43377
43667
  formatListsNumbered: "format_lists_numbered"
43378
43668
  };
43379
43669
  export {
43380
- isParagraphTag as $,
43670
+ listKindForTag as $,
43381
43671
  getParagraphLength as A,
43382
43672
  getActiveZone as B,
43383
43673
  getActiveSectionIndex as C,
@@ -43394,237 +43684,238 @@ export {
43394
43684
  parseFontSizePtToPx as N,
43395
43685
  formatFontSizePt as O,
43396
43686
  createEditorParagraph as P,
43397
- findParagraphTableLocation as Q,
43398
- buildTableCellLayout as R,
43687
+ resolveDefaultParagraphStyleId as Q,
43688
+ findParagraphTableLocation as R,
43399
43689
  STANDARD_FONT_SIZES_PT as S,
43400
- PT_PER_PX as T,
43401
- createEditorTableCell as U,
43402
- createEditorTableRow as V,
43403
- createEditorTable as W,
43404
- PX_PER_POINT as X,
43405
- underlineStyleToCssDecorationStyle as Y,
43406
- resolveImageSrc as Z,
43407
- listKindForTag as _,
43690
+ buildTableCellLayout as T,
43691
+ PT_PER_PX as U,
43692
+ createEditorTableCell as V,
43693
+ createEditorTableRow as W,
43694
+ createEditorTable as X,
43695
+ PX_PER_POINT as Y,
43696
+ underlineStyleToCssDecorationStyle as Z,
43697
+ resolveImageSrc as _,
43408
43698
  getPageBodyBottom as a,
43409
- EMU_PER_PT as a$,
43410
- collectInlineRuns as a0,
43411
- parseParagraphStyle as a1,
43412
- getRunImage as a2,
43413
- InlineShell as a3,
43414
- BalloonShell as a4,
43415
- DocumentShell as a5,
43416
- createMemo as a6,
43417
- getCaretRectFromSnapshot as a7,
43418
- getParagraphRectFromSnapshot as a8,
43419
- createComponent as a9,
43420
- Tabs as aA,
43421
- NumberField as aB,
43422
- createStore as aC,
43423
- reconcile as aD,
43424
- RadioGroup as aE,
43425
- Radio as aF,
43426
- TextAreaField as aG,
43427
- Text$1 as aH,
43428
- SurfaceButton as aI,
43429
- delegateEvents as aJ,
43430
- onMount as aK,
43431
- onCleanup as aL,
43432
- use as aM,
43433
- PluginUiHost as aN,
43434
- OasisEditorEditor as aO,
43435
- OasisBrandMark as aP,
43436
- setPreciseFontPreference as aQ,
43437
- setWelcomeSeen as aR,
43438
- enablePreciseFontMode as aS,
43439
- TWIPS_PER_POINT as aT,
43440
- PX_PER_INCH as aU,
43441
- TWIPS_PER_INCH as aV,
43442
- normalizeHex6 as aW,
43443
- TABLE_CONDITIONAL_FLAG_ATTRIBUTES as aX,
43444
- TABLE_BORDER_EDGE_KEYS as aY,
43445
- resolveEffectiveParagraphStyle as aZ,
43446
- resolveEffectiveTextStyleForParagraph as a_,
43447
- CaretOverlay as aa,
43448
- Show as ab,
43449
- createRenderEffect as ac,
43450
- style as ad,
43451
- setAttribute as ae,
43452
- setStyleProperty as af,
43453
- memo as ag,
43454
- template as ah,
43455
- Button as ai,
43456
- useI18n as aj,
43457
- createEffect as ak,
43458
- TextField as al,
43459
- Dialog as am,
43460
- insert as an,
43461
- className as ao,
43462
- Grid as ap,
43463
- SelectField as aq,
43464
- StatusText as ar,
43465
- ColorField as as,
43466
- UNDERLINE_STYLE_OPTIONS as at,
43467
- Stack as au,
43468
- For as av,
43469
- ToggleChip as aw,
43470
- FormField as ax,
43471
- Checkbox as ay,
43472
- FieldGroup as az,
43699
+ resolveEffectiveTextStyleForParagraph as a$,
43700
+ isParagraphTag as a0,
43701
+ collectInlineRuns as a1,
43702
+ parseParagraphStyle as a2,
43703
+ getRunImage as a3,
43704
+ InlineShell as a4,
43705
+ BalloonShell as a5,
43706
+ DocumentShell as a6,
43707
+ createMemo as a7,
43708
+ getCaretRectFromSnapshot as a8,
43709
+ getParagraphRectFromSnapshot as a9,
43710
+ FieldGroup as aA,
43711
+ Tabs as aB,
43712
+ NumberField as aC,
43713
+ createStore as aD,
43714
+ reconcile as aE,
43715
+ RadioGroup as aF,
43716
+ Radio as aG,
43717
+ TextAreaField as aH,
43718
+ Text$1 as aI,
43719
+ SurfaceButton as aJ,
43720
+ delegateEvents as aK,
43721
+ onMount as aL,
43722
+ onCleanup as aM,
43723
+ use as aN,
43724
+ PluginUiHost as aO,
43725
+ OasisEditorEditor as aP,
43726
+ OasisBrandMark as aQ,
43727
+ setPreciseFontPreference as aR,
43728
+ setWelcomeSeen as aS,
43729
+ enablePreciseFontMode as aT,
43730
+ TWIPS_PER_POINT as aU,
43731
+ PX_PER_INCH as aV,
43732
+ TWIPS_PER_INCH as aW,
43733
+ normalizeHex6 as aX,
43734
+ TABLE_CONDITIONAL_FLAG_ATTRIBUTES as aY,
43735
+ TABLE_BORDER_EDGE_KEYS as aZ,
43736
+ resolveEffectiveParagraphStyle as a_,
43737
+ createComponent as aa,
43738
+ CaretOverlay as ab,
43739
+ Show as ac,
43740
+ createRenderEffect as ad,
43741
+ style as ae,
43742
+ setAttribute as af,
43743
+ setStyleProperty as ag,
43744
+ memo as ah,
43745
+ template as ai,
43746
+ Button as aj,
43747
+ useI18n as ak,
43748
+ createEffect as al,
43749
+ TextField as am,
43750
+ Dialog as an,
43751
+ insert as ao,
43752
+ className as ap,
43753
+ Grid as aq,
43754
+ SelectField as ar,
43755
+ StatusText as as,
43756
+ ColorField as at,
43757
+ UNDERLINE_STYLE_OPTIONS as au,
43758
+ Stack as av,
43759
+ For as aw,
43760
+ ToggleChip as ax,
43761
+ FormField as ay,
43762
+ Checkbox as az,
43473
43763
  getPageBodyTop as b,
43474
- layoutMetricsEpoch as b$,
43475
- OOXML_ROTATION_UNITS as b0,
43476
- OOXML_PERCENT_DENOMINATOR as b1,
43477
- parseHexColorToRgb255 as b2,
43478
- EMU_PER_PX as b3,
43479
- getRunEndnoteReference as b4,
43480
- iterateFootnoteReferenceRuns as b5,
43481
- iterateEndnoteReferenceRuns as b6,
43482
- imageContentTypeDefaults as b7,
43483
- getRunFieldChar as b8,
43484
- getRunFieldInstruction as b9,
43485
- getListLabelInset as bA,
43486
- getAlignedListLabelInset as bB,
43487
- getParagraphBorderInsets as bC,
43488
- buildSegmentTable as bD,
43489
- buildCanvasTableLayout as bE,
43490
- resolveCanvasTableWidth as bF,
43491
- resolveFloatingTableRect as bG,
43492
- normalizeFamily as bH,
43493
- ROBOTO_FONT_FILES as bI,
43494
- loadFontAsset as bJ,
43495
- OFFICE_COMPAT_FONT_FAMILIES as bK,
43496
- BinaryReader as bL,
43497
- buildSfnt as bM,
43498
- defaultFontDecoderRegistry as bN,
43499
- SfntFontProgram as bO,
43500
- collectPdfFontFamilies as bP,
43501
- outlineFrom as bQ,
43502
- getPageHeaderZoneTop as bR,
43503
- getPageColumnRects as bS,
43504
- findFootnoteReference as bT,
43505
- resolveImporterForFile as bU,
43506
- roundTo as bV,
43507
- getDocumentSectionsCanonical as bW,
43508
- getDocumentParagraphsCanonical as bX,
43509
- getDocumentParagraphs as bY,
43510
- getDocumentPageSettings as bZ,
43511
- getTableCellContentWidthForParagraph as b_,
43512
- createEditorRun as ba,
43513
- JSZip as bb,
43514
- imageExtensionFromMime as bc,
43515
- pxToPt as bd,
43516
- resolveFloatingObjectRect as be,
43517
- getTextBoxFloatingGeometry as bf,
43518
- getPresetPathSegments as bg,
43519
- buildListLabels as bh,
43520
- DEFAULT_FONT_SIZE_PX as bi,
43521
- resolveGradientAxis as bj,
43522
- isDoubleUnderlineStyle as bk,
43523
- isWavyUnderlineStyle as bl,
43524
- underlineStyleLineWidthPx as bm,
43525
- WAVY_UNDERLINE_WAVELENGTH_PX as bn,
43526
- WAVY_UNDERLINE_AMPLITUDE_PX as bo,
43527
- DOUBLE_UNDERLINE_OFFSET_PX as bp,
43528
- underlineStyleDashArray as bq,
43529
- EMPHASIS_GLYPH as br,
43530
- rgb255ToHex as bs,
43531
- getImageFloatingGeometry as bt,
43532
- textStyleToFontSizePt as bu,
43533
- TEXT_BASELINE_RATIO as bv,
43534
- resolveOpenTypeFeatureTags as bw,
43535
- resolveDecorationLineY as bx,
43536
- DOUBLE_STRIKE_OFFSET_PX as by,
43537
- resolveListLabel as bz,
43764
+ getTableCellContentWidthForParagraph as b$,
43765
+ EMU_PER_PT as b0,
43766
+ OOXML_ROTATION_UNITS as b1,
43767
+ OOXML_PERCENT_DENOMINATOR as b2,
43768
+ parseHexColorToRgb255 as b3,
43769
+ EMU_PER_PX as b4,
43770
+ getRunEndnoteReference as b5,
43771
+ iterateFootnoteReferenceRuns as b6,
43772
+ iterateEndnoteReferenceRuns as b7,
43773
+ imageContentTypeDefaults as b8,
43774
+ getRunFieldChar as b9,
43775
+ resolveListLabel as bA,
43776
+ getListLabelInset as bB,
43777
+ getAlignedListLabelInset as bC,
43778
+ getParagraphBorderInsets as bD,
43779
+ buildSegmentTable as bE,
43780
+ buildCanvasTableLayout as bF,
43781
+ resolveCanvasTableWidth as bG,
43782
+ resolveFloatingTableRect as bH,
43783
+ normalizeFamily as bI,
43784
+ ROBOTO_FONT_FILES as bJ,
43785
+ loadFontAsset as bK,
43786
+ OFFICE_COMPAT_FONT_FAMILIES as bL,
43787
+ BinaryReader as bM,
43788
+ buildSfnt as bN,
43789
+ defaultFontDecoderRegistry as bO,
43790
+ SfntFontProgram as bP,
43791
+ collectPdfFontFamilies as bQ,
43792
+ outlineFrom as bR,
43793
+ getPageHeaderZoneTop as bS,
43794
+ getPageColumnRects as bT,
43795
+ findFootnoteReference as bU,
43796
+ resolveImporterForFile as bV,
43797
+ roundTo as bW,
43798
+ getDocumentSectionsCanonical as bX,
43799
+ getDocumentParagraphsCanonical as bY,
43800
+ getDocumentParagraphs as bZ,
43801
+ getDocumentPageSettings as b_,
43802
+ getRunFieldInstruction as ba,
43803
+ createEditorRun as bb,
43804
+ JSZip as bc,
43805
+ imageExtensionFromMime as bd,
43806
+ pxToPt as be,
43807
+ resolveFloatingObjectRect as bf,
43808
+ getTextBoxFloatingGeometry as bg,
43809
+ getPresetPathSegments as bh,
43810
+ buildListLabels as bi,
43811
+ DEFAULT_FONT_SIZE_PX as bj,
43812
+ resolveGradientAxis as bk,
43813
+ isDoubleUnderlineStyle as bl,
43814
+ isWavyUnderlineStyle as bm,
43815
+ underlineStyleLineWidthPx as bn,
43816
+ WAVY_UNDERLINE_WAVELENGTH_PX as bo,
43817
+ WAVY_UNDERLINE_AMPLITUDE_PX as bp,
43818
+ DOUBLE_UNDERLINE_OFFSET_PX as bq,
43819
+ underlineStyleDashArray as br,
43820
+ EMPHASIS_GLYPH as bs,
43821
+ rgb255ToHex as bt,
43822
+ getImageFloatingGeometry as bu,
43823
+ textStyleToFontSizePt as bv,
43824
+ TEXT_BASELINE_RATIO as bw,
43825
+ resolveOpenTypeFeatureTags as bx,
43826
+ resolveDecorationLineY as by,
43827
+ DOUBLE_STRIKE_OFFSET_PX as bz,
43538
43828
  getPageContentWidth as c,
43539
- IconButton as c$,
43540
- bumpLayoutMetricsEpoch as c0,
43541
- createCanvasLayoutSnapshotProvider as c1,
43542
- on as c2,
43543
- debounce as c3,
43544
- unwrap as c4,
43545
- perfTimer as c5,
43546
- getRunTextBox as c6,
43547
- createEditorDocument as c7,
43548
- resolveResizedDimensions as c8,
43549
- resolveTextBoxRenderHeight as c9,
43550
- createToolbarRegistry as cA,
43551
- Editor as cB,
43552
- resolveCommandRef as cC,
43553
- commandRefName as cD,
43554
- createOasisEditorClient as cE,
43555
- createEditorZoom as cF,
43556
- startLongTaskObserver as cG,
43557
- installGlobalReport as cH,
43558
- applyStoredPreciseFontPreference as cI,
43559
- getWelcomeSeen as cJ,
43560
- isLocalFontAccessSupported as cK,
43561
- EDITOR_SCROLL_PADDING_PX as cL,
43562
- Toolbar as cM,
43563
- OasisEditorLoading as cN,
43564
- I18nProvider as cO,
43565
- createTranslator as cP,
43566
- createEditorLogger as cQ,
43829
+ Heading as c$,
43830
+ layoutMetricsEpoch as c0,
43831
+ bumpLayoutMetricsEpoch as c1,
43832
+ createCanvasLayoutSnapshotProvider as c2,
43833
+ on as c3,
43834
+ debounce as c4,
43835
+ unwrap as c5,
43836
+ perfTimer as c6,
43837
+ getRunTextBox as c7,
43838
+ createEditorDocument as c8,
43839
+ resolveResizedDimensions as c9,
43840
+ MenuRegistry as cA,
43841
+ createToolbarRegistry as cB,
43842
+ Editor as cC,
43843
+ resolveCommandRef as cD,
43844
+ commandRefName as cE,
43845
+ createOasisEditorClient as cF,
43846
+ createEditorZoom as cG,
43847
+ startLongTaskObserver as cH,
43848
+ installGlobalReport as cI,
43849
+ applyStoredPreciseFontPreference as cJ,
43850
+ getWelcomeSeen as cK,
43851
+ isLocalFontAccessSupported as cL,
43852
+ EDITOR_SCROLL_PADDING_PX as cM,
43853
+ Toolbar as cN,
43854
+ OasisEditorLoading as cO,
43855
+ I18nProvider as cP,
43856
+ createTranslator as cQ,
43567
43857
  registerDomStatsSurface as cR,
43568
- ActionRow as cS,
43569
- ColorPicker as cT,
43570
- CommandRegistry as cU,
43571
- DEFAULT_PALETTE as cV,
43572
- DialogFooter as cW,
43573
- FieldRow as cX,
43574
- FloatingActionButton as cY,
43575
- GridPicker as cZ,
43576
- Heading as c_,
43577
- getToolbarStyleState as ca,
43578
- VERTICAL_HIT_WEIGHT as cb,
43579
- getCachedCanvasImage as cc,
43580
- measureParagraphMinContentWidthPx as cd,
43581
- getEditableBlocksForZone as ce,
43582
- findParagraphLocation as cf,
43583
- createSectionBoundaryParagraph as cg,
43584
- normalizePageSettings as ch,
43585
- DEFAULT_EDITOR_PAGE_SETTINGS as ci,
43586
- markStart as cj,
43587
- markEnd as ck,
43588
- getParagraphEntries as cl,
43589
- getParagraphById as cm,
43590
- createEditorFootnote as cn,
43591
- createFootnoteReferenceRun as co,
43592
- renumberFootnotes as cp,
43593
- getHeadingLevel as cq,
43594
- preciseFontModeVersion as cr,
43595
- isPreciseFontModeEnabled as cs,
43596
- resolveNamedTextStyle as ct,
43597
- togglePreciseFontMode as cu,
43598
- nextFontSizePt as cv,
43599
- previousFontSizePt as cw,
43600
- fontSizePtToPx as cx,
43601
- createDefaultToolbarPreset as cy,
43602
- MenuRegistry as cz,
43858
+ createEditorLogger as cS,
43859
+ ActionRow as cT,
43860
+ ColorPicker as cU,
43861
+ CommandRegistry as cV,
43862
+ DEFAULT_PALETTE as cW,
43863
+ DialogFooter as cX,
43864
+ FieldRow as cY,
43865
+ FloatingActionButton as cZ,
43866
+ GridPicker as c_,
43867
+ resolveTextBoxRenderHeight as ca,
43868
+ getToolbarStyleState as cb,
43869
+ VERTICAL_HIT_WEIGHT as cc,
43870
+ getCachedCanvasImage as cd,
43871
+ measureParagraphMinContentWidthPx as ce,
43872
+ getEditableBlocksForZone as cf,
43873
+ findParagraphLocation as cg,
43874
+ createSectionBoundaryParagraph as ch,
43875
+ normalizePageSettings as ci,
43876
+ DEFAULT_EDITOR_PAGE_SETTINGS as cj,
43877
+ markStart as ck,
43878
+ markEnd as cl,
43879
+ getParagraphEntries as cm,
43880
+ getParagraphById as cn,
43881
+ createEditorFootnote as co,
43882
+ createFootnoteReferenceRun as cp,
43883
+ renumberFootnotes as cq,
43884
+ getHeadingLevel as cr,
43885
+ preciseFontModeVersion as cs,
43886
+ isPreciseFontModeEnabled as ct,
43887
+ resolveNamedTextStyle as cu,
43888
+ togglePreciseFontMode as cv,
43889
+ nextFontSizePt as cw,
43890
+ previousFontSizePt as cx,
43891
+ fontSizePtToPx as cy,
43892
+ createDefaultToolbarPreset as cz,
43603
43893
  domTextMeasurer as d,
43604
- Menu as d0,
43605
- OASIS_BUILTIN_COMMANDS as d1,
43606
- OASIS_MENU_ITEMS as d2,
43607
- OASIS_TOOLBAR_ITEMS as d3,
43608
- OasisEditorAppLazy as d4,
43609
- OasisEditorContainer as d5,
43610
- PluginCollection as d6,
43611
- Popover as d7,
43612
- RIBBON_TABS as d8,
43613
- Select as d9,
43614
- Separator as da,
43615
- SidePanel as db,
43616
- SidePanelBody as dc,
43617
- SidePanelFooter as dd,
43618
- SidePanelHeader as de,
43619
- SplitButton as df,
43620
- StyleGallery as dg,
43621
- Button$1 as dh,
43622
- buildRibbonTabDefinitions as di,
43623
- createEditorCommandBus as dj,
43624
- createOasisEditor as dk,
43625
- createOasisEditorContainer as dl,
43626
- mount as dm,
43627
- registerToolbarRenderer as dn,
43894
+ IconButton as d0,
43895
+ Menu as d1,
43896
+ OASIS_BUILTIN_COMMANDS as d2,
43897
+ OASIS_MENU_ITEMS as d3,
43898
+ OASIS_TOOLBAR_ITEMS as d4,
43899
+ OasisEditorAppLazy as d5,
43900
+ OasisEditorContainer as d6,
43901
+ PluginCollection as d7,
43902
+ Popover as d8,
43903
+ RIBBON_TABS as d9,
43904
+ Select as da,
43905
+ Separator as db,
43906
+ SidePanel as dc,
43907
+ SidePanelBody as dd,
43908
+ SidePanelFooter as de,
43909
+ SidePanelHeader as df,
43910
+ SplitButton as dg,
43911
+ StyleGallery as dh,
43912
+ Button$1 as di,
43913
+ buildRibbonTabDefinitions as dj,
43914
+ createEditorCommandBus as dk,
43915
+ createOasisEditor as dl,
43916
+ createOasisEditorContainer as dm,
43917
+ mount as dn,
43918
+ registerToolbarRenderer as dp,
43628
43919
  estimateTableBlockHeight as e,
43629
43920
  getParagraphText as f,
43630
43921
  getProjectedParagraphBlockHeight as g,