@pdf-viewer/react 1.8.0-rc.2 → 1.9.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 (102) hide show
  1. package/dist/{Popover-1faa77f6.js → Popover-48c8394c.js} +2 -2
  2. package/dist/RPLayout-3042ec91.js +3349 -0
  3. package/dist/assets/{RPDefaultLayout.css → RPLayout.css} +1 -1
  4. package/dist/{component-1da194e8.js → component-2aa6e53b.js} +1 -1
  5. package/dist/components/RPConfig.js +691 -673
  6. package/dist/components/RPController.js +9 -9
  7. package/dist/components/RPPages.js +14 -2
  8. package/dist/components/icons/ChevronDownIcon.js +23 -0
  9. package/dist/components/layout/LayoutContainer.js +14 -2
  10. package/dist/components/layout/RPDefaultLayout.js +3 -2
  11. package/dist/components/layout/RPLayout.js +50 -0
  12. package/dist/components/layout/sidebar/RPSidebar.js +1 -1
  13. package/dist/components/layout/sidebar/Thumbnail.js +1 -1
  14. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  15. package/dist/components/layout/toolbar/DarkModeTool.js +16 -19
  16. package/dist/components/layout/toolbar/DocumentDialog.js +14 -2
  17. package/dist/components/layout/toolbar/FileDownloadTool.js +1 -1
  18. package/dist/components/layout/toolbar/MenuItem.js +1 -1
  19. package/dist/components/layout/toolbar/MenuSeparator.js +1 -1
  20. package/dist/components/layout/toolbar/MostPageTool.js +13 -5
  21. package/dist/components/layout/toolbar/OtherTool.js +3 -4
  22. package/dist/components/layout/toolbar/Paginate.js +1 -1
  23. package/dist/components/layout/toolbar/PrintTool.js +1 -1
  24. package/dist/components/layout/toolbar/RPToolbar.js +1 -1
  25. package/dist/components/layout/toolbar/RPToolbarEnd.js +1 -1
  26. package/dist/components/layout/toolbar/RotateTool.js +1 -1
  27. package/dist/components/layout/toolbar/ScrollModeTool.js +1 -1
  28. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  29. package/dist/components/layout/toolbar/SearchTool.js +6 -3
  30. package/dist/components/layout/toolbar/SelectionModeTool.js +1 -1
  31. package/dist/components/layout/toolbar/ToolbarCustom.js +47 -0
  32. package/dist/components/layout/toolbar/ViewModeTool.js +1 -1
  33. package/dist/components/layout/toolbar/ZoomTool.js +2 -2
  34. package/dist/components/layout/toolbar/tools/FileDownloadTool.js +17 -0
  35. package/dist/components/layout/toolbar/tools/FileUploadTool.js +17 -0
  36. package/dist/components/layout/toolbar/tools/FullScreenTool.js +25 -0
  37. package/dist/components/layout/toolbar/tools/InputPageTool.js +45 -0
  38. package/dist/components/layout/toolbar/tools/NextPageTool.js +61 -0
  39. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +21 -0
  40. package/dist/components/layout/toolbar/tools/PrintTool.js +17 -0
  41. package/dist/components/layout/toolbar/tools/ThemeSwitcherTool.js +17 -0
  42. package/dist/components/layout/toolbar/tools/ThumbnailTool.js +23 -0
  43. package/dist/components/layout/toolbar/tools/ZoomInTool.js +28 -0
  44. package/dist/components/layout/toolbar/tools/ZoomLevelTool.js +92 -0
  45. package/dist/components/layout/toolbar/tools/ZoomOutTool.js +28 -0
  46. package/dist/components/page/AnnotationLayer.js +14 -2
  47. package/dist/components/page/CanvasLayer.js +14 -2
  48. package/dist/components/page/DualPage.js +1 -1
  49. package/dist/components/page/RPPage.js +13 -2
  50. package/dist/components/page/SinglePage.js +2 -2
  51. package/dist/components/page/TextHighlightLayer.js +14 -2
  52. package/dist/components/page/TextLayer.js +14 -2
  53. package/dist/components/ui/Checkbox.js +228 -116
  54. package/dist/components/ui/DropDown.js +1 -1
  55. package/dist/components/ui/LoadingIndicator.js +1 -1
  56. package/dist/components/ui/Popover.js +1 -1
  57. package/dist/components/ui/RPTooltip.js +207 -207
  58. package/dist/contexts/ElementPageContext.js +46 -57
  59. package/dist/contexts/PaginationContext.js +3 -3
  60. package/dist/contexts/PrintContext.js +2 -2
  61. package/dist/contexts/SearchContext.js +2 -2
  62. package/dist/contexts/ThumbnailsContext.js +2 -2
  63. package/dist/{floating-ui.react-dom-15b9b819.js → floating-ui.react-dom-4b1e2e46.js} +394 -380
  64. package/dist/index-6e0e48fa.js +332 -0
  65. package/dist/{index-7279fb4e.js → index-951f0f1f.js} +464 -456
  66. package/dist/index-e3a67935.js +150 -0
  67. package/dist/main.js +70 -44
  68. package/dist/types/components/icons/ChevronDownIcon.d.ts +2 -0
  69. package/dist/types/components/layout/RPDefaultLayout.d.ts +2 -2
  70. package/dist/types/components/layout/RPLayout.d.ts +2 -0
  71. package/dist/types/components/layout/toolbar/SearchTool.d.ts +2 -1
  72. package/dist/types/components/layout/toolbar/ToolbarCustom.d.ts +3 -0
  73. package/dist/types/components/layout/toolbar/tools/FileDownloadTool.d.ts +3 -0
  74. package/dist/types/components/layout/toolbar/tools/FileUploadTool.d.ts +3 -0
  75. package/dist/types/components/layout/toolbar/tools/FullScreenTool.d.ts +3 -0
  76. package/dist/types/components/layout/toolbar/tools/InputPageTool.d.ts +2 -0
  77. package/dist/types/components/layout/toolbar/tools/NextPageTool.d.ts +3 -0
  78. package/dist/types/components/layout/toolbar/tools/PreviousPageTool.d.ts +3 -0
  79. package/dist/types/components/layout/toolbar/tools/PrintTool.d.ts +3 -0
  80. package/dist/types/components/layout/toolbar/tools/ThemeSwitcherTool.d.ts +3 -0
  81. package/dist/types/components/layout/toolbar/tools/ThumbnailTool.d.ts +3 -0
  82. package/dist/types/components/layout/toolbar/tools/ZoomInTool.d.ts +3 -0
  83. package/dist/types/components/layout/toolbar/tools/ZoomLevelTool.d.ts +3 -0
  84. package/dist/types/components/layout/toolbar/tools/ZoomOutTool.d.ts +3 -0
  85. package/dist/types/main.d.ts +15 -1
  86. package/dist/types/utils/constants.d.ts +2 -0
  87. package/dist/types/utils/types.d.ts +28 -2
  88. package/dist/utils/constants.js +5 -3
  89. package/dist/utils/hooks/useFileDownload.js +14 -2
  90. package/dist/utils/hooks/useLicense.js +24 -26
  91. package/dist/utils/hooks/usePageRotateContext.js +14 -17
  92. package/dist/utils/hooks/usePaginate.js +14 -2
  93. package/dist/utils/hooks/usePresentPage.js +14 -2
  94. package/dist/utils/hooks/usePrint.js +14 -2
  95. package/dist/utils/hooks/useScrollToPage.js +14 -2
  96. package/dist/utils/hooks/useSearch.js +14 -2
  97. package/dist/utils/hooks/useThumbnail.js +14 -2
  98. package/dist/utils/hooks/useVirtualReactWindow.js +14 -2
  99. package/package.json +1 -1
  100. package/dist/RPDefaultLayout-2cca5d34.js +0 -3263
  101. package/dist/index-1cb41342.js +0 -307
  102. package/dist/index-aa2d3884.js +0 -140
@@ -0,0 +1,25 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useFullScreenContext as c } from "../../../../contexts/FullScreenContext.js";
3
+ import { UIButton as i } from "../../../ui/Button.js";
4
+ import { FullScreenIcon as u } from "../../../icons/FullScreenIcon.js";
5
+ import { useIconContext as m } from "../../../../contexts/IconContext.js";
6
+ import p from "../../../ui/RPTooltip.js";
7
+ import { useLocalizationContext as f } from "../../../../contexts/LocalizationContext.js";
8
+ const S = () => {
9
+ const { fullScreenIcon: o } = m();
10
+ return o || /* @__PURE__ */ t(u, {});
11
+ }, F = ({ children: o, className: n, localeMessages: r }) => /* @__PURE__ */ t(p, { className: n, content: r == null ? void 0 : r.fullScreenTooltip, children: o }), h = ({ icon: o }) => {
12
+ const { isFullScreen: n, toggleFullScreen: r, isSupported: e } = c(), { localeMessages: l } = f();
13
+ return /* @__PURE__ */ t(F, { localeMessages: l, children: /* @__PURE__ */ t(
14
+ i,
15
+ {
16
+ disabled: !e,
17
+ onClick: r,
18
+ "aria-label": n ? "Exit full screen" : "Enter full screen",
19
+ children: o || /* @__PURE__ */ t(S, {})
20
+ }
21
+ ) });
22
+ };
23
+ export {
24
+ h as FullScreenTool
25
+ };
@@ -0,0 +1,45 @@
1
+ import { jsxs as u, Fragment as h, jsx as g } from "react/jsx-runtime";
2
+ import { useState as d, useEffect as S, useCallback as o } from "react";
3
+ import { u as x, i as p } from "../../../../RPLayout-3042ec91.js";
4
+ import { useLocalizationContext as C } from "../../../../contexts/LocalizationContext.js";
5
+ import y from "../../../ui/RPTooltip.js";
6
+ import { UIInput as E } from "../../../ui/Input.js";
7
+ const k = () => {
8
+ const { focusedPage: n, totalPages: s, goToPage: i } = x(), { localeMessages: a } = C(), [r, e] = d(n.toString());
9
+ S(() => {
10
+ e(n.toString());
11
+ }, [n]);
12
+ const m = o((t) => {
13
+ const l = t.target.value;
14
+ e(l);
15
+ }, []), c = o(async () => {
16
+ const t = i(r);
17
+ t.success || e(t.currentPage.toString());
18
+ }, [i, r, s]), f = o(() => {
19
+ e(n.toString());
20
+ }, [n]), P = o(
21
+ (t) => {
22
+ t.key === "Enter" && c();
23
+ },
24
+ [c]
25
+ );
26
+ return /* @__PURE__ */ u(h, { children: [
27
+ /* @__PURE__ */ g(y, { content: a == null ? void 0 : a.currentPageTooltip, children: /* @__PURE__ */ g(
28
+ E,
29
+ {
30
+ onKeyDown: P,
31
+ onBlur: f,
32
+ onChange: m,
33
+ value: r,
34
+ className: p["rp-page-input"]
35
+ }
36
+ ) }),
37
+ /* @__PURE__ */ u("span", { className: p["rp-total-page"], children: [
38
+ "/",
39
+ s
40
+ ] })
41
+ ] });
42
+ };
43
+ export {
44
+ k as InputPageTool
45
+ };
@@ -0,0 +1,61 @@
1
+ import { jsx as i, Fragment as l } from "react/jsx-runtime";
2
+ import { useMemo as d } from "react";
3
+ import { ChevronUpIcon as c } from "../../../icons/ChevronUpIcon.js";
4
+ import { UIButton as f } from "../../../ui/Button.js";
5
+ import { u as s } from "../../../../RPLayout-3042ec91.js";
6
+ import { useLocalizationContext as u } from "../../../../contexts/LocalizationContext.js";
7
+ import { ViewMode as x, ScrollMode as P } from "../../../../utils/types.js";
8
+ import "../../../../contexts/RPDocumentContext.js";
9
+ import "../../../../contexts/DocumentPasswordContext.js";
10
+ import "../../../../contexts/DarkModeContext.js";
11
+ import "../../../../contexts/RotationContext.js";
12
+ import "../../../../contexts/LayerContext.js";
13
+ import "../../../../contexts/ZoomContext.js";
14
+ import { useViewModeContext as g } from "../../../../contexts/ViewModeContext.js";
15
+ import { useScrollModeContext as C } from "../../../../contexts/ScrollModeContext.js";
16
+ import "../../../../contexts/VirtualScrollContext.js";
17
+ import "../../../../contexts/VirtualGridContext.js";
18
+ import "../../../../contexts/SelectionModeContext.js";
19
+ import "../../../../contexts/InitialStateContext.js";
20
+ import "../../../../contexts/FullScreenContext.js";
21
+ import "../../../../contexts/FileInputContext.js";
22
+ import "../../../../contexts/DropFileZoneContext.js";
23
+ import "../../../../contexts/LayoutContainerContext.js";
24
+ import "../../../../contexts/DimensionPagesContext.js";
25
+ import "../../../../contexts/HighlightContext.js";
26
+ import "../../../../contexts/LicenseContext.js";
27
+ import "../../../../contexts/DownloadContext.js";
28
+ import "../../../../contexts/SmoothScrollContext.js";
29
+ import "../../../../contexts/ElementPageContext.js";
30
+ import "../../../../contexts/PagesRotateContext.js";
31
+ import "../../../../contexts/LoaderContext.js";
32
+ import "../../../RPConfig.js";
33
+ import "../../../../contexts/ThemeContext.js";
34
+ import "../../../RPDropFileZone.js";
35
+ import "../../../../contexts/ToolbarComponentContext.js";
36
+ import "../../../../SearchCloseButton-ddb9877e.js";
37
+ import "../../../ui/Input.js";
38
+ import "../../../ui/Checkbox.js";
39
+ import "../../../icons/LoaderIcon.js";
40
+ import "../../../../contexts/IconContext.js";
41
+ import h from "../../../ui/RPTooltip.js";
42
+ import "../../../../Popover-48c8394c.js";
43
+ import "../../../../contexts/ViewportContext.js";
44
+ import "../../../ui/DropDown.js";
45
+ import "../MenuItem.js";
46
+ import "../MenuSeparator.js";
47
+ const so = ({ icon: m }) => {
48
+ const { focusedPage: t, nextPage: n, totalPages: r } = s(), { localeMessages: o } = u(), { viewMode: p } = g(), { scrollMode: e } = C(), a = d(() => p === x.DUAL_PAGE && e === P.PAGE_SCROLLING && t === r - 1 || t === r, [t, r, p, e]);
49
+ return /* @__PURE__ */ i(l, { children: /* @__PURE__ */ i(h, { content: o == null ? void 0 : o.nextPageTooltip, children: /* @__PURE__ */ i(
50
+ f,
51
+ {
52
+ onClick: n,
53
+ "aria-label": o == null ? void 0 : o.nextPageTooltip,
54
+ "aria-disabled": a,
55
+ children: m || /* @__PURE__ */ i(c, { style: { transform: "rotate(180deg" } })
56
+ }
57
+ ) }) });
58
+ };
59
+ export {
60
+ so as NextPageTool
61
+ };
@@ -0,0 +1,21 @@
1
+ import { jsx as r, Fragment as e } from "react/jsx-runtime";
2
+ import { ChevronUpIcon as p } from "../../../icons/ChevronUpIcon.js";
3
+ import { UIButton as m } from "../../../ui/Button.js";
4
+ import { u as a } from "../../../../RPLayout-3042ec91.js";
5
+ import { useLocalizationContext as u } from "../../../../contexts/LocalizationContext.js";
6
+ import P from "../../../ui/RPTooltip.js";
7
+ const h = ({ icon: t }) => {
8
+ const { focusedPage: i, prevPage: n } = a(), { localeMessages: o } = u();
9
+ return /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(P, { content: o == null ? void 0 : o.previousPageTooltip, children: /* @__PURE__ */ r(
10
+ m,
11
+ {
12
+ onClick: n,
13
+ "aria-label": o == null ? void 0 : o.previousPageTooltip,
14
+ "aria-disabled": i === 1,
15
+ children: t || /* @__PURE__ */ r(p, {})
16
+ }
17
+ ) }) });
18
+ };
19
+ export {
20
+ h as PreviousPageTool
21
+ };
@@ -0,0 +1,17 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { PrintDefaultTool as i } from "../../../icons/PrintDefaultIcon.js";
3
+ import { useIconContext as p } from "../../../../contexts/IconContext.js";
4
+ import { UIButton as m } from "../../../ui/Button.js";
5
+ import { d as c } from "../../../../RPLayout-3042ec91.js";
6
+ import { useLocalizationContext as f } from "../../../../contexts/LocalizationContext.js";
7
+ import u from "../../../ui/RPTooltip.js";
8
+ const P = () => {
9
+ const { printIcon: o } = p();
10
+ return o || /* @__PURE__ */ r(i, {});
11
+ }, T = ({ children: o, className: n, localeMessages: t }) => /* @__PURE__ */ r(u, { className: n, content: t == null ? void 0 : t.printTooltip, children: o }), j = ({ icon: o }) => {
12
+ const { print: n } = c(), { localeMessages: t } = f();
13
+ return /* @__PURE__ */ r(T, { localeMessages: t, children: /* @__PURE__ */ r(m, { onClick: n, "aria-label": t == null ? void 0 : t.printTooltip, children: o || /* @__PURE__ */ r(P, {}) }) });
14
+ };
15
+ export {
16
+ j as PrintTool
17
+ };
@@ -0,0 +1,17 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { useCallback as a } from "react";
3
+ import { MoonIcon as h } from "../../../icons/MoonIcon.js";
4
+ import { SunIcon as c } from "../../../icons/SunIcon.js";
5
+ import { UIButton as k } from "../../../ui/Button.js";
6
+ import { useDarkModeContext as f } from "../../../../contexts/DarkModeContext.js";
7
+ import { useLocalizationContext as I } from "../../../../contexts/LocalizationContext.js";
8
+ import u from "../../../ui/RPTooltip.js";
9
+ const S = ({ icons: o }) => {
10
+ const { darkMode: e, setDarkMode: n } = f(), { localeMessages: t } = I(), i = o == null ? void 0 : o.lightModeIcon, d = o == null ? void 0 : o.darkModeIcon, m = e ? t == null ? void 0 : t.themeEnableLightTooltip : t == null ? void 0 : t.themeEnableDarkTooltip, l = a(() => {
11
+ n((p) => !p);
12
+ }, [n]);
13
+ return /* @__PURE__ */ r(u, { content: m, children: /* @__PURE__ */ r(k, { onClick: l, "aria-label": m, children: e ? d ?? /* @__PURE__ */ r(c, {}) : i ?? /* @__PURE__ */ r(h, {}) }) });
14
+ };
15
+ export {
16
+ S as ThemeSwitcherTool
17
+ };
@@ -0,0 +1,23 @@
1
+ import { jsx as o, Fragment as l } from "react/jsx-runtime";
2
+ import { h } from "../../../../RPLayout-3042ec91.js";
3
+ import { ThumbnailIcon as p } from "../../../icons/Thumbnail.js";
4
+ import { UIButton as u } from "../../../ui/Button.js";
5
+ import a from "../../../ui/RPTooltip.js";
6
+ import { useLocalizationContext as c } from "../../../../contexts/LocalizationContext.js";
7
+ const C = ({ icon: i }) => {
8
+ const { active: n, setActive: r } = h(), { localeMessages: t } = c(), m = () => {
9
+ r(!n);
10
+ };
11
+ return /* @__PURE__ */ o(l, { children: /* @__PURE__ */ o(a, { content: t == null ? void 0 : t.thumbnailTooltip, children: /* @__PURE__ */ o(
12
+ u,
13
+ {
14
+ onClick: m,
15
+ active: n,
16
+ "aria-label": t == null ? void 0 : t.thumbnailTooltip,
17
+ children: i || /* @__PURE__ */ o(p, {})
18
+ }
19
+ ) }) });
20
+ };
21
+ export {
22
+ C as ThumbnailTool
23
+ };
@@ -0,0 +1,28 @@
1
+ import { jsx as t, Fragment as f } from "react/jsx-runtime";
2
+ import { useCallback as d, useMemo as u } from "react";
3
+ import { useZoomContext as I } from "../../../../contexts/ZoomContext.js";
4
+ import { ZoomInIcon as a } from "../../../icons/ZoomInIcon.js";
5
+ import { UIButton as Z } from "../../../ui/Button.js";
6
+ import h from "../../../ui/RPTooltip.js";
7
+ import { useLocalizationContext as s } from "../../../../contexts/LocalizationContext.js";
8
+ import { MAX_ZOOM_SCALE as i } from "../../../../utils/constants.js";
9
+ const A = ({ icon: n }) => {
10
+ const { zoomLevel: r, setZoomLevel: m } = I(), { localeMessages: o } = s(), e = d(() => {
11
+ m((p) => {
12
+ const c = Math.floor(p / 25) * 25;
13
+ return Math.min(c + 25, i);
14
+ });
15
+ }, [m]), l = u(() => r >= i, [r]);
16
+ return /* @__PURE__ */ t(f, { children: /* @__PURE__ */ t(h, { content: o == null ? void 0 : o.zoomInTooltip, children: /* @__PURE__ */ t(
17
+ Z,
18
+ {
19
+ disabled: l,
20
+ onClick: e,
21
+ "aria-label": o == null ? void 0 : o.zoomInTooltip,
22
+ children: n || /* @__PURE__ */ t(a, {})
23
+ }
24
+ ) }) });
25
+ };
26
+ export {
27
+ A as ZoomInTool
28
+ };
@@ -0,0 +1,92 @@
1
+ import { jsx as e, Fragment as G, jsxs as l } from "react/jsx-runtime";
2
+ import { useState as N, useRef as S, useMemo as W, useCallback as g, useEffect as k } from "react";
3
+ import { useZoomContext as y } from "../../../../contexts/ZoomContext.js";
4
+ import { UIButton as E } from "../../../ui/Button.js";
5
+ import { u as F, j as m } from "../../../../RPLayout-3042ec91.js";
6
+ import { UIDropDown as j } from "../../../ui/DropDown.js";
7
+ import { useLayoutContainer as R } from "../../../../contexts/LayoutContainerContext.js";
8
+ import { G as v } from "../../../../index-951f0f1f.js";
9
+ import { MenuItem as p } from "../MenuItem.js";
10
+ import { MenuSeparator as U } from "../MenuSeparator.js";
11
+ import { useToolbarComponentContext as _ } from "../../../../contexts/ToolbarComponentContext.js";
12
+ import { PAGE_PADDING as L } from "../../../../utils/constants.js";
13
+ import O from "../../../ui/RPTooltip.js";
14
+ import { ZoomLevel as u } from "../../../../utils/types.js";
15
+ import { getZoomLevel as V } from "../../../../utils/getZoomLevel.js";
16
+ import { useLocalizationContext as B } from "../../../../contexts/LocalizationContext.js";
17
+ import { useDocumentContext as $ } from "../../../../contexts/RPDocumentContext.js";
18
+ import { useViewModeContext as q } from "../../../../contexts/ViewModeContext.js";
19
+ import { useRotationContext as J } from "../../../../contexts/RotationContext.js";
20
+ import { ChevronDownIcon as K } from "../../../icons/ChevronDownIcon.js";
21
+ const Q = [50, 75, 100, 125, 150, 200, 300, 400], Co = ({ icon: a }) => {
22
+ const { zoomLevel: h, setZoomLevel: i } = y(), { container: T, pagesRef: r } = R(), { zoomTool: s = !0 } = _(), { focusedPage: d } = F(), { rotate: f } = J(), { pages: x } = $(), { localeMessages: o } = B(), { viewMode: b } = q(), [P, Z] = N(0), z = S(
23
+ new ResizeObserver((t) => {
24
+ Z(t[0].contentRect.height);
25
+ })
26
+ ), n = W(() => {
27
+ const t = x.get(d);
28
+ return t ? t.page.getViewport({ scale: 1, rotation: f + t.defaultRotation }) : null;
29
+ }, [x, d, f]), C = g(
30
+ (t) => {
31
+ const w = ((n == null ? void 0 : n.width) || 0) + 2 * L, A = ((n == null ? void 0 : n.height) || 0) + 2 * L, D = (r == null ? void 0 : r.clientWidth) || 0, H = (r == null ? void 0 : r.clientHeight) || 0, I = V(
32
+ t,
33
+ D,
34
+ H,
35
+ w,
36
+ A,
37
+ b
38
+ );
39
+ i(I);
40
+ },
41
+ [i, n, r]
42
+ ), c = g(
43
+ (t) => {
44
+ typeof t == "number" ? i(t) : C(t);
45
+ },
46
+ [i, C]
47
+ );
48
+ return k(() => (r && z.current.observe(r), () => {
49
+ z.current.disconnect();
50
+ }), [r]), typeof s != "boolean" ? /* @__PURE__ */ e(s, { zoomLevel: h, setZoomLevel: i }) : s ? /* @__PURE__ */ e(G, { children: /* @__PURE__ */ e(
51
+ j,
52
+ {
53
+ container: T,
54
+ triggerComponent: /* @__PURE__ */ e("div", { role: "button", children: /* @__PURE__ */ e(O, { content: o == null ? void 0 : o.zoomSelectTooltip, children: /* @__PURE__ */ l(
55
+ E,
56
+ {
57
+ className: m["rp-current-zoom-wrapper"],
58
+ "aria-label": o == null ? void 0 : o.zoomSelectTooltip,
59
+ children: [
60
+ /* @__PURE__ */ e("span", { className: m["rp-current-zoom-text"], children: h }),
61
+ /* @__PURE__ */ e("span", { className: m["rp-current-zoom-text"], children: "%" }),
62
+ /* @__PURE__ */ e("div", { className: m["rp-zoom-level-icon"], children: a || /* @__PURE__ */ e(K, {}) })
63
+ ]
64
+ }
65
+ ) }) }),
66
+ style: { minWidth: "200px" },
67
+ align: "center",
68
+ children: /* @__PURE__ */ l(
69
+ "div",
70
+ {
71
+ style: { maxHeight: `${P}px`, overflow: "auto" },
72
+ className: m["rp-zoom-dropdown-content"],
73
+ children: [
74
+ /* @__PURE__ */ l(v, { children: [
75
+ /* @__PURE__ */ e(p, { onClick: () => c(u.ACTUAL), children: o == null ? void 0 : o.zoomActualSize }),
76
+ /* @__PURE__ */ e(p, { onClick: () => c(u.PAGE_FIT), children: o == null ? void 0 : o.zoomPageFit }),
77
+ /* @__PURE__ */ e(p, { onClick: () => c(u.PAGE_WIDTH), children: o == null ? void 0 : o.zoomPageWidth })
78
+ ] }),
79
+ /* @__PURE__ */ e(U, {}),
80
+ /* @__PURE__ */ e(v, { children: Q.map((t) => /* @__PURE__ */ l(p, { onClick: () => c(t), children: [
81
+ t,
82
+ " %"
83
+ ] }, t)) })
84
+ ]
85
+ }
86
+ )
87
+ }
88
+ ) }) : null;
89
+ };
90
+ export {
91
+ Co as ZoomLevelTool
92
+ };
@@ -0,0 +1,28 @@
1
+ import { jsx as t, Fragment as p } from "react/jsx-runtime";
2
+ import { useMemo as c, useCallback as O } from "react";
3
+ import { useZoomContext as d } from "../../../../contexts/ZoomContext.js";
4
+ import { UIButton as f } from "../../../ui/Button.js";
5
+ import Z from "../../../ui/RPTooltip.js";
6
+ import { useLocalizationContext as a } from "../../../../contexts/LocalizationContext.js";
7
+ import { ZoomOutIcon as h } from "../../../icons/ZoomOutIcon.js";
8
+ import { MIN_ZOOM_SCALE as C, MAX_ZOOM_SCALE as s } from "../../../../utils/constants.js";
9
+ const I = ({ icon: r }) => {
10
+ const { zoomLevel: m, setZoomLevel: i } = d(), { localeMessages: o } = a(), n = c(() => m <= C, [m]), e = O(() => {
11
+ i((u) => {
12
+ const l = Math.ceil(u / 25) * 25;
13
+ return Math.min(l - 25, s);
14
+ });
15
+ }, [i]);
16
+ return /* @__PURE__ */ t(p, { children: /* @__PURE__ */ t(Z, { content: o == null ? void 0 : o.zoomOutTooltip, children: /* @__PURE__ */ t(
17
+ f,
18
+ {
19
+ disabled: n,
20
+ onClick: e,
21
+ "aria-label": o == null ? void 0 : o.zoomOutTooltip,
22
+ children: r || /* @__PURE__ */ t(h, {})
23
+ }
24
+ ) }) });
25
+ };
26
+ export {
27
+ I as ZoomOutTool
28
+ };
@@ -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 { A as K } from "../../RPDefaultLayout-2cca5d34.js";
5
+ import { A as X } from "../../RPLayout-3042ec91.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../utils/types.js";
8
8
  import "../../contexts/RotationContext.js";
@@ -31,9 +31,21 @@ import "../RPConfig.js";
31
31
  import "../../contexts/ThemeContext.js";
32
32
  import "../RPDropFileZone.js";
33
33
  import "../../contexts/ToolbarComponentContext.js";
34
+ import "../ui/Button.js";
35
+ import "../../SearchCloseButton-ddb9877e.js";
36
+ import "../ui/Input.js";
37
+ import "../ui/Checkbox.js";
38
+ import "../icons/LoaderIcon.js";
39
+ import "../../contexts/IconContext.js";
40
+ import "../ui/RPTooltip.js";
41
+ import "../../Popover-48c8394c.js";
42
+ import "../../contexts/ViewportContext.js";
43
+ import "../ui/DropDown.js";
44
+ import "../layout/toolbar/MenuItem.js";
45
+ import "../layout/toolbar/MenuSeparator.js";
34
46
  import "pdfjs-dist";
35
47
  import "../../utils/link_service.js";
36
48
  import "../../utils/annotations.js";
37
49
  export {
38
- K as AnnotationLayer
50
+ X as AnnotationLayer
39
51
  };
@@ -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 H } from "../../RPDefaultLayout-2cca5d34.js";
5
+ import { C as U } from "../../RPLayout-3042ec91.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -30,7 +30,19 @@ import "../RPConfig.js";
30
30
  import "../../contexts/ThemeContext.js";
31
31
  import "../RPDropFileZone.js";
32
32
  import "../../contexts/ToolbarComponentContext.js";
33
+ import "../ui/Button.js";
34
+ import "../../SearchCloseButton-ddb9877e.js";
35
+ import "../ui/Input.js";
36
+ import "../ui/Checkbox.js";
37
+ import "../icons/LoaderIcon.js";
38
+ import "../../contexts/IconContext.js";
39
+ import "../ui/RPTooltip.js";
40
+ import "../../Popover-48c8394c.js";
41
+ import "../../contexts/ViewportContext.js";
42
+ import "../ui/DropDown.js";
43
+ import "../layout/toolbar/MenuItem.js";
44
+ import "../layout/toolbar/MenuSeparator.js";
33
45
  import "../../utils/renderPage.js";
34
46
  export {
35
- H as CanvasLayer
47
+ U as CanvasLayer
36
48
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { D as p } from "../../RPDefaultLayout-2cca5d34.js";
3
+ import { D as p } from "../../RPLayout-3042ec91.js";
4
4
  export {
5
5
  p as DualPage
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { r as H } from "../../RPDefaultLayout-2cca5d34.js";
3
+ import { w as U } from "../../RPLayout-3042ec91.js";
4
4
  import "../../contexts/RPDocumentContext.js";
5
5
  import "../../contexts/DocumentPasswordContext.js";
6
6
  import "../../contexts/DarkModeContext.js";
@@ -30,8 +30,19 @@ import "../RPConfig.js";
30
30
  import "../../contexts/ThemeContext.js";
31
31
  import "../RPDropFileZone.js";
32
32
  import "../../contexts/ToolbarComponentContext.js";
33
+ import "../ui/Button.js";
34
+ import "../../SearchCloseButton-ddb9877e.js";
35
+ import "../ui/Input.js";
36
+ import "../ui/Checkbox.js";
33
37
  import "../icons/LoaderIcon.js";
38
+ import "../../contexts/IconContext.js";
39
+ import "../ui/RPTooltip.js";
40
+ import "../../Popover-48c8394c.js";
41
+ import "../../contexts/ViewportContext.js";
42
+ import "../ui/DropDown.js";
43
+ import "../layout/toolbar/MenuItem.js";
44
+ import "../layout/toolbar/MenuSeparator.js";
34
45
  import "./CustomElement.js";
35
46
  export {
36
- H as RPPage
47
+ U as RPPage
37
48
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { t as i } from "../../RPDefaultLayout-2cca5d34.js";
3
+ import { y as m } from "../../RPLayout-3042ec91.js";
4
4
  export {
5
- i as SinglePage
5
+ m as SinglePage
6
6
  };
@@ -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 { q as G } from "../../RPDefaultLayout-2cca5d34.js";
5
+ import { v as V } from "../../RPLayout-3042ec91.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -30,8 +30,20 @@ import "../RPConfig.js";
30
30
  import "../../contexts/ThemeContext.js";
31
31
  import "../RPDropFileZone.js";
32
32
  import "../../contexts/ToolbarComponentContext.js";
33
+ import "../ui/Button.js";
34
+ import "../../SearchCloseButton-ddb9877e.js";
35
+ import "../ui/Input.js";
36
+ import "../ui/Checkbox.js";
37
+ import "../icons/LoaderIcon.js";
38
+ import "../../contexts/IconContext.js";
39
+ import "../ui/RPTooltip.js";
40
+ import "../../Popover-48c8394c.js";
41
+ import "../../contexts/ViewportContext.js";
42
+ import "../ui/DropDown.js";
43
+ import "../layout/toolbar/MenuItem.js";
44
+ import "../layout/toolbar/MenuSeparator.js";
33
45
  import "./searchHighlight.js";
34
46
  import "../../utils/highlight.js";
35
47
  export {
36
- G as TextHighlightLayer
48
+ V as TextHighlightLayer
37
49
  };
@@ -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 { p as H } from "../../RPDefaultLayout-2cca5d34.js";
5
+ import { t as V } from "../../RPLayout-3042ec91.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -30,8 +30,20 @@ import "../RPConfig.js";
30
30
  import "../../contexts/ThemeContext.js";
31
31
  import "../RPDropFileZone.js";
32
32
  import "../../contexts/ToolbarComponentContext.js";
33
+ import "../ui/Button.js";
34
+ import "../../SearchCloseButton-ddb9877e.js";
35
+ import "../ui/Input.js";
36
+ import "../ui/Checkbox.js";
37
+ import "../icons/LoaderIcon.js";
38
+ import "../../contexts/IconContext.js";
39
+ import "../ui/RPTooltip.js";
40
+ import "../../Popover-48c8394c.js";
41
+ import "../../contexts/ViewportContext.js";
42
+ import "../ui/DropDown.js";
43
+ import "../layout/toolbar/MenuItem.js";
44
+ import "../layout/toolbar/MenuSeparator.js";
33
45
  import "pdfjs-dist";
34
46
  import "../../utils/highlight.js";
35
47
  export {
36
- H as TextLayer
48
+ V as TextLayer
37
49
  };