@arbidocs/blocks 0.5.123 → 0.5.124

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 (117) hide show
  1. package/dist/{ClippingMediaViewer-IEIBT74X.cjs → ClippingMediaViewer-ZFEX5A3U.cjs} +11 -10
  2. package/dist/ClippingMediaViewer-ZFEX5A3U.cjs.map +1 -0
  3. package/dist/{ClippingPdfViewer-OGYLMVCE.cjs → ClippingPdfViewer-3LRTEPHV.cjs} +45 -11
  4. package/dist/ClippingPdfViewer-3LRTEPHV.cjs.map +1 -0
  5. package/dist/ConnectedNativeDocxComparison-QKHCYD6W.cjs +1 -1
  6. package/dist/{ConnectedPresentation-5DOJ35XL.cjs → ConnectedPresentation-OV2KBOLK.cjs} +27 -153
  7. package/dist/ConnectedPresentation-OV2KBOLK.cjs.map +1 -0
  8. package/dist/{ConnectedSlidesTab-7YMEDGUU.cjs → ConnectedSlidesTab-LUAGZ6FD.cjs} +29 -27
  9. package/dist/ConnectedSlidesTab-LUAGZ6FD.cjs.map +1 -0
  10. package/dist/ConnectedStreamedWordArtifact-AG62232A.cjs +1 -1
  11. package/dist/{FilesViewerDialog-2QCCRWF2.cjs → FilesViewerDialog-JWKNJLWG.cjs} +12 -9
  12. package/dist/FilesViewerDialog-JWKNJLWG.cjs.map +1 -0
  13. package/dist/SpotlightStrip-ED22UYTM.cjs +398 -0
  14. package/dist/SpotlightStrip-ED22UYTM.cjs.map +1 -0
  15. package/dist/agents/index.cjs +176 -176
  16. package/dist/{chunk-46P7IDBX.cjs → chunk-3IH55CDE.cjs} +3 -3
  17. package/dist/chunk-3IH55CDE.cjs.map +1 -0
  18. package/dist/chunk-3ZZZO4F7.cjs +145 -0
  19. package/dist/chunk-3ZZZO4F7.cjs.map +1 -0
  20. package/dist/{chunk-WFMWKPGY.cjs → chunk-ADPRIBSH.cjs} +9 -33
  21. package/dist/chunk-ADPRIBSH.cjs.map +1 -0
  22. package/dist/{chunk-JD2HX2BR.cjs → chunk-BX6G2ZCI.cjs} +58 -86
  23. package/dist/chunk-BX6G2ZCI.cjs.map +1 -0
  24. package/dist/{chunk-NQML7IUC.cjs → chunk-CQQQIZU4.cjs} +3 -3
  25. package/dist/{chunk-NQML7IUC.cjs.map → chunk-CQQQIZU4.cjs.map} +1 -1
  26. package/dist/{chunk-SNPK3R3O.cjs → chunk-EMRY62HS.cjs} +5 -5
  27. package/dist/{chunk-SNPK3R3O.cjs.map → chunk-EMRY62HS.cjs.map} +1 -1
  28. package/dist/{chunk-DWMWEALB.cjs → chunk-H236SNEV.cjs} +143 -1634
  29. package/dist/chunk-H236SNEV.cjs.map +1 -0
  30. package/dist/chunk-JITYC4OS.cjs +66 -0
  31. package/dist/chunk-JITYC4OS.cjs.map +1 -0
  32. package/dist/chunk-JY7UUZQG.cjs +1513 -0
  33. package/dist/chunk-JY7UUZQG.cjs.map +1 -0
  34. package/dist/chunk-MVXHTAJ4.cjs +111 -0
  35. package/dist/chunk-MVXHTAJ4.cjs.map +1 -0
  36. package/dist/{chunk-4TTX6ZNS.cjs → chunk-ORNLCBNE.cjs} +24 -2
  37. package/dist/chunk-ORNLCBNE.cjs.map +1 -0
  38. package/dist/{chunk-L4CIFLCU.cjs → chunk-QG2U2JGX.cjs} +4 -4
  39. package/dist/{chunk-L4CIFLCU.cjs.map → chunk-QG2U2JGX.cjs.map} +1 -1
  40. package/dist/chunk-WVZLAAIZ.cjs +31 -0
  41. package/dist/chunk-WVZLAAIZ.cjs.map +1 -0
  42. package/dist/{chunk-WV7BCGCK.cjs → chunk-XGM4VVNV.cjs} +19 -19
  43. package/dist/{chunk-WV7BCGCK.cjs.map → chunk-XGM4VVNV.cjs.map} +1 -1
  44. package/dist/chunk-ZZZITHGK.cjs +119 -0
  45. package/dist/chunk-ZZZITHGK.cjs.map +1 -0
  46. package/dist/connect/docx.cjs +1 -1
  47. package/dist/connect/index.cjs +175 -175
  48. package/dist/connect/viewer.cjs +10 -7
  49. package/dist/connection/presentation/ClippingMediaViewer.js +3 -3
  50. package/dist/connection/presentation/ClippingMediaViewer.js.map +2 -2
  51. package/dist/connection/presentation/ClippingPdfViewer.d.ts +4 -3
  52. package/dist/connection/presentation/ClippingPdfViewer.js +48 -9
  53. package/dist/connection/presentation/ClippingPdfViewer.js.map +2 -2
  54. package/dist/connection/presentation/SpotlightLayer.d.ts +5 -0
  55. package/dist/connection/presentation/SpotlightLayer.js +19 -0
  56. package/dist/connection/presentation/SpotlightLayer.js.map +7 -0
  57. package/dist/connection/presentation/SpotlightStrip.d.ts +10 -0
  58. package/dist/connection/presentation/SpotlightStrip.js +237 -0
  59. package/dist/connection/presentation/SpotlightStrip.js.map +7 -0
  60. package/dist/connection/presentation/useViewerClipping.d.ts +4 -3
  61. package/dist/connection/presentation/useViewerClipping.js +8 -4
  62. package/dist/connection/presentation/useViewerClipping.js.map +2 -2
  63. package/dist/connection/viewer/ConnectedDocumentViewer.js +1 -1
  64. package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
  65. package/dist/connection/viewer/pdf/passageHighlights.d.ts +5 -0
  66. package/dist/connection/viewer/pdf/passageHighlights.js +14 -1
  67. package/dist/connection/viewer/pdf/passageHighlights.js.map +2 -2
  68. package/dist/connection/viewer/useCleanView.d.ts +3 -1
  69. package/dist/connection/viewer/useCleanView.js +6 -3
  70. package/dist/connection/viewer/useCleanView.js.map +2 -2
  71. package/dist/document-tools/DocumentToolButtons.js +1 -1
  72. package/dist/document-tools/DocumentToolButtons.js.map +1 -1
  73. package/dist/document-tools/index.cjs +13 -13
  74. package/dist/embed/index.cjs +2 -2
  75. package/dist/index.cjs +239 -239
  76. package/dist/presentation/ClipCaptureOverlay.d.ts +7 -3
  77. package/dist/presentation/ClipCaptureOverlay.js +43 -14
  78. package/dist/presentation/ClipCaptureOverlay.js.map +2 -2
  79. package/dist/presentation/PresentControls.d.ts +8 -0
  80. package/dist/presentation/PresentControls.js +1 -0
  81. package/dist/presentation/PresentControls.js.map +2 -2
  82. package/dist/presentation/PresentationStage.d.ts +10 -2
  83. package/dist/presentation/PresentationStage.js +6 -3
  84. package/dist/presentation/PresentationStage.js.map +2 -2
  85. package/dist/presentation/PresenterView.js +1 -22
  86. package/dist/presentation/PresenterView.js.map +2 -2
  87. package/dist/presentation/SpotlightView.d.ts +19 -0
  88. package/dist/presentation/SpotlightView.js +180 -0
  89. package/dist/presentation/SpotlightView.js.map +7 -0
  90. package/dist/presentation/passage-clip.d.ts +17 -0
  91. package/dist/presentation/passage-clip.js +25 -0
  92. package/dist/presentation/passage-clip.js.map +7 -0
  93. package/dist/presentation/spotlight.d.ts +58 -0
  94. package/dist/presentation/spotlight.js +110 -0
  95. package/dist/presentation/spotlight.js.map +7 -0
  96. package/dist/presentation/store.d.ts +5 -0
  97. package/dist/presentation/store.js +19 -0
  98. package/dist/presentation/store.js.map +2 -2
  99. package/dist/presentation/usePointerActive.d.ts +2 -0
  100. package/dist/presentation/usePointerActive.js +28 -0
  101. package/dist/presentation/usePointerActive.js.map +7 -0
  102. package/dist/styles.css +1 -1
  103. package/dist/workflow-canvas/index.cjs +12 -12
  104. package/node_modules/@arbidocs/coedit/package.json +1 -1
  105. package/package.json +5 -5
  106. package/dist/ClippingMediaViewer-IEIBT74X.cjs.map +0 -1
  107. package/dist/ClippingPdfViewer-OGYLMVCE.cjs.map +0 -1
  108. package/dist/ConnectedPresentation-5DOJ35XL.cjs.map +0 -1
  109. package/dist/ConnectedSlidesTab-7YMEDGUU.cjs.map +0 -1
  110. package/dist/FilesViewerDialog-2QCCRWF2.cjs.map +0 -1
  111. package/dist/chunk-46P7IDBX.cjs.map +0 -1
  112. package/dist/chunk-4TTX6ZNS.cjs.map +0 -1
  113. package/dist/chunk-DWMWEALB.cjs.map +0 -1
  114. package/dist/chunk-JD2HX2BR.cjs.map +0 -1
  115. package/dist/chunk-WFMWKPGY.cjs.map +0 -1
  116. package/dist/chunk-XK4TVJKD.cjs +0 -73
  117. package/dist/chunk-XK4TVJKD.cjs.map +0 -1
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ // src/connection/viewer/pdf/passageHighlights.ts
5
+ function passageHighlight(chunkId, { cited, active }) {
6
+ if (cited.size > 0) {
7
+ if (!cited.has(chunkId)) return null;
8
+ return chunkId === active ? "strong" : "light";
9
+ }
10
+ return chunkId === active ? "light" : null;
11
+ }
12
+ function asBox(bbox) {
13
+ if (!bbox || bbox.length !== 4 || !bbox.every(Number.isFinite)) return null;
14
+ const [x0, y0, x1, y1] = bbox;
15
+ if (x1 <= x0 || y1 <= y0) return null;
16
+ return [x0, y0, x1, y1];
17
+ }
18
+ function isWholePage([x0, y0, x1, y1]) {
19
+ return x0 <= 0 && y0 <= 0 && x1 >= 1 && y1 >= 1;
20
+ }
21
+ function passagePlaced(pages, chunkId) {
22
+ for (const page of pages) {
23
+ const chunk = page.chunks.find((entry) => entry.chunkExtId === chunkId);
24
+ if (chunk) {
25
+ const box = asBox(chunk.pageBbox);
26
+ return !!box && !isWholePage(box);
27
+ }
28
+ }
29
+ return false;
30
+ }
31
+ function placedPassagesByPage(pages) {
32
+ const byPage = /* @__PURE__ */ new Map();
33
+ for (const page of pages) {
34
+ if (page.pageNumber === null) continue;
35
+ for (const chunk of page.chunks) {
36
+ const box = asBox(chunk.pageBbox);
37
+ if (!box || isWholePage(box)) continue;
38
+ byPage.set(page.pageNumber, [...byPage.get(page.pageNumber) ?? [], box]);
39
+ }
40
+ }
41
+ return byPage;
42
+ }
43
+ function passageBoxesByPage(pages, state) {
44
+ const byPage = /* @__PURE__ */ new Map();
45
+ if (state.cited.size === 0 && !state.active) return byPage;
46
+ for (const page of pages) {
47
+ if (page.pageNumber === null) continue;
48
+ for (const chunk of page.chunks) {
49
+ const chunkId = chunk.chunkExtId;
50
+ if (!chunkId) continue;
51
+ const highlight = passageHighlight(chunkId, state);
52
+ const box = highlight && asBox(chunk.pageBbox);
53
+ if (!highlight || !box || isWholePage(box)) continue;
54
+ const boxes = byPage.get(page.pageNumber) ?? [];
55
+ boxes.push({ chunkId, box, highlight });
56
+ byPage.set(page.pageNumber, boxes);
57
+ }
58
+ }
59
+ return byPage;
60
+ }
61
+
62
+ exports.passageBoxesByPage = passageBoxesByPage;
63
+ exports.passagePlaced = passagePlaced;
64
+ exports.placedPassagesByPage = placedPassagesByPage;
65
+ //# sourceMappingURL=chunk-JITYC4OS.cjs.map
66
+ //# sourceMappingURL=chunk-JITYC4OS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connection/viewer/pdf/passageHighlights.ts"],"names":[],"mappings":"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","file":"chunk-JITYC4OS.cjs","sourcesContent":["/**\n * Which passages light up on the PDF, and where. The rules are the parsed view's (`ParsedPassage`):\n * while a fact's Citation popover is open its cited passages are light and the one being read is\n * strong; otherwise the passage a citation opened the document at is the one lit. A passage's box\n * is the parser's (`page_bbox`: fractions of its page, top-left origin), so it lands on the page\n * at any zoom.\n */\n\nimport type { ProcessedPage } from '@arbidocs/react/viewers'\nimport type { PassageHighlight } from '../../../files'\n\n/** [x0, y0, x1, y1] as fractions of the page. */\nexport type PageBox = readonly [number, number, number, number]\n\nexport interface PdfPassageBox {\n chunkId: string\n box: PageBox\n highlight: PassageHighlight\n}\n\nexport interface PassageHighlightState {\n /** A fact's cited passages (its Citation popover is open); empty when none is. */\n cited: ReadonlySet<string>\n /** The passage being read: the one a citation opened the document at. */\n active: string | null\n}\n\n/** How a passage is lit, or null when it is not. */\nexport function passageHighlight(\n chunkId: string,\n { cited, active }: PassageHighlightState\n): PassageHighlight | null {\n if (cited.size > 0) {\n if (!cited.has(chunkId)) return null\n return chunkId === active ? 'strong' : 'light'\n }\n return chunkId === active ? 'light' : null\n}\n\n/** A drawable box: four finite fractions with area. */\nfunction asBox(bbox: readonly number[] | undefined): PageBox | null {\n if (!bbox || bbox.length !== 4 || !bbox.every(Number.isFinite)) return null\n const [x0, y0, x1, y1] = bbox\n if (x1 <= x0 || y1 <= y0) return null\n return [x0, y0, x1, y1]\n}\n\n/**\n * The page's whole area: what the parser gives a chunk on a page where it recognized no block to\n * place it by. It says \"this page\", and a rectangle over the whole page would say nothing more.\n */\nfunction isWholePage([x0, y0, x1, y1]: PageBox): boolean {\n return x0 <= 0 && y0 <= 0 && x1 >= 1 && y1 >= 1\n}\n\n/** The passage has a box on its page to light (not none, nor the whole page). */\nexport function passagePlaced(pages: readonly ProcessedPage[], chunkId: string): boolean {\n for (const page of pages) {\n const chunk = page.chunks.find((entry) => entry.chunkExtId === chunkId)\n if (chunk) {\n const box = asBox(chunk.pageBbox)\n return !!box && !isWholePage(box)\n }\n }\n return false\n}\n\n/**\n * Every passage placed on its page (a box, not the whole page), by page number: what clip mode\n * outlines under the pointer and clips with a click.\n */\nexport function placedPassagesByPage(pages: readonly ProcessedPage[]): Map<number, PageBox[]> {\n const byPage = new Map<number, PageBox[]>()\n for (const page of pages) {\n if (page.pageNumber === null) continue\n for (const chunk of page.chunks) {\n const box = asBox(chunk.pageBbox)\n if (!box || isWholePage(box)) continue\n byPage.set(page.pageNumber, [...(byPage.get(page.pageNumber) ?? []), box])\n }\n }\n return byPage\n}\n\n/** The lit passages' boxes, by page number. Passages without a usable box are left out. */\nexport function passageBoxesByPage(\n pages: readonly ProcessedPage[],\n state: PassageHighlightState\n): Map<number, PdfPassageBox[]> {\n const byPage = new Map<number, PdfPassageBox[]>()\n if (state.cited.size === 0 && !state.active) return byPage\n for (const page of pages) {\n if (page.pageNumber === null) continue\n for (const chunk of page.chunks) {\n const chunkId = chunk.chunkExtId\n if (!chunkId) continue\n const highlight = passageHighlight(chunkId, state)\n const box = highlight && asBox(chunk.pageBbox)\n if (!highlight || !box || isWholePage(box)) continue\n const boxes = byPage.get(page.pageNumber) ?? []\n boxes.push({ chunkId, box, highlight })\n byPage.set(page.pageNumber, boxes)\n }\n }\n return byPage\n}\n"]}