kordoc 4.24.7 → 4.24.8

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 (138) hide show
  1. package/README.md +6 -7
  2. package/dist/{-GQDQXRQN.js → -TLCDUU22.js} +11 -11
  3. package/dist/{chunk-E35YPWOX.js → chunk-5MQG3GJI.js} +2 -2
  4. package/dist/{chunk-MNG25FK4.cjs → chunk-73MRAQXA.cjs} +192 -176
  5. package/dist/chunk-73MRAQXA.cjs.map +1 -0
  6. package/dist/{chunk-VHAOAQZZ.cjs → chunk-7F35EPMM.cjs} +3 -3
  7. package/dist/chunk-7F35EPMM.cjs.map +1 -0
  8. package/dist/{chunk-FQVWYJNM.js → chunk-7JUF6G6Z.js} +2 -2
  9. package/dist/{chunk-OMJPCWKS.js → chunk-7XPTKW76.js} +2 -2
  10. package/dist/{chunk-MLFPEETP.js → chunk-BJABLQMB.js} +2 -2
  11. package/dist/{chunk-YQB3LPKQ.cjs → chunk-C3BOYTY5.cjs} +2 -2
  12. package/dist/chunk-C3BOYTY5.cjs.map +1 -0
  13. package/dist/{chunk-FIS3WY5Q.js → chunk-CB57N2MG.js} +2 -2
  14. package/dist/{chunk-BNIXSB6D.js → chunk-D3EHIHYN.js} +2 -2
  15. package/dist/{chunk-O4RQCDN2.js → chunk-DPB6ZVQ5.js} +33 -17
  16. package/dist/chunk-DPB6ZVQ5.js.map +1 -0
  17. package/dist/{chunk-JKZY6FX5.js → chunk-F7UWIMUA.js} +2 -2
  18. package/dist/{chunk-EIUXBJZP.js → chunk-FSWJC5RR.js} +3 -3
  19. package/dist/chunk-GS7T56RP.cjs.map +1 -1
  20. package/dist/{chunk-EIGCAAVM.js → chunk-IT5XO3UG.js} +32 -16
  21. package/dist/chunk-IT5XO3UG.js.map +1 -0
  22. package/dist/chunk-J55UQC5H.cjs.map +1 -1
  23. package/dist/{chunk-UDUEOBS5.js → chunk-J7MFKS73.js} +2 -2
  24. package/dist/{chunk-AYGMF6H5.cjs → chunk-JM7PZM6E.cjs} +3 -3
  25. package/dist/chunk-JM7PZM6E.cjs.map +1 -0
  26. package/dist/{chunk-DEDUWANG.js → chunk-K2FGQ5D5.js} +11 -11
  27. package/dist/{chunk-GMKFXPEI.js → chunk-KA6JZZIW.js} +5 -5
  28. package/dist/chunk-KA6JZZIW.js.map +1 -0
  29. package/dist/{chunk-OPNMXBUR.js → chunk-N2XN6GAQ.js} +2 -2
  30. package/dist/{chunk-EJPPVB2Y.js → chunk-NE6G6LCP.js} +2 -2
  31. package/dist/{chunk-7BZBMXWD.cjs → chunk-NW2CKOFL.cjs} +6 -6
  32. package/dist/chunk-NW2CKOFL.cjs.map +1 -0
  33. package/dist/{chunk-N2JZGYFK.js → chunk-OUJIV2AM.js} +4 -4
  34. package/dist/chunk-OUJIV2AM.js.map +1 -0
  35. package/dist/{chunk-7ICC55XY.js → chunk-RCDRTQ37.js} +2 -2
  36. package/dist/{chunk-ZQQGV7K2.js → chunk-RCT5MO53.js} +6 -6
  37. package/dist/{chunk-BLWDQEBY.js → chunk-TDB27K2Z.js} +2 -2
  38. package/dist/chunk-TK3FDAEE.cjs.map +1 -1
  39. package/dist/{chunk-WVZXPEHX.js → chunk-TTUAJYTC.js} +5 -5
  40. package/dist/chunk-TTUAJYTC.js.map +1 -0
  41. package/dist/{chunk-C4AY47C5.js → chunk-WTSID6AI.js} +2 -2
  42. package/dist/{chunk-CG2Z6NB3.js → chunk-XOUZC7MX.js} +2 -2
  43. package/dist/{chunk-DZRXJEOF.js → chunk-Z5DT55TW.js} +3 -3
  44. package/dist/{chunk-V4PS653P.cjs → chunk-ZJYNTA5R.cjs} +57 -57
  45. package/dist/chunk-ZJYNTA5R.cjs.map +1 -0
  46. package/dist/chunks-S2GGFN6W.js +10 -0
  47. package/dist/cli.js +30 -30
  48. package/dist/{formula-6XLWGUCB.js → formula-DZMBNPWT.js} +4 -4
  49. package/dist/{formula-DCC5EOSX.js → formula-PNMQ5JFJ.js} +3 -3
  50. package/dist/{formula-C55TRBHH.cjs → formula-ZLNSVWS6.cjs} +9 -9
  51. package/dist/formula-ZLNSVWS6.cjs.map +1 -0
  52. package/dist/{image-ocr-L736MGYD.js → image-ocr-BPH25SFW.js} +9 -9
  53. package/dist/{image-ocr-K3ZXDUNU.js → image-ocr-P5Q6YXTO.js} +6 -6
  54. package/dist/{image-ocr-EV7GVD3W.cjs → image-ocr-YUXCVOOP.cjs} +17 -17
  55. package/dist/image-ocr-YUXCVOOP.cjs.map +1 -0
  56. package/dist/index.cjs +340 -340
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.js +6 -6
  59. package/dist/mcp.js +23 -23
  60. package/dist/{model-bundle-OOOJFMGR.js → model-bundle-XAM6JFZV.js} +5 -5
  61. package/dist/{models-ELFZII4R.js → models-6Q5ULSTP.js} +5 -5
  62. package/dist/page-range-QHHFTL7X.cjs.map +1 -1
  63. package/dist/{parse-worker-v2-WS35WZY5.js → parse-worker-v2-ONX5QLJZ.js} +12 -12
  64. package/dist/{parser-CNRI55MG.js → parser-54R7ENH6.js} +9 -9
  65. package/dist/{parser-K7Y44QHS.js → parser-JHXN4S6L.js} +12 -12
  66. package/dist/{parser-X6P3JBT2.cjs → parser-Z352BN56.cjs} +159 -159
  67. package/dist/parser-Z352BN56.cjs.map +1 -0
  68. package/dist/{pdf-ocr-QQPZLIHM.js → pdf-ocr-FQ4LAXM6.js} +9 -9
  69. package/dist/{pdf-ocr-MVNHXGPS.js → pdf-ocr-LFVER7IE.js} +6 -6
  70. package/dist/pdf-ocr-SMFFJYTD.cjs +31 -0
  71. package/dist/pdf-ocr-SMFFJYTD.cjs.map +1 -0
  72. package/dist/{profile-io-GSRLMU4D.js → profile-io-YW5QWKBB.js} +3 -3
  73. package/dist/{rasterize-3H5QKDH2.js → rasterize-T4S3NMQ7.js} +3 -3
  74. package/dist/{redact-doc-TLBF7J7W.js → redact-doc-CAVBR5XO.js} +11 -11
  75. package/dist/{render-FTCOQ6WO.js → render-ZW52ZX6R.js} +7 -7
  76. package/dist/seal-TQ3RLVVT.js +10 -0
  77. package/dist/{setup-WVZ47AKV.js → setup-7UGSJPJP.js} +3 -3
  78. package/dist/visual-6GXHKPCJ.js +21 -0
  79. package/dist/{watch-CA32Z7XB.js → watch-M4A7B5WS.js} +12 -12
  80. package/package.json +4 -4
  81. package/dist/chunk-7BZBMXWD.cjs.map +0 -1
  82. package/dist/chunk-AYGMF6H5.cjs.map +0 -1
  83. package/dist/chunk-EIGCAAVM.js.map +0 -1
  84. package/dist/chunk-GMKFXPEI.js.map +0 -1
  85. package/dist/chunk-MNG25FK4.cjs.map +0 -1
  86. package/dist/chunk-N2JZGYFK.js.map +0 -1
  87. package/dist/chunk-O4RQCDN2.js.map +0 -1
  88. package/dist/chunk-V4PS653P.cjs.map +0 -1
  89. package/dist/chunk-VHAOAQZZ.cjs.map +0 -1
  90. package/dist/chunk-WVZXPEHX.js.map +0 -1
  91. package/dist/chunk-YQB3LPKQ.cjs.map +0 -1
  92. package/dist/chunks-XURCANPP.js +0 -10
  93. package/dist/formula-C55TRBHH.cjs.map +0 -1
  94. package/dist/image-ocr-EV7GVD3W.cjs.map +0 -1
  95. package/dist/parser-X6P3JBT2.cjs.map +0 -1
  96. package/dist/pdf-ocr-S6GSKOPT.cjs +0 -31
  97. package/dist/pdf-ocr-S6GSKOPT.cjs.map +0 -1
  98. package/dist/seal-74R7KDRY.js +0 -10
  99. package/dist/visual-TEW6Y3NH.js +0 -21
  100. /package/dist/{-GQDQXRQN.js.map → -TLCDUU22.js.map} +0 -0
  101. /package/dist/{chunk-E35YPWOX.js.map → chunk-5MQG3GJI.js.map} +0 -0
  102. /package/dist/{chunk-FQVWYJNM.js.map → chunk-7JUF6G6Z.js.map} +0 -0
  103. /package/dist/{chunk-OMJPCWKS.js.map → chunk-7XPTKW76.js.map} +0 -0
  104. /package/dist/{chunk-MLFPEETP.js.map → chunk-BJABLQMB.js.map} +0 -0
  105. /package/dist/{chunk-FIS3WY5Q.js.map → chunk-CB57N2MG.js.map} +0 -0
  106. /package/dist/{chunk-BNIXSB6D.js.map → chunk-D3EHIHYN.js.map} +0 -0
  107. /package/dist/{chunk-JKZY6FX5.js.map → chunk-F7UWIMUA.js.map} +0 -0
  108. /package/dist/{chunk-EIUXBJZP.js.map → chunk-FSWJC5RR.js.map} +0 -0
  109. /package/dist/{chunk-UDUEOBS5.js.map → chunk-J7MFKS73.js.map} +0 -0
  110. /package/dist/{chunk-DEDUWANG.js.map → chunk-K2FGQ5D5.js.map} +0 -0
  111. /package/dist/{chunk-OPNMXBUR.js.map → chunk-N2XN6GAQ.js.map} +0 -0
  112. /package/dist/{chunk-EJPPVB2Y.js.map → chunk-NE6G6LCP.js.map} +0 -0
  113. /package/dist/{chunk-7ICC55XY.js.map → chunk-RCDRTQ37.js.map} +0 -0
  114. /package/dist/{chunk-ZQQGV7K2.js.map → chunk-RCT5MO53.js.map} +0 -0
  115. /package/dist/{chunk-BLWDQEBY.js.map → chunk-TDB27K2Z.js.map} +0 -0
  116. /package/dist/{chunk-C4AY47C5.js.map → chunk-WTSID6AI.js.map} +0 -0
  117. /package/dist/{chunk-CG2Z6NB3.js.map → chunk-XOUZC7MX.js.map} +0 -0
  118. /package/dist/{chunk-DZRXJEOF.js.map → chunk-Z5DT55TW.js.map} +0 -0
  119. /package/dist/{chunks-XURCANPP.js.map → chunks-S2GGFN6W.js.map} +0 -0
  120. /package/dist/{formula-6XLWGUCB.js.map → formula-DZMBNPWT.js.map} +0 -0
  121. /package/dist/{formula-DCC5EOSX.js.map → formula-PNMQ5JFJ.js.map} +0 -0
  122. /package/dist/{image-ocr-L736MGYD.js.map → image-ocr-BPH25SFW.js.map} +0 -0
  123. /package/dist/{image-ocr-K3ZXDUNU.js.map → image-ocr-P5Q6YXTO.js.map} +0 -0
  124. /package/dist/{model-bundle-OOOJFMGR.js.map → model-bundle-XAM6JFZV.js.map} +0 -0
  125. /package/dist/{models-ELFZII4R.js.map → models-6Q5ULSTP.js.map} +0 -0
  126. /package/dist/{parse-worker-v2-WS35WZY5.js.map → parse-worker-v2-ONX5QLJZ.js.map} +0 -0
  127. /package/dist/{parser-CNRI55MG.js.map → parser-54R7ENH6.js.map} +0 -0
  128. /package/dist/{parser-K7Y44QHS.js.map → parser-JHXN4S6L.js.map} +0 -0
  129. /package/dist/{pdf-ocr-MVNHXGPS.js.map → pdf-ocr-FQ4LAXM6.js.map} +0 -0
  130. /package/dist/{pdf-ocr-QQPZLIHM.js.map → pdf-ocr-LFVER7IE.js.map} +0 -0
  131. /package/dist/{profile-io-GSRLMU4D.js.map → profile-io-YW5QWKBB.js.map} +0 -0
  132. /package/dist/{rasterize-3H5QKDH2.js.map → rasterize-T4S3NMQ7.js.map} +0 -0
  133. /package/dist/{redact-doc-TLBF7J7W.js.map → redact-doc-CAVBR5XO.js.map} +0 -0
  134. /package/dist/{render-FTCOQ6WO.js.map → render-ZW52ZX6R.js.map} +0 -0
  135. /package/dist/{seal-74R7KDRY.js.map → seal-TQ3RLVVT.js.map} +0 -0
  136. /package/dist/{setup-WVZ47AKV.js.map → setup-7UGSJPJP.js.map} +0 -0
  137. /package/dist/{visual-TEW6Y3NH.js.map → visual-6GXHKPCJ.js.map} +0 -0
  138. /package/dist/{watch-CA32Z7XB.js.map → watch-M4A7B5WS.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  // src/utils.ts
2
- var VERSION = true ? "4.24.7" : "0.0.0-dev";
2
+ var VERSION = true ? "4.24.8" : "0.0.0-dev";
3
3
  function toArrayBuffer(buf) {
4
4
  if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
5
5
  return buf.buffer;
@@ -161,4 +161,4 @@ export {
161
161
  classifyError,
162
162
  partExtension
163
163
  };
164
- //# sourceMappingURL=chunk-JKZY6FX5.js.map
164
+ //# sourceMappingURL=chunk-F7UWIMUA.js.map
@@ -2,11 +2,11 @@
2
2
  import {
3
3
  parseRenderStyles,
4
4
  readZipEntry
5
- } from "./chunk-OMJPCWKS.js";
5
+ } from "./chunk-7XPTKW76.js";
6
6
  import {
7
7
  KordocError,
8
8
  precheckZipSize
9
- } from "./chunk-E35YPWOX.js";
9
+ } from "./chunk-5MQG3GJI.js";
10
10
 
11
11
  // src/form/seal.ts
12
12
  import JSZip from "jszip";
@@ -1858,4 +1858,4 @@ export {
1858
1858
  patchZipEntries,
1859
1859
  placeSealHwpx
1860
1860
  };
1861
- //# sourceMappingURL=chunk-EIUXBJZP.js.map
1861
+ //# sourceMappingURL=chunk-FSWJC5RR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/chris_gomdori/workspace/kordoc/dist/chunk-GS7T56RP.cjs","../node_modules/tsup/assets/cjs_shims.js"],"names":[],"mappings":"AAAA;ACKA,IAAM,iBAAA,EAAmB,CAAA,EAAA,GACvB,OAAO,SAAA,IAAa,YAAA,EAChB,IAAI,GAAA,CAAI,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAA;AAK8B;ADT4B;AACA;AACA;AACA","file":"/Users/chris_gomdori/workspace/kordoc/dist/chunk-GS7T56RP.cjs","sourcesContent":[null,"// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"]}
1
+ {"version":3,"sources":["/Users/mong-e/workspace/kordoc/dist/chunk-GS7T56RP.cjs","../node_modules/tsup/assets/cjs_shims.js"],"names":[],"mappings":"AAAA;ACKA,IAAM,iBAAA,EAAmB,CAAA,EAAA,GACvB,OAAO,SAAA,IAAa,YAAA,EAChB,IAAI,GAAA,CAAI,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAA;AAK8B;ADT4B;AACA;AACA;AACA","file":"/Users/mong-e/workspace/kordoc/dist/chunk-GS7T56RP.cjs","sourcesContent":[null,"// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n"]}
@@ -6,11 +6,11 @@ import {
6
6
  HEADING_RATIO_H3,
7
7
  tidyScriptTags,
8
8
  toTex
9
- } from "./chunk-BLWDQEBY.js";
9
+ } from "./chunk-TDB27K2Z.js";
10
10
  import {
11
11
  safeMax,
12
12
  safeMin
13
- } from "./chunk-E35YPWOX.js";
13
+ } from "./chunk-5MQG3GJI.js";
14
14
 
15
15
  // src/ocr/line-split.ts
16
16
  function grayCrop(rgba, pageW, box) {
@@ -482,6 +482,7 @@ function gapGlyphs(gray, w, h, ink) {
482
482
  if (ch >= bh * 0.9 && cw <= bh * 0.15) continue;
483
483
  const others = comps.filter((o) => o !== c && inBand(o) && !(o.x0 >= c.x0 && o.x1 <= c.x1 && o.y0 >= c.y0 && o.y1 <= c.y1));
484
484
  const apart = !others.some((o) => o.x0 < c.x1 + 1 && o.x1 > c.x0 - 1);
485
+ const abut = !apart && ch >= bh * 0.3 && ch <= bh * 0.65 && !others.some((o) => o.x0 < c.x1 && o.x1 > c.x0);
485
486
  const nearlyApart = !others.some((o) => Math.min(o.x1, c.x1) - Math.max(o.x0, c.x0) > 2);
486
487
  const spans = [], runs = [];
487
488
  let n = 0;
@@ -506,18 +507,11 @@ function gapGlyphs(gray, w, h, ink) {
506
507
  const speck = Math.max(3, bh * 0.08);
507
508
  const dot = ch <= bh * 0.25 && cw <= bh * 0.25 && ch >= speck && cw >= speck && cw >= ch * 0.6 && cw <= ch * 1.6;
508
509
  const small = ch <= bh * 0.25 && cw <= bh * 0.25 && ch >= 2 && cw >= 2 && cw >= ch * 0.6 && cw <= ch * 1.6 && fill >= 0.6 && cy >= 0.3 && cy <= 0.7;
509
- if (!apart && !(nearlyApart && ch >= bh * 0.6)) {
510
+ if (!apart && !abut && !(nearlyApart && ch >= bh * 0.6)) {
510
511
  if (small) out.push({ x0: c.x0, x1: c.x1, mark: "\xB7" });
511
512
  continue;
512
513
  }
513
- if (!apart) {
514
- } else if (dot && fill >= 0.6 && cy >= 0.3 && cy <= 0.7) mark = "\xB7";
515
- else if (small) mark = "\xB7";
516
- else if (dot && fill >= 0.6 && cy >= 0.75 && cw >= ch * 0.8) mark = ".";
517
- else if (ch <= bh * 0.4 && ch >= speck && cw >= ch * 0.75 && cw <= ch * 1.3 && fill < 0.6 && runs[ch >> 1] === 2 && cy >= 0.6) mark = "\u3002";
518
- else if (ch <= bh * 0.15 && cw >= ch * 2 && cw <= bh * 0.8 && fill >= 0.7 && cy >= 0.35 && cy <= 0.75) mark = "-";
519
- else if (ch >= bh * 0.5 && cw >= ch * 0.9 && cw <= ch * 1.4 && fill >= 0.4 && runs.every((r) => r <= 1) && top <= 0.4 && bottom >= 0.8) mark = "\u25B2";
520
- else if (ch >= bh * 0.3 && ch <= bh * 0.65 && fill < 0.5) {
514
+ const bracket = () => {
521
515
  const stem = (from, to) => {
522
516
  let sx = 0, k = 0;
523
517
  for (let y = from; y < to; y++) for (let x = c.x0; x < c.x1; x++) if (label[y * w + x] === c.id) {
@@ -526,9 +520,21 @@ function gapGlyphs(gray, w, h, ink) {
526
520
  }
527
521
  return k ? sx / k / cw : 0.5;
528
522
  };
529
- if (c.y0 <= bandT + bh * 0.15 && top >= 0.7 && bottom <= 0.5 && stem(c.y0 + band, c.y1) <= 0.35) mark = "\u300C";
530
- else if (c.y1 >= bandB - bh * 0.15 && bottom >= 0.7 && top <= 0.5 && stem(c.y0, c.y1 - band) >= 0.65) mark = "\u300D";
531
- } else if (ch >= charH * 0.6 && cw >= ch * 0.8 && cw <= ch * 1.25 && fill < 0.5 && top >= 0.8 && bottom >= 0.8 && runs[ch >> 1] === 2) mark = ch <= charH * 0.92 ? "\u25A1" : "\u25A1\0";
523
+ if (c.y0 <= bandT + bh * 0.15 && top >= 0.7 && bottom <= 0.5 && stem(c.y0 + band, c.y1) <= 0.35) return "\u300C";
524
+ if (c.y1 >= bandB - bh * 0.15 && bottom >= 0.7 && top <= 0.5 && stem(c.y0, c.y1 - band) >= 0.65) return "\u300D";
525
+ return null;
526
+ };
527
+ if (!apart && !abut) {
528
+ } else if (abut) {
529
+ if (fill < 0.5) mark = bracket();
530
+ } else if (dot && fill >= 0.6 && cy >= 0.3 && cy <= 0.7) mark = "\xB7";
531
+ else if (small) mark = "\xB7";
532
+ else if (dot && fill >= 0.6 && cy >= 0.75 && cw >= ch * 0.8) mark = ".";
533
+ else if (ch <= bh * 0.4 && ch >= speck && cw >= ch * 0.75 && cw <= ch * 1.3 && fill < 0.6 && runs[ch >> 1] === 2 && cy >= 0.6) mark = "\u3002";
534
+ else if (ch <= bh * 0.15 && cw >= ch * 2 && cw <= bh * 0.8 && fill >= 0.7 && cy >= 0.35 && cy <= 0.75) mark = "-";
535
+ else if (ch >= bh * 0.5 && cw >= ch * 0.9 && cw <= ch * 1.4 && fill >= 0.4 && runs.every((r) => r <= 1) && top <= 0.4 && bottom >= 0.8) mark = "\u25B2";
536
+ else if (ch >= bh * 0.3 && ch <= bh * 0.65 && fill < 0.5) mark = bracket();
537
+ else if (ch >= charH * 0.6 && cw >= ch * 0.8 && cw <= ch * 1.25 && fill < 0.5 && top >= 0.8 && bottom >= 0.8 && runs[ch >> 1] === 2) mark = ch <= charH * 0.92 ? "\u25A1" : "\u25A1\0";
532
538
  if (!mark && ch >= bh * 0.6 && cw >= ch * 0.25 && cw <= ch * 0.7 && fill <= 0.4 && runs.every((r) => r <= 1)) {
533
539
  const mx = (y) => {
534
540
  let sx = 0, k = 0;
@@ -1873,7 +1879,17 @@ function dropHeadBandClipGrids(clipGrids, lineGrids) {
1873
1879
  if (clipGrids.length === 0 || lineGrids.length === 0) return clipGrids;
1874
1880
  const near2 = (a, b) => Math.abs(a - b) <= SHADE_CLIP_TOL;
1875
1881
  const overlaps = (a, b) => Math.min(a.x2, b.x2) > Math.max(a.x1, b.x1) && Math.min(a.y2, b.y2) > Math.max(a.y1, b.y1);
1876
- return clipGrids.filter((c) => c.clipParent || !c.cells?.length || !lineGrids.some((l) => l.rowYs.length > c.rowYs.length && l.colXs.length === c.colXs.length && c.colXs.every((x, k) => near2(x, l.colXs[k])) && c.rowYs.every((y, k) => near2(y, l.rowYs[k])) && !clipGrids.some((o) => o !== c && overlaps(o.bbox, l.bbox))));
1882
+ const kept = clipGrids.filter((c) => c.clipParent || !c.cells?.length || !lineGrids.some((l) => l.rowYs.length > c.rowYs.length && l.colXs.length === c.colXs.length && c.colXs.every((x, k) => near2(x, l.colXs[k])) && c.rowYs.every((y, k) => near2(y, l.rowYs[k])) && !clipGrids.some((o) => o !== c && overlaps(o.bbox, l.bbox))));
1883
+ return kept.filter((c) => !lineGrids.some((l) => headBandTiles(kept, l, near2, overlaps).includes(c)));
1884
+ }
1885
+ function headBandTiles(clips, l, near2, overlaps) {
1886
+ const onRow = (y) => l.rowYs.some((r) => near2(r, y));
1887
+ const band = clips.filter((c) => !c.clipParent && c.cells?.length && near2(c.bbox.y2, l.bbox.y2) && c.bbox.y1 > l.bbox.y1 + SHADE_CLIP_TOL && c.bbox.x1 >= l.bbox.x1 - SHADE_CLIP_TOL && c.bbox.x2 <= l.bbox.x2 + SHADE_CLIP_TOL && c.rowYs.every(onRow)).sort((a, b) => a.bbox.x1 - b.bbox.x1);
1888
+ if (band.length < 2 || !near2(band[0].bbox.x1, l.bbox.x1) || !near2(band[band.length - 1].bbox.x2, l.bbox.x2)) return [];
1889
+ if (band.some((c, k) => k > 0 && c.bbox.x1 > band[k - 1].bbox.x2 + SHADE_CLIP_TOL)) return [];
1890
+ const bottom = Math.min(...band.map((c) => c.bbox.y1));
1891
+ const body = { ...l.bbox, y2: bottom };
1892
+ return clips.some((o) => !band.includes(o) && overlaps(o.bbox, body)) ? [] : band;
1877
1893
  }
1878
1894
  function enforceMinWidth(colXs, minWidth, narrowRuns = true) {
1879
1895
  if (colXs.length <= 2) return colXs;
@@ -10050,4 +10066,4 @@ export {
10050
10066
  UNRULED_REGION_TABLES,
10051
10067
  mergeOcrImageRegions
10052
10068
  };
10053
- //# sourceMappingURL=chunk-EIGCAAVM.js.map
10069
+ //# sourceMappingURL=chunk-IT5XO3UG.js.map