kordoc 4.17.2 → 4.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/{-2UA2JHVA.js → -SQRLFE4N.js} +11 -11
  2. package/dist/{chunk-4HRJISJF.js → chunk-4D52VUGA.js} +3 -3
  3. package/dist/{chunk-6OCKAXIS.js → chunk-6DXSRQ65.js} +2 -2
  4. package/dist/{chunk-XZA6X34R.js → chunk-7TE6TK52.js} +2 -2
  5. package/dist/{chunk-KQIYC2ZU.js → chunk-AAQR4RIX.js} +2 -2
  6. package/dist/{chunk-GPC72VSF.cjs → chunk-AFXX3YSP.cjs} +262 -171
  7. package/dist/chunk-AFXX3YSP.cjs.map +1 -0
  8. package/dist/{chunk-6DOCSYEM.cjs → chunk-AOONZC4S.cjs} +3 -3
  9. package/dist/chunk-AOONZC4S.cjs.map +1 -0
  10. package/dist/{chunk-A2W2JQ3S.js → chunk-DD6AY6EI.js} +2 -2
  11. package/dist/{chunk-KZVQK5NS.cjs → chunk-EXBZHI25.cjs} +2 -2
  12. package/dist/chunk-EXBZHI25.cjs.map +1 -0
  13. package/dist/{chunk-FGL4IGOT.js → chunk-FSCVZR4A.js} +4 -4
  14. package/dist/{chunk-HAW2VL62.cjs → chunk-GNORDND5.cjs} +12 -12
  15. package/dist/chunk-GNORDND5.cjs.map +1 -0
  16. package/dist/chunk-GS7T56RP.cjs.map +1 -1
  17. package/dist/{chunk-GYTL6WT3.js → chunk-HQ6TM2JE.js} +3 -3
  18. package/dist/{chunk-WJLICIYV.js → chunk-HY33WBAH.js} +24 -21
  19. package/dist/{chunk-WJLICIYV.js.map → chunk-HY33WBAH.js.map} +1 -1
  20. package/dist/{chunk-O4CB7D2Q.js → chunk-IERSVUW6.js} +2 -2
  21. package/dist/chunk-J55UQC5H.cjs.map +1 -1
  22. package/dist/chunk-KIYHQQVO.cjs +170 -0
  23. package/dist/chunk-KIYHQQVO.cjs.map +1 -0
  24. package/dist/{chunk-SDRKHEVT.js → chunk-NNNRN6BY.js} +255 -164
  25. package/dist/chunk-NNNRN6BY.js.map +1 -0
  26. package/dist/{chunk-MDCTITUG.js → chunk-O5T5OIJM.js} +2 -2
  27. package/dist/{chunk-WL3BWROT.js → chunk-ODVIUG6Q.js} +22 -12
  28. package/dist/chunk-ODVIUG6Q.js.map +1 -0
  29. package/dist/{chunk-C4MVZXB5.js → chunk-P2ZPPRM7.js} +2 -2
  30. package/dist/chunk-PNXJYEOR.js +170 -0
  31. package/dist/chunk-PNXJYEOR.js.map +1 -0
  32. package/dist/{chunk-YGKC6E6A.js → chunk-PTMYCK7R.js} +2 -2
  33. package/dist/{chunk-4TSYMJDL.js → chunk-PVJFCDND.js} +38 -13
  34. package/dist/chunk-PVJFCDND.js.map +1 -0
  35. package/dist/{chunk-ZDX5PIWR.js → chunk-RCS7WXOM.js} +2 -2
  36. package/dist/{chunk-VU26WGE5.js → chunk-SSY6FQLS.js} +200 -97
  37. package/dist/chunk-SSY6FQLS.js.map +1 -0
  38. package/dist/{chunk-JY2NBFIG.js → chunk-TMHMJUYU.js} +302 -75
  39. package/dist/chunk-TMHMJUYU.js.map +1 -0
  40. package/dist/{chunk-5JZEY5IL.js → chunk-VJP7O6BL.js} +2 -2
  41. package/dist/{chunk-2XHXABCX.js → chunk-W3OY3SLY.js} +3 -3
  42. package/dist/chunk-W3OY3SLY.js.map +1 -0
  43. package/dist/{chunk-WWMKIHF7.cjs → chunk-WNF3TSV3.cjs} +129 -104
  44. package/dist/chunk-WNF3TSV3.cjs.map +1 -0
  45. package/dist/{chunk-3N272C5L.js → chunk-YBIWPCUX.js} +39 -14
  46. package/dist/chunk-YBIWPCUX.js.map +1 -0
  47. package/dist/chunks-VNSLMJQD.js +10 -0
  48. package/dist/cli.js +26 -26
  49. package/dist/{formula-5RETDCIC.cjs → formula-U37MTMBD.cjs} +9 -9
  50. package/dist/formula-U37MTMBD.cjs.map +1 -0
  51. package/dist/{formula-MBLN2DG4.js → formula-U3MJXXIL.js} +4 -4
  52. package/dist/{formula-QZZDW5GW.js → formula-WZH5CMA3.js} +3 -3
  53. package/dist/{image-ocr-EREKAS47.js → image-ocr-HYWDBN72.js} +6 -6
  54. package/dist/{image-ocr-PSPVRLB5.cjs → image-ocr-OXU55EW3.cjs} +15 -15
  55. package/dist/image-ocr-OXU55EW3.cjs.map +1 -0
  56. package/dist/{image-ocr-CJSO3QSR.js → image-ocr-V6MICC6R.js} +9 -8
  57. package/dist/{image-ocr-CJSO3QSR.js.map → image-ocr-V6MICC6R.js.map} +1 -1
  58. package/dist/index.cjs +1194 -864
  59. package/dist/index.cjs.map +1 -1
  60. package/dist/index.js +531 -201
  61. package/dist/index.js.map +1 -1
  62. package/dist/mcp.js +22 -22
  63. package/dist/{model-bundle-MA4MMCRJ.js → model-bundle-AHBUQ6SD.js} +5 -5
  64. package/dist/{models-SEJ7LNSN.js → models-UF7B5LLG.js} +5 -5
  65. package/dist/page-range-QHHFTL7X.cjs.map +1 -1
  66. package/dist/{parser-M5WHRX25.js → parser-F6N6ID25.js} +22 -13
  67. package/dist/parser-F6N6ID25.js.map +1 -0
  68. package/dist/{parser-QILYPWSI.cjs → parser-IXRGUYZW.cjs} +207 -198
  69. package/dist/parser-IXRGUYZW.cjs.map +1 -0
  70. package/dist/{parser-VH3F4EQU.js → parser-T4FBG2FR.js} +23 -14
  71. package/dist/parser-T4FBG2FR.js.map +1 -0
  72. package/dist/pdf-ocr-2CITOAIG.cjs +16 -0
  73. package/dist/pdf-ocr-2CITOAIG.cjs.map +1 -0
  74. package/dist/pdf-ocr-RG2MFWBX.js +15 -0
  75. package/dist/pdf-ocr-U7Z4IUMA.js +19 -0
  76. package/dist/{profile-io-5YB627EO.js → profile-io-GM3NVLV3.js} +3 -3
  77. package/dist/{rasterize-V2XHHS2I.js → rasterize-4A3LJXTG.js} +3 -3
  78. package/dist/{redact-doc-5MK5L5IQ.js → redact-doc-SQ7C3LIG.js} +11 -11
  79. package/dist/{render-SYZMHYK6.js → render-6LTQZG4W.js} +7 -7
  80. package/dist/seal-ROSVLTRQ.js +10 -0
  81. package/dist/{setup-ZPLJENSK.js → setup-DGBJOROA.js} +3 -3
  82. package/dist/visual-6W34SFIW.js +20 -0
  83. package/dist/{watch-FNWHVKK3.js → watch-DJVJRSLE.js} +12 -12
  84. package/package.json +1 -1
  85. package/dist/chunk-2XHXABCX.js.map +0 -1
  86. package/dist/chunk-3N272C5L.js.map +0 -1
  87. package/dist/chunk-4TSYMJDL.js.map +0 -1
  88. package/dist/chunk-6DOCSYEM.cjs.map +0 -1
  89. package/dist/chunk-GPC72VSF.cjs.map +0 -1
  90. package/dist/chunk-HAW2VL62.cjs.map +0 -1
  91. package/dist/chunk-JY2NBFIG.js.map +0 -1
  92. package/dist/chunk-KZVQK5NS.cjs.map +0 -1
  93. package/dist/chunk-SDRKHEVT.js.map +0 -1
  94. package/dist/chunk-UX3HHAWH.js +0 -248
  95. package/dist/chunk-UX3HHAWH.js.map +0 -1
  96. package/dist/chunk-VU26WGE5.js.map +0 -1
  97. package/dist/chunk-WL3BWROT.js.map +0 -1
  98. package/dist/chunk-WWMKIHF7.cjs.map +0 -1
  99. package/dist/chunk-YIANW5QX.cjs +0 -248
  100. package/dist/chunk-YIANW5QX.cjs.map +0 -1
  101. package/dist/chunks-EBWJR55V.js +0 -10
  102. package/dist/formula-5RETDCIC.cjs.map +0 -1
  103. package/dist/image-ocr-PSPVRLB5.cjs.map +0 -1
  104. package/dist/parser-M5WHRX25.js.map +0 -1
  105. package/dist/parser-QILYPWSI.cjs.map +0 -1
  106. package/dist/parser-VH3F4EQU.js.map +0 -1
  107. package/dist/pdf-ocr-3SZUM3CN.cjs +0 -16
  108. package/dist/pdf-ocr-3SZUM3CN.cjs.map +0 -1
  109. package/dist/pdf-ocr-QB2TB5W5.js +0 -18
  110. package/dist/pdf-ocr-XC33L43D.js +0 -15
  111. package/dist/seal-IPKIQHYB.js +0 -10
  112. package/dist/visual-RTTGNOAE.js +0 -20
  113. /package/dist/{-2UA2JHVA.js.map → -SQRLFE4N.js.map} +0 -0
  114. /package/dist/{chunk-4HRJISJF.js.map → chunk-4D52VUGA.js.map} +0 -0
  115. /package/dist/{chunk-6OCKAXIS.js.map → chunk-6DXSRQ65.js.map} +0 -0
  116. /package/dist/{chunk-XZA6X34R.js.map → chunk-7TE6TK52.js.map} +0 -0
  117. /package/dist/{chunk-KQIYC2ZU.js.map → chunk-AAQR4RIX.js.map} +0 -0
  118. /package/dist/{chunk-A2W2JQ3S.js.map → chunk-DD6AY6EI.js.map} +0 -0
  119. /package/dist/{chunk-FGL4IGOT.js.map → chunk-FSCVZR4A.js.map} +0 -0
  120. /package/dist/{chunk-GYTL6WT3.js.map → chunk-HQ6TM2JE.js.map} +0 -0
  121. /package/dist/{chunk-O4CB7D2Q.js.map → chunk-IERSVUW6.js.map} +0 -0
  122. /package/dist/{chunk-MDCTITUG.js.map → chunk-O5T5OIJM.js.map} +0 -0
  123. /package/dist/{chunk-C4MVZXB5.js.map → chunk-P2ZPPRM7.js.map} +0 -0
  124. /package/dist/{chunk-YGKC6E6A.js.map → chunk-PTMYCK7R.js.map} +0 -0
  125. /package/dist/{chunk-ZDX5PIWR.js.map → chunk-RCS7WXOM.js.map} +0 -0
  126. /package/dist/{chunk-5JZEY5IL.js.map → chunk-VJP7O6BL.js.map} +0 -0
  127. /package/dist/{chunks-EBWJR55V.js.map → chunks-VNSLMJQD.js.map} +0 -0
  128. /package/dist/{formula-MBLN2DG4.js.map → formula-U3MJXXIL.js.map} +0 -0
  129. /package/dist/{formula-QZZDW5GW.js.map → formula-WZH5CMA3.js.map} +0 -0
  130. /package/dist/{image-ocr-EREKAS47.js.map → image-ocr-HYWDBN72.js.map} +0 -0
  131. /package/dist/{model-bundle-MA4MMCRJ.js.map → model-bundle-AHBUQ6SD.js.map} +0 -0
  132. /package/dist/{models-SEJ7LNSN.js.map → models-UF7B5LLG.js.map} +0 -0
  133. /package/dist/{pdf-ocr-QB2TB5W5.js.map → pdf-ocr-RG2MFWBX.js.map} +0 -0
  134. /package/dist/{pdf-ocr-XC33L43D.js.map → pdf-ocr-U7Z4IUMA.js.map} +0 -0
  135. /package/dist/{profile-io-5YB627EO.js.map → profile-io-GM3NVLV3.js.map} +0 -0
  136. /package/dist/{rasterize-V2XHHS2I.js.map → rasterize-4A3LJXTG.js.map} +0 -0
  137. /package/dist/{redact-doc-5MK5L5IQ.js.map → redact-doc-SQ7C3LIG.js.map} +0 -0
  138. /package/dist/{render-SYZMHYK6.js.map → render-6LTQZG4W.js.map} +0 -0
  139. /package/dist/{seal-IPKIQHYB.js.map → seal-ROSVLTRQ.js.map} +0 -0
  140. /package/dist/{setup-ZPLJENSK.js.map → setup-DGBJOROA.js.map} +0 -0
  141. /package/dist/{visual-RTTGNOAE.js.map → visual-6W34SFIW.js.map} +0 -0
  142. /package/dist/{watch-FNWHVKK3.js.map → watch-DJVJRSLE.js.map} +0 -0
@@ -4,15 +4,15 @@ import {
4
4
  HEADING_RATIO_H2,
5
5
  HEADING_RATIO_H3,
6
6
  tidyScriptTags
7
- } from "./chunk-UX3HHAWH.js";
7
+ } from "./chunk-NNNRN6BY.js";
8
8
  import {
9
9
  ensureModelsIn,
10
10
  getModelsDir
11
- } from "./chunk-5JZEY5IL.js";
11
+ } from "./chunk-VJP7O6BL.js";
12
12
  import {
13
13
  safeMax,
14
14
  safeMin
15
- } from "./chunk-YGKC6E6A.js";
15
+ } from "./chunk-PTMYCK7R.js";
16
16
 
17
17
  // src/ocr/models.ts
18
18
  import { join } from "path";
@@ -2170,6 +2170,7 @@ var hasBatchim = (c) => {
2170
2170
  return k >= 0 && k < 11172 && k % 28 !== 0;
2171
2171
  };
2172
2172
  var CJK = /[\u3000-\u303F\u3040-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\uFF00-\uFFEF]/;
2173
+ var unspacedCjkBoundary = (prev, next) => CJK.test(prev.trimEnd().slice(-1)) && CJK.test(next.trimStart().charAt(0)) && !/[가-힣ㄱ-ㅎㅏ-ㅣ]/.test(prev + next);
2173
2174
  var CLOSE_TAIL = /[’”」』)\]〉》>]+$/;
2174
2175
  var TAIL = "[.,)\u300D\u300F\u2019\u201D]*";
2175
2176
  var PARTICLE = new RegExp(`^(?:\uB2E4\\.|\uC758|\uC5D0|\uC5D0\uC11C|\uC5D0\uB294|\uC5D0\uAC8C|\uC5D0\uB3C4|\uC5D0\uC11C\uB294|\uAE4C\uC9C0|\uBD80\uD130|\uCC98\uB7FC|\uB9C8\uB2E4|\uB9CC|\uB3C4|\uB4E4|\uB4E4\uC774|\uB4E4\uC758|\uB4E4\uC740|\uB4E4\uC744|\uB4E4\uC5D0\uAC8C|\uC11C\uB294|\uC11C\uB3C4|\uB77C\uACE0|\uB77C\uBA70|\uC740|\uB294|\uC744|\uB97C|\uC73C\uB85C|\uB85C|\uC73C\uB85C\uC11C|\uB85C\uC11C|\uC73C\uB85C\uC368|\uB85C\uC368)${TAIL}$`);
@@ -2219,7 +2220,7 @@ function wrapJoiner(prevText, nextText, lex) {
2219
2220
  const prev = prevText.replace(MARKUP, "").trimEnd(), next = nextText.replace(MARKUP, "").trimStart();
2220
2221
  const a = prev[prev.length - 1], b = next[0];
2221
2222
  if (!a || !b || /[,;:!?]/.test(a) || DATE_DAY_END.test(prev) && b !== "(") return " ";
2222
- if (CJK.test(a) && CJK.test(b) && !/[가-힣ㄱ-ㅎㅏ-ㅣ]/.test(prev + next)) return "";
2223
+ if (unspacedCjkBoundary(prev, next)) return "";
2223
2224
  let s = prev.length;
2224
2225
  while (s > 0 && !/\s/.test(prev[s - 1])) s--;
2225
2226
  const left = prev.slice(s), right = next.match(/^\S+/)[0];
@@ -2262,17 +2263,32 @@ function joinPageBreakWraps(blocks, lex) {
2262
2263
  }
2263
2264
  }
2264
2265
  var HANGING = /[,。、:;!?)」』】〕》〉.]\s*$/;
2266
+ var MULTI_LEVEL_NUMBER = /^\d{1,2}(?:\.\d{1,3})+\.?\s/;
2265
2267
  var BODY_FULL_TOL = 0.25;
2266
2268
  var BODY_MIN_WIDTH_EM = 12;
2267
2269
  var BODY_MAX_PITCH_EM = 2;
2268
2270
  var BODY_PITCH_REL = 1.05;
2269
2271
  var BODY_MAX_PITCH_ABS_EM = 3.5;
2270
2272
  function bodyLineJoins(lines, lex) {
2273
+ lines = lines.map((l) => {
2274
+ const text = l.text.replace(MARKUP, "");
2275
+ return text === l.text ? l : { ...l, text };
2276
+ });
2271
2277
  let right = -Infinity;
2272
2278
  for (const l of lines) if (l.right > right) right = l.right;
2273
2279
  let inner = -Infinity;
2274
2280
  for (const l of lines) if (!HANGING.test(l.text) && l.right > inner) inner = l.right;
2275
2281
  const full = (l) => right - l.right < BODY_FULL_TOL * l.fontSize || right - inner <= 1.2 * l.fontSize && inner - l.right < BODY_FULL_TOL * l.fontSize;
2282
+ const nextWordNoRoom = (a, b) => {
2283
+ const w = b.text.trim().match(/^\S+/)?.[0];
2284
+ const n = [...b.text.trim()].length;
2285
+ if (!w || n === 0) return false;
2286
+ const em = (b.right - b.left) / n;
2287
+ const advance = unspacedCjkBoundary(a.text, b.text) ? 1 : [...w].length + 1;
2288
+ return right - a.right < advance * em;
2289
+ };
2290
+ const candidates = lines.filter((l, i) => full(l) || i + 1 < lines.length && nextWordNoRoom(l, lines[i + 1]));
2291
+ const ragged = candidates.filter(full).length * 2 < candidates.length;
2276
2292
  const pitch = (k) => lines[k].y - lines[k + 1].y;
2277
2293
  const sameSize = (k) => Math.abs(lines[k + 1].fontSize - lines[k].fontSize) <= 0.15 * lines[k].fontSize;
2278
2294
  let p1 = Infinity, p2 = Infinity, i1 = -1;
@@ -2291,8 +2307,9 @@ function bodyLineJoins(lines, lex) {
2291
2307
  const fs = a.fontSize;
2292
2308
  const others = i === i1 ? p2 : p1;
2293
2309
  const maxPitch = Number.isFinite(others) ? Math.min(BODY_MAX_PITCH_ABS_EM * fs, Math.max(BODY_MAX_PITCH_EM * fs, others * BODY_PITCH_REL)) : BODY_MAX_PITCH_EM * fs;
2294
- const wraps = fs > 0 && full(a) && a.right - a.left >= BODY_MIN_WIDTH_EM * fs && a.y - b.y > 0 && a.y - b.y < maxPitch && Math.abs(b.fontSize - fs) <= 0.15 * fs && !startsNewItem(a.text, b.text);
2295
- out.push(wraps ? wrapJoiner(a.text, b.text, lex) : "\n");
2310
+ const wordWrap = ragged && !full(a) && nextWordNoRoom(a, b) && !MULTI_LEVEL_NUMBER.test(b.text.trimStart());
2311
+ const wraps = fs > 0 && (full(a) || wordWrap) && a.right - a.left >= BODY_MIN_WIDTH_EM * fs && a.y - b.y > 0 && a.y - b.y < maxPitch && Math.abs(b.fontSize - fs) <= 0.15 * fs && !startsNewItem(a.text, b.text);
2312
+ out.push(!wraps ? "\n" : wordWrap ? unspacedCjkBoundary(a.text, b.text) ? "" : " " : wrapJoiner(a.text, b.text, lex));
2296
2313
  }
2297
2314
  return out;
2298
2315
  }
@@ -3341,15 +3358,18 @@ function detectTypographyHeadings(blocks) {
3341
3358
  const faceWeight = /* @__PURE__ */ new Map();
3342
3359
  for (const block of page) {
3343
3360
  if (block.type !== "paragraph" || !block.text || !block.style?.fontName) continue;
3344
- const face = block.style.fontName;
3345
- faceWeight.set(face, (faceWeight.get(face) ?? 0) + block.text.length);
3361
+ const faces = FACE_CHARS.get(block);
3362
+ if (faces) for (const [face, n] of faces) faceWeight.set(face, (faceWeight.get(face) ?? 0) + n);
3363
+ else faceWeight.set(block.style.fontName, (faceWeight.get(block.style.fontName) ?? 0) + block.text.length);
3346
3364
  }
3347
3365
  const bodyFace = [...faceWeight].sort((a, b) => b[1] - a[1])[0]?.[0];
3348
3366
  if (!bodyFace || (faceWeight.get(bodyFace) ?? 0) < 250) continue;
3349
3367
  const sizeWeight = /* @__PURE__ */ new Map();
3350
3368
  for (const block of page) {
3351
- if (block.type !== "paragraph" || block.style?.fontName !== bodyFace || !block.style.fontSize) continue;
3352
- sizeWeight.set(block.style.fontSize, (sizeWeight.get(block.style.fontSize) ?? 0) + block.text.length);
3369
+ if (block.type !== "paragraph" || !block.style?.fontSize) continue;
3370
+ const faces = FACE_CHARS.get(block);
3371
+ const chars = faces ? faces.get(bodyFace) ?? 0 : block.style.fontName === bodyFace ? block.text?.length ?? 0 : 0;
3372
+ if (chars) sizeWeight.set(block.style.fontSize, (sizeWeight.get(block.style.fontSize) ?? 0) + chars);
3353
3373
  }
3354
3374
  const bodySize = [...sizeWeight].sort((a, b) => b[1] - a[1])[0]?.[0] ?? 0;
3355
3375
  for (let i = 0; i < page.length; i++) {
@@ -3458,7 +3478,9 @@ function detectRepeatedPageLabels(blocks) {
3458
3478
  for (const page of byPage.values()) {
3459
3479
  const bodyChars = /* @__PURE__ */ new Map();
3460
3480
  for (const b of page) if (b.type === "paragraph" && b.text && b.style?.fontName) {
3461
- bodyChars.set(b.style.fontName, (bodyChars.get(b.style.fontName) ?? 0) + b.text.length);
3481
+ const faces = FACE_CHARS.get(b);
3482
+ if (faces) for (const [face, n] of faces) bodyChars.set(face, (bodyChars.get(face) ?? 0) + n);
3483
+ else bodyChars.set(b.style.fontName, (bodyChars.get(b.style.fontName) ?? 0) + b.text.length);
3462
3484
  }
3463
3485
  const bodyFace = [...bodyChars].sort((a, b) => b[1] - a[1])[0]?.[0];
3464
3486
  const candidates = page.filter((b) => b.type === "paragraph" && b.text && b.bbox && b.style?.fontName && b.style.fontName !== bodyFace && b.bbox.height <= (b.style.fontSize ?? 0) * 1.6 && b.text.trim().length >= 5 && b.text.trim().length <= 80);
@@ -7186,9 +7208,8 @@ function extractBlocksWithGrids(items, pageNum, pageWidth, pageHeight, grids, ho
7186
7208
  continue;
7187
7209
  }
7188
7210
  let lastLeft = -1;
7189
- const beside = (b) => !!b.bbox && b.bbox.x + b.bbox.width <= box.x - 3 && b.bbox.y + b.bbox.height >= box.y && b.bbox.y <= box.y + box.height;
7190
7211
  units.forEach((unit, index) => {
7191
- if (unit.some(beside) && unit.every((b) => beside(b) || !!b.bbox && b.bbox.y + b.bbox.height < box.y)) lastLeft = index;
7212
+ if (isProseBesidePanel(unit, box)) lastLeft = index;
7192
7213
  });
7193
7214
  const current = units.findIndex((unit) => unit.includes(sidebar));
7194
7215
  if (lastLeft > current) {
@@ -7204,6 +7225,10 @@ function extractBlocksWithGrids(items, pageNum, pageWidth, pageHeight, grids, ho
7204
7225
  }
7205
7226
  return mergeAdjacentTableBlocks(ordered);
7206
7227
  }
7228
+ function isProseBesidePanel(unit, box) {
7229
+ const beside = (b) => !!b.bbox && b.bbox.x + b.bbox.width <= box.x - 3 && b.bbox.y + b.bbox.height >= box.y && b.bbox.y <= box.y + box.height;
7230
+ return unit.some(beside) && unit.every((b) => beside(b) || !!b.bbox && b.bbox.y < box.y);
7231
+ }
7207
7232
  var SIDEBAR_ITEMS = /* @__PURE__ */ new WeakMap();
7208
7233
  function clusterTableBlock(cr, source, pageNum, horizontals = []) {
7209
7234
  const b = cr.bbox;
@@ -7484,4 +7509,4 @@ export {
7484
7509
  joinCellEdges,
7485
7510
  extractPageBlocksWithLines
7486
7511
  };
7487
- //# sourceMappingURL=chunk-3N272C5L.js.map
7512
+ //# sourceMappingURL=chunk-YBIWPCUX.js.map