@pdf-viewer/react 1.17.0-rc.2 → 1.18.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 (78) hide show
  1. package/dist/{ToolbarLayout.module-cf42c84d.js → ToolbarLayout.module-3f4e0f88.js} +840 -832
  2. package/dist/components/RPController.js +15 -14
  3. package/dist/components/RPPages.js +3 -2
  4. package/dist/components/RPProvider.js +33 -22
  5. package/dist/components/layout/LayoutContainer.js +3 -2
  6. package/dist/components/layout/RPDefaultLayout.js +3 -2
  7. package/dist/components/layout/RPLayout.js +4 -3
  8. package/dist/components/layout/sidebar/RPSidebar.js +3 -2
  9. package/dist/components/layout/sidebar/Thumbnail.js +3 -2
  10. package/dist/components/layout/sidebar/Thumbnails.js +3 -2
  11. package/dist/components/layout/toolbar/DocumentDialog.js +3 -2
  12. package/dist/components/layout/toolbar/FileDownloadTool.js +3 -2
  13. package/dist/components/layout/toolbar/MostPageTool.js +3 -2
  14. package/dist/components/layout/toolbar/OtherTool.js +3 -2
  15. package/dist/components/layout/toolbar/Paginate.js +3 -2
  16. package/dist/components/layout/toolbar/PrintTool.js +3 -2
  17. package/dist/components/layout/toolbar/RPMoreOptions.js +7 -6
  18. package/dist/components/layout/toolbar/RPToolbar.js +3 -2
  19. package/dist/components/layout/toolbar/RPToolbarEnd.js +3 -2
  20. package/dist/components/layout/toolbar/SearchResultNavigator.js +3 -2
  21. package/dist/components/layout/toolbar/SearchTool.js +3 -2
  22. package/dist/components/layout/toolbar/ThumbnailTool.js +4 -3
  23. package/dist/components/layout/toolbar/ToolbarCustom.js +4 -3
  24. package/dist/components/layout/toolbar/ToolbarDefault.js +4 -3
  25. package/dist/components/layout/toolbar/ToolbarLayout.js +4 -3
  26. package/dist/components/layout/toolbar/ZoomTool.js +3 -2
  27. package/dist/components/layout/toolbar/tools/DocumentPropertiesTool.js +4 -3
  28. package/dist/components/layout/toolbar/tools/DualPageTool.js +4 -3
  29. package/dist/components/layout/toolbar/tools/DualPageWithCoverTool.js +4 -3
  30. package/dist/components/layout/toolbar/tools/FileDownloadTool.js +4 -3
  31. package/dist/components/layout/toolbar/tools/FirstPageTool.js +148 -0
  32. package/dist/components/layout/toolbar/tools/InputPageTool.js +4 -3
  33. package/dist/components/layout/toolbar/tools/LastPageTool.js +148 -0
  34. package/dist/components/layout/toolbar/tools/NextPageTool.js +4 -3
  35. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +4 -3
  36. package/dist/components/layout/toolbar/tools/PrintTool.js +4 -3
  37. package/dist/components/layout/toolbar/tools/SinglePageTool.js +4 -3
  38. package/dist/components/layout/toolbar/tools/ThumbnailTool.js +4 -3
  39. package/dist/components/layout/toolbar/tools/ZoomLevelDisplay.js +3 -2
  40. package/dist/components/layout/toolbar/tools/ZoomLevelTool.js +4 -3
  41. package/dist/components/layout/toolbar/tools/defaults/RPHorizontalBar.js +4 -3
  42. package/dist/components/layout/toolbar/tools/defaults/RPVerticalBar.js +4 -3
  43. package/dist/components/layout/toolbar/tools/more-options/FileDownloadTool.js +4 -3
  44. package/dist/components/layout/toolbar/tools/more-options/FileUploadTool.js +4 -3
  45. package/dist/components/layout/toolbar/tools/more-options/MostPageTool.js +12 -11
  46. package/dist/components/layout/toolbar/tools/more-options/PrintTool.js +4 -3
  47. package/dist/components/page/AnnotationLayer.js +3 -2
  48. package/dist/components/page/CanvasLayer.js +3 -2
  49. package/dist/components/page/DualPage.js +3 -2
  50. package/dist/components/page/DualPageWithCover.js +3 -2
  51. package/dist/components/page/RPPage.js +3 -2
  52. package/dist/components/page/SinglePage.js +3 -2
  53. package/dist/components/page/TextHighlightLayer.js +3 -2
  54. package/dist/components/page/TextLayer.js +3 -2
  55. package/dist/components/ui/LoadingIndicator.js +3 -2
  56. package/dist/contexts/EventCallbackContext.js +12 -8
  57. package/dist/contexts/PaginationContext.js +5 -4
  58. package/dist/contexts/PrintContext.js +5 -4
  59. package/dist/contexts/RenderQueueProvider.js +5 -4
  60. package/dist/contexts/SearchContext.js +5 -4
  61. package/dist/contexts/ThumbnailsContext.js +5 -4
  62. package/dist/main.js +96 -91
  63. package/dist/types/components/layout/toolbar/tools/FirstPageTool.d.ts +3 -0
  64. package/dist/types/components/layout/toolbar/tools/LastPageTool.d.ts +3 -0
  65. package/dist/types/main.d.ts +3 -1
  66. package/dist/types/utils/hooks/useTextSelection.d.ts +7 -0
  67. package/dist/types/utils/types.d.ts +20 -1
  68. package/dist/utils/hooks/useFileDownload.js +3 -2
  69. package/dist/utils/hooks/useLicense.js +1 -1
  70. package/dist/utils/hooks/usePaginate.js +3 -2
  71. package/dist/utils/hooks/usePresentPage.js +3 -2
  72. package/dist/utils/hooks/usePrint.js +3 -2
  73. package/dist/utils/hooks/useScrollToPage.js +3 -2
  74. package/dist/utils/hooks/useSearch.js +3 -2
  75. package/dist/utils/hooks/useTextSelection.js +76 -0
  76. package/dist/utils/hooks/useThumbnail.js +3 -2
  77. package/dist/utils/hooks/useVirtualReactWindow.js +3 -2
  78. package/package.json +1 -1
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "../../contexts/RPDocumentContext.js";
4
4
  import "../../contexts/DocumentPasswordContext.js";
5
- import { H as Do } from "../../ToolbarLayout.module-cf42c84d.js";
5
+ import { H as Eo } from "../../ToolbarLayout.module-3f4e0f88.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -90,6 +90,7 @@ import "../../utils/hooks/usePinch.js";
90
90
  import "../ui/PasswordModal.js";
91
91
  import "../../utils/hooks/useLocalization.js";
92
92
  import "../../utils/hooks/useCopyText.js";
93
+ import "../../utils/hooks/useTextSelection.js";
93
94
  import "../../utils/getWordPositionInPage.js";
94
95
  import "../../utils/smoothScrollTo.js";
95
96
  import "../layout/toolbar/FileUploadTool.js";
@@ -137,5 +138,5 @@ import "../../utils/charators.js";
137
138
  import "../icons/LightPdfIcon.js";
138
139
  import "../icons/DarkPdfIcon.js";
139
140
  export {
140
- Do as TextLayer
141
+ Eo as TextLayer
141
142
  };
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { q as Gr } from "../../ToolbarLayout.module-cf42c84d.js";
2
+ import { r as Ho } from "../../ToolbarLayout.module-3f4e0f88.js";
3
3
  import "../../clsx-0c6e471a.js";
4
4
  import "../../contexts/LocalizationContext.js";
5
5
  import "react";
@@ -102,6 +102,7 @@ import "../../utils/hooks/useGrabScroll.js";
102
102
  import "../../utils/hooks/usePinch.js";
103
103
  import "./PasswordModal.js";
104
104
  import "../../utils/hooks/useCopyText.js";
105
+ import "../../utils/hooks/useTextSelection.js";
105
106
  import "../../utils/getWordPositionInPage.js";
106
107
  import "../../utils/smoothScrollTo.js";
107
108
  import "../layout/toolbar/FileUploadTool.js";
@@ -137,5 +138,5 @@ import "../../utils/zoom.js";
137
138
  import "../icons/SearchIcon.js";
138
139
  import "../icons/ClearIcon.js";
139
140
  export {
140
- Gr as default
141
+ Ho as default
141
142
  };
@@ -1,30 +1,34 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { createContext as l, useContext as c } from "react";
3
- const t = l({
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { createContext as c, useContext as C } from "react";
3
+ const t = c({
4
4
  onPageChange: () => {
5
5
  },
6
6
  onRotate: () => {
7
7
  },
8
8
  onScroll: () => {
9
+ },
10
+ onTextSelect: () => {
9
11
  }
10
- }), v = () => c(t), x = ({
12
+ }), v = () => C(t), u = ({
11
13
  children: e,
12
14
  onPageChange: o,
13
15
  onRotate: n,
14
- onScroll: r
15
- }) => /* @__PURE__ */ a(
16
+ onScroll: r,
17
+ onTextSelect: a
18
+ }) => /* @__PURE__ */ l(
16
19
  t.Provider,
17
20
  {
18
21
  value: {
19
22
  onPageChange: o,
20
23
  onRotate: n,
21
- onScroll: r
24
+ onScroll: r,
25
+ onTextSelect: a
22
26
  },
23
27
  children: e
24
28
  }
25
29
  );
26
30
  export {
27
31
  t as EventCallbackContext,
28
- x as EventCallbackProvider,
32
+ u as EventCallbackProvider,
29
33
  v as useEventCallbackContext
30
34
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { w as Ft, k as Gt, u as Ht } from "../ToolbarLayout.module-cf42c84d.js";
3
+ import { w as Gt, l as Ht, u as It } from "../ToolbarLayout.module-3f4e0f88.js";
4
4
  import "./RPDocumentContext.js";
5
5
  import "../utils/appConsole.js";
6
6
  import "./GlobalCurrentPage.js";
@@ -102,6 +102,7 @@ import "../utils/hooks/useGrabScroll.js";
102
102
  import "../utils/hooks/usePinch.js";
103
103
  import "../components/ui/PasswordModal.js";
104
104
  import "../utils/hooks/useCopyText.js";
105
+ import "../utils/hooks/useTextSelection.js";
105
106
  import "../utils/getWordPositionInPage.js";
106
107
  import "../utils/smoothScrollTo.js";
107
108
  import "../components/layout/toolbar/FileUploadTool.js";
@@ -137,7 +138,7 @@ import "../utils/zoom.js";
137
138
  import "../components/icons/SearchIcon.js";
138
139
  import "../components/icons/ClearIcon.js";
139
140
  export {
140
- Ft as PaginationContext,
141
- Gt as PaginationProvider,
142
- Ht as usePaginationContext
141
+ Gt as PaginationContext,
142
+ Ht as PaginationProvider,
143
+ It as usePaginationContext
143
144
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { y as Er, n as Fr, c as Gr } from "../ToolbarLayout.module-cf42c84d.js";
3
+ import { y as Fr, o as Gr, c as Hr } from "../ToolbarLayout.module-3f4e0f88.js";
4
4
  import "../components/icons/ChevronUpIcon.js";
5
5
  import "../components/ui/Button.js";
6
6
  import "../clsx-0c6e471a.js";
@@ -102,6 +102,7 @@ import "../utils/hooks/useGrabScroll.js";
102
102
  import "../utils/hooks/usePinch.js";
103
103
  import "../components/ui/PasswordModal.js";
104
104
  import "../utils/hooks/useCopyText.js";
105
+ import "../utils/hooks/useTextSelection.js";
105
106
  import "../utils/getWordPositionInPage.js";
106
107
  import "../utils/smoothScrollTo.js";
107
108
  import "../components/layout/toolbar/FileUploadTool.js";
@@ -137,7 +138,7 @@ import "../utils/zoom.js";
137
138
  import "../components/icons/SearchIcon.js";
138
139
  import "../components/icons/ClearIcon.js";
139
140
  export {
140
- Er as PrintContext,
141
- Fr as PrintProvider,
142
- Gr as usePrintContext
141
+ Fr as PrintContext,
142
+ Gr as PrintProvider,
143
+ Hr as usePrintContext
143
144
  };
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "../utils/Queue.js";
4
4
  import "../utils/renderPage.js";
5
- import { E as Ao, m as Bo, F as Do } from "../ToolbarLayout.module-cf42c84d.js";
5
+ import { E as Bo, n as Do, F as Go } from "../ToolbarLayout.module-3f4e0f88.js";
6
6
  import "pdfjs-dist";
7
7
  import "../components/icons/ChevronUpIcon.js";
8
8
  import "../components/ui/Button.js";
@@ -102,6 +102,7 @@ import "../utils/hooks/useGrabScroll.js";
102
102
  import "../utils/hooks/usePinch.js";
103
103
  import "../components/ui/PasswordModal.js";
104
104
  import "../utils/hooks/useCopyText.js";
105
+ import "../utils/hooks/useTextSelection.js";
105
106
  import "../utils/getWordPositionInPage.js";
106
107
  import "../utils/smoothScrollTo.js";
107
108
  import "../components/layout/toolbar/FileUploadTool.js";
@@ -137,7 +138,7 @@ import "../utils/zoom.js";
137
138
  import "../components/icons/SearchIcon.js";
138
139
  import "../components/icons/ClearIcon.js";
139
140
  export {
140
- Ao as RenderQueueContext,
141
- Bo as RenderQueueProvider,
142
- Do as useRenderQueue
141
+ Bo as RenderQueueContext,
142
+ Do as RenderQueueProvider,
143
+ Go as useRenderQueue
143
144
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { C as Eo, l as Fo, d as Go } from "../ToolbarLayout.module-cf42c84d.js";
3
+ import { C as Fo, m as Go, d as Ho } from "../ToolbarLayout.module-3f4e0f88.js";
4
4
  import "../components/icons/ChevronUpIcon.js";
5
5
  import "../components/ui/Button.js";
6
6
  import "../clsx-0c6e471a.js";
@@ -102,6 +102,7 @@ import "../utils/hooks/useGrabScroll.js";
102
102
  import "../utils/hooks/usePinch.js";
103
103
  import "../components/ui/PasswordModal.js";
104
104
  import "../utils/hooks/useCopyText.js";
105
+ import "../utils/hooks/useTextSelection.js";
105
106
  import "../utils/getWordPositionInPage.js";
106
107
  import "../utils/smoothScrollTo.js";
107
108
  import "../components/layout/toolbar/FileUploadTool.js";
@@ -137,7 +138,7 @@ import "../utils/zoom.js";
137
138
  import "../components/icons/SearchIcon.js";
138
139
  import "../components/icons/ClearIcon.js";
139
140
  export {
140
- Eo as SearchContext,
141
- Fo as SearchProvider,
142
- Go as useSearchContext
141
+ Fo as SearchContext,
142
+ Go as SearchProvider,
143
+ Ho as useSearchContext
143
144
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { A as Et, T as Ft, e as Gt } from "../ToolbarLayout.module-cf42c84d.js";
3
+ import { A as Ft, T as Gt, e as Ht } from "../ToolbarLayout.module-3f4e0f88.js";
4
4
  import "../components/icons/ChevronUpIcon.js";
5
5
  import "../components/ui/Button.js";
6
6
  import "../clsx-0c6e471a.js";
@@ -102,6 +102,7 @@ import "../utils/hooks/useGrabScroll.js";
102
102
  import "../utils/hooks/usePinch.js";
103
103
  import "../components/ui/PasswordModal.js";
104
104
  import "../utils/hooks/useCopyText.js";
105
+ import "../utils/hooks/useTextSelection.js";
105
106
  import "../utils/getWordPositionInPage.js";
106
107
  import "../utils/smoothScrollTo.js";
107
108
  import "../components/layout/toolbar/FileUploadTool.js";
@@ -137,7 +138,7 @@ import "../utils/zoom.js";
137
138
  import "../components/icons/SearchIcon.js";
138
139
  import "../components/icons/ClearIcon.js";
139
140
  export {
140
- Et as ThumbnailContext,
141
- Ft as ThumbnailProvider,
142
- Gt as useThumbnailContext
141
+ Ft as ThumbnailContext,
142
+ Gt as ThumbnailProvider,
143
+ Ht as useThumbnailContext
143
144
  };
package/dist/main.js CHANGED
@@ -1,44 +1,46 @@
1
- import { RPProvider as Hr } from "./components/RPProvider.js";
2
- import { a as zr, R as Br, S as Ir, b as Or, u as Er, c as Nr, d as Ur } from "./ToolbarLayout.module-cf42c84d.js";
3
- import { RPConfig as jr } from "./components/RPConfig.js";
4
- import { RPLayout as Ar } from "./components/layout/RPLayout.js";
5
- import { RPTheme as Jr } from "./components/RPTheme.js";
6
- import { useDarkModeContext as Qr } from "./contexts/DarkModeContext.js";
7
- import { useDocumentContext as Yr } from "./contexts/RPDocumentContext.js";
8
- import { useRotationContext as $r } from "./contexts/RotationContext.js";
9
- import { useViewModeContext as rt } from "./contexts/ViewModeContext.js";
10
- import { useDropFileZoneContext as mt } from "./contexts/DropFileZoneContext.js";
11
- import { useOpenFileContext as it } from "./contexts/FileInputContext.js";
12
- import { useZoomContext as lt } from "./contexts/ZoomContext.js";
13
- import { useHighlightContext as at } from "./contexts/HighlightContext.js";
14
- import { useFullScreenContext as nt } from "./contexts/FullScreenContext.js";
15
- import { usePageRotateContext as st } from "./utils/hooks/usePageRotateContext.js";
16
- import { useElementPageContext as Pt } from "./contexts/ElementPageContext.js";
17
- import { ThemeSwitcherTool as gt } from "./components/layout/toolbar/tools/ThemeSwitcherTool.js";
18
- import { ThumbnailTool as St } from "./components/layout/toolbar/tools/ThumbnailTool.js";
19
- import { FileUploadTool as dt } from "./components/layout/toolbar/tools/FileUploadTool.js";
20
- import { FileDownloadTool as Dt } from "./components/layout/toolbar/tools/FileDownloadTool.js";
21
- import { PrintTool as Ft } from "./components/layout/toolbar/tools/PrintTool.js";
1
+ import { RPProvider as yr } from "./components/RPProvider.js";
2
+ import { a as Br, R as Ir, S as Or, b as Er, u as Nr, c as Ur, d as Wr } from "./ToolbarLayout.module-3f4e0f88.js";
3
+ import { RPConfig as qr } from "./components/RPConfig.js";
4
+ import { RPLayout as Gr } from "./components/layout/RPLayout.js";
5
+ import { RPTheme as Kr } from "./components/RPTheme.js";
6
+ import { useDarkModeContext as Xr } from "./contexts/DarkModeContext.js";
7
+ import { useDocumentContext as _r } from "./contexts/RPDocumentContext.js";
8
+ import { useRotationContext as ot } from "./contexts/RotationContext.js";
9
+ import { useViewModeContext as tt } from "./contexts/ViewModeContext.js";
10
+ import { useDropFileZoneContext as pt } from "./contexts/DropFileZoneContext.js";
11
+ import { useOpenFileContext as et } from "./contexts/FileInputContext.js";
12
+ import { useZoomContext as xt } from "./contexts/ZoomContext.js";
13
+ import { useHighlightContext as ft } from "./contexts/HighlightContext.js";
14
+ import { useFullScreenContext as st } from "./contexts/FullScreenContext.js";
15
+ import { usePageRotateContext as Tt } from "./utils/hooks/usePageRotateContext.js";
16
+ import { useElementPageContext as ct } from "./contexts/ElementPageContext.js";
17
+ import { ThemeSwitcherTool as Ct } from "./components/layout/toolbar/tools/ThemeSwitcherTool.js";
18
+ import { ThumbnailTool as Rt } from "./components/layout/toolbar/tools/ThumbnailTool.js";
19
+ import { FileUploadTool as ht } from "./components/layout/toolbar/tools/FileUploadTool.js";
20
+ import { FileDownloadTool as wt } from "./components/layout/toolbar/tools/FileDownloadTool.js";
21
+ import { PrintTool as Lt } from "./components/layout/toolbar/tools/PrintTool.js";
22
22
  import { FullScreenTool as Zt } from "./components/layout/toolbar/tools/FullScreenTool.js";
23
- import { PreviousPageTool as Lt } from "./components/layout/toolbar/tools/PreviousPageTool.js";
24
- import { NextPageTool as bt } from "./components/layout/toolbar/tools/NextPageTool.js";
25
- import { InputPageTool as Ht } from "./components/layout/toolbar/tools/InputPageTool.js";
26
- import { ZoomInTool as zt } from "./components/layout/toolbar/tools/ZoomInTool.js";
27
- import { ZoomOutTool as It } from "./components/layout/toolbar/tools/ZoomOutTool.js";
28
- import { ZoomLevelTool as Et } from "./components/layout/toolbar/tools/ZoomLevelTool.js";
29
- import { DocumentPropertiesTool as Ut } from "./components/layout/toolbar/tools/DocumentPropertiesTool.js";
30
- import { RotateClockwiseTool as jt } from "./components/layout/toolbar/tools/RotateClockwiseTool.js";
31
- import { RotateCounterclockwiseTool as At } from "./components/layout/toolbar/tools/RotateCounterclockwiseTool.js";
32
- import { RPHorizontalBar as Jt } from "./components/layout/toolbar/tools/defaults/RPHorizontalBar.js";
33
- import { RPVerticalBar as Qt } from "./components/layout/toolbar/tools/defaults/RPVerticalBar.js";
34
- import { SelectionModeSwitcherTool as Yt } from "./components/layout/toolbar/tools/SelectionModeSwitcherTool.js";
35
- import { SinglePageTool as $t } from "./components/layout/toolbar/tools/SinglePageTool.js";
36
- import { DualPageTool as rm } from "./components/layout/toolbar/tools/DualPageTool.js";
37
- import { DualPageWithCoverTool as mm } from "./components/layout/toolbar/tools/DualPageWithCoverTool.js";
38
- import { PageScrollingTool as im } from "./components/layout/toolbar/tools/PageScrollingTool.js";
39
- import { VerticalScrollingTool as lm } from "./components/layout/toolbar/tools/VerticalScrollingTool.js";
40
- import { HorizontalScrollingTool as am } from "./components/layout/toolbar/tools/HorizontalScrollingTool.js";
41
- import { Locales as nm, ScrollMode as um, SelectionMode as sm, ThemeVariables as Tm, ViewMode as Pm, ZoomLevel as cm } from "./utils/types.js";
23
+ import { PreviousPageTool as Vt } from "./components/layout/toolbar/tools/PreviousPageTool.js";
24
+ import { NextPageTool as kt } from "./components/layout/toolbar/tools/NextPageTool.js";
25
+ import { InputPageTool as yt } from "./components/layout/toolbar/tools/InputPageTool.js";
26
+ import { ZoomInTool as Bt } from "./components/layout/toolbar/tools/ZoomInTool.js";
27
+ import { ZoomOutTool as Ot } from "./components/layout/toolbar/tools/ZoomOutTool.js";
28
+ import { ZoomLevelTool as Nt } from "./components/layout/toolbar/tools/ZoomLevelTool.js";
29
+ import { DocumentPropertiesTool as Wt } from "./components/layout/toolbar/tools/DocumentPropertiesTool.js";
30
+ import { RotateClockwiseTool as qt } from "./components/layout/toolbar/tools/RotateClockwiseTool.js";
31
+ import { RotateCounterclockwiseTool as Gt } from "./components/layout/toolbar/tools/RotateCounterclockwiseTool.js";
32
+ import { RPHorizontalBar as Kt } from "./components/layout/toolbar/tools/defaults/RPHorizontalBar.js";
33
+ import { RPVerticalBar as Xt } from "./components/layout/toolbar/tools/defaults/RPVerticalBar.js";
34
+ import { SelectionModeSwitcherTool as _t } from "./components/layout/toolbar/tools/SelectionModeSwitcherTool.js";
35
+ import { SinglePageTool as om } from "./components/layout/toolbar/tools/SinglePageTool.js";
36
+ import { DualPageTool as tm } from "./components/layout/toolbar/tools/DualPageTool.js";
37
+ import { DualPageWithCoverTool as pm } from "./components/layout/toolbar/tools/DualPageWithCoverTool.js";
38
+ import { PageScrollingTool as em } from "./components/layout/toolbar/tools/PageScrollingTool.js";
39
+ import { VerticalScrollingTool as xm } from "./components/layout/toolbar/tools/VerticalScrollingTool.js";
40
+ import { HorizontalScrollingTool as fm } from "./components/layout/toolbar/tools/HorizontalScrollingTool.js";
41
+ import { FirstPageTool as sm } from "./components/layout/toolbar/tools/FirstPageTool.js";
42
+ import { LastPageTool as Tm } from "./components/layout/toolbar/tools/LastPageTool.js";
43
+ import { Locales as cm, ScrollMode as gm, SelectionMode as Cm, ThemeVariables as Sm, ViewMode as Rm, ZoomLevel as dm } from "./utils/types.js";
42
44
  import "react/jsx-runtime";
43
45
  import "react";
44
46
  import "./contexts/DocumentPasswordContext.js";
@@ -126,6 +128,7 @@ import "./utils/hooks/usePinch.js";
126
128
  import "./utils/hooks/useDebounce.js";
127
129
  import "./components/ui/PasswordModal.js";
128
130
  import "./utils/hooks/useCopyText.js";
131
+ import "./utils/hooks/useTextSelection.js";
129
132
  import "./utils/getScrollDistance.js";
130
133
  import "./utils/getWordPositionInPage.js";
131
134
  import "./utils/getThumbnailViewport.js";
@@ -178,56 +181,58 @@ import "./utils/getElementPositionInPage.js";
178
181
  import "./components/icons/ChevronDownIcon.js";
179
182
  import "./components/layout/toolbar/ThumbnailTool.js";
180
183
  export {
181
- Ut as DocumentPropertiesTool,
182
- rm as DualPageTool,
183
- mm as DualPageWithCoverTool,
184
- Dt as FileDownloadTool,
185
- dt as FileUploadTool,
184
+ Wt as DocumentPropertiesTool,
185
+ tm as DualPageTool,
186
+ pm as DualPageWithCoverTool,
187
+ wt as FileDownloadTool,
188
+ ht as FileUploadTool,
189
+ sm as FirstPageTool,
186
190
  Zt as FullScreenTool,
187
- am as HorizontalScrollingTool,
188
- Ht as InputPageTool,
189
- nm as Locales,
190
- bt as NextPageTool,
191
- im as PageScrollingTool,
192
- Lt as PreviousPageTool,
193
- Ft as PrintTool,
194
- jr as RPConfig,
195
- zr as RPDefaultLayout,
196
- Jt as RPHorizontalBar,
197
- Ar as RPLayout,
198
- Br as RPPages,
199
- Hr as RPProvider,
200
- Jr as RPTheme,
201
- Qt as RPVerticalBar,
202
- jt as RotateClockwiseTool,
203
- At as RotateCounterclockwiseTool,
204
- um as ScrollMode,
205
- Ir as SearchTool,
206
- sm as SelectionMode,
207
- Yt as SelectionModeSwitcherTool,
208
- $t as SinglePageTool,
209
- gt as ThemeSwitcherTool,
210
- Tm as ThemeVariables,
211
- St as ThumbnailTool,
212
- lm as VerticalScrollingTool,
213
- Pm as ViewMode,
214
- zt as ZoomInTool,
215
- cm as ZoomLevel,
216
- Et as ZoomLevelTool,
217
- It as ZoomOutTool,
218
- Qr as useDarkModeContext,
219
- Yr as useDocumentContext,
220
- mt as useDropFileZoneContext,
221
- Pt as useElementPageContext,
222
- Or as useFileDownload,
223
- nt as useFullScreenContext,
224
- at as useHighlightContext,
225
- it as useOpenFileContext,
226
- st as usePageRotateContext,
227
- Er as usePaginationContext,
228
- Nr as usePrintContext,
229
- $r as useRotationContext,
230
- Ur as useSearchContext,
231
- rt as useViewModeContext,
232
- lt as useZoomContext
191
+ fm as HorizontalScrollingTool,
192
+ yt as InputPageTool,
193
+ Tm as LastPageTool,
194
+ cm as Locales,
195
+ kt as NextPageTool,
196
+ em as PageScrollingTool,
197
+ Vt as PreviousPageTool,
198
+ Lt as PrintTool,
199
+ qr as RPConfig,
200
+ Br as RPDefaultLayout,
201
+ Kt as RPHorizontalBar,
202
+ Gr as RPLayout,
203
+ Ir as RPPages,
204
+ yr as RPProvider,
205
+ Kr as RPTheme,
206
+ Xt as RPVerticalBar,
207
+ qt as RotateClockwiseTool,
208
+ Gt as RotateCounterclockwiseTool,
209
+ gm as ScrollMode,
210
+ Or as SearchTool,
211
+ Cm as SelectionMode,
212
+ _t as SelectionModeSwitcherTool,
213
+ om as SinglePageTool,
214
+ Ct as ThemeSwitcherTool,
215
+ Sm as ThemeVariables,
216
+ Rt as ThumbnailTool,
217
+ xm as VerticalScrollingTool,
218
+ Rm as ViewMode,
219
+ Bt as ZoomInTool,
220
+ dm as ZoomLevel,
221
+ Nt as ZoomLevelTool,
222
+ Ot as ZoomOutTool,
223
+ Xr as useDarkModeContext,
224
+ _r as useDocumentContext,
225
+ pt as useDropFileZoneContext,
226
+ ct as useElementPageContext,
227
+ Er as useFileDownload,
228
+ st as useFullScreenContext,
229
+ ft as useHighlightContext,
230
+ et as useOpenFileContext,
231
+ Tt as usePageRotateContext,
232
+ Nr as usePaginationContext,
233
+ Ur as usePrintContext,
234
+ ot as useRotationContext,
235
+ Wr as useSearchContext,
236
+ tt as useViewModeContext,
237
+ xt as useZoomContext
233
238
  };
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { ToolProps } from '../../../../utils/types';
3
+ export declare const FirstPageTool: FC<ToolProps>;
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { ToolProps } from '../../../../utils/types';
3
+ export declare const LastPageTool: FC<ToolProps>;
@@ -45,5 +45,7 @@ export { DualPageWithCoverTool } from './components/layout/toolbar/tools/DualPag
45
45
  export { PageScrollingTool } from './components/layout/toolbar/tools/PageScrollingTool';
46
46
  export { VerticalScrollingTool } from './components/layout/toolbar/tools/VerticalScrollingTool';
47
47
  export { HorizontalScrollingTool } from './components/layout/toolbar/tools/HorizontalScrollingTool';
48
- export type { CharacterMap, DarkModeProps, DownloadToolProps, FullScreenToolProps, Localization, MatchValue, OpenFileToolProps, PageNavigationToolProps, PdfPage, PdfProperties, PreparePrintProgress, PrintOptions, PrintToolProps, RPConfigProps, RPThemeProps, RPProviderProps, RPDefaultLayoutProps, RPLayoutProps, RPIcons, RPSlots, SearchOptions, SetPageResult, ScrollModeInitialProps, ThumbnailToolProps, ViewModeInitialProps, ZoomProps, RPHorizontalBarProps, RPHorizontalBarSlots, RPHorizontalBarIcons, RPVerticalBarProps, RPVerticalBarSlots, RPVerticalBarIcons, TextHighlight, MatchHighlight, RectPosition, ThemeSwitcherIcons, ThemeSwitcherToolProps, ToolProps, ToolbarSection, ToolbarProps, SelectionModeSwitcherToolProps, SelectionModeSwitcherIcons } from './utils/types';
48
+ export { FirstPageTool } from './components/layout/toolbar/tools/FirstPageTool';
49
+ export { LastPageTool } from './components/layout/toolbar/tools/LastPageTool';
50
+ export type { CharacterMap, DarkModeProps, DownloadToolProps, FullScreenToolProps, Localization, MatchValue, OpenFileToolProps, PageNavigationToolProps, PageSelectionRect, PdfPage, PdfProperties, PreparePrintProgress, PrintOptions, PrintToolProps, RPConfigProps, RPThemeProps, RPProviderProps, RPDefaultLayoutProps, RPLayoutProps, RPIcons, RPSlots, SearchOptions, SetPageResult, ScrollModeInitialProps, TextHighlight, TextSelectionData, ThumbnailToolProps, ViewModeInitialProps, ZoomProps, RPHorizontalBarProps, RPHorizontalBarSlots, RPHorizontalBarIcons, RPVerticalBarProps, RPVerticalBarSlots, RPVerticalBarIcons, MatchHighlight, RectPosition, ThemeSwitcherIcons, ThemeSwitcherToolProps, ToolProps, ToolbarSection, ToolbarProps, SelectionModeSwitcherToolProps, SelectionModeSwitcherIcons } from './utils/types';
49
51
  export { ViewMode, ScrollMode, ZoomLevel, Locales, ThemeVariables, SelectionMode } from './utils/types';
@@ -0,0 +1,7 @@
1
+ import { TextSelectionData } from '../types';
2
+ interface UseTextSelectionOptions {
3
+ onTextSelect?: (selection: TextSelectionData | null) => void;
4
+ pagesRef: HTMLElement | null;
5
+ }
6
+ export declare const useTextSelection: ({ onTextSelect, pagesRef }: UseTextSelectionOptions) => void;
7
+ export {};
@@ -64,7 +64,7 @@ export interface OutlineDestinationName {
64
64
  name: string;
65
65
  }
66
66
  export type OutlineDestination = [
67
- OutlineRef | number,
67
+ (OutlineRef | number),
68
68
  OutlineDestinationName,
69
69
  ...any[]
70
70
  ];
@@ -469,10 +469,29 @@ export interface CharacterMap {
469
469
  url: string;
470
470
  isCompressed: boolean;
471
471
  }
472
+ interface Dimension {
473
+ width: number;
474
+ height: number;
475
+ }
476
+ interface Point {
477
+ x: number;
478
+ y: number;
479
+ }
480
+ export interface PageSelectionRect {
481
+ pageNumber: number;
482
+ pageBasedBoundingRects: Array<Dimension & RectPosition>;
483
+ pageDimension: Dimension;
484
+ pagePositionInWindow: Point;
485
+ }
486
+ export interface TextSelectionData {
487
+ text: string;
488
+ pageSelections: PageSelectionRect[];
489
+ }
472
490
  export interface EventCallbackContextType {
473
491
  onPageChange?: (page: number) => void;
474
492
  onRotate?: (rotation: Record<number, number>) => void;
475
493
  onScroll?: (scroll: Event) => void;
494
+ onTextSelect?: (selection: TextSelectionData | null) => void;
476
495
  }
477
496
  export interface RPProviderProps extends PropsWithChildren, LoadPDFOptions, RPControllerProps, EventCallbackContextType {
478
497
  src: RPSrc;
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "../../contexts/RPDocumentContext.js";
4
4
  import "../../contexts/DocumentPasswordContext.js";
5
- import { b as Gr } from "../../ToolbarLayout.module-cf42c84d.js";
5
+ import { b as Hr } from "../../ToolbarLayout.module-3f4e0f88.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -91,6 +91,7 @@ import "./usePinch.js";
91
91
  import "../../components/ui/PasswordModal.js";
92
92
  import "./useLocalization.js";
93
93
  import "./useCopyText.js";
94
+ import "./useTextSelection.js";
94
95
  import "../getWordPositionInPage.js";
95
96
  import "../smoothScrollTo.js";
96
97
  import "../../components/layout/toolbar/FileUploadTool.js";
@@ -137,5 +138,5 @@ import "./useHighlight.js";
137
138
  import "../../components/icons/LightPdfIcon.js";
138
139
  import "../../components/icons/DarkPdfIcon.js";
139
140
  export {
140
- Gr as useFileDownload
141
+ Hr as useFileDownload
141
142
  };
@@ -1,6 +1,6 @@
1
1
  import { useState as E, useCallback as h, useEffect as A } from "react";
2
2
  import { appConsole as l } from "../appConsole.js";
3
- const b = /* @__PURE__ */ new Date("2026-01-30T03:16:22.076Z"), d = "Please visit https://www.react-pdf.dev/manage-license/ to generate a new license key.", s = {
3
+ const b = /* @__PURE__ */ new Date("2026-01-30T06:22:29.291Z"), d = "Please visit https://www.react-pdf.dev/manage-license/ to generate a new license key.", s = {
4
4
  invalidLicense: `You are currently using without a valid license. ${d}`,
5
5
  mismatchedDomain: `Your license key is not valid for the current domain / IP. ${d}`,
6
6
  expired: `Your license key has expired. ${d}`,
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../types.js";
3
- import { v as Fr } from "../../ToolbarLayout.module-cf42c84d.js";
3
+ import { v as Gr } from "../../ToolbarLayout.module-3f4e0f88.js";
4
4
  import "react/jsx-runtime";
5
5
  import "../../contexts/RPDocumentContext.js";
6
6
  import "../../contexts/DocumentPasswordContext.js";
@@ -91,6 +91,7 @@ import "./usePinch.js";
91
91
  import "../../components/ui/PasswordModal.js";
92
92
  import "./useLocalization.js";
93
93
  import "./useCopyText.js";
94
+ import "./useTextSelection.js";
94
95
  import "../getWordPositionInPage.js";
95
96
  import "../smoothScrollTo.js";
96
97
  import "../../components/layout/toolbar/FileUploadTool.js";
@@ -137,5 +138,5 @@ import "./useHighlight.js";
137
138
  import "../../components/icons/LightPdfIcon.js";
138
139
  import "../../components/icons/DarkPdfIcon.js";
139
140
  export {
140
- Fr as usePaginate
141
+ Gr as usePaginate
141
142
  };
@@ -5,7 +5,7 @@ import "../calculatePage.js";
5
5
  import "react/jsx-runtime";
6
6
  import "../../contexts/RPDocumentContext.js";
7
7
  import "../../contexts/DocumentPasswordContext.js";
8
- import { U as Eo } from "../../ToolbarLayout.module-cf42c84d.js";
8
+ import { U as Fo } from "../../ToolbarLayout.module-3f4e0f88.js";
9
9
  import "../../contexts/DarkModeContext.js";
10
10
  import "../types.js";
11
11
  import "../../contexts/RotationContext.js";
@@ -91,6 +91,7 @@ import "./usePinch.js";
91
91
  import "../../components/ui/PasswordModal.js";
92
92
  import "./useLocalization.js";
93
93
  import "./useCopyText.js";
94
+ import "./useTextSelection.js";
94
95
  import "../getWordPositionInPage.js";
95
96
  import "../smoothScrollTo.js";
96
97
  import "../../components/layout/toolbar/FileUploadTool.js";
@@ -137,5 +138,5 @@ import "./useHighlight.js";
137
138
  import "../../components/icons/LightPdfIcon.js";
138
139
  import "../../components/icons/DarkPdfIcon.js";
139
140
  export {
140
- Eo as usePresentPage
141
+ Fo as usePresentPage
141
142
  };
@@ -2,7 +2,7 @@ import "react";
2
2
  import "react/jsx-runtime";
3
3
  import "../../contexts/RPDocumentContext.js";
4
4
  import "../../contexts/DocumentPasswordContext.js";
5
- import { x as Fo } from "../../ToolbarLayout.module-cf42c84d.js";
5
+ import { x as Go } from "../../ToolbarLayout.module-3f4e0f88.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -91,6 +91,7 @@ import "./usePinch.js";
91
91
  import "../../components/ui/PasswordModal.js";
92
92
  import "./useLocalization.js";
93
93
  import "./useCopyText.js";
94
+ import "./useTextSelection.js";
94
95
  import "../getWordPositionInPage.js";
95
96
  import "../smoothScrollTo.js";
96
97
  import "../../components/layout/toolbar/FileUploadTool.js";
@@ -137,5 +138,5 @@ import "./useHighlight.js";
137
138
  import "../../components/icons/LightPdfIcon.js";
138
139
  import "../../components/icons/DarkPdfIcon.js";
139
140
  export {
140
- Fo as usePrint
141
+ Go as usePrint
141
142
  };