@pdf-viewer/react 1.6.1 → 1.7.0-beta.1

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 (50) hide show
  1. package/dist/{RPDefaultLayout-8ce0fad7.js → RPDefaultLayout-aa575bb0.js} +795 -787
  2. package/dist/components/RPController.js +52 -51
  3. package/dist/components/RPPages.js +1 -1
  4. package/dist/components/RPProvider.js +1 -1
  5. package/dist/components/layout/LayoutContainer.js +1 -1
  6. package/dist/components/layout/RPDefaultLayout.js +1 -1
  7. package/dist/components/layout/sidebar/RPSidebar.js +1 -1
  8. package/dist/components/layout/sidebar/Thumbnail.js +1 -1
  9. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  10. package/dist/components/layout/toolbar/DocumentDialog.js +1 -1
  11. package/dist/components/layout/toolbar/FileDownloadTool.js +1 -1
  12. package/dist/components/layout/toolbar/MostPageTool.js +1 -1
  13. package/dist/components/layout/toolbar/OtherTool.js +3 -2
  14. package/dist/components/layout/toolbar/Paginate.js +1 -1
  15. package/dist/components/layout/toolbar/PrintTool.js +1 -1
  16. package/dist/components/layout/toolbar/RPToolbar.js +1 -1
  17. package/dist/components/layout/toolbar/RPToolbarEnd.js +1 -1
  18. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  19. package/dist/components/layout/toolbar/SearchTool.js +1 -1
  20. package/dist/components/layout/toolbar/ViewModeTool.js +19 -18
  21. package/dist/components/layout/toolbar/ZoomTool.js +1 -1
  22. package/dist/components/page/AnnotationLayer.js +1 -1
  23. package/dist/components/page/CanvasLayer.js +1 -1
  24. package/dist/components/page/DualPage.js +1 -1
  25. package/dist/components/page/RPPage.js +1 -1
  26. package/dist/components/page/SinglePage.js +1 -1
  27. package/dist/components/page/TextHighlightLayer.js +1 -1
  28. package/dist/components/page/TextLayer.js +1 -1
  29. package/dist/components/ui/LoadingIndicator.js +1 -1
  30. package/dist/contexts/PaginationContext.js +1 -1
  31. package/dist/contexts/PrintContext.js +1 -1
  32. package/dist/contexts/SearchContext.js +1 -1
  33. package/dist/contexts/ThumbnailsContext.js +1 -1
  34. package/dist/contexts/ToolbarComponentContext.js +2 -2
  35. package/dist/contexts/ViewModeContext.js +17 -16
  36. package/dist/contexts/ZoomContext.js +15 -15
  37. package/dist/main.js +1 -1
  38. package/dist/types/components/layout/toolbar/ViewModeTool.d.ts +1 -1
  39. package/dist/types/utils/types.d.ts +3 -2
  40. package/dist/utils/getZoomLevel.js +15 -13
  41. package/dist/utils/hooks/useFileDownload.js +1 -1
  42. package/dist/utils/hooks/useLicense.js +1 -1
  43. package/dist/utils/hooks/usePaginate.js +1 -1
  44. package/dist/utils/hooks/usePresentPage.js +1 -1
  45. package/dist/utils/hooks/usePrint.js +1 -1
  46. package/dist/utils/hooks/useScrollToPage.js +1 -1
  47. package/dist/utils/hooks/useSearch.js +1 -1
  48. package/dist/utils/hooks/useThumbnail.js +1 -1
  49. package/dist/utils/hooks/useVirtualReactWindow.js +1 -1
  50. package/package.json +1 -1
@@ -1,47 +1,47 @@
1
1
  import { jsx as C } from "react/jsx-runtime";
2
- import { createContext as P, useContext as L, useState as y, useMemo as c, useEffect as S } from "react";
2
+ import { createContext as P, useContext as L, useState as y, useMemo as s, useEffect as S } from "react";
3
3
  import { ZoomLevel as V } from "../utils/types.js";
4
4
  import { appConsole as b } from "../utils/appConsole.js";
5
5
  import { useInitialStateContext as A } from "./InitialStateContext.js";
6
6
  import { useDocumentContext as D } from "./RPDocumentContext.js";
7
- import { PAGE_PADDING as p } from "../utils/constants.js";
7
+ import { PAGE_PADDING as f } from "../utils/constants.js";
8
8
  import { getZoomLevel as E } from "../utils/getZoomLevel.js";
9
9
  import { useLayoutContainer as G } from "./LayoutContainerContext.js";
10
10
  import { useViewModeContext as H } from "./ViewModeContext.js";
11
- const h = P({
11
+ const g = P({
12
12
  zoomLevel: 100,
13
13
  currentZoom: 1,
14
14
  setZoomLevel: () => {
15
15
  }
16
16
  }), T = () => {
17
- const n = L(h);
17
+ const n = L(g);
18
18
  return typeof n.currentZoom != "number" && b.warn("Please use this hooks inside children component of RPProvider"), n;
19
19
  }, q = ({ children: n }) => {
20
20
  const {
21
21
  initialScale: r = V.PAGE_FIT,
22
22
  initialPage: u = 1,
23
23
  initialRotation: l = 0
24
- } = A(), [i, a] = y(typeof r == "number" ? r : 100), { pages: s } = D(), { pagesRef: o } = G(), { viewMode: d } = H(), f = c(() => i / 100, [i]), t = c(() => {
25
- let e = s.get(u);
26
- return e || (e = s.get(1)), e == null ? void 0 : e.page.getViewport({ scale: 1, rotation: l });
27
- }, [s, u, l]), m = c(() => {
24
+ } = A(), [i, a] = y(typeof r == "number" ? r : 100), { pages: c } = D(), { contentRef: o } = G(), { viewMode: h } = H(), p = s(() => i / 100, [i]), t = s(() => {
25
+ let e = c.get(u);
26
+ return e || (e = c.get(1)), e == null ? void 0 : e.page.getViewport({ scale: 1, rotation: l });
27
+ }, [c, u, l]), m = s(() => {
28
28
  if (!t)
29
29
  return 0;
30
- const e = ((t == null ? void 0 : t.width) || 0) + 2 * p, Z = ((t == null ? void 0 : t.height) || 0) + 2 * p, g = (o == null ? void 0 : o.clientWidth) || 0, v = (o == null ? void 0 : o.clientHeight) || 0;
31
- return E(r, g, v, e, Z, d);
30
+ const e = ((t == null ? void 0 : t.width) || 0) + 2 * f, x = ((t == null ? void 0 : t.height) || 0) + 2 * f, Z = (o == null ? void 0 : o.clientWidth) || 0, v = (o == null ? void 0 : o.clientHeight) || 0;
31
+ return E(r, Z, v, e, x, h);
32
32
  }, [t, r, o]);
33
33
  S(() => {
34
34
  typeof m == "number" && m && a(m);
35
35
  }, [m]);
36
- const x = c(() => ({
36
+ const d = s(() => ({
37
37
  zoomLevel: i,
38
- currentZoom: f,
38
+ currentZoom: p,
39
39
  setZoomLevel: a
40
- }), [f, i]);
41
- return /* @__PURE__ */ C(h.Provider, { value: x, children: n });
40
+ }), [p, i]);
41
+ return /* @__PURE__ */ C(g.Provider, { value: d, children: n });
42
42
  };
43
43
  export {
44
- h as ZoomContext,
44
+ g as ZoomContext,
45
45
  q as ZoomProvider,
46
46
  T as useZoomContext
47
47
  };
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RPProvider as t } from "./components/RPProvider.js";
2
- import { b as x, R as n, c as s, u as m, d as p, e as f } from "./RPDefaultLayout-8ce0fad7.js";
2
+ import { b as x, R as n, c as s, u as m, d as p, e as f } from "./RPDefaultLayout-aa575bb0.js";
3
3
  import { RPConfig as a } from "./components/RPConfig.js";
4
4
  import { RPController as l } from "./components/RPController.js";
5
5
  import { RPTheme as P } from "./components/RPTheme.js";
@@ -1 +1 @@
1
- export declare const ViewModeTool: () => import("react/jsx-runtime").JSX.Element;
1
+ export declare const ViewModeTool: () => import("react/jsx-runtime").JSX.Element | null;
@@ -329,6 +329,7 @@ export interface RPSlots {
329
329
  dropFileZone?: boolean | React.ReactNode | React.ComponentType;
330
330
  downloadTool?: boolean | FC<DownloadToolProps>;
331
331
  zoomTool?: boolean | FC<ZoomProps>;
332
+ viewModeTool?: boolean;
332
333
  scrollModeTool?: boolean;
333
334
  thumbnailTool?: boolean | FC<ThumbnailToolProps>;
334
335
  pageNavigationTool?: boolean | FC<PageNavigationToolProps>;
@@ -483,7 +484,7 @@ export interface RPProviderProps extends PropsWithChildren, LoadPDFOptions, RPCo
483
484
  characterMap?: CharacterMap;
484
485
  }
485
486
  export type LocalizationMap = Record<string, Localization>;
486
- export interface RPControllerProps extends PropsWithChildren, DarkModeProviderProps, RotateProviderProps, LayerProviderProps, ZoomProviderProps, PageProviderProps, ScrollModeProps {
487
+ export interface RPControllerProps extends PropsWithChildren, DarkModeProviderProps, RotateProviderProps, LayerProviderProps, ZoomProviderProps, PageProviderProps, ViewModeProps, ScrollModeProps {
487
488
  initialSearch?: string;
488
489
  initialThumbnailsVisible?: boolean;
489
490
  locale?: string;
@@ -516,7 +517,7 @@ export interface ZoomContextType {
516
517
  export type ZoomProps = Omit<ZoomContextType, 'currentZoom'>;
517
518
  export type InitialStateContextType = {
518
519
  instanceId: string;
519
- } & ZoomProviderProps & PageProviderProps & ScrollModeProps & RotateProviderProps;
520
+ } & ZoomProviderProps & PageProviderProps & ViewModeProps & ScrollModeProps & RotateProviderProps;
520
521
  export interface ZoomProviderProps {
521
522
  initialScale?: number | ZoomLevel;
522
523
  }
@@ -1,22 +1,24 @@
1
- import { SCROLL_BAR_WIDTH as s, PAGE_PADDING as f } from "./constants.js";
2
- import { ZoomLevel as t, ViewMode as u } from "./types.js";
3
- const l = (o, e, n, r, m, a) => {
1
+ import { SCROLL_BAR_WIDTH as s } from "./constants.js";
2
+ import { ZoomLevel as e, ViewMode as c } from "./types.js";
3
+ const Z = (o, t, m, r, a, u) => {
4
4
  if (typeof o == "number")
5
5
  return o;
6
6
  switch (o) {
7
- case t.PAGE_FIT:
8
- const A = a === u.DUAL_PAGE ? 2 * r : r, c = Math.min(
9
- (e - s) / A,
10
- (n - f) / m
11
- );
12
- return Math.floor(c * 100);
13
- case t.PAGE_WIDTH:
14
- return Math.floor(e / r * 100);
15
- case t.ACTUAL:
7
+ case e.ACTUAL:
8
+ return 100;
9
+ case e.PAGE_FIT:
10
+ let n = 0;
11
+ const l = u === c.DUAL_PAGE ? 2 * r : r;
12
+ return n = Math.min(
13
+ (t - s) / l,
14
+ m / a
15
+ ), Math.floor(n * 100);
16
+ case e.PAGE_WIDTH:
17
+ return Math.floor(t / r * 100);
16
18
  default:
17
19
  return 100;
18
20
  }
19
21
  };
20
22
  export {
21
- l as getZoomLevel
23
+ Z as getZoomLevel
22
24
  };
@@ -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 { c as E } from "../../RPDefaultLayout-8ce0fad7.js";
5
+ import { c as E } from "../../RPDefaultLayout-aa575bb0.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -1,6 +1,6 @@
1
1
  import { useState as g, useCallback as h, useEffect as A } from "react";
2
2
  import { appConsole as c } from "../appConsole.js";
3
- const b = /* @__PURE__ */ new Date("2025-05-30T06:18:05.659Z"), l = "Please visit https://www.react-pdf.dev/manage-license/ to generate a new license key.", s = {
3
+ const b = /* @__PURE__ */ new Date("2025-05-30T04:08:41.806Z"), l = "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. ${l}`,
5
5
  mismatchedDomain: `Your license key is not valid for the current domain / IP. ${l}`,
6
6
  expired: `Your license key has expired. ${l}`,
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../types.js";
3
- import { g as G } from "../../RPDefaultLayout-8ce0fad7.js";
3
+ import { g as G } from "../../RPDefaultLayout-aa575bb0.js";
4
4
  import "react/jsx-runtime";
5
5
  import "../../contexts/RPDocumentContext.js";
6
6
  import "../../contexts/DocumentPasswordContext.js";
@@ -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 { v as G } from "../../RPDefaultLayout-8ce0fad7.js";
8
+ import { v as G } from "../../RPDefaultLayout-aa575bb0.js";
9
9
  import "../../contexts/DarkModeContext.js";
10
10
  import "../../contexts/RotationContext.js";
11
11
  import "../../contexts/LayerContext.js";
@@ -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 { i as F } from "../../RPDefaultLayout-8ce0fad7.js";
5
+ import { i as F } from "../../RPDefaultLayout-aa575bb0.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -3,7 +3,7 @@ import "../../contexts/ScrollModeContext.js";
3
3
  import "react/jsx-runtime";
4
4
  import "../../contexts/RPDocumentContext.js";
5
5
  import "../../contexts/DocumentPasswordContext.js";
6
- import { f as F } from "../../RPDefaultLayout-8ce0fad7.js";
6
+ import { f as F } from "../../RPDefaultLayout-aa575bb0.js";
7
7
  import "../../contexts/DarkModeContext.js";
8
8
  import "../types.js";
9
9
  import "../../contexts/RotationContext.js";
@@ -7,7 +7,7 @@ import "../../contexts/RPDocumentContext.js";
7
7
  import "../../contexts/ZoomContext.js";
8
8
  import "react/jsx-runtime";
9
9
  import "../../contexts/DocumentPasswordContext.js";
10
- import { n as I } from "../../RPDefaultLayout-8ce0fad7.js";
10
+ import { n as I } from "../../RPDefaultLayout-aa575bb0.js";
11
11
  import "../../contexts/DarkModeContext.js";
12
12
  import "../../contexts/RotationContext.js";
13
13
  import "../../contexts/LayerContext.js";
@@ -3,7 +3,7 @@ import "../renderPage.js";
3
3
  import "react/jsx-runtime";
4
4
  import "../../contexts/RPDocumentContext.js";
5
5
  import "../../contexts/DocumentPasswordContext.js";
6
- import { k as G } from "../../RPDefaultLayout-8ce0fad7.js";
6
+ import { k as G } from "../../RPDefaultLayout-aa575bb0.js";
7
7
  import "../../contexts/DarkModeContext.js";
8
8
  import "../../contexts/RotationContext.js";
9
9
  import "../../contexts/LayerContext.js";
@@ -4,7 +4,7 @@ import "../../contexts/ScrollModeContext.js";
4
4
  import "react/jsx-runtime";
5
5
  import "../../contexts/RPDocumentContext.js";
6
6
  import "../../contexts/DocumentPasswordContext.js";
7
- import { s as D } from "../../RPDefaultLayout-8ce0fad7.js";
7
+ import { s as D } from "../../RPDefaultLayout-aa575bb0.js";
8
8
  import "../../contexts/DarkModeContext.js";
9
9
  import "../../contexts/RotationContext.js";
10
10
  import "../../contexts/LayerContext.js";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pdf-viewer/react",
3
3
  "private": false,
4
4
  "description": "The PDF Viewer component for React and Next.js",
5
- "version": "1.6.1",
5
+ "version": "1.7.0-beta.1",
6
6
  "keywords": [
7
7
  "component",
8
8
  "frontend",