@react-pdf-kit/viewer 2.5.0-beta.0 → 2.5.0-beta.2

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 (54) hide show
  1. package/dist/PaginationContext-87f832f2.js +233 -0
  2. package/dist/assets/style.css +1 -1
  3. package/dist/assets/style.js +1 -1
  4. package/dist/components/RPController.js +25 -24
  5. package/dist/components/RPPages.js +71 -64
  6. package/dist/components/RPProvider.js +4 -3
  7. package/dist/components/layout/RPDefaultLayout.js +8 -4
  8. package/dist/components/layout/RPLayout.js +8 -4
  9. package/dist/components/layout/sidebar/CustomThumbnailElement.js +53 -0
  10. package/dist/components/layout/sidebar/RPSidebar.js +8 -4
  11. package/dist/components/layout/sidebar/Thumbnail.js +59 -50
  12. package/dist/components/layout/sidebar/Thumbnails.js +29 -25
  13. package/dist/components/layout/toolbar/MostPageTool.js +1 -1
  14. package/dist/components/layout/toolbar/OtherTool.js +1 -1
  15. package/dist/components/layout/toolbar/Paginate.js +1 -1
  16. package/dist/components/layout/toolbar/RPMoreOptions.js +1 -1
  17. package/dist/components/layout/toolbar/RPToolbar.js +1 -1
  18. package/dist/components/layout/toolbar/RPToolbarEnd.js +1 -1
  19. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  20. package/dist/components/layout/toolbar/SearchTool.js +1 -1
  21. package/dist/components/layout/toolbar/ToolbarCustom.js +8 -4
  22. package/dist/components/layout/toolbar/ToolbarDefault.js +8 -4
  23. package/dist/components/layout/toolbar/ToolbarLayout.js +7 -3
  24. package/dist/components/layout/toolbar/tools/DualPageWithCoverTool.js +5 -3
  25. package/dist/components/layout/toolbar/tools/FirstPageTool.js +5 -3
  26. package/dist/components/layout/toolbar/tools/InputPageTool.js +1 -1
  27. package/dist/components/layout/toolbar/tools/LastPageTool.js +5 -3
  28. package/dist/components/layout/toolbar/tools/NextPageTool.js +1 -1
  29. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +1 -1
  30. package/dist/components/layout/toolbar/tools/defaults/RPHorizontalBar.js +1 -1
  31. package/dist/components/layout/toolbar/tools/more-options/MostPageTool.js +1 -1
  32. package/dist/components/page/AnnotationLayer.js +1 -1
  33. package/dist/components/page/CanvasLayer.js +1 -1
  34. package/dist/components/page/DualPage.js +1 -1
  35. package/dist/components/page/DualPageWithCover.js +1 -1
  36. package/dist/components/page/RPPage.js +1 -1
  37. package/dist/components/page/SinglePage.js +1 -1
  38. package/dist/components/page/TextLayer.js +1 -1
  39. package/dist/contexts/ElementThumbnailContext.js +129 -0
  40. package/dist/contexts/PaginationContext.js +1 -1
  41. package/dist/contexts/RenderQueueProvider.js +1 -1
  42. package/dist/contexts/SearchContext.js +1 -1
  43. package/dist/main.js +111 -108
  44. package/dist/types/components/layout/sidebar/CustomThumbnailElement.d.ts +6 -0
  45. package/dist/types/contexts/ElementThumbnailContext.d.ts +11 -0
  46. package/dist/types/main.d.ts +1 -0
  47. package/dist/types/utils/types.d.ts +12 -0
  48. package/dist/utils/hooks/useLicense.js +1 -1
  49. package/dist/utils/hooks/usePaginate.js +1 -1
  50. package/dist/utils/hooks/usePresentPage.js +1 -1
  51. package/dist/utils/hooks/useScrollToPage.js +1 -1
  52. package/dist/utils/hooks/useSearch.js +1 -1
  53. package/package.json +1 -1
  54. package/dist/PaginationContext-ec777f80.js +0 -223
@@ -27,7 +27,7 @@ import "../../contexts/EventCallbackContext.js";
27
27
  import "../../utils/hooks/useDebounce.js";
28
28
  import "../../utils/Queue.js";
29
29
  import "../../utils/renderPage.js";
30
- import "../../PaginationContext-ec777f80.js";
30
+ import "../../PaginationContext-87f832f2.js";
31
31
  import "../../contexts/ScrollModeContext.js";
32
32
  import "../../contexts/VirtualScrollContext.js";
33
33
  import "../../contexts/VirtualGridContext.js";
@@ -1,6 +1,6 @@
1
1
  import { jsx as u } from "react/jsx-runtime";
2
2
  import { memo as h, useMemo as e } from "react";
3
- import { u as l } from "../../PaginationContext-ec777f80.js";
3
+ import { u as l } from "../../PaginationContext-87f832f2.js";
4
4
  import { RPPage as f } from "./RPPage.js";
5
5
  import "../../utils/types.js";
6
6
  import "../../de_DE-8145915f.js";
@@ -1,6 +1,6 @@
1
1
  import { jsx as h } from "react/jsx-runtime";
2
2
  import { memo as b, useMemo as f } from "react";
3
- import { u as y } from "../../PaginationContext-ec777f80.js";
3
+ import { u as y } from "../../PaginationContext-87f832f2.js";
4
4
  import { RPPage as I } from "./RPPage.js";
5
5
  import "../../utils/types.js";
6
6
  import "../../de_DE-8145915f.js";
@@ -26,7 +26,7 @@ import "../../utils/formatFileSize.js";
26
26
  import "../../contexts/RenderQueueProvider.js";
27
27
  import "../../utils/Queue.js";
28
28
  import "../../utils/renderPage.js";
29
- import "../../PaginationContext-ec777f80.js";
29
+ import "../../PaginationContext-87f832f2.js";
30
30
  import "../../contexts/ScrollModeContext.js";
31
31
  import "../../contexts/InitialStateContext.js";
32
32
  import "../../contexts/GlobalCurrentPage.js";
@@ -1,6 +1,6 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { useMemo as m } from "react";
3
- import { u as n } from "../../PaginationContext-ec777f80.js";
3
+ import { u as n } from "../../PaginationContext-87f832f2.js";
4
4
  import { RPPage as s } from "./RPPage.js";
5
5
  import "../../utils/types.js";
6
6
  import "../../de_DE-8145915f.js";
@@ -29,7 +29,7 @@ import "../../contexts/RotationContext.js";
29
29
  import "../../contexts/GlobalCurrentPage.js";
30
30
  import "../../contexts/EventCallbackContext.js";
31
31
  import "../../utils/hooks/useDebounce.js";
32
- import "../../PaginationContext-ec777f80.js";
32
+ import "../../PaginationContext-87f832f2.js";
33
33
  import "../../contexts/VirtualGridContext.js";
34
34
  import "../../utils/smoothScrollTo.js";
35
35
  import "../../contexts/DimensionPagesContext.js";
@@ -0,0 +1,129 @@
1
+ import { jsx as y } from "react/jsx-runtime";
2
+ import { createContext as M, useState as O, useRef as x, useCallback as m, useContext as L, useMemo as B } from "react";
3
+ import { LicenseType as D } from "../utils/types.js";
4
+ import { usePagesRotateContext as I } from "./PagesRotateContext.js";
5
+ import { useLicenseContext as G } from "./LicenseContext.js";
6
+ import { useThumbnailContext as g } from "./ThumbnailsContext.js";
7
+ import { useSmoothScrollContext as F } from "./SmoothScrollContext.js";
8
+ import { ORGANIZATION_ALLOWED_FEATURES_MESSAGE as h } from "../utils/const.js";
9
+ import "../de_DE-8145915f.js";
10
+ import "./RPDocumentContext.js";
11
+ import "../utils/hooks/useLoadPdf.js";
12
+ import "pdfjs-dist";
13
+ import "../utils/getThumbnailViewport.js";
14
+ import "./ConfigContext.js";
15
+ import "./DocumentPasswordContext.js";
16
+ import "../utils/appConsole.js";
17
+ import "../utils/hooks/usePdfProperties.js";
18
+ import "../utils/convertPdfDate.js";
19
+ import "../utils/formatFileSize.js";
20
+ import "./RotationContext.js";
21
+ import "./InitialStateContext.js";
22
+ import "./EventCallbackContext.js";
23
+ import "../utils/hooks/useLicense.js";
24
+ import "../utils/hooks/useThumbnail.js";
25
+ const U = 16, f = M(
26
+ void 0
27
+ ), mt = ({ children: r }) => {
28
+ const [a, s] = O({}), { pageRotate: n } = I(), { thumbnailPages: p } = g(), { scrollBehavior: E } = F(), d = x(null), w = m((e) => {
29
+ d.current = e;
30
+ }, []), R = m(
31
+ (e, i) => {
32
+ s((o) => {
33
+ var l;
34
+ const t = (l = p[e]) == null ? void 0 : l.viewport, c = {
35
+ width: t ? t.width : 0,
36
+ height: t ? t.height : 0
37
+ };
38
+ return {
39
+ ...o,
40
+ [e]: i(o[e] ?? [], c, n[e] ?? 0)
41
+ };
42
+ });
43
+ },
44
+ [p, n]
45
+ ), b = m((e) => {
46
+ s((i) => {
47
+ const o = { ...i };
48
+ return delete o[e], o;
49
+ });
50
+ }, []), A = m((e, i) => {
51
+ s((o) => {
52
+ const t = { ...o };
53
+ return t[e] ? (t[e] = t[e].filter((c, l) => l !== i), t) : o;
54
+ });
55
+ }, []), S = m(
56
+ (e, i, o) => {
57
+ var v;
58
+ const t = d.current;
59
+ if (!t)
60
+ return;
61
+ const c = t.querySelector(
62
+ `[data-rp="thumbnail-${e}-customElement"]`
63
+ ), l = (v = c == null ? void 0 : c.children) == null ? void 0 : v[i];
64
+ if (!l)
65
+ return;
66
+ const T = t.getBoundingClientRect(), C = l.getBoundingClientRect(), P = t.scrollTop + (C.top - T.top) - U, _ = t.scrollLeft + (C.left - T.left);
67
+ t.scrollTo({
68
+ top: Math.max(P, 0),
69
+ left: Math.max(_, 0),
70
+ behavior: (o == null ? void 0 : o.behavior) ?? E
71
+ });
72
+ },
73
+ [E]
74
+ );
75
+ return /* @__PURE__ */ y(
76
+ f.Provider,
77
+ {
78
+ value: {
79
+ updateElement: R,
80
+ clearElements: b,
81
+ removeElement: A,
82
+ elementList: a,
83
+ scrollToElement: S,
84
+ setThumbnailContainer: w
85
+ },
86
+ children: r
87
+ }
88
+ );
89
+ }, u = () => {
90
+ }, ut = () => {
91
+ const r = L(f);
92
+ return (r == null ? void 0 : r.setThumbnailContainer) ?? u;
93
+ }, at = () => {
94
+ const r = L(f), { type: a, validating: s } = G(), n = x(0), p = B(() => {
95
+ if (s !== !1)
96
+ return {
97
+ updateElement: u,
98
+ clearElements: u,
99
+ removeElement: u,
100
+ elementList: {},
101
+ scrollToElement: u
102
+ };
103
+ if (!(a !== D.Developer))
104
+ return {
105
+ updateElement: () => {
106
+ n.current === 0 && (console.error(h), n.current++);
107
+ },
108
+ clearElements: () => {
109
+ n.current === 0 && (console.error(h), n.current++);
110
+ },
111
+ removeElement: () => {
112
+ n.current === 0 && (console.error(h), n.current++);
113
+ },
114
+ elementList: {},
115
+ scrollToElement: () => {
116
+ n.current === 0 && (console.error(h), n.current++);
117
+ }
118
+ };
119
+ }, [a, s]);
120
+ if (!r)
121
+ throw new Error("useElementThumbnailContext must be used within a ElementThumbnailProvider");
122
+ return p || r;
123
+ };
124
+ export {
125
+ f as ElementThumbnailContext,
126
+ mt as ElementThumbnailProvider,
127
+ at as useElementThumbnailContext,
128
+ ut as useThumbnailContainerRegister
129
+ };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { c as J, P as K, u as L } from "../PaginationContext-ec777f80.js";
3
+ import { c as J, P as K, u as L } from "../PaginationContext-87f832f2.js";
4
4
  import "./RPDocumentContext.js";
5
5
  import "../utils/appConsole.js";
6
6
  import "./GlobalCurrentPage.js";
@@ -2,7 +2,7 @@ import { jsx as f } from "react/jsx-runtime";
2
2
  import { createContext as l, useRef as g, useState as P, useCallback as s, useMemo as R, useEffect as a, useContext as h } from "react";
3
3
  import { Queue as v } from "../utils/Queue.js";
4
4
  import { renderPage as x } from "../utils/renderPage.js";
5
- import { u as y } from "../PaginationContext-ec777f80.js";
5
+ import { u as y } from "../PaginationContext-87f832f2.js";
6
6
  import "pdfjs-dist";
7
7
  import "../utils/types.js";
8
8
  import "../de_DE-8145915f.js";
@@ -28,7 +28,7 @@ import "./RotationContext.js";
28
28
  import "./GlobalCurrentPage.js";
29
29
  import "./EventCallbackContext.js";
30
30
  import "../utils/hooks/useDebounce.js";
31
- import "../PaginationContext-ec777f80.js";
31
+ import "../PaginationContext-87f832f2.js";
32
32
  import "./VirtualGridContext.js";
33
33
  import "../utils/smoothScrollTo.js";
34
34
  import "./DimensionPagesContext.js";
package/dist/main.js CHANGED
@@ -1,56 +1,57 @@
1
- import { RPProvider as dt } from "./components/RPProvider.js";
2
- import { RPPages as Dt } from "./components/RPPages.js";
3
- import { RPConfig as Ft } from "./components/RPConfig.js";
4
- import { RPDefaultLayout as Lt } from "./components/layout/RPDefaultLayout.js";
5
- import { RPLayout as vt } from "./components/layout/RPLayout.js";
6
- import { RPTheme as Bt } from "./components/RPTheme.js";
1
+ import { RPProvider as ht } from "./components/RPProvider.js";
2
+ import { RPPages as wt } from "./components/RPPages.js";
3
+ import { RPConfig as Mt } from "./components/RPConfig.js";
4
+ import { RPDefaultLayout as Zt } from "./components/layout/RPDefaultLayout.js";
5
+ import { RPLayout as Vt } from "./components/layout/RPLayout.js";
6
+ import { RPTheme as bt } from "./components/RPTheme.js";
7
7
  import { default as Ht } from "./components/ui/RPTooltip.js";
8
- import { UIButton as bt } from "./components/ui/Button.js";
9
- import { useDarkModeContext as zt } from "./contexts/DarkModeContext.js";
10
- import { u as Ut } from "./PaginationContext-ec777f80.js";
11
- import { useDocumentContext as Nt } from "./contexts/RPDocumentContext.js";
12
- import { useRotationContext as jt } from "./contexts/RotationContext.js";
13
- import { useViewModeContext as At } from "./contexts/ViewModeContext.js";
14
- import { useDropFileZoneContext as Jt } from "./contexts/DropFileZoneContext.js";
15
- import { useFileDownload as Qt } from "./utils/hooks/useFileDownload.js";
16
- import { useOpenFileContext as Yt } from "./contexts/FileInputContext.js";
17
- import { usePrintContext as $t } from "./contexts/PrintContext.js";
18
- import { useZoomContext as rm } from "./contexts/ZoomContext.js";
19
- import { useSearchContext as mm } from "./contexts/SearchContext.js";
20
- import { useHighlightContext as im } from "./contexts/HighlightContext.js";
21
- import { useFullScreenContext as xm } from "./contexts/FullScreenContext.js";
22
- import { usePageRotateContext as fm } from "./utils/hooks/usePageRotateContext.js";
23
- import { useElementPageContext as am } from "./contexts/ElementPageContext.js";
24
- import { useSelectionModeContext as Tm } from "./contexts/SelectionModeContext.js";
25
- import { useScrollModeContext as Pm } from "./contexts/ScrollModeContext.js";
26
- import { SearchTool as gm } from "./components/layout/toolbar/SearchTool.js";
27
- import { ThemeSwitcherTool as Sm } from "./components/layout/toolbar/tools/ThemeSwitcherTool.js";
28
- import { ThumbnailTool as dm } from "./components/layout/toolbar/tools/ThumbnailTool.js";
29
- import { FileUploadTool as Dm } from "./components/layout/toolbar/tools/FileUploadTool.js";
30
- import { FileDownloadTool as Fm } from "./components/layout/toolbar/tools/FileDownloadTool.js";
31
- import { PrintTool as Lm } from "./components/layout/toolbar/tools/PrintTool.js";
32
- import { FullScreenTool as vm } from "./components/layout/toolbar/tools/FullScreenTool.js";
33
- import { PreviousPageTool as Bm } from "./components/layout/toolbar/tools/PreviousPageTool.js";
34
- import { NextPageTool as Hm } from "./components/layout/toolbar/tools/NextPageTool.js";
35
- import { InputPageTool as bm } from "./components/layout/toolbar/tools/InputPageTool.js";
36
- import { ZoomInTool as zm } from "./components/layout/toolbar/tools/ZoomInTool.js";
37
- import { ZoomOutTool as Um } from "./components/layout/toolbar/tools/ZoomOutTool.js";
38
- import { ZoomLevelTool as Nm } from "./components/layout/toolbar/tools/ZoomLevelTool.js";
39
- import { DocumentPropertiesTool as jm } from "./components/layout/toolbar/tools/DocumentPropertiesTool.js";
40
- import { RotateClockwiseTool as Am } from "./components/layout/toolbar/tools/RotateClockwiseTool.js";
41
- import { RotateCounterclockwiseTool as Jm } from "./components/layout/toolbar/tools/RotateCounterclockwiseTool.js";
42
- import { RPHorizontalBar as Qm } from "./components/layout/toolbar/tools/defaults/RPHorizontalBar.js";
43
- import { RPVerticalBar as Ym } from "./components/layout/toolbar/tools/defaults/RPVerticalBar.js";
44
- import { SelectionModeSwitcherTool as $m } from "./components/layout/toolbar/tools/SelectionModeSwitcherTool.js";
45
- import { SinglePageTool as rp } from "./components/layout/toolbar/tools/SinglePageTool.js";
46
- import { DualPageTool as mp } from "./components/layout/toolbar/tools/DualPageTool.js";
47
- import { DualPageWithCoverTool as ip } from "./components/layout/toolbar/tools/DualPageWithCoverTool.js";
48
- import { PageScrollingTool as xp } from "./components/layout/toolbar/tools/PageScrollingTool.js";
49
- import { VerticalScrollingTool as fp } from "./components/layout/toolbar/tools/VerticalScrollingTool.js";
50
- import { HorizontalScrollingTool as ap } from "./components/layout/toolbar/tools/HorizontalScrollingTool.js";
51
- import { FirstPageTool as Tp } from "./components/layout/toolbar/tools/FirstPageTool.js";
52
- import { LastPageTool as Pp } from "./components/layout/toolbar/tools/LastPageTool.js";
53
- import { Locales as gp, ScrollMode as Cp, SelectionMode as Sp, ThemeVariables as Rp, ViewMode as dp, ZoomLevel as hp } from "./utils/types.js";
8
+ import { UIButton as yt } from "./components/ui/Button.js";
9
+ import { useDarkModeContext as Et } from "./contexts/DarkModeContext.js";
10
+ import { u as Ut } from "./PaginationContext-87f832f2.js";
11
+ import { useDocumentContext as Wt } from "./contexts/RPDocumentContext.js";
12
+ import { useRotationContext as qt } from "./contexts/RotationContext.js";
13
+ import { useViewModeContext as Gt } from "./contexts/ViewModeContext.js";
14
+ import { useDropFileZoneContext as Kt } from "./contexts/DropFileZoneContext.js";
15
+ import { useFileDownload as Xt } from "./utils/hooks/useFileDownload.js";
16
+ import { useOpenFileContext as _t } from "./contexts/FileInputContext.js";
17
+ import { usePrintContext as om } from "./contexts/PrintContext.js";
18
+ import { useZoomContext as tm } from "./contexts/ZoomContext.js";
19
+ import { useSearchContext as pm } from "./contexts/SearchContext.js";
20
+ import { useHighlightContext as em } from "./contexts/HighlightContext.js";
21
+ import { useFullScreenContext as lm } from "./contexts/FullScreenContext.js";
22
+ import { usePageRotateContext as nm } from "./utils/hooks/usePageRotateContext.js";
23
+ import { useElementPageContext as um } from "./contexts/ElementPageContext.js";
24
+ import { useElementThumbnailContext as sm } from "./contexts/ElementThumbnailContext.js";
25
+ import { useSelectionModeContext as cm } from "./contexts/SelectionModeContext.js";
26
+ import { useScrollModeContext as gm } from "./contexts/ScrollModeContext.js";
27
+ import { SearchTool as Rm } from "./components/layout/toolbar/SearchTool.js";
28
+ import { ThemeSwitcherTool as hm } from "./components/layout/toolbar/tools/ThemeSwitcherTool.js";
29
+ import { ThumbnailTool as wm } from "./components/layout/toolbar/tools/ThumbnailTool.js";
30
+ import { FileUploadTool as Mm } from "./components/layout/toolbar/tools/FileUploadTool.js";
31
+ import { FileDownloadTool as Zm } from "./components/layout/toolbar/tools/FileDownloadTool.js";
32
+ import { PrintTool as Vm } from "./components/layout/toolbar/tools/PrintTool.js";
33
+ import { FullScreenTool as bm } from "./components/layout/toolbar/tools/FullScreenTool.js";
34
+ import { PreviousPageTool as Hm } from "./components/layout/toolbar/tools/PreviousPageTool.js";
35
+ import { NextPageTool as ym } from "./components/layout/toolbar/tools/NextPageTool.js";
36
+ import { InputPageTool as Em } from "./components/layout/toolbar/tools/InputPageTool.js";
37
+ import { ZoomInTool as Um } from "./components/layout/toolbar/tools/ZoomInTool.js";
38
+ import { ZoomOutTool as Wm } from "./components/layout/toolbar/tools/ZoomOutTool.js";
39
+ import { ZoomLevelTool as qm } from "./components/layout/toolbar/tools/ZoomLevelTool.js";
40
+ import { DocumentPropertiesTool as Gm } from "./components/layout/toolbar/tools/DocumentPropertiesTool.js";
41
+ import { RotateClockwiseTool as Km } from "./components/layout/toolbar/tools/RotateClockwiseTool.js";
42
+ import { RotateCounterclockwiseTool as Xm } from "./components/layout/toolbar/tools/RotateCounterclockwiseTool.js";
43
+ import { RPHorizontalBar as _m } from "./components/layout/toolbar/tools/defaults/RPHorizontalBar.js";
44
+ import { RPVerticalBar as op } from "./components/layout/toolbar/tools/defaults/RPVerticalBar.js";
45
+ import { SelectionModeSwitcherTool as tp } from "./components/layout/toolbar/tools/SelectionModeSwitcherTool.js";
46
+ import { SinglePageTool as pp } from "./components/layout/toolbar/tools/SinglePageTool.js";
47
+ import { DualPageTool as ep } from "./components/layout/toolbar/tools/DualPageTool.js";
48
+ import { DualPageWithCoverTool as lp } from "./components/layout/toolbar/tools/DualPageWithCoverTool.js";
49
+ import { PageScrollingTool as np } from "./components/layout/toolbar/tools/PageScrollingTool.js";
50
+ import { VerticalScrollingTool as up } from "./components/layout/toolbar/tools/VerticalScrollingTool.js";
51
+ import { HorizontalScrollingTool as sp } from "./components/layout/toolbar/tools/HorizontalScrollingTool.js";
52
+ import { FirstPageTool as cp } from "./components/layout/toolbar/tools/FirstPageTool.js";
53
+ import { LastPageTool as gp } from "./components/layout/toolbar/tools/LastPageTool.js";
54
+ import { Locales as Rp, ScrollMode as dp, SelectionMode as hp, ThemeVariables as Dp, ViewMode as wp, ZoomLevel as Fp } from "./utils/types.js";
54
55
  import "react/jsx-runtime";
55
56
  import "react";
56
57
  import "./contexts/DocumentPasswordContext.js";
@@ -196,6 +197,7 @@ import "./components/icons/Thumbnail.js";
196
197
  import "./RPSplitter-b62772f9.js";
197
198
  import "./components/layout/sidebar/Thumbnails.js";
198
199
  import "./components/layout/sidebar/Thumbnail.js";
200
+ import "./components/layout/sidebar/CustomThumbnailElement.js";
199
201
  import "./utils/hooks/useInfiniteScroll.js";
200
202
  import "./components/layout/Container.js";
201
203
  import "./components/layout/WrapperLayout.js";
@@ -232,62 +234,63 @@ import "./components/layout/toolbar/SearchCloseButton.js";
232
234
  import "./components/icons/ChevronDownIcon.js";
233
235
  import "./components/layout/toolbar/ThumbnailTool.js";
234
236
  export {
235
- jm as DocumentPropertiesTool,
236
- mp as DualPageTool,
237
- ip as DualPageWithCoverTool,
238
- Fm as FileDownloadTool,
239
- Dm as FileUploadTool,
240
- Tp as FirstPageTool,
241
- vm as FullScreenTool,
242
- ap as HorizontalScrollingTool,
243
- bm as InputPageTool,
244
- Pp as LastPageTool,
245
- gp as Locales,
246
- Hm as NextPageTool,
247
- xp as PageScrollingTool,
248
- Bm as PreviousPageTool,
249
- Lm as PrintTool,
250
- bt as RPButton,
251
- Ft as RPConfig,
252
- Lt as RPDefaultLayout,
253
- Qm as RPHorizontalBar,
254
- vt as RPLayout,
255
- Dt as RPPages,
256
- dt as RPProvider,
257
- Bt as RPTheme,
237
+ Gm as DocumentPropertiesTool,
238
+ ep as DualPageTool,
239
+ lp as DualPageWithCoverTool,
240
+ Zm as FileDownloadTool,
241
+ Mm as FileUploadTool,
242
+ cp as FirstPageTool,
243
+ bm as FullScreenTool,
244
+ sp as HorizontalScrollingTool,
245
+ Em as InputPageTool,
246
+ gp as LastPageTool,
247
+ Rp as Locales,
248
+ ym as NextPageTool,
249
+ np as PageScrollingTool,
250
+ Hm as PreviousPageTool,
251
+ Vm as PrintTool,
252
+ yt as RPButton,
253
+ Mt as RPConfig,
254
+ Zt as RPDefaultLayout,
255
+ _m as RPHorizontalBar,
256
+ Vt as RPLayout,
257
+ wt as RPPages,
258
+ ht as RPProvider,
259
+ bt as RPTheme,
258
260
  Ht as RPTooltip,
259
- Ym as RPVerticalBar,
260
- Am as RotateClockwiseTool,
261
- Jm as RotateCounterclockwiseTool,
262
- Cp as ScrollMode,
263
- gm as SearchTool,
264
- Sp as SelectionMode,
265
- $m as SelectionModeSwitcherTool,
266
- rp as SinglePageTool,
267
- Sm as ThemeSwitcherTool,
268
- Rp as ThemeVariables,
269
- dm as ThumbnailTool,
270
- fp as VerticalScrollingTool,
271
- dp as ViewMode,
272
- zm as ZoomInTool,
273
- hp as ZoomLevel,
274
- Nm as ZoomLevelTool,
275
- Um as ZoomOutTool,
276
- zt as useDarkModeContext,
277
- Nt as useDocumentContext,
278
- Jt as useDropFileZoneContext,
279
- am as useElementPageContext,
280
- Qt as useFileDownload,
281
- xm as useFullScreenContext,
282
- im as useHighlightContext,
283
- Yt as useOpenFileContext,
284
- fm as usePageRotateContext,
261
+ op as RPVerticalBar,
262
+ Km as RotateClockwiseTool,
263
+ Xm as RotateCounterclockwiseTool,
264
+ dp as ScrollMode,
265
+ Rm as SearchTool,
266
+ hp as SelectionMode,
267
+ tp as SelectionModeSwitcherTool,
268
+ pp as SinglePageTool,
269
+ hm as ThemeSwitcherTool,
270
+ Dp as ThemeVariables,
271
+ wm as ThumbnailTool,
272
+ up as VerticalScrollingTool,
273
+ wp as ViewMode,
274
+ Um as ZoomInTool,
275
+ Fp as ZoomLevel,
276
+ qm as ZoomLevelTool,
277
+ Wm as ZoomOutTool,
278
+ Et as useDarkModeContext,
279
+ Wt as useDocumentContext,
280
+ Kt as useDropFileZoneContext,
281
+ um as useElementPageContext,
282
+ sm as useElementThumbnailContext,
283
+ Xt as useFileDownload,
284
+ lm as useFullScreenContext,
285
+ em as useHighlightContext,
286
+ _t as useOpenFileContext,
287
+ nm as usePageRotateContext,
285
288
  Ut as usePaginationContext,
286
- $t as usePrintContext,
287
- jt as useRotationContext,
288
- Pm as useScrollModeContext,
289
- mm as useSearchContext,
290
- Tm as useSelectionModeContext,
291
- At as useViewModeContext,
292
- rm as useZoomContext
289
+ om as usePrintContext,
290
+ qt as useRotationContext,
291
+ gm as useScrollModeContext,
292
+ pm as useSearchContext,
293
+ cm as useSelectionModeContext,
294
+ Gt as useViewModeContext,
295
+ tm as useZoomContext
293
296
  };
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ pageNumber: number;
4
+ }
5
+ export declare const CustomThumbnailElement: FC<Props>;
6
+ export {};
@@ -0,0 +1,11 @@
1
+ import { useElementThumbnail } from '../utils/types';
2
+ interface ElementThumbnailContextValue extends useElementThumbnail {
3
+ setThumbnailContainer: (el: HTMLDivElement | null) => void;
4
+ }
5
+ export declare const ElementThumbnailContext: import('react').Context<ElementThumbnailContextValue | undefined>;
6
+ export declare const ElementThumbnailProvider: ({ children }: {
7
+ children: React.ReactNode;
8
+ }) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const useThumbnailContainerRegister: () => (el: HTMLDivElement | null) => void;
10
+ export declare const useElementThumbnailContext: () => useElementThumbnail;
11
+ export {};
@@ -21,6 +21,7 @@ export { useHighlightContext } from './contexts/HighlightContext';
21
21
  export { useFullScreenContext } from './contexts/FullScreenContext';
22
22
  export { usePageRotateContext } from './utils/hooks/usePageRotateContext';
23
23
  export { useElementPageContext } from './contexts/ElementPageContext';
24
+ export { useElementThumbnailContext } from './contexts/ElementThumbnailContext';
24
25
  export { useSelectionModeContext } from './contexts/SelectionModeContext';
25
26
  export { useScrollModeContext } from './contexts/ScrollModeContext';
26
27
  export { type PDFDocumentProxy } from 'pdfjs-dist';
@@ -721,6 +721,18 @@ export interface useElementPage {
721
721
  behavior: 'smooth' | 'auto' | 'instant';
722
722
  }) => void;
723
723
  }
724
+ export interface useElementThumbnail {
725
+ updateElement: (pageNumber: number, element: (prevElements: Array<HTMLElement | JSX.Element>, dimension: {
726
+ width: number;
727
+ height: number;
728
+ }, rotate: number) => Array<HTMLElement | JSX.Element>) => void;
729
+ removeElement: (pageNumber: number, index: number) => void;
730
+ clearElements: (pageNumber: number) => void;
731
+ elementList: Record<number, Array<HTMLElement | JSX.Element>>;
732
+ scrollToElement: (page: number, index: number, config?: {
733
+ behavior: 'smooth' | 'auto' | 'instant';
734
+ }) => void;
735
+ }
724
736
  export interface MatchHighlight extends MatchValue {
725
737
  keyword: string | RegExp;
726
738
  color: string;
@@ -2,7 +2,7 @@ import { useState as E, useCallback as y, useEffect as b } from "react";
2
2
  import { LicenseType as L } from "../types.js";
3
3
  import { appConsole as c } from "../appConsole.js";
4
4
  import "../../de_DE-8145915f.js";
5
- const A = /* @__PURE__ */ new Date("2026-04-22T13:39:38.437Z"), w = `-----BEGIN PUBLIC KEY-----
5
+ const A = /* @__PURE__ */ new Date("2026-04-28T03:28:16.788Z"), w = `-----BEGIN PUBLIC KEY-----
6
6
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvIokvErJ0Fctu0jduSAx
7
7
  gr+5Har/VSuZLlOunS28hnlqqA+OF1apHL7RYkjBosS15yvviYdLrVWYHpHnoY4b
8
8
  HLQ9I6YX6FMB9T/VbB4xLdVdKvfi8r49aTScl5EKuSpgpPgz2VSJTfvVGcRuth/Y
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../types.js";
3
- import { b as J } from "../../PaginationContext-ec777f80.js";
3
+ import { b as J } from "../../PaginationContext-87f832f2.js";
4
4
  import "../../contexts/ViewModeContext.js";
5
5
  import "../../contexts/ScrollModeContext.js";
6
6
  import "./useDebounce.js";
@@ -2,7 +2,7 @@ import { useRef as Y, useState as C, useMemo as D, useEffect as E, useCallback a
2
2
  import { useLayoutContainer as v } from "../../contexts/LayoutContainerContext.js";
3
3
  import { useDimensionPagesContext as A } from "../../contexts/DimensionPagesContext.js";
4
4
  import { getGridDimension as H, getPositionFromPage as _ } from "../calculatePage.js";
5
- import { u as q } from "../../PaginationContext-ec777f80.js";
5
+ import { u as q } from "../../PaginationContext-87f832f2.js";
6
6
  import { useDebounce as G } from "./useDebounce.js";
7
7
  import { useSmoothScrollContext as M } from "../../contexts/SmoothScrollContext.js";
8
8
  import { ViewMode as V } from "../types.js";
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../../contexts/ScrollModeContext.js";
3
- import { a as H } from "../../PaginationContext-ec777f80.js";
3
+ import { a as H } from "../../PaginationContext-87f832f2.js";
4
4
  import "../../contexts/ViewModeContext.js";
5
5
  import "../types.js";
6
6
  import "../../contexts/VirtualScrollContext.js";
@@ -5,7 +5,7 @@ import { useVirtualScrollContext as ct } from "../../contexts/VirtualScrollConte
5
5
  import { useScrollModeContext as it } from "../../contexts/ScrollModeContext.js";
6
6
  import { useDocumentContext as at } from "../../contexts/RPDocumentContext.js";
7
7
  import { useZoomContext as mt } from "../../contexts/ZoomContext.js";
8
- import { u as lt } from "../../PaginationContext-ec777f80.js";
8
+ import { u as lt } from "../../PaginationContext-87f832f2.js";
9
9
  import { useViewModeContext as ut } from "../../contexts/ViewModeContext.js";
10
10
  import { useDimensionPagesContext as pt } from "../../contexts/DimensionPagesContext.js";
11
11
  import { useLayoutContainer as ft } from "../../contexts/LayoutContainerContext.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pdf-kit/viewer",
3
- "version": "2.5.0-beta.0",
3
+ "version": "2.5.0-beta.2",
4
4
  "private": false,
5
5
  "description": "A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.",
6
6
  "keywords": [