🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@react-pdf-kit/viewer

Package Overview
Dependencies
Maintainers
3
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-pdf-kit/viewer - npm Package Compare versions

Comparing version
2.6.0
to
2.7.0-beta.0
+32
dist/icons.js
import { t as e } from "./LoaderIcon-D9YjinGf.js";
import { ChevronUpIcon as t } from "./components/icons/ChevronUpIcon.js";
import { FileUploadDefaultIcon as n } from "./components/icons/FileUploadDefaultIcon.js";
import { MoonIcon as r } from "./components/icons/MoonIcon.js";
import { SunIcon as i } from "./components/icons/SunIcon.js";
import { ThreeDotIcon as a } from "./components/icons/ThreeDotIcon.js";
import { CloseIcon as o } from "./components/icons/CloseIcon.js";
import { InfoIcon as s } from "./components/icons/InfoIcon.js";
import { ClockwiseIcon as c } from "./components/icons/ClockwiseIcon.js";
import { DualPageIcon as l } from "./components/icons/DualPageIcon.js";
import { DualPageWithCoverIcon as u } from "./components/icons/DualPageWithCoverIcon.js";
import { SinglePageIcon as d } from "./components/icons/SinglePageIcon.js";
import { CheckIcon as f } from "./components/icons/CheckIcon.js";
import { PageScrollingIcon as p } from "./components/icons/PageScrollingIcon.js";
import { VerticalScrollingIcon as m } from "./components/icons/VerticalScrollingIcon.js";
import { HorizontalScrollingIcon as h } from "./components/icons/HorizontalScrollingIcon.js";
import { FileDownloadDefaultIcon as g } from "./components/icons/FileDownloadDefaultIcon.js";
import { PrintDefaultTool as _ } from "./components/icons/PrintDefaultIcon.js";
import { FullScreenIcon as v } from "./components/icons/FullScreenIcon.js";
import { GoToDownIcon as y } from "./components/icons/GoToDownIcon.js";
import { TextSelectionDefaultIcon as b } from "./components/icons/TextSelectionDefaultIcon.js";
import { HandModeDefaultIcon as x } from "./components/icons/HandModeDefaultIcon.js";
import { ZoomInIcon as S } from "./components/icons/ZoomInIcon.js";
import { ZoomOutIcon as C } from "./components/icons/ZoomOutIcon.js";
import { SearchIcon as w } from "./components/icons/SearchIcon.js";
import { ClearIcon as T } from "./components/icons/ClearIcon.js";
import { ThumbnailIcon as E } from "./components/icons/Thumbnail.js";
import { t as D } from "./LightPdfIcon-DL8MYtWQ.js";
import { t as O } from "./DarkPdfIcon-B5ehd9CV.js";
import { ChevronDownIcon as k } from "./components/icons/ChevronDownIcon.js";
import { WrappedScrollingIcon as A } from "./components/icons/WrappedScrollingIcon.js";
export { f as RPIconCheck, k as RPIconChevronDown, t as RPIconChevronUp, T as RPIconClear, c as RPIconClockwise, o as RPIconClose, O as RPIconDarkPdf, l as RPIconDualPage, u as RPIconDualPageWithCover, g as RPIconFileDownloadDefault, n as RPIconFileUploadDefault, v as RPIconFullScreen, y as RPIconGoToDown, x as RPIconHandModeDefault, h as RPIconHorizontalScrolling, s as RPIconInfo, D as RPIconLightPdf, e as RPIconLoader, r as RPIconMoon, p as RPIconPageScrolling, _ as RPIconPrintDefault, w as RPIconSearch, d as RPIconSinglePage, i as RPIconSun, b as RPIconTextSelectionDefault, a as RPIconThreeDot, E as RPIconThumbnail, m as RPIconVerticalScrolling, A as RPIconWrappedScrolling, S as RPIconZoomIn, C as RPIconZoomOut };
export { CheckIcon as RPIconCheck } from './components/icons/CheckIcon';
export { ChevronDownIcon as RPIconChevronDown } from './components/icons/ChevronDownIcon';
export { ChevronUpIcon as RPIconChevronUp } from './components/icons/ChevronUpIcon';
export { ClearIcon as RPIconClear } from './components/icons/ClearIcon';
export { ClockwiseIcon as RPIconClockwise } from './components/icons/ClockwiseIcon';
export { CloseIcon as RPIconClose } from './components/icons/CloseIcon';
export { DarkPdfIcon as RPIconDarkPdf } from './components/icons/DarkPdfIcon';
export { DualPageIcon as RPIconDualPage } from './components/icons/DualPageIcon';
export { DualPageWithCoverIcon as RPIconDualPageWithCover } from './components/icons/DualPageWithCoverIcon';
export { FileDownloadDefaultIcon as RPIconFileDownloadDefault } from './components/icons/FileDownloadDefaultIcon';
export { FileUploadDefaultIcon as RPIconFileUploadDefault } from './components/icons/FileUploadDefaultIcon';
export { FullScreenIcon as RPIconFullScreen } from './components/icons/FullScreenIcon';
export { GoToDownIcon as RPIconGoToDown } from './components/icons/GoToDownIcon';
export { HandModeDefaultIcon as RPIconHandModeDefault } from './components/icons/HandModeDefaultIcon';
export { HorizontalScrollingIcon as RPIconHorizontalScrolling } from './components/icons/HorizontalScrollingIcon';
export { InfoIcon as RPIconInfo } from './components/icons/InfoIcon';
export { LightPdfIcon as RPIconLightPdf } from './components/icons/LightPdfIcon';
export { LoaderIcon as RPIconLoader } from './components/icons/LoaderIcon';
export { MoonIcon as RPIconMoon } from './components/icons/MoonIcon';
export { PageScrollingIcon as RPIconPageScrolling } from './components/icons/PageScrollingIcon';
export { PrintDefaultTool as RPIconPrintDefault } from './components/icons/PrintDefaultIcon';
export { SearchIcon as RPIconSearch } from './components/icons/SearchIcon';
export { SinglePageIcon as RPIconSinglePage } from './components/icons/SinglePageIcon';
export { SunIcon as RPIconSun } from './components/icons/SunIcon';
export { TextSelectionDefaultIcon as RPIconTextSelectionDefault } from './components/icons/TextSelectionDefaultIcon';
export { ThreeDotIcon as RPIconThreeDot } from './components/icons/ThreeDotIcon';
export { ThumbnailIcon as RPIconThumbnail } from './components/icons/Thumbnail';
export { VerticalScrollingIcon as RPIconVerticalScrolling } from './components/icons/VerticalScrollingIcon';
export { WrappedScrollingIcon as RPIconWrappedScrolling } from './components/icons/WrappedScrollingIcon';
export { ZoomInIcon as RPIconZoomIn } from './components/icons/ZoomInIcon';
export { ZoomOutIcon as RPIconZoomOut } from './components/icons/ZoomOutIcon';
+100
-98

@@ -7,6 +7,6 @@ import { useDocumentContext as e } from "../../../contexts/RPDocumentContext.js";

import { useLocalizationContext as a } from "../../../contexts/LocalizationContext.js";
import { t as o } from "../../../LoaderIcon-D9YjinGf.js";
import { useIconToolContext as s } from "../../../contexts/IconToolContext.js";
import { t as c } from "../../../Button-jStpvb3T.js";
import { t as ee } from "../../../Input-Bb_-ljl1.js";
import { t as ee } from "../../../LoaderIcon-D9YjinGf.js";
import { useIconToolContext as o } from "../../../contexts/IconToolContext.js";
import { t as s } from "../../../Button-jStpvb3T.js";
import { t as c } from "../../../Input-Bb_-ljl1.js";
import { useIconContext as l } from "../../../contexts/IconContext.js";

@@ -23,17 +23,19 @@ import { useViewportContext as te } from "../../../contexts/ViewportContext.js";

import { SearchCloseButton as v } from "./SearchCloseButton.js";
import { useCallback as y, useEffect as b, useMemo as x, useState as S } from "react";
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
import { useCallback as y, useEffect as b, useMemo as x, useRef as S, useState as C } from "react";
import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
//#region lib/components/layout/toolbar/SearchTool.tsx
var ne = () => {
let { searchIcon: e } = l(), { searchIcon: t } = s();
return e ?? t ?? /* @__PURE__ */ w(p, {});
}, re = () => {
let { searchClearIcon: e } = l(), { searchClearIcon: t } = s();
return e ?? t ?? /* @__PURE__ */ w(g, {});
}, E = ({ icon: s }) => {
let { container: l } = t(), [g, E] = S(!1), { pdf: D } = e(), [O, k] = S(null), { searchOptions: A, setSearchOptions: j, loading: ie, setSearch: M, totalMatches: N, currentMatchPosition: P, nextMatch: F, prevMatch: I, search: L } = i(), { searchTool: R = !0 } = n(), { searchTool: z = !0 } = r(), [B, V] = S(L), { localeMessages: H } = a(), { isSmallScreen: U } = te(), [W, G] = S(null), [K, q] = S(!1), J = y(() => {
E(!0);
}, []), Y = y(() => {
M(""), V(""), E(!1);
}, [M]), X = (e) => {
let { searchIcon: e } = l(), { searchIcon: t } = o();
return e ?? t ?? /* @__PURE__ */ T(p, {});
}, D = () => {
let { searchClearIcon: e } = l(), { searchClearIcon: t } = o();
return e ?? t ?? /* @__PURE__ */ T(g, {});
}, O = ({ icon: o }) => {
let { container: l } = t(), [g, O] = C(!1), k = S(g);
k.current = g;
let { pdf: A } = e(), [j, re] = C(null), { searchOptions: M, setSearchOptions: N, loading: ie, setSearch: P, totalMatches: F, currentMatchPosition: I, nextMatch: L, prevMatch: R, search: z } = i(), { searchTool: B = !0 } = n(), { searchTool: V = !0 } = r(), [H, U] = C(z), { localeMessages: W } = a(), { isSmallScreen: G } = te(), [K, q] = C(null), [J, ae] = C(!1), oe = y(() => {
k.current && (P(""), U("")), O((e) => !e);
}, [P]), Y = y(() => {
P(""), U(""), O(!1);
}, [P]), X = (e) => {
let t = e.key === "Enter", n = e.key === " ";

@@ -43,43 +45,43 @@ (t || n) && Y();

e.key === "Escape" && g && Y();
}, [g]), ae = y((e) => {
e.shiftKey && e.key === "Enter" ? I() : e.key === "Enter" && L !== B ? M(B) : e.key === "Enter" && F();
}, [g]), se = y((e) => {
e.shiftKey && e.key === "Enter" ? R() : e.key === "Enter" && z !== H ? P(H) : e.key === "Enter" && L();
}, [
B,
I,
F,
M,
L
H,
R,
L,
P,
z
]);
b(() => {
V(L);
}, [L]), b(() => {
L && D && q(!0);
}, [L, D]), b(() => {
L && L.trim() !== "" && (V(L), M(L));
U(z);
}, [z]), b(() => {
z && A && ae(!0);
}, [z, A]), b(() => {
z && z.trim() !== "" && (U(z), P(z));
}, []), b(() => (window.addEventListener("keydown", Z), () => {
window.removeEventListener("keydown", Z);
}), [Z]), b(() => {
O && setTimeout(() => {
O.focus();
j && setTimeout(() => {
j.focus();
}, 0);
}, [O]);
let oe = y((e) => {
V(e.target.value);
}, [j]);
let ce = y((e) => {
U(e.target.value);
}, []), Q = y(() => {
V(""), M("");
}, [M]), se = x(() => `${P} / ${N}`, [P, N]), { wholeWords: ce, matchCase: le } = x(() => A, [A]), ue = y((e) => {
j((t) => ({
U(""), P("");
}, [P]), le = x(() => `${I} / ${F}`, [I, F]), { wholeWords: ue, matchCase: de } = x(() => M, [M]), fe = y((e) => {
N((t) => ({
...t,
matchCase: e
}));
}, [j]), de = y((e) => {
j((t) => ({
}, [N]), pe = y((e) => {
N((t) => ({
...t,
wholeWords: e
}));
}, [j]);
}, [N]);
b(() => {
D && K && Y();
}, [D, Y]);
let $ = x(() => W?.querySelectorAll("[tabindex]:not([tabindex=\"-1\"])") || [], [W]), fe = y((e) => {
A && J && Y();
}, [A, Y]);
let $ = x(() => K?.querySelectorAll("[tabindex]:not([tabindex=\"-1\"])") || [], [K]), me = y((e) => {
if (e.key === "Tab") {

@@ -103,3 +105,3 @@ let t = document.activeElement, n = -1;

}, [$]);
return !R || !z ? null : /* @__PURE__ */ w(C, { children: /* @__PURE__ */ w(d, {
return !B || !V ? null : /* @__PURE__ */ T(w, { children: /* @__PURE__ */ T(d, {
open: g,

@@ -111,41 +113,41 @@ container: l,

avoidCollisions: !1,
triggerComponent: /* @__PURE__ */ w(u, {
content: H?.searchButtonTooltip,
children: /* @__PURE__ */ w(c, {
triggerComponent: /* @__PURE__ */ T(u, {
content: W?.searchButtonTooltip,
children: /* @__PURE__ */ T(s, {
active: g,
onClick: J,
"aria-label": H?.searchButtonTooltip,
onClick: oe,
"aria-label": W?.searchButtonTooltip,
"aria-expanded": g,
"aria-haspopup": "dialog",
children: s || /* @__PURE__ */ w(ne, {})
children: o || /* @__PURE__ */ T(ne, {})
})
}),
children: /* @__PURE__ */ T("div", {
ref: G,
children: /* @__PURE__ */ E("div", {
ref: q,
className: m["rp-search-tool-content"],
tabIndex: -1,
onKeyDown: fe,
onKeyDown: me,
role: "dialog",
"aria-label": H?.searchInputTooltip || "Search dialog",
children: [/* @__PURE__ */ T("div", {
"aria-label": W?.searchInputTooltip || "Search dialog",
children: [/* @__PURE__ */ E("div", {
className: m["rp-search-tool-input-wrapper"],
children: [/* @__PURE__ */ T("div", {
children: [/* @__PURE__ */ E("div", {
className: m["rp-search-tool-input"],
children: [
/* @__PURE__ */ w(u, {
content: H?.searchInputTooltip,
children: /* @__PURE__ */ w(ee, {
value: B,
onKeyDown: ae,
onChange: oe,
icon: /* @__PURE__ */ w(p, {}),
placeholder: H?.searchInputPlaceholder,
/* @__PURE__ */ T(u, {
content: W?.searchInputTooltip,
children: /* @__PURE__ */ T(c, {
value: H,
onKeyDown: se,
onChange: ce,
icon: /* @__PURE__ */ T(p, {}),
placeholder: W?.searchInputPlaceholder,
className: m["rp-search-input"],
ref: k,
ref: re,
id: "search-input",
name: "search-input",
tabIndex: 0,
"aria-label": H?.searchInputTooltip || H?.searchInputPlaceholder,
"aria-label": W?.searchInputTooltip || W?.searchInputPlaceholder,
"aria-describedby": "search-results-count",
children: !!B && /* @__PURE__ */ w("span", {
children: !!H && /* @__PURE__ */ T("span", {
className: m["rp-search-tool-input-clear"],

@@ -155,25 +157,25 @@ onClick: Q,

tabIndex: 0,
"aria-label": H?.searchCloseButtonTooltip || "Clear search",
"aria-label": W?.searchCloseButtonTooltip || "Clear search",
onKeyDown: (e) => {
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), Q());
},
children: /* @__PURE__ */ w(re, {})
children: /* @__PURE__ */ T(D, {})
})
})
}),
ie ? /* @__PURE__ */ w("span", {
ie ? /* @__PURE__ */ T("span", {
"aria-live": "polite",
"aria-label": "Searching",
children: /* @__PURE__ */ w(o, {
children: /* @__PURE__ */ T(ee, {
className: m["rp-search-loader-icon"],
"aria-hidden": "true"
})
}) : /* @__PURE__ */ w("span", {
}) : /* @__PURE__ */ T("span", {
id: "search-results-count",
"aria-live": "polite",
children: se
children: le
}),
U && /* @__PURE__ */ w("div", {
G && /* @__PURE__ */ T("div", {
className: m["rp-search-tool-controls"],
children: /* @__PURE__ */ w(v, {
children: /* @__PURE__ */ T(v, {
onKeyPress: X,

@@ -184,36 +186,36 @@ handleClose: Y

]
}), /* @__PURE__ */ T("div", {
}), /* @__PURE__ */ E("div", {
className: m["rp-search-tool-input-checkboxes"],
children: [
U && /* @__PURE__ */ w(_, {}),
/* @__PURE__ */ w(h, {
G && /* @__PURE__ */ T(_, {}),
/* @__PURE__ */ T(h, {
tabIndex: 0,
name: "matchCase",
value: le,
onChange: ue,
"aria-label": H?.searchMatchCaseLabel,
children: H?.searchMatchCaseLabel
value: de,
onChange: fe,
"aria-label": W?.searchMatchCaseLabel,
children: W?.searchMatchCaseLabel
}),
!U && /* @__PURE__ */ w(u, {
content: H?.searchMatchCaseTooltip,
children: /* @__PURE__ */ w("div", {
!G && /* @__PURE__ */ T(u, {
content: W?.searchMatchCaseTooltip,
children: /* @__PURE__ */ T("div", {
className: m["rp-search-icon-info"],
tabIndex: 0,
children: /* @__PURE__ */ w(f, {})
children: /* @__PURE__ */ T(f, {})
})
}),
/* @__PURE__ */ w(h, {
/* @__PURE__ */ T(h, {
tabIndex: 0,
name: "wholeWord",
value: ce,
onChange: de,
"aria-label": H?.searchWholeWordsLabel,
children: H?.searchWholeWordsLabel
value: ue,
onChange: pe,
"aria-label": W?.searchWholeWordsLabel,
children: W?.searchWholeWordsLabel
}),
!U && /* @__PURE__ */ w(u, {
content: H?.searchWholeWordsTooltip,
children: /* @__PURE__ */ w("div", {
!G && /* @__PURE__ */ T(u, {
content: W?.searchWholeWordsTooltip,
children: /* @__PURE__ */ T("div", {
tabIndex: 0,
className: m["rp-search-icon-info"],
children: /* @__PURE__ */ w(f, {})
children: /* @__PURE__ */ T(f, {})
})

@@ -223,5 +225,5 @@ })

})]
}), !U && /* @__PURE__ */ T("div", {
}), !G && /* @__PURE__ */ E("div", {
className: m["rp-search-tool-controls"],
children: [/* @__PURE__ */ w(_, {}), /* @__PURE__ */ w(v, {
children: [/* @__PURE__ */ T(_, {}), /* @__PURE__ */ T(v, {
onKeyPress: X,

@@ -235,2 +237,2 @@ handleClose: Y

//#endregion
export { E as SearchTool };
export { O as SearchTool };

@@ -6,3 +6,3 @@ import { n as e } from "../../chunk-C_CI6nMA.js";

//#region lib/utils/hooks/useLicense.ts
var o = /* @__PURE__ */ new Date("2026-05-15T04:42:02.038Z"), s = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvIokvErJ0Fctu0jduSAx\ngr+5Har/VSuZLlOunS28hnlqqA+OF1apHL7RYkjBosS15yvviYdLrVWYHpHnoY4b\nHLQ9I6YX6FMB9T/VbB4xLdVdKvfi8r49aTScl5EKuSpgpPgz2VSJTfvVGcRuth/Y\nBm7PPGYdL2l2gvKDxchmmsHFPukGki9L4JOUeIVX0GXAxabENckaEH/iC1NZhX+W\nvXnpHeHuIIKlZ16LSivXNgo6BH2Z3GFdg4G3cAaXr6qNP8fsacYNqv2SpTW1viFD\nvzcGRabN25gpJAp9/syeScefWH3OiJY1lmw88oTiJbjIoiq6AkPhfn3G9mF54nvR\nkwIDAQAB\n-----END PUBLIC KEY-----", c = "Please visit https://app.react-pdf-kit.dev to generate a new license key.", l = {
var o = /* @__PURE__ */ new Date("2026-05-15T05:12:06.096Z"), s = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvIokvErJ0Fctu0jduSAx\ngr+5Har/VSuZLlOunS28hnlqqA+OF1apHL7RYkjBosS15yvviYdLrVWYHpHnoY4b\nHLQ9I6YX6FMB9T/VbB4xLdVdKvfi8r49aTScl5EKuSpgpPgz2VSJTfvVGcRuth/Y\nBm7PPGYdL2l2gvKDxchmmsHFPukGki9L4JOUeIVX0GXAxabENckaEH/iC1NZhX+W\nvXnpHeHuIIKlZ16LSivXNgo6BH2Z3GFdg4G3cAaXr6qNP8fsacYNqv2SpTW1viFD\nvzcGRabN25gpJAp9/syeScefWH3OiJY1lmw88oTiJbjIoiq6AkPhfn3G9mF54nvR\nkwIDAQAB\n-----END PUBLIC KEY-----", c = "Please visit https://app.react-pdf-kit.dev to generate a new license key.", l = {
invalidLicense: `You are currently using without a valid license. ${c}`,

@@ -9,0 +9,0 @@ mismatchedDomain: `Your license key is not valid for the current domain / IP. ${c}`,

{
"name": "@react-pdf-kit/viewer",
"version": "2.6.0",
"version": "2.7.0-beta.0",
"private": false,

@@ -25,2 +25,13 @@ "description": "A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.",

"types": "dist/types/main.d.ts",
"exports": {
".": {
"types": "./dist/types/main.d.ts",
"import": "./dist/main.js"
},
"./icons": {
"types": "./dist/types/icons.d.ts",
"import": "./dist/icons.js"
},
"./*": "./*"
},
"directories": {

@@ -27,0 +38,0 @@ "lib": "lib"