@react-pdf-kit/viewer 2.9.2-rc.0 → 2.10.0-beta.0

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 (165) hide show
  1. package/dist/AnnotationLayer-lagF0zYo.js +116 -0
  2. package/dist/{Button-DBu3SaMk.js → Button-B_yuVBQ_.js} +1 -1
  3. package/dist/{Checkbox-CSIEUyO8.js → Checkbox-BVARFFLh.js} +2 -2
  4. package/dist/{Combination-11kyhTGt.js → Combination-ILTe_xfZ.js} +2 -2
  5. package/dist/{Container-BuamPhw4.js → Container-CY9sCoDd.js} +1 -1
  6. package/dist/{DocumentDialog-cRr9sSSH.js → DocumentDialog-CYKsfOE1.js} +4 -4
  7. package/dist/{DropDown-CM6xEwZC.js → DropDown-DEnDtOIT.js} +2 -2
  8. package/dist/{Input-Dpo1Xfxe.js → Input-CVjTHdhy.js} +1 -1
  9. package/dist/{LoaderIcon-B3ddfd0D.js → LoaderIcon-SD35XFV2.js} +1 -1
  10. package/dist/{LoadingIndicator-0E8WHnSN.js → LoadingIndicator-SLpllUQ1.js} +1 -1
  11. package/dist/{MenuItem-lItnKNd5.js → MenuItem-DEd62cAM.js} +2 -2
  12. package/dist/{MenuSeparator-CaFxd8b5.js → MenuSeparator-BVQWugN3.js} +1 -1
  13. package/dist/{PasswordModal-CxHFn0pB.js → PasswordModal-BCjtXHN4.js} +1 -1
  14. package/dist/{RPDropFileZone-Bq1bzWmO.js → RPDropFileZone-lI-AmN-1.js} +3 -3
  15. package/dist/{RPPages-BZwgKgfJ.js → RPPages-BVSFaPUT.js} +2 -2
  16. package/dist/{RPTooltip-QWwWh4HW.js → RPTooltip-KdCUxOyM.js} +3 -3
  17. package/dist/TextHighlightLayer-BMhYl-9Q.js +162 -0
  18. package/dist/{TextLayer-Bp1CDIIa.js → TextLayer-CUtANGvL.js} +2 -2
  19. package/dist/{Thumbnail-BXMk0OWF.js → Thumbnail-BDGp0xdd.js} +3 -3
  20. package/dist/{Thumbnails-BIuN8LZ8.js → Thumbnails-C6maORBh.js} +1 -1
  21. package/dist/XfaLayer.module-w4FOd2dm.js +4 -0
  22. package/dist/assets/XfaLayer.css +1 -0
  23. package/dist/assets/style.js +1 -1
  24. package/dist/components/RPController.js +1 -1
  25. package/dist/components/RPDropFileZone.js +1 -1
  26. package/dist/components/RPPages.js +1 -1
  27. package/dist/components/RPProvider.js +1 -1
  28. package/dist/components/icons/DarkPdfIcon.js +1 -1
  29. package/dist/components/icons/LightPdfIcon.js +1 -1
  30. package/dist/components/icons/LoaderIcon.js +1 -1
  31. package/dist/components/layout/Container.js +1 -1
  32. package/dist/components/layout/LayoutContainer.js +2 -2
  33. package/dist/components/layout/LayoutWrapper.js +1 -1
  34. package/dist/components/layout/RPDefaultLayout.js +5 -5
  35. package/dist/components/layout/RPLayout.js +5 -5
  36. package/dist/components/layout/SkipLink.js +1 -1
  37. package/dist/components/layout/WrapperLayout.js +1 -1
  38. package/dist/components/layout/sidebar/CustomThumbnailElement.js +1 -1
  39. package/dist/components/layout/sidebar/RPSidebar.js +4 -4
  40. package/dist/components/layout/sidebar/RPSplitter.js +1 -1
  41. package/dist/components/layout/sidebar/Thumbnail.js +1 -1
  42. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  43. package/dist/components/layout/toolbar/DarkModeTool.js +2 -2
  44. package/dist/components/layout/toolbar/DocumentDialog.js +1 -1
  45. package/dist/components/layout/toolbar/DocumentProperties.js +3 -3
  46. package/dist/components/layout/toolbar/FileDownloadTool.js +3 -3
  47. package/dist/components/layout/toolbar/FileUploadTool.js +3 -3
  48. package/dist/components/layout/toolbar/FullScreenTool.js +3 -3
  49. package/dist/components/layout/toolbar/MenuItem.js +1 -1
  50. package/dist/components/layout/toolbar/MenuSeparator.js +1 -1
  51. package/dist/components/layout/toolbar/MostPageTool.js +5 -5
  52. package/dist/components/layout/toolbar/OtherTool.js +7 -7
  53. package/dist/components/layout/toolbar/Paginate.js +4 -4
  54. package/dist/components/layout/toolbar/PrintTool.js +3 -3
  55. package/dist/components/layout/toolbar/PropertyItem.js +1 -1
  56. package/dist/components/layout/toolbar/RPMenuItem.js +3 -3
  57. package/dist/components/layout/toolbar/RPMoreOptions.js +7 -7
  58. package/dist/components/layout/toolbar/RPToolbar.js +2 -2
  59. package/dist/components/layout/toolbar/RotateTool.js +5 -5
  60. package/dist/components/layout/toolbar/ScrollModeTool.js +3 -3
  61. package/dist/components/layout/toolbar/SearchCloseButton.js +3 -3
  62. package/dist/components/layout/toolbar/SearchResultNavigator.js +3 -3
  63. package/dist/components/layout/toolbar/SearchTool.js +7 -7
  64. package/dist/components/layout/toolbar/SelectionModeTool.js +4 -4
  65. package/dist/components/layout/toolbar/ThumbnailTool.js +2 -2
  66. package/dist/components/layout/toolbar/ToolbarCustom.js +4 -4
  67. package/dist/components/layout/toolbar/ToolbarDefault.js +4 -4
  68. package/dist/components/layout/toolbar/ViewModeTool.js +4 -4
  69. package/dist/components/layout/toolbar/ZoomTool.js +8 -8
  70. package/dist/components/layout/toolbar/tools/DocumentPropertiesTool.js +3 -3
  71. package/dist/components/layout/toolbar/tools/DualPageTool.js +2 -2
  72. package/dist/components/layout/toolbar/tools/DualPageWithCoverTool.js +1 -1
  73. package/dist/components/layout/toolbar/tools/FileDownloadTool.js +2 -2
  74. package/dist/components/layout/toolbar/tools/FileUploadTool.js +2 -2
  75. package/dist/components/layout/toolbar/tools/FirstPageTool.js +1 -1
  76. package/dist/components/layout/toolbar/tools/FullScreenTool.js +2 -2
  77. package/dist/components/layout/toolbar/tools/HorizontalScrollingTool.js +2 -2
  78. package/dist/components/layout/toolbar/tools/InputPageTool.js +3 -3
  79. package/dist/components/layout/toolbar/tools/LastPageTool.js +1 -1
  80. package/dist/components/layout/toolbar/tools/NextPageTool.js +2 -2
  81. package/dist/components/layout/toolbar/tools/PageScrollingTool.js +2 -2
  82. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +2 -2
  83. package/dist/components/layout/toolbar/tools/PrintTool.js +2 -2
  84. package/dist/components/layout/toolbar/tools/RotateClockwiseTool.js +2 -2
  85. package/dist/components/layout/toolbar/tools/RotateCounterclockwiseTool.js +3 -3
  86. package/dist/components/layout/toolbar/tools/SelectionModeSwitcherTool.js +2 -2
  87. package/dist/components/layout/toolbar/tools/SinglePageTool.js +2 -2
  88. package/dist/components/layout/toolbar/tools/ThemeSwitcherTool.js +2 -2
  89. package/dist/components/layout/toolbar/tools/ThumbnailTool.js +2 -2
  90. package/dist/components/layout/toolbar/tools/VerticalScrollingTool.js +2 -2
  91. package/dist/components/layout/toolbar/tools/ZoomInTool.js +2 -2
  92. package/dist/components/layout/toolbar/tools/ZoomLevelTool.js +7 -7
  93. package/dist/components/layout/toolbar/tools/ZoomOutTool.js +2 -2
  94. package/dist/components/layout/toolbar/tools/defaults/RPHorizontalBar.js +1 -1
  95. package/dist/components/layout/toolbar/tools/more-options/DocumentProperties.js +2 -2
  96. package/dist/components/layout/toolbar/tools/more-options/FileDownloadTool.js +2 -2
  97. package/dist/components/layout/toolbar/tools/more-options/FileUploadTool.js +2 -2
  98. package/dist/components/layout/toolbar/tools/more-options/FullScreenTool.js +2 -2
  99. package/dist/components/layout/toolbar/tools/more-options/MostPageTool.js +5 -5
  100. package/dist/components/layout/toolbar/tools/more-options/PrintTool.js +2 -2
  101. package/dist/components/layout/toolbar/tools/more-options/RotateTool.js +5 -5
  102. package/dist/components/layout/toolbar/tools/more-options/ScrollModeTool.js +3 -3
  103. package/dist/components/layout/toolbar/tools/more-options/SelectionModeTool.js +4 -4
  104. package/dist/components/layout/toolbar/tools/more-options/ViewModeTool.js +4 -4
  105. package/dist/components/page/AnnotationLayer.js +1 -1
  106. package/dist/components/page/CanvasLayer.js +1 -1
  107. package/dist/components/page/RPPage.js +54 -52
  108. package/dist/components/page/TextHighlightLayer.js +1 -1
  109. package/dist/components/page/TextLayer.js +1 -1
  110. package/dist/components/page/XfaLayer.js +49 -0
  111. package/dist/components/ui/Button.js +1 -1
  112. package/dist/components/ui/Checkbox.js +1 -1
  113. package/dist/components/ui/DropDown.js +1 -1
  114. package/dist/components/ui/Input.js +1 -1
  115. package/dist/components/ui/LoadingIndicator.js +1 -1
  116. package/dist/components/ui/PasswordModal.js +1 -1
  117. package/dist/components/ui/RPTooltip.js +1 -1
  118. package/dist/contexts/LoaderContext.js +1 -1
  119. package/dist/contexts/RenderQueueProvider.js +46 -43
  120. package/dist/{dist-CNbFpoT1.js → dist-BgFO-PWQ.js} +1 -1
  121. package/dist/{dist-VbpVNBs6.js → dist-CtoH1CMU.js} +4 -4
  122. package/dist/{dist-B2hwhF6G.js → dist-D6Fk7CTS.js} +3 -3
  123. package/dist/{dist-BfuBBQ14.js → dist-SBjhcXgf.js} +1 -1
  124. package/dist/icons.js +3 -3
  125. package/dist/{main-DCzVrq0G.js → main-DrddwgsH.js} +3 -3
  126. package/dist/main.js +4 -4
  127. package/dist/{style-dcYpxEeL.js → style-DW_uCDpt.js} +1 -1
  128. package/dist/types/components/page/XfaLayer.d.ts +6 -0
  129. package/dist/types/utils/pdfOperationTracker.d.ts +20 -0
  130. package/dist/utils/annotations.js +72 -71
  131. package/dist/utils/hooks/useFileDownload.js +10 -6
  132. package/dist/utils/hooks/useHighlight.js +43 -42
  133. package/dist/utils/hooks/useLicense.js +2 -2
  134. package/dist/utils/hooks/useLoadPdf.js +66 -64
  135. package/dist/utils/hooks/usePdfProperties.js +33 -32
  136. package/dist/utils/hooks/usePrint.js +123 -88
  137. package/dist/utils/hooks/useSearch.js +84 -83
  138. package/dist/utils/hooks/useWatermark.js +1 -1
  139. package/dist/utils/injectPrintCSS.js +1 -1
  140. package/dist/utils/link_service.js +33 -17
  141. package/dist/utils/pdfOperationTracker.js +27 -4
  142. package/package.json +1 -1
  143. package/dist/AnnotationLayer-oDu2B4X1.js +0 -114
  144. package/dist/TextHighlightLayer-3vIZbRyL.js +0 -157
  145. /package/dist/{CanvasLayer-C3gb8EXu.js → CanvasLayer-DkVH-tX2.js} +0 -0
  146. /package/dist/{CustomThumbnailElement-C2quEICO.js → CustomThumbnailElement-BxTSbzpP.js} +0 -0
  147. /package/dist/{DarkPdfIcon-B5ehd9CV.js → DarkPdfIcon-2aDGWxuA.js} +0 -0
  148. /package/dist/{LightPdfIcon-DL8MYtWQ.js → LightPdfIcon-LatCGY0T.js} +0 -0
  149. /package/dist/{MostPageTool.module-BRVv-sGz.js → MostPageTool.module-BP2BMoK8.js} +0 -0
  150. /package/dist/{OtherTool.module-BQY9Nfqz.js → OtherTool.module-CMbI70sn.js} +0 -0
  151. /package/dist/{Paginate.module-DhE7N8AA.js → Paginate.module-DxXyYoYp.js} +0 -0
  152. /package/dist/{PropertyItem-evJWWmWZ.js → PropertyItem-CmRC2e5Z.js} +0 -0
  153. /package/dist/{RPLayout.module-BH5r8dDc.js → RPLayout.module-DLX1UwA3.js} +0 -0
  154. /package/dist/{RPSplitter-C63X9M8w.js → RPSplitter-DGnDuwsT.js} +0 -0
  155. /package/dist/{RPToolbar.module-BwqWLviy.js → RPToolbar.module-ODOa9FwW.js} +0 -0
  156. /package/dist/{RotateTool.module-DH5yWbvM.js → RotateTool.module-BHFeo1yn.js} +0 -0
  157. /package/dist/{SearchTool.module-DY8Ucfb_.js → SearchTool.module-BQDBENlo.js} +0 -0
  158. /package/dist/{SkipLink-Dj83gZdk.js → SkipLink-mnqFQj0O.js} +0 -0
  159. /package/dist/{ToolbarLayout.module-Zo715dbb.js → ToolbarLayout.module-BC9eQ9LN.js} +0 -0
  160. /package/dist/{WrapperLayout-Dcd9l9xH.js → WrapperLayout-NjsBnUaz.js} +0 -0
  161. /package/dist/{ZoomTool.module-BrIPy8pO.js → ZoomTool.module-DO-r2IDy.js} +0 -0
  162. /package/dist/{clsx-DSGuh5YW.js → clsx-BD2qMUU1.js} +0 -0
  163. /package/dist/{dist-CgoP608h.js → dist-DjD1zIE0.js} +0 -0
  164. /package/dist/{lib-CSInlR9T.js → lib-DTkzWIMS.js} +0 -0
  165. /package/dist/{useWatermark-CvAAf66v.js → useWatermark-DlRNcg9p.js} +0 -0
@@ -0,0 +1,116 @@
1
+ import { AnnotationSubType as e } from "./utils/types.js";
2
+ import { isPdfDocumentDestroyedError as t, runPdfOperation as n } from "./utils/pdfOperationTracker.js";
3
+ import { useDocumentContext as r } from "./contexts/RPDocumentContext.js";
4
+ import { useInitialStateContext as i } from "./contexts/InitialStateContext.js";
5
+ import { useScrollModeContext as a } from "./contexts/ScrollModeContext.js";
6
+ import { r as o } from "./PaginationContext-DIzsZhFd.js";
7
+ import { SimpleLinkService as s } from "./utils/link_service.js";
8
+ import { usePrintContext as c } from "./contexts/PrintContext.js";
9
+ import { annotationEventsHandler as l, bindLayerEvents as u, enhanceLinkAccessibility as d, fixTabIndexAccessibility as f, handleAnnotationWidget as p, insertDateText as m, unbindLayerEvents as h } from "./utils/annotations.js";
10
+ import { useFileDownload as g } from "./utils/hooks/useFileDownload.js";
11
+ import { useCallback as _, useEffect as v, useMemo as y, useRef as b, useState as x } from "react";
12
+ import { AnnotationLayer as S } from "pdfjs-dist";
13
+ import { jsx as C } from "react/jsx-runtime";
14
+ import './assets/AnnotationLayer.css';//#region lib/components/page/AnnotationLayer.module.css
15
+ var w = { "rp-annotation-layer": "_rp-annotation-layer_foiun_1" }, T = "https://unpkg.com/pdfjs-dist@4.4.168/web/images/", E = (E) => {
16
+ let { pageNumber: D } = E, O = b(null), { pages: k, pdf: A } = r(), { interactiveForm: j } = i(), M = b(), [N, P] = x(), { goToPage: F } = o(), { scrollMode: I } = a(), { print: L } = c(), { download: R } = g(), z = b(null), B = y(() => k.get(D), [k, D]), V = y(() => B?.page.getViewport(), [B]);
17
+ v(() => {
18
+ M.current &&= (M.current.div.replaceChildren(), void 0);
19
+ }, [A]), v(() => {
20
+ B && n(A, () => B.page.getAnnotations()).then((e) => {
21
+ M.current = void 0, P(e), O.current && (O.current.innerText = "");
22
+ }).catch((e) => {
23
+ t(e) || console.error(`Error loading annotations for page ${D}:`, e);
24
+ });
25
+ }, [B]);
26
+ let H = _((e) => {
27
+ !N || !A || (m(O.current), l(e, A, N).then((e) => {
28
+ e?.data?.action === "Print" ? L() : e?.data?.action === "SaveAs" && R();
29
+ }));
30
+ }, [
31
+ A,
32
+ N,
33
+ I,
34
+ L,
35
+ R
36
+ ]);
37
+ return v(() => {
38
+ if (!B || !N) return;
39
+ let r = B.page.getViewport();
40
+ if (M.current) {
41
+ M.current.update({ viewport: r.clone({ dontFlip: !0 }) });
42
+ return;
43
+ }
44
+ let i = /* @__PURE__ */ new Map([]);
45
+ for (let t of N) {
46
+ let { annotationType: n } = t;
47
+ switch (n) {
48
+ case e.Widget:
49
+ p(t, r, i);
50
+ break;
51
+ default: break;
52
+ }
53
+ }
54
+ let a = new AbortController();
55
+ return (async () => {
56
+ M.current &&= (M.current.div.replaceChildren(), void 0), O.current && (O.current.innerText = ""), M.current = new S({
57
+ div: O.current,
58
+ accessibilityManager: void 0,
59
+ annotationCanvasMap: void 0,
60
+ annotationEditorUIManager: void 0,
61
+ structTreeLayer: null,
62
+ page: B.page,
63
+ viewport: r.clone({ dontFlip: !0 }),
64
+ commentManager: void 0,
65
+ linkService: new s(A, F),
66
+ annotationStorage: A?.annotationStorage
67
+ }), O.current && h(O.current, H);
68
+ let e = A ? await n(A, () => A.hasJSActions()) : void 0, t = A ? await n(A, () => A.getFieldObjects()) : void 0;
69
+ if (a.signal.aborted) throw "abort";
70
+ return M.current?.render({
71
+ annotations: N,
72
+ annotationStorage: A?.annotationStorage,
73
+ hasJSActions: e,
74
+ fieldObjects: t,
75
+ div: O.current,
76
+ viewport: r.clone({ dontFlip: !0 }),
77
+ page: B.page,
78
+ imageResourcesPath: T,
79
+ renderForms: j ?? !0,
80
+ linkService: new s(A, F),
81
+ downloadManager: null,
82
+ enableScripting: !1
83
+ });
84
+ })().then(() => {
85
+ O.current && (u(O.current, H), f(O.current), d(O.current), z.current && z.current.disconnect(), z.current = new MutationObserver(() => {
86
+ O.current && (f(O.current), d(O.current));
87
+ }), z.current.observe(O.current, {
88
+ childList: !0,
89
+ subtree: !0,
90
+ attributes: !0,
91
+ attributeFilter: ["tabindex", "href"]
92
+ }));
93
+ }).catch((e) => {
94
+ if (!(e === "abort" || t(e))) throw e;
95
+ }).finally(() => {
96
+ M.current = void 0;
97
+ }), () => {
98
+ a.abort("clear"), O.current && h(O.current, H), z.current &&= (z.current.disconnect(), null);
99
+ };
100
+ }, [
101
+ A,
102
+ N,
103
+ H,
104
+ F
105
+ ]), /* @__PURE__ */ C("div", {
106
+ "data-rp": `page-${D}-annotationLayer`,
107
+ style: {
108
+ width: `${V?.width}px`,
109
+ height: `${V?.height}px`
110
+ },
111
+ className: w["rp-annotation-layer"],
112
+ ref: O
113
+ });
114
+ };
115
+ //#endregion
116
+ export { E as t };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./clsx-DSGuh5YW.js";
1
+ import { t as e } from "./clsx-BD2qMUU1.js";
2
2
  import { withRef as t } from "./utils/withRef.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  import './assets/Button.css';//#region lib/components/ui/Button.module.css
@@ -1,5 +1,5 @@
1
- import { d as e, f as t, i as n, l as r, n as i, t as a } from "./dist-CgoP608h.js";
2
- import { t as o } from "./dist-CNbFpoT1.js";
1
+ import { d as e, f as t, i as n, l as r, n as i, t as a } from "./dist-DjD1zIE0.js";
2
+ import { t as o } from "./dist-BgFO-PWQ.js";
3
3
  import { CheckIcon as s } from "./components/icons/CheckIcon.js";
4
4
  import * as c from "react";
5
5
  import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
- import { d as e, i as t } from "./dist-CgoP608h.js";
2
- import { i as n } from "./dist-BfuBBQ14.js";
1
+ import { d as e, i as t } from "./dist-DjD1zIE0.js";
2
+ import { i as n } from "./dist-SBjhcXgf.js";
3
3
  import * as r from "react";
4
4
  import { useState as i } from "react";
5
5
  import { jsx as a } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { useLocalizationContext as e } from "./contexts/LocalizationContext.js";
2
- import { t } from "./clsx-DSGuh5YW.js";
2
+ import { t } from "./clsx-BD2qMUU1.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  import './assets/Container.css';//#region lib/components/layout/Container.module.css
5
5
  var r = { "rp-container": "_rp-container_f63gc_1" }, i = (e) => e.replace(/_/g, "-"), a = (a) => {
@@ -3,11 +3,11 @@ import { useLayoutContainer as t } from "./contexts/LayoutContainerContext.js";
3
3
  import { useLocalizationContext as n } from "./contexts/LocalizationContext.js";
4
4
  import { useOtherToolContext as r } from "./contexts/OtherToolContext.js";
5
5
  import { dateFormatter as i } from "./utils/dateFormatter.js";
6
- import { c as a, d as o, f as s, i as c, l, n as u, o as d, t as f } from "./dist-CgoP608h.js";
7
- import { n as p, r as m, t as h } from "./dist-BfuBBQ14.js";
8
- import { i as g, n as ee, r as _, t as v } from "./Combination-11kyhTGt.js";
6
+ import { c as a, d as o, f as s, i as c, l, n as u, o as d, t as f } from "./dist-DjD1zIE0.js";
7
+ import { n as p, r as m, t as h } from "./dist-SBjhcXgf.js";
8
+ import { i as g, n as ee, r as _, t as v } from "./Combination-ILTe_xfZ.js";
9
9
  import { CloseIcon as te } from "./components/icons/CloseIcon.js";
10
- import { t as y } from "./PropertyItem-evJWWmWZ.js";
10
+ import { t as y } from "./PropertyItem-CmRC2e5Z.js";
11
11
  import * as b from "react";
12
12
  import { useMemo as x } from "react";
13
13
  import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
- import { t as e } from "./clsx-DSGuh5YW.js";
2
- import { a as t, i as n, s as r, t as i } from "./dist-VbpVNBs6.js";
1
+ import { t as e } from "./clsx-BD2qMUU1.js";
2
+ import { a as t, i as n, s as r, t as i } from "./dist-CtoH1CMU.js";
3
3
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
4
  import './assets/DropDown.css';var s = {
5
5
  "rp-dropdown-content": "_rp-dropdown-content_1vzkq_1",
@@ -1,4 +1,4 @@
1
- import { t as e } from "./clsx-DSGuh5YW.js";
1
+ import { t as e } from "./clsx-BD2qMUU1.js";
2
2
  import { withRef as t } from "./utils/withRef.js";
3
3
  import { useId as n } from "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./clsx-DSGuh5YW.js";
1
+ import { t as e } from "./clsx-BD2qMUU1.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import './assets/LoaderIcon.css';//#region lib/assets/loader.png
4
4
  var n = "data:image/png;base64,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", r = {
@@ -1,6 +1,6 @@
1
1
  import { useLocalizationContext as e } from "./contexts/LocalizationContext.js";
2
2
  import { usePrintContext as t } from "./contexts/PrintContext.js";
3
- import { t as n } from "./clsx-DSGuh5YW.js";
3
+ import { t as n } from "./clsx-BD2qMUU1.js";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  import './assets/LoadingIndicator.css';var a = {
6
6
  "rp-loading-overlay": "_rp-loading-overlay_8gxoj_1",
@@ -1,5 +1,5 @@
1
- import { t as e } from "./clsx-DSGuh5YW.js";
2
- import { r as t } from "./dist-VbpVNBs6.js";
1
+ import { t as e } from "./clsx-BD2qMUU1.js";
2
+ import { r as t } from "./dist-CtoH1CMU.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  import './assets/MenuItem.css';//#region lib/components/layout/toolbar/MenuItem.module.css
5
5
  var r = { "rp-menu-item": "_rp-menu-item_1q6of_1" }, i = (i) => {
@@ -1,4 +1,4 @@
1
- import { o as e } from "./dist-VbpVNBs6.js";
1
+ import { o as e } from "./dist-CtoH1CMU.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import './assets/MenuSeparator.css';//#region lib/components/layout/toolbar/MenuSeparator.module.css
4
4
  var n = { "rp-menu-separator": "_rp-menu-separator_17dlz_1" }, r = () => /* @__PURE__ */ t(e, { className: n["rp-menu-separator"] });
@@ -1,6 +1,6 @@
1
1
  import { useDocumentPasswordContext as e } from "./contexts/DocumentPasswordContext.js";
2
2
  import { useLocalizationContext as t } from "./contexts/LocalizationContext.js";
3
- import { t as n } from "./clsx-DSGuh5YW.js";
3
+ import { t as n } from "./clsx-BD2qMUU1.js";
4
4
  import { useState as r } from "react";
5
5
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
6
  import './assets/PasswordModal.css';//#region lib/components/ui/passwordModal.module.css
@@ -1,9 +1,9 @@
1
1
  import { useDarkModeContext as e } from "./contexts/DarkModeContext.js";
2
2
  import { useLocalizationContext as t } from "./contexts/LocalizationContext.js";
3
3
  import { useDropFileZoneContext as n } from "./contexts/DropFileZoneContext.js";
4
- import { t as r } from "./clsx-DSGuh5YW.js";
5
- import { t as i } from "./LightPdfIcon-DL8MYtWQ.js";
6
- import { t as a } from "./DarkPdfIcon-B5ehd9CV.js";
4
+ import { t as r } from "./clsx-BD2qMUU1.js";
5
+ import { t as i } from "./LightPdfIcon-LatCGY0T.js";
6
+ import { t as a } from "./DarkPdfIcon-2aDGWxuA.js";
7
7
  import { useDropFileZone as o } from "./utils/hooks/useDropFileZone.js";
8
8
  import { useCallback as s } from "react";
9
9
  import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
@@ -19,12 +19,12 @@ import { a as ce, r as le } from "./PaginationContext-DIzsZhFd.js";
19
19
  import { useSelectionModeContext as ue } from "./contexts/SelectionModeContext.js";
20
20
  import { useFullScreenContext as de } from "./contexts/FullScreenContext.js";
21
21
  import { useRenderQueue as fe } from "./contexts/RenderQueueProvider.js";
22
- import { t as pe } from "./clsx-DSGuh5YW.js";
22
+ import { t as pe } from "./clsx-BD2qMUU1.js";
23
23
  import { useLoaderContext as me } from "./contexts/LoaderContext.js";
24
24
  import { LayoutContainer as he } from "./components/layout/LayoutContainer.js";
25
25
  import { LayoutWrapper as ge } from "./components/layout/LayoutWrapper.js";
26
26
  import { RPPage as _e } from "./components/page/RPPage.js";
27
- import { t as ve } from "./PasswordModal-CxHFn0pB.js";
27
+ import { t as ve } from "./PasswordModal-BCjtXHN4.js";
28
28
  import { approximateFraction as ye } from "./utils/approximateFragtion.js";
29
29
  import { useCopyText as be } from "./utils/hooks/useCopyText.js";
30
30
  import { useGrabScroll as xe } from "./utils/hooks/useGrabScroll.js";
@@ -1,7 +1,7 @@
1
1
  import { withRef as e } from "./utils/withRef.js";
2
- import { d as t, f as n, i as r, l as i, n as a, s as o, t as s } from "./dist-CgoP608h.js";
3
- import { n as c, r as l, t as u } from "./dist-BfuBBQ14.js";
4
- import { a as d, i as f, n as p, r as m, t as h } from "./dist-B2hwhF6G.js";
2
+ import { d as t, f as n, i as r, l as i, n as a, s as o, t as s } from "./dist-DjD1zIE0.js";
3
+ import { n as c, r as l, t as u } from "./dist-SBjhcXgf.js";
4
+ import { a as d, i as f, n as p, r as m, t as h } from "./dist-D6Fk7CTS.js";
5
5
  import * as g from "react";
6
6
  import { useEffect as _, useRef as v, useState as y } from "react";
7
7
  import { jsx as b, jsxs as x } from "react/jsx-runtime";
@@ -0,0 +1,162 @@
1
+ import { isPdfDocumentDestroyedError as e, runPdfOperation as t } from "./utils/pdfOperationTracker.js";
2
+ import { useDocumentContext as n } from "./contexts/RPDocumentContext.js";
3
+ import { isMatchEntireWord as r } from "./utils/highlight.js";
4
+ import { useHighlightContext as i } from "./contexts/HighlightContext.js";
5
+ import { normalizeSingleKeyword as a, sortHighlightPosition as o, unwrap as s } from "./components/page/searchHighlight.js";
6
+ import { useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
7
+ import { Fragment as f, jsx as p } from "react/jsx-runtime";
8
+ import './assets/TextHighlightLayer.css';//#region lib/components/page/TextHighlightLayer.module.css
9
+ var m = { "rp-text-highlight": "_rp-text-highlight_jdkf8_1" }, h = ({ pageNumber: h, viewport: g }) => {
10
+ let [_, v] = d(), { pages: y, pdf: b } = n(), { highlightKeywords: x } = i(), S = u(null), [C, w] = d(null), [T, E] = d([]);
11
+ c(() => {
12
+ S.current && w(S.current.parentElement);
13
+ }, [S]), c(() => {
14
+ let n = y.get(h);
15
+ !n || !S.current || t(b, () => n.page.getTextContent()).then((e) => v(e)).catch((t) => {
16
+ e(t) || console.error(`Error loading text content for page ${h}:`, t);
17
+ });
18
+ }, [
19
+ y,
20
+ b,
21
+ h
22
+ ]);
23
+ let D = l(() => x ? x.map((e) => ({
24
+ ...a(e.keyword, e.options?.matchCase, e.options?.wholeWords),
25
+ color: e.highlightColor
26
+ })) : [], [x]);
27
+ function O(e, t) {
28
+ if (!e) return;
29
+ let n = `[data-rp="page-${t}-textLayer"]`;
30
+ return new Promise((t) => {
31
+ let r = e.querySelector(n);
32
+ if (r) {
33
+ t(r);
34
+ return;
35
+ }
36
+ new MutationObserver((r, i) => {
37
+ let a = e.querySelector(n);
38
+ a && (t(a), i.disconnect());
39
+ }).observe(e, {
40
+ childList: !0,
41
+ subtree: !0
42
+ });
43
+ });
44
+ }
45
+ function k(e) {
46
+ return new Promise((t) => {
47
+ let n = e.querySelectorAll("[data-rp=\"rp-text-layer-text\"]");
48
+ if (n.length) {
49
+ t(Array.from(n));
50
+ return;
51
+ }
52
+ new MutationObserver((n, r) => {
53
+ let i = e.querySelectorAll(".rp-text-layer-text");
54
+ i.length && (t(Array.from(i)), r.disconnect());
55
+ }).observe(e, {
56
+ childList: !0,
57
+ subtree: !0
58
+ });
59
+ });
60
+ }
61
+ let A = (e, t, n, r) => {
62
+ let i = document.createRange(), a = n.firstChild;
63
+ if (!a || a.nodeType !== Node.TEXT_NODE) return null;
64
+ let o = a.textContent?.length ?? 0, c = r[0].charIdxInSpan, l = r.length === 1 ? c : r[r.length - 1].charIdxInSpan;
65
+ if (c > o || l + 1 > o) return null;
66
+ i.setStart(a, c), i.setEnd(a, l + 1);
67
+ let u = document.createElement("span");
68
+ u.style.width = "auto", i.surroundContents(u);
69
+ let d = u.getBoundingClientRect(), f = e.getBoundingClientRect(), p = f.height, m = f.width, h = 100 * (d.left - f.left) / m, g = 100 * (d.top - f.top) / p, _ = 100 * d.height / p, v = 100 * d.width / m;
70
+ return s(u), {
71
+ keywordStr: t,
72
+ left: h,
73
+ top: g,
74
+ height: _,
75
+ width: v,
76
+ pageHeight: p,
77
+ pageWidth: m
78
+ };
79
+ };
80
+ async function j(e, t) {
81
+ let n = await O(C, e);
82
+ if (!n) return;
83
+ let r = await k(n);
84
+ r.length && E(M(n, t, r, r.map((e) => e.tagName === "BR" ? " " : e.textContent).reduce((e, t, n) => e.concat(t.split("").map((e, t) => ({
85
+ char: e,
86
+ charIdxInSpan: t,
87
+ spanIdx: n
88
+ }))), [{
89
+ char: "",
90
+ charIdxInSpan: 0,
91
+ spanIdx: 0
92
+ }]).slice(1)));
93
+ }
94
+ let M = (e, t, n, i) => {
95
+ let a = t.length;
96
+ if (!i.length || !a) return [];
97
+ let s = [], c = i.map((e) => e.char).join("");
98
+ return D.forEach((t) => {
99
+ let { keyword: a, regExp: o, wholeWords: l, color: u } = t, d = a;
100
+ if (!d.trim()) return;
101
+ let f = o.flags.indexOf("g") === -1 ? new RegExp(o, `${o.flags}g`) : o, p, m = [];
102
+ for (; (p = f.exec(c)) !== null;) l && !r(c, p.index, p[0].length) || m.push({
103
+ keyword: f,
104
+ startIndex: p.index,
105
+ endIndex: f.lastIndex
106
+ });
107
+ let h = m.map((e) => ({
108
+ keyword: e.keyword,
109
+ indexes: i.slice(e.startIndex, e.endIndex),
110
+ color: u
111
+ }));
112
+ for (let t of h) {
113
+ let r = t.indexes.reduce((e, t) => (e[t.spanIdx] = (e[t.spanIdx] || []).concat([t]), e), {});
114
+ for (let i of Object.values(r)) if (i.length !== 1 || i[0].char.trim() !== "") {
115
+ let r = i, a = n[r[0].spanIdx], o = A(e, d, a, r);
116
+ if (o) {
117
+ let { left: e, top: n } = o;
118
+ if (s.find((t) => t.left === e && t.top === n)) continue;
119
+ s.push({
120
+ ...o,
121
+ highlightColor: t.color
122
+ });
123
+ }
124
+ }
125
+ }
126
+ }), s.sort(o), s;
127
+ };
128
+ return c(() => {
129
+ (async () => {
130
+ if (!x || x.length === 0) {
131
+ E([]);
132
+ return;
133
+ }
134
+ try {
135
+ await j(h, x);
136
+ } catch (e) {
137
+ console.error(e);
138
+ }
139
+ })();
140
+ }, [
141
+ !0,
142
+ x,
143
+ h,
144
+ _,
145
+ g
146
+ ]), /* @__PURE__ */ p(f, { children: /* @__PURE__ */ p("div", {
147
+ ref: S,
148
+ "data-rp": `page-${h}-textHighlightLayer`,
149
+ children: T.map((e, t) => /* @__PURE__ */ p("div", {
150
+ className: m["rp-text-highlight"],
151
+ style: {
152
+ top: `${e.top}%`,
153
+ left: `${e.left}%`,
154
+ width: `${e.width}%`,
155
+ height: `${e.height}%`,
156
+ backgroundColor: e.highlightColor
157
+ }
158
+ }, t))
159
+ }) });
160
+ };
161
+ //#endregion
162
+ export { h as t };
@@ -1,4 +1,4 @@
1
- import { trackPdfOperation as e } from "./utils/pdfOperationTracker.js";
1
+ import { runPdfOperation as e } from "./utils/pdfOperationTracker.js";
2
2
  import { useDocumentContext as t } from "./contexts/RPDocumentContext.js";
3
3
  import { highlightMatches as n, resetDivs as r } from "./utils/highlight.js";
4
4
  import { useSearchContext as i } from "./contexts/SearchContext.js";
@@ -89,7 +89,7 @@ import './assets/TextLayer.css';var f = {
89
89
  let t = h.get(m);
90
90
  if (!t || !_.current) return;
91
91
  let n = _.current;
92
- return S.current && S.current.cancel(), e(g, t.page.getTextContent()).then((e) => {
92
+ return S.current && S.current.cancel(), e(g, () => t.page.getTextContent()).then((e) => {
93
93
  let r = t.page.getViewport({ scale: 1 });
94
94
  return S.current = new u.TextLayer({
95
95
  viewport: r,
@@ -2,9 +2,9 @@ import { useDocumentContext as e } from "./contexts/RPDocumentContext.js";
2
2
  import { usePagesRotateContext as t } from "./contexts/PagesRotateContext.js";
3
3
  import { r as n } from "./PaginationContext-DIzsZhFd.js";
4
4
  import { useRenderQueue as r } from "./contexts/RenderQueueProvider.js";
5
- import { t as i } from "./clsx-DSGuh5YW.js";
6
- import { t as a } from "./LoaderIcon-B3ddfd0D.js";
7
- import { t as o } from "./CustomThumbnailElement-C2quEICO.js";
5
+ import { t as i } from "./clsx-BD2qMUU1.js";
6
+ import { t as a } from "./LoaderIcon-SD35XFV2.js";
7
+ import { t as o } from "./CustomThumbnailElement-BxTSbzpP.js";
8
8
  import { useCallback as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
9
9
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
10
  import './assets/Thumbnail.css';//#region lib/components/layout/sidebar/Thumbnail.module.css
@@ -2,7 +2,7 @@ import { r as e } from "./PaginationContext-DIzsZhFd.js";
2
2
  import { useThumbnailContext as t } from "./contexts/ThumbnailsContext.js";
3
3
  import { useThumbnailContainerRegister as n } from "./contexts/ElementThumbnailContext.js";
4
4
  import { withRef as r } from "./utils/withRef.js";
5
- import { t as i } from "./Thumbnail-BXMk0OWF.js";
5
+ import { t as i } from "./Thumbnail-BDGp0xdd.js";
6
6
  import { useInfiniteScroll as a } from "./utils/hooks/useInfiniteScroll.js";
7
7
  import { useCallback as o, useEffect as s, useImperativeHandle as c, useMemo as l, useRef as u } from "react";
8
8
  import { jsx as d } from "react/jsx-runtime";
@@ -0,0 +1,4 @@
1
+ import './assets/XfaLayer.css';//#region lib/components/page/XfaLayer.module.css
2
+ var e = { "rp-xfa-layer": "_rp-xfa-layer_1h77o_1" };
3
+ //#endregion
4
+ export { e as t };
@@ -0,0 +1 @@
1
+ ._rp-xfa-layer_1h77o_1{--xfa-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--xfa-focus-outline:auto;z-index:3;transform:scale(var(--rp-xfa-visual-scale,1));transform-origin:0 0;position:absolute;inset:0}._rp-xfa-layer_1h77o_1 .xfaLayer{color:#000;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;transform-origin:0 0;background-color:#0000;line-height:1.2;position:absolute;top:0;left:0}._rp-xfa-layer_1h77o_1 .xfaLayer *{box-sizing:border-box;color:inherit;font:inherit;font-kerning:inherit;font-style:inherit;font-weight:inherit;letter-spacing:-.01px;line-height:inherit;pointer-events:auto;text-align:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;background-color:#0000;margin:0;padding:0}._rp-xfa-layer_1h77o_1 .xfaPage{position:relative;overflow:hidden}._rp-xfa-layer_1h77o_1 .xfaContentarea,._rp-xfa-layer_1h77o_1 .xfaBorder{position:absolute}@media screen{._rp-xfa-layer_1h77o_1 .xfaPrintOnly{display:none}}._rp-xfa-layer_1h77o_1 .xfaBorder,._rp-xfa-layer_1h77o_1 .xfaLayer div,._rp-xfa-layer_1h77o_1 .xfaLayer svg,._rp-xfa-layer_1h77o_1 .xfaLayer svg *{pointer-events:none}._rp-xfa-layer_1h77o_1 .xfaBorder{background-color:#0000}._rp-xfa-layer_1h77o_1 .xfaFont{color:#000;font-kerning:none;letter-spacing:0;vertical-align:0;font-size:10px;font-style:normal;font-weight:400;text-decoration:none}._rp-xfa-layer_1h77o_1 .xfaWrapped,._rp-xfa-layer_1h77o_1 .xfaLabel,._rp-xfa-layer_1h77o_1 .xfaButton,._rp-xfa-layer_1h77o_1 .xfaCheckbox,._rp-xfa-layer_1h77o_1 .xfaRadio{width:100%;height:100%}._rp-xfa-layer_1h77o_1 .xfaTextfield,._rp-xfa-layer_1h77o_1 .xfaSelect{background-image:var(--xfa-unfocused-field-background);resize:none;border:none;flex:auto;width:100%;height:100%}._rp-xfa-layer_1h77o_1 .xfaSelect{padding-inline:2px}._rp-xfa-layer_1h77o_1 :is(.xfaTextfield,.xfaSelect):focus{outline:var(--xfa-focus-outline);outline-offset:-1px;background-color:#0000;background-image:none}._rp-xfa-layer_1h77o_1 :is(.xfaCheckbox,.xfaRadio):focus{outline:var(--xfa-focus-outline)}._rp-xfa-layer_1h77o_1 .xfaButton{cursor:pointer;text-align:center;border:none}._rp-xfa-layer_1h77o_1 .xfaLink{width:100%;height:100%;position:absolute;top:0;left:0}._rp-xfa-layer_1h77o_1 .xfaCaption,._rp-xfa-layer_1h77o_1 .xfaCaptionForCheckButton{overflow:hidden}._rp-xfa-layer_1h77o_1 .xfaCaption{flex:none}._rp-xfa-layer_1h77o_1 .xfaCaptionForCheckButton{flex:auto}._rp-xfa-layer_1h77o_1 .xfaLeft,._rp-xfa-layer_1h77o_1 .xfaRight,._rp-xfa-layer_1h77o_1 .xfaLr,._rp-xfa-layer_1h77o_1 .xfaTable .xfaRow{flex-direction:row;align-items:stretch;display:flex}._rp-xfa-layer_1h77o_1 .xfaRight{flex-direction:row-reverse}._rp-xfa-layer_1h77o_1 .xfaLeft,._rp-xfa-layer_1h77o_1 .xfaRight{align-items:center}._rp-xfa-layer_1h77o_1 :is(.xfaLeft,.xfaRight)>:is(.xfaCaption,.xfaCaptionForCheckButton){max-height:100%}._rp-xfa-layer_1h77o_1 .xfaTop,._rp-xfa-layer_1h77o_1 .xfaBottom,._rp-xfa-layer_1h77o_1 .xfaLrTb,._rp-xfa-layer_1h77o_1 .xfaRlTb,._rp-xfa-layer_1h77o_1 .xfaTb,._rp-xfa-layer_1h77o_1 .xfaTable{flex-direction:column;align-items:stretch;display:flex}._rp-xfa-layer_1h77o_1 .xfaBottom{flex-direction:column-reverse;align-items:flex-start}._rp-xfa-layer_1h77o_1 .xfaTop{align-items:flex-start}._rp-xfa-layer_1h77o_1 :is(.xfaTop,.xfaBottom)>:is(.xfaCaption,.xfaCaptionForCheckButton){width:100%}._rp-xfa-layer_1h77o_1 :is(.xfaTop,.xfaBottom)>:is(.xfaTextfield,.xfaSelect){flex:0 auto}._rp-xfa-layer_1h77o_1 .xfaRlTb{direction:rtl}._rp-xfa-layer_1h77o_1 .xfaPosition,._rp-xfa-layer_1h77o_1 .xfaArea{position:relative}._rp-xfa-layer_1h77o_1 .xfaValignMiddle{align-items:center;display:flex}._rp-xfa-layer_1h77o_1 .xfaTable .xfaRlRow{flex-direction:row-reverse;flex:1;align-items:stretch;display:flex}._rp-xfa-layer_1h77o_1 .xfaTable .xfaRlRow>div{flex:1}._rp-xfa-layer_1h77o_1 .xfaRich{white-space:pre-wrap;width:100%;height:100%}._rp-xfa-layer_1h77o_1 .xfaImage{object-fit:contain;object-position:left top;width:100%;height:100%}._rp-xfa-layer_1h77o_1 .xfaNonInteractive :is(input,textarea),._rp-xfa-layer_1h77o_1 .xfaDisabled :is(input,textarea),._rp-xfa-layer_1h77o_1 .xfaReadOnly :is(input,textarea){background:initial}@media screen and (forced-colors:active){._rp-xfa-layer_1h77o_1{--xfa-focus-outline:2px solid CanvasText}._rp-xfa-layer_1h77o_1 .xfaLayer :required{outline:1.5px solid selecteditem}}@media print{._rp-xfa-layer_1h77o_1 .xfaTextfield,._rp-xfa-layer_1h77o_1 .xfaSelect{background:0 0}._rp-xfa-layer_1h77o_1 .xfaSelect{appearance:none;text-indent:1px;text-overflow:""}}
@@ -1,2 +1,2 @@
1
- import { t as e } from "../style-dcYpxEeL.js";
1
+ import { t as e } from "../style-DW_uCDpt.js";
2
2
  export { e as combinedCSS };
@@ -22,7 +22,7 @@ import { DropFileZoneProvider as x } from "../contexts/DropFileZoneContext.js";
22
22
  import { ThumbnailProvider as S } from "../contexts/ThumbnailsContext.js";
23
23
  import { SearchProvider as C } from "../contexts/SearchContext.js";
24
24
  import { HighlightProvider as w } from "../contexts/HighlightContext.js";
25
- import { t as T } from "../useWatermark-CvAAf66v.js";
25
+ import { t as T } from "../useWatermark-DlRNcg9p.js";
26
26
  import { DownloadProvider as E } from "../contexts/DownloadContext.js";
27
27
  import { ElementPageProvider as D } from "../contexts/ElementPageContext.js";
28
28
  import { ElementThumbnailProvider as O } from "../contexts/ElementThumbnailContext.js";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { t as e } from "../RPDropFileZone-Bq1bzWmO.js";
2
+ import { t as e } from "../RPDropFileZone-lI-AmN-1.js";
3
3
  export { e as RPDropFileZone };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { t as e } from "../RPPages-BZwgKgfJ.js";
2
+ import { t as e } from "../RPPages-BVSFaPUT.js";
3
3
  export { e as RPPages };
@@ -8,7 +8,7 @@ import { LoaderProvider as a } from "../contexts/LoaderContext.js";
8
8
  import { IconToolProvider as o } from "../contexts/IconToolContext.js";
9
9
  import { OtherToolProvider as s } from "../contexts/OtherToolContext.js";
10
10
  import { useFlickerSelectText as c } from "../utils/hooks/useFlickerSelectText.js";
11
- import { t as l } from "../style-dcYpxEeL.js";
11
+ import { t as l } from "../style-DW_uCDpt.js";
12
12
  import { injectGlobalCSS as u } from "../libInjectCss.js";
13
13
  import { injectPrintCSS as d } from "../utils/injectPrintCSS.js";
14
14
  import { useEffect as f, useMemo as p, useRef as m } from "react";
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../DarkPdfIcon-B5ehd9CV.js";
1
+ import { t as e } from "../../DarkPdfIcon-2aDGWxuA.js";
2
2
  export { e as DarkPdfIcon };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../LightPdfIcon-DL8MYtWQ.js";
1
+ import { t as e } from "../../LightPdfIcon-LatCGY0T.js";
2
2
  export { e as LightPdfIcon };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../LoaderIcon-B3ddfd0D.js";
1
+ import { t as e } from "../../LoaderIcon-SD35XFV2.js";
2
2
  export { e as LoaderIcon };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../Container-BuamPhw4.js";
1
+ import { t as e } from "../../Container-CY9sCoDd.js";
2
2
  export { e as Container };
@@ -1,6 +1,6 @@
1
1
  import { useDarkModeContext as e } from "../../contexts/DarkModeContext.js";
2
- import { t } from "../../clsx-DSGuh5YW.js";
3
- import { t as n } from "../../RPLayout.module-BH5r8dDc.js";
2
+ import { t } from "../../clsx-BD2qMUU1.js";
3
+ import { t as n } from "../../RPLayout.module-DLX1UwA3.js";
4
4
  import { useThemeContext as r } from "../../contexts/ThemeContext.js";
5
5
  import { withRef as i } from "../../utils/withRef.js";
6
6
  import { jsx as a } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../RPLayout.module-BH5r8dDc.js";
1
+ import { t as e } from "../../RPLayout.module-DLX1UwA3.js";
2
2
  import { withRef as t } from "../../utils/withRef.js";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  //#region lib/components/layout/LayoutWrapper.tsx
@@ -4,16 +4,16 @@ import { useLayoutContainer as t } from "../../contexts/LayoutContainerContext.j
4
4
  import { useLocalizationContext as n } from "../../contexts/LocalizationContext.js";
5
5
  import { ToolbarComponentProvider as r } from "../../contexts/ToolbarComponentContext.js";
6
6
  import { useLoaderContext as i } from "../../contexts/LoaderContext.js";
7
- import { t as a } from "../../RPLayout.module-BH5r8dDc.js";
7
+ import { t as a } from "../../RPLayout.module-DLX1UwA3.js";
8
8
  import { LayoutContainer as o } from "./LayoutContainer.js";
9
9
  import { IconProvider as s } from "../../contexts/IconContext.js";
10
10
  import { ViewportProvider as c } from "../../contexts/ViewportContext.js";
11
11
  import { RPToolbar as l } from "./toolbar/RPToolbar.js";
12
12
  import { RPSidebar as u } from "./sidebar/RPSidebar.js";
13
- import { t as d } from "../../Container-BuamPhw4.js";
14
- import { t as f } from "../../WrapperLayout-Dcd9l9xH.js";
15
- import { t as p } from "../../RPDropFileZone-Bq1bzWmO.js";
16
- import { t as m } from "../../SkipLink-Dj83gZdk.js";
13
+ import { t as d } from "../../Container-CY9sCoDd.js";
14
+ import { t as f } from "../../WrapperLayout-NjsBnUaz.js";
15
+ import { t as p } from "../../RPDropFileZone-lI-AmN-1.js";
16
+ import { t as m } from "../../SkipLink-mnqFQj0O.js";
17
17
  import { forwardRef as h, useEffect as g, useState as _ } from "react";
18
18
  import { jsx as v, jsxs as y } from "react/jsx-runtime";
19
19
  //#region lib/components/layout/RPDefaultLayout.tsx
@@ -3,14 +3,14 @@ import { useDocumentContext as e } from "../../contexts/RPDocumentContext.js";
3
3
  import { useLayoutContainer as t } from "../../contexts/LayoutContainerContext.js";
4
4
  import { useLocalizationContext as n } from "../../contexts/LocalizationContext.js";
5
5
  import { useLoaderContext as r } from "../../contexts/LoaderContext.js";
6
- import { t as i } from "../../RPLayout.module-BH5r8dDc.js";
6
+ import { t as i } from "../../RPLayout.module-DLX1UwA3.js";
7
7
  import { LayoutContainer as a } from "./LayoutContainer.js";
8
8
  import { ViewportProvider as o } from "../../contexts/ViewportContext.js";
9
- import { t as s } from "../../Container-BuamPhw4.js";
10
- import { t as c } from "../../WrapperLayout-Dcd9l9xH.js";
11
- import { t as l } from "../../RPDropFileZone-Bq1bzWmO.js";
9
+ import { t as s } from "../../Container-CY9sCoDd.js";
10
+ import { t as c } from "../../WrapperLayout-NjsBnUaz.js";
11
+ import { t as l } from "../../RPDropFileZone-lI-AmN-1.js";
12
12
  import { LayoutDropFileZoneProvider as u } from "../../contexts/LayoutDropFileZoneContext.js";
13
- import { t as d } from "../../SkipLink-Dj83gZdk.js";
13
+ import { t as d } from "../../SkipLink-mnqFQj0O.js";
14
14
  import { ToolbarLayout as f } from "./toolbar/ToolbarLayout.js";
15
15
  import { useEffect as p } from "react";
16
16
  import { jsx as m, jsxs as h } from "react/jsx-runtime";