pdf-tsx 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +486 -418
- package/dist/cjs/components/PDFViewer.cjs +1 -1
- package/dist/cjs/components/PDFViewer.module.cjs +1 -1
- package/dist/cjs/components/features/PDFAnnotations.cjs +1 -1
- package/dist/cjs/components/features/PDFAnnotations.module.cjs +1 -1
- package/dist/cjs/components/features/PDFAttachments.cjs +1 -1
- package/dist/cjs/components/features/PDFChangeFile.cjs +1 -1
- package/dist/cjs/components/features/PDFDownloadButton.cjs +1 -1
- package/dist/cjs/components/features/PDFNavigation.cjs +1 -1
- package/dist/cjs/components/features/PDFOutline.cjs +1 -1
- package/dist/cjs/components/features/PDFPageFit.cjs +1 -1
- package/dist/cjs/components/features/PDFPrintButton.cjs +1 -1
- package/dist/cjs/components/features/PDFRotationControl.cjs +1 -1
- package/dist/cjs/components/features/PDFSearch.cjs +1 -1
- package/dist/cjs/components/features/PDFSidebarToggle.cjs +1 -1
- package/dist/cjs/components/features/PDFSignatures.cjs +1 -1
- package/dist/cjs/components/features/PDFThemeToggle.cjs +1 -1
- package/dist/cjs/components/features/PDFThumbnails.cjs +1 -1
- package/dist/cjs/components/features/PDFZoomControls.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbar.cjs +1 -1
- package/dist/cjs/context/LabelsContext.cjs +1 -0
- package/dist/cjs/context/labelsContextValue.cjs +1 -0
- package/dist/cjs/hooks/useAnnotationLayer.cjs +1 -1
- package/dist/cjs/hooks/useAnnotations.cjs +1 -1
- package/dist/cjs/hooks/useLabels.cjs +1 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/labels.cjs +1 -0
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/components/PDFViewer.d.ts +3 -0
- package/dist/components/features/PDFChangeFile.d.ts +1 -1
- package/dist/components/features/PDFDownloadButton.d.ts +1 -1
- package/dist/components/features/PDFNavigation.d.ts +1 -1
- package/dist/components/features/PDFPageFit.d.ts +1 -1
- package/dist/components/features/PDFPrintButton.d.ts +1 -1
- package/dist/components/features/PDFRotationControl.d.ts +1 -1
- package/dist/components/features/PDFSearch.d.ts +3 -2
- package/dist/components/features/PDFSidebarToggle.d.ts +1 -1
- package/dist/components/features/PDFThemeToggle.d.ts +1 -1
- package/dist/components/features/PDFZoomControls.d.ts +1 -1
- package/dist/context/LabelsContext.d.ts +7 -0
- package/dist/context/PDFViewerContext.d.ts +1 -0
- package/dist/context/labelsContextValue.d.ts +2 -0
- package/dist/es/components/PDFViewer.js +359 -187
- package/dist/es/components/PDFViewer.module.js +23 -16
- package/dist/es/components/features/PDFAnnotations.js +132 -62
- package/dist/es/components/features/PDFAnnotations.module.js +12 -12
- package/dist/es/components/features/PDFAttachments.js +42 -41
- package/dist/es/components/features/PDFChangeFile.js +17 -16
- package/dist/es/components/features/PDFDownloadButton.js +15 -14
- package/dist/es/components/features/PDFNavigation.js +40 -38
- package/dist/es/components/features/PDFOutline.js +46 -45
- package/dist/es/components/features/PDFPageFit.js +19 -18
- package/dist/es/components/features/PDFPrintButton.js +14 -13
- package/dist/es/components/features/PDFRotationControl.js +12 -11
- package/dist/es/components/features/PDFSearch.js +71 -55
- package/dist/es/components/features/PDFSidebarToggle.js +13 -12
- package/dist/es/components/features/PDFSignatures.js +87 -84
- package/dist/es/components/features/PDFThemeToggle.js +12 -11
- package/dist/es/components/features/PDFThumbnails.js +33 -32
- package/dist/es/components/features/PDFZoomControls.js +23 -22
- package/dist/es/components/ui/PDFToolbar.js +56 -55
- package/dist/es/context/LabelsContext.js +14 -0
- package/dist/es/context/labelsContextValue.js +5 -0
- package/dist/es/hooks/useAnnotationLayer.js +37 -20
- package/dist/es/hooks/useAnnotations.js +5 -3
- package/dist/es/hooks/useLabels.js +9 -0
- package/dist/es/index.js +22 -21
- package/dist/es/labels.js +128 -0
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/hooks/useAnnotationLayer.d.ts +15 -1
- package/dist/hooks/useLabels.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/labels.d.ts +53 -0
- package/package.json +2 -1
|
@@ -3,34 +3,48 @@ import { useEffect as t, useState as n } from "react";
|
|
|
3
3
|
import "pdfjs-dist";
|
|
4
4
|
//#region src/hooks/useAnnotationLayer.ts
|
|
5
5
|
function r({ pdf: r, zoom: i, rotation: a, mountedPages: o, goToPage: s }) {
|
|
6
|
-
let [c, l] = n([]);
|
|
6
|
+
let [c, l] = n([]), [u, d] = n([]);
|
|
7
7
|
t(() => {
|
|
8
8
|
if (!r) return;
|
|
9
9
|
let e = !1;
|
|
10
10
|
return (async () => {
|
|
11
|
-
let t = [];
|
|
12
|
-
for (let
|
|
11
|
+
let t = [], n = [];
|
|
12
|
+
for (let s of o) {
|
|
13
13
|
if (e) break;
|
|
14
|
-
let o = await r.getPage(
|
|
14
|
+
let o = await r.getPage(s), c = o.getViewport({
|
|
15
15
|
scale: i,
|
|
16
16
|
rotation: a
|
|
17
|
-
}),
|
|
18
|
-
for (let e of
|
|
19
|
-
if (
|
|
20
|
-
let r = e.rect, [i, a, o,
|
|
21
|
-
t.push({
|
|
22
|
-
page:
|
|
23
|
-
x:
|
|
24
|
-
y:
|
|
25
|
-
width:
|
|
26
|
-
height:
|
|
17
|
+
}), l = await o.getAnnotations();
|
|
18
|
+
for (let e of l) {
|
|
19
|
+
if (!e.rect) continue;
|
|
20
|
+
let r = e.rect, [i, a, o, l] = c.convertToViewportRectangle(r), u = Math.min(i, o), d = Math.min(a, l), f = Math.abs(o - i), p = Math.abs(l - a);
|
|
21
|
+
if (e.subtype === "Link") t.push({
|
|
22
|
+
page: s,
|
|
23
|
+
x: u,
|
|
24
|
+
y: d,
|
|
25
|
+
width: f,
|
|
26
|
+
height: p,
|
|
27
27
|
url: e.url,
|
|
28
28
|
dest: e.dest,
|
|
29
29
|
newWindow: e.newWindow
|
|
30
30
|
});
|
|
31
|
+
else {
|
|
32
|
+
let t = e.contentsObj, i = e.titleObj, a = t?.str ?? e.contents ?? "", o = i?.str ?? e.title;
|
|
33
|
+
a && n.push({
|
|
34
|
+
page: s,
|
|
35
|
+
x: u,
|
|
36
|
+
y: d,
|
|
37
|
+
width: f,
|
|
38
|
+
height: p,
|
|
39
|
+
contents: a,
|
|
40
|
+
title: o || void 0,
|
|
41
|
+
subtype: e.subtype,
|
|
42
|
+
pdfRect: r
|
|
43
|
+
});
|
|
44
|
+
}
|
|
31
45
|
}
|
|
32
46
|
}
|
|
33
|
-
e || l(t);
|
|
47
|
+
e || (l(t), d(n));
|
|
34
48
|
})(), () => {
|
|
35
49
|
e = !0;
|
|
36
50
|
};
|
|
@@ -40,7 +54,7 @@ function r({ pdf: r, zoom: i, rotation: a, mountedPages: o, goToPage: s }) {
|
|
|
40
54
|
a,
|
|
41
55
|
o
|
|
42
56
|
]);
|
|
43
|
-
let
|
|
57
|
+
let f = async (t) => {
|
|
44
58
|
if (t.url) {
|
|
45
59
|
if (!e(t.url)) return;
|
|
46
60
|
window.open(t.url, "_blank", "noopener,noreferrer");
|
|
@@ -52,10 +66,13 @@ function r({ pdf: r, zoom: i, rotation: a, mountedPages: o, goToPage: s }) {
|
|
|
52
66
|
s(await r.getPageIndex(e[0]) + 1);
|
|
53
67
|
}
|
|
54
68
|
};
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
69
|
+
return {
|
|
70
|
+
linkOverlays: c.map((e) => ({
|
|
71
|
+
...e,
|
|
72
|
+
_handleClick: f.bind(null, e)
|
|
73
|
+
})),
|
|
74
|
+
noteOverlays: u
|
|
75
|
+
};
|
|
59
76
|
}
|
|
60
77
|
//#endregion
|
|
61
78
|
export { r as useAnnotationLayer };
|
|
@@ -13,12 +13,14 @@ function r({ pdf: r }) {
|
|
|
13
13
|
let i = await (await r.getPage(t)).getAnnotations();
|
|
14
14
|
for (let r of i) {
|
|
15
15
|
let i = r.subtype;
|
|
16
|
-
n.has(i)
|
|
16
|
+
if (!n.has(i)) continue;
|
|
17
|
+
let a = r.contentsObj, o = r.titleObj;
|
|
18
|
+
e.push({
|
|
17
19
|
id: r.id,
|
|
18
20
|
page: t,
|
|
19
21
|
subtype: i,
|
|
20
|
-
contents: r.contents,
|
|
21
|
-
title: r.title,
|
|
22
|
+
contents: a?.str ?? r.contents,
|
|
23
|
+
title: o?.str ?? r.title,
|
|
22
24
|
rect: r.rect
|
|
23
25
|
});
|
|
24
26
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { englishLabels as e } from "../labels.js";
|
|
2
|
+
import { LabelsContext as t } from "../context/labelsContextValue.js";
|
|
3
|
+
import { useContext as n } from "react";
|
|
4
|
+
//#region src/hooks/useLabels.ts
|
|
5
|
+
function r() {
|
|
6
|
+
return n(t) ?? e;
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { r as useLabels };
|
package/dist/es/index.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { darkTheme as e, lightTheme as t } from "./theme.js";
|
|
2
|
-
import n from "./
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
|
|
2
|
+
import { englishLabels as n, italianLabels as r } from "./labels.js";
|
|
3
|
+
import i from "./components/PDFViewer.js";
|
|
4
|
+
import { PDFSidebar as a } from "./components/PDFSidebar.js";
|
|
5
|
+
import { PDFAttachments as o, PDFAttachmentsIcon as s } from "./components/features/PDFAttachments.js";
|
|
6
|
+
import { PDFAnnotations as c, PDFAnnotationsIcon as l } from "./components/features/PDFAnnotations.js";
|
|
7
|
+
import { PDFChangeFile as u } from "./components/features/PDFChangeFile.js";
|
|
8
|
+
import { PDFDownloadButton as d } from "./components/features/PDFDownloadButton.js";
|
|
9
|
+
import { PDFNavigation as f } from "./components/features/PDFNavigation.js";
|
|
10
|
+
import { PDFOutline as p } from "./components/features/PDFOutline.js";
|
|
11
|
+
import { PDFPageFit as m } from "./components/features/PDFPageFit.js";
|
|
12
|
+
import { PDFRotationControl as h } from "./components/features/PDFRotationControl.js";
|
|
13
|
+
import { PDFSearch as g } from "./components/features/PDFSearch.js";
|
|
14
|
+
import { PDFSignatures as _, PDFSignaturesIcon as v } from "./components/features/PDFSignatures.js";
|
|
15
|
+
import { PDFThumbnails as y } from "./components/features/PDFThumbnails.js";
|
|
16
|
+
import { PDFZoomControls as b } from "./components/features/PDFZoomControls.js";
|
|
17
|
+
import { PDFThemeToggle as x } from "./components/features/PDFThemeToggle.js";
|
|
18
|
+
import { PDFPrintButton as S } from "./components/features/PDFPrintButton.js";
|
|
19
|
+
import { PDFSidebarToggle as C } from "./components/features/PDFSidebarToggle.js";
|
|
20
|
+
import { PDFToolbar as w } from "./components/ui/PDFToolbar.js";
|
|
21
|
+
import { PDFToolbarItem as T } from "./components/ui/PDFToolbarItem.js";
|
|
22
|
+
import { PDFToolbarSeparator as E } from "./components/ui/PDFToolbarSeparator.js";
|
|
23
|
+
export { c as PDFAnnotations, l as PDFAnnotationsIcon, o as PDFAttachments, s as PDFAttachmentsIcon, u as PDFChangeFile, d as PDFDownloadButton, f as PDFNavigation, p as PDFOutline, m as PDFPageFit, S as PDFPrintButton, h as PDFRotationControl, g as PDFSearch, a as PDFSidebar, C as PDFSidebarToggle, _ as PDFSignatures, v as PDFSignaturesIcon, x as PDFThemeToggle, y as PDFThumbnails, w as PDFToolbar, T as PDFToolbarItem, E as PDFToolbarSeparator, i as PDFViewer, b as PDFZoomControls, e as darkTheme, n as englishLabels, r as italianLabels, t as lightTheme };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
//#region src/labels.ts
|
|
2
|
+
var e = {
|
|
3
|
+
searchPlaceholder: "Cerca nel documento...",
|
|
4
|
+
searchToolbarLabel: "Cerca",
|
|
5
|
+
prevPageTitle: "Pagina precedente (←)",
|
|
6
|
+
pageInputTitle: "Vai alla pagina",
|
|
7
|
+
nextPageTitle: "Pagina successiva (→)",
|
|
8
|
+
navigationToolbarLabel: "Pagina",
|
|
9
|
+
downloadTitle: "Scarica PDF",
|
|
10
|
+
downloadText: "Scarica",
|
|
11
|
+
downloadToolbarLabel: "Scarica",
|
|
12
|
+
downloadFallbackFilename: "documento.pdf",
|
|
13
|
+
printTitle: "Stampa PDF",
|
|
14
|
+
printToolbarLabel: "Stampa",
|
|
15
|
+
rotateTitle: "Ruota documento",
|
|
16
|
+
rotateToolbarLabel: "Ruota",
|
|
17
|
+
zoomOutTitle: "Riduci zoom",
|
|
18
|
+
zoomInTitle: "Aumenta zoom",
|
|
19
|
+
zoomToolbarLabel: "Zoom",
|
|
20
|
+
changeFileTitle: "Apri altro file",
|
|
21
|
+
changeFileToolbarLabel: "Apri file",
|
|
22
|
+
fitWidthTitle: "Adatta alla larghezza",
|
|
23
|
+
fitPageTitle: "Adatta pagina intera",
|
|
24
|
+
fitToolbarLabel: "Adatta",
|
|
25
|
+
switchToLightTitle: "Switch to light mode",
|
|
26
|
+
switchToDarkTitle: "Switch to dark mode",
|
|
27
|
+
themeToolbarLabel: "Tema",
|
|
28
|
+
expandSidebarTitle: "Espandi sidebar",
|
|
29
|
+
collapseSidebarTitle: "Comprimi sidebar",
|
|
30
|
+
sidebarToolbarLabel: "Sidebar",
|
|
31
|
+
attachmentsLoading: "Caricamento...",
|
|
32
|
+
attachmentsEmpty: "Nessun allegato rilevato.",
|
|
33
|
+
downloadAttachmentTitle: "Scarica",
|
|
34
|
+
outlineLoading: "Caricamento...",
|
|
35
|
+
outlineEmpty: "Nessun segnalibro disponibile.",
|
|
36
|
+
thumbnailAlt: "Anteprima pagina",
|
|
37
|
+
annotationTypes: {
|
|
38
|
+
Text: "Nota",
|
|
39
|
+
Highlight: "Evidenziazione",
|
|
40
|
+
Underline: "Sottolineatura",
|
|
41
|
+
StrikeOut: "Barrato",
|
|
42
|
+
FreeText: "Testo libero",
|
|
43
|
+
Ink: "Disegno",
|
|
44
|
+
Square: "Rettangolo",
|
|
45
|
+
Circle: "Cerchio",
|
|
46
|
+
Line: "Linea",
|
|
47
|
+
Stamp: "Timbro",
|
|
48
|
+
FileAttachment: "Allegato"
|
|
49
|
+
},
|
|
50
|
+
annotationsLoading: "Caricamento...",
|
|
51
|
+
annotationsEmpty: "Nessuna annotazione rilevata.",
|
|
52
|
+
annotationsPageHeader: "Pagina",
|
|
53
|
+
signatureSigned: "Firmato",
|
|
54
|
+
signatureUnsigned: "Non firmato",
|
|
55
|
+
signatureSignerLabel: "Firmatario",
|
|
56
|
+
signatureDateLabel: "Data",
|
|
57
|
+
signatureReasonLabel: "Motivo",
|
|
58
|
+
signatureLocationLabel: "Luogo",
|
|
59
|
+
signaturesLoading: "Caricamento...",
|
|
60
|
+
signaturesEmpty: "Nessuna firma rilevata.",
|
|
61
|
+
toolbarMoreOptions: "Altre opzioni",
|
|
62
|
+
requireReadPending: "Scorri fino alla fine per continuare",
|
|
63
|
+
requireReadDone: "Lettura completata"
|
|
64
|
+
}, t = {
|
|
65
|
+
searchPlaceholder: "Search document...",
|
|
66
|
+
searchToolbarLabel: "Search",
|
|
67
|
+
prevPageTitle: "Previous page (←)",
|
|
68
|
+
pageInputTitle: "Go to page",
|
|
69
|
+
nextPageTitle: "Next page (→)",
|
|
70
|
+
navigationToolbarLabel: "Page",
|
|
71
|
+
downloadTitle: "Download PDF",
|
|
72
|
+
downloadText: "Download",
|
|
73
|
+
downloadToolbarLabel: "Download",
|
|
74
|
+
downloadFallbackFilename: "document.pdf",
|
|
75
|
+
printTitle: "Print PDF",
|
|
76
|
+
printToolbarLabel: "Print",
|
|
77
|
+
rotateTitle: "Rotate document",
|
|
78
|
+
rotateToolbarLabel: "Rotate",
|
|
79
|
+
zoomOutTitle: "Zoom out",
|
|
80
|
+
zoomInTitle: "Zoom in",
|
|
81
|
+
zoomToolbarLabel: "Zoom",
|
|
82
|
+
changeFileTitle: "Open another file",
|
|
83
|
+
changeFileToolbarLabel: "Open file",
|
|
84
|
+
fitWidthTitle: "Fit to width",
|
|
85
|
+
fitPageTitle: "Fit whole page",
|
|
86
|
+
fitToolbarLabel: "Fit",
|
|
87
|
+
switchToLightTitle: "Switch to light mode",
|
|
88
|
+
switchToDarkTitle: "Switch to dark mode",
|
|
89
|
+
themeToolbarLabel: "Theme",
|
|
90
|
+
expandSidebarTitle: "Expand sidebar",
|
|
91
|
+
collapseSidebarTitle: "Collapse sidebar",
|
|
92
|
+
sidebarToolbarLabel: "Sidebar",
|
|
93
|
+
attachmentsLoading: "Loading...",
|
|
94
|
+
attachmentsEmpty: "No attachments found.",
|
|
95
|
+
downloadAttachmentTitle: "Download",
|
|
96
|
+
outlineLoading: "Loading...",
|
|
97
|
+
outlineEmpty: "No bookmarks available.",
|
|
98
|
+
thumbnailAlt: "Page preview",
|
|
99
|
+
annotationTypes: {
|
|
100
|
+
Text: "Note",
|
|
101
|
+
Highlight: "Highlight",
|
|
102
|
+
Underline: "Underline",
|
|
103
|
+
StrikeOut: "Strikethrough",
|
|
104
|
+
FreeText: "Free text",
|
|
105
|
+
Ink: "Drawing",
|
|
106
|
+
Square: "Rectangle",
|
|
107
|
+
Circle: "Circle",
|
|
108
|
+
Line: "Line",
|
|
109
|
+
Stamp: "Stamp",
|
|
110
|
+
FileAttachment: "Attachment"
|
|
111
|
+
},
|
|
112
|
+
annotationsLoading: "Loading...",
|
|
113
|
+
annotationsEmpty: "No annotations found.",
|
|
114
|
+
annotationsPageHeader: "Page",
|
|
115
|
+
signatureSigned: "Signed",
|
|
116
|
+
signatureUnsigned: "Unsigned",
|
|
117
|
+
signatureSignerLabel: "Signer",
|
|
118
|
+
signatureDateLabel: "Date",
|
|
119
|
+
signatureReasonLabel: "Reason",
|
|
120
|
+
signatureLocationLabel: "Location",
|
|
121
|
+
signaturesLoading: "Loading...",
|
|
122
|
+
signaturesEmpty: "No signatures found.",
|
|
123
|
+
toolbarMoreOptions: "More options",
|
|
124
|
+
requireReadPending: "Scroll to the end to continue",
|
|
125
|
+
requireReadDone: "Document read"
|
|
126
|
+
};
|
|
127
|
+
//#endregion
|
|
128
|
+
export { t as englishLabels, e as italianLabels };
|
package/dist/es/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_18euq_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_18euq_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_18euq_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_18euq_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_18euq_40{margin-bottom:25px;position:relative}._pageCanvas_18euq_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_18euq_54{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_18euq_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_18euq_54>:not(._markedContent_18euq_80),._textLayer_18euq_54 ._markedContent_18euq_80 span:not(._markedContent_18euq_80){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_18euq_54 ._markedContent_18euq_80{display:contents}._textLayer_18euq_54 ._endOfContent_18euq_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_18euq_54._selecting_18euq_104 ._endOfContent_18euq_95{top:0}._textLayer_18euq_54 ::selection{background:#0000ff40}._textLayer_18euq_54 br::selection{background:0 0}._documentLoading_18euq_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_18euq_124:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_18euq_1}._pageSkeleton_18euq_144{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_18euq_144:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_18euq_1}@keyframes _spin_18euq_1{to{transform:rotate(360deg)}}._highlightOverlay_18euq_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_18euq_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_18euq_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_113xr_1{flex-direction:column;display:flex}._emptyState_113xr_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_113xr_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_113xr_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_113xr_33{cursor:pointer}._cardClickable_113xr_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_113xr_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_113xr_48{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_113xr_54{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_113xr_59{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_113xr_65{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_113xr_71{justify-content:center;align-items:center;display:flex;position:relative}._badge_113xr_78{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_uif34_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}
|
|
1
|
+
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_1xasy_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1xasy_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1xasy_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1xasy_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_1xasy_40{margin-bottom:25px;position:relative}._pageCanvas_1xasy_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1xasy_54{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1xasy_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1xasy_54>:not(._markedContent_1xasy_80),._textLayer_1xasy_54 ._markedContent_1xasy_80 span:not(._markedContent_1xasy_80){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1xasy_54 ._markedContent_1xasy_80{display:contents}._textLayer_1xasy_54 ._endOfContent_1xasy_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1xasy_54._selecting_1xasy_104 ._endOfContent_1xasy_95{top:0}._textLayer_1xasy_54 ::selection{background:#0000ff40}._textLayer_1xasy_54 br::selection{background:0 0}._documentLoading_1xasy_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1xasy_124:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1xasy_1}._pageSkeleton_1xasy_144{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1xasy_144:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1xasy_1}@keyframes _spin_1xasy_1{to{transform:rotate(360deg)}}._highlightOverlay_1xasy_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1xasy_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1xasy_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1xasy_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1xasy_204{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1xasy_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1xasy_221{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1xasy_245{background-color:#16a34abf}._notePopover_1xasy_249{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1xasy_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1xasy_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_uif34_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -9,6 +9,17 @@ export interface LinkOverlay {
|
|
|
9
9
|
dest?: string | unknown[];
|
|
10
10
|
newWindow?: boolean;
|
|
11
11
|
}
|
|
12
|
+
export interface NoteOverlay {
|
|
13
|
+
page: number;
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
contents: string;
|
|
19
|
+
title?: string;
|
|
20
|
+
subtype: string;
|
|
21
|
+
pdfRect: [number, number, number, number];
|
|
22
|
+
}
|
|
12
23
|
interface UseAnnotationLayerOptions {
|
|
13
24
|
pdf: pdfjsLib.PDFDocumentProxy | null;
|
|
14
25
|
zoom: number;
|
|
@@ -16,5 +27,8 @@ interface UseAnnotationLayerOptions {
|
|
|
16
27
|
mountedPages: number[];
|
|
17
28
|
goToPage: (page: number) => void;
|
|
18
29
|
}
|
|
19
|
-
export declare function useAnnotationLayer({ pdf, zoom, rotation, mountedPages, goToPage, }: UseAnnotationLayerOptions):
|
|
30
|
+
export declare function useAnnotationLayer({ pdf, zoom, rotation, mountedPages, goToPage, }: UseAnnotationLayerOptions): {
|
|
31
|
+
linkOverlays: LinkOverlay[];
|
|
32
|
+
noteOverlays: NoteOverlay[];
|
|
33
|
+
};
|
|
20
34
|
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { default as PDFViewer } from './components/PDFViewer';
|
|
2
2
|
export type { Theme } from './theme';
|
|
3
3
|
export { darkTheme, lightTheme } from './theme';
|
|
4
|
+
export type { Labels } from './labels';
|
|
5
|
+
export { italianLabels, englishLabels } from './labels';
|
|
4
6
|
export { PDFSidebar } from './components/PDFSidebar';
|
|
5
7
|
export { PDFAttachments, PDFAttachmentsIcon, } from './components/features/PDFAttachments';
|
|
6
8
|
export { PDFAnnotations, PDFAnnotationsIcon, } from './components/features/PDFAnnotations';
|
package/dist/labels.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface Labels {
|
|
2
|
+
searchPlaceholder: string;
|
|
3
|
+
searchToolbarLabel: string;
|
|
4
|
+
prevPageTitle: string;
|
|
5
|
+
pageInputTitle: string;
|
|
6
|
+
nextPageTitle: string;
|
|
7
|
+
navigationToolbarLabel: string;
|
|
8
|
+
downloadTitle: string;
|
|
9
|
+
downloadText: string;
|
|
10
|
+
downloadToolbarLabel: string;
|
|
11
|
+
downloadFallbackFilename: string;
|
|
12
|
+
printTitle: string;
|
|
13
|
+
printToolbarLabel: string;
|
|
14
|
+
rotateTitle: string;
|
|
15
|
+
rotateToolbarLabel: string;
|
|
16
|
+
zoomOutTitle: string;
|
|
17
|
+
zoomInTitle: string;
|
|
18
|
+
zoomToolbarLabel: string;
|
|
19
|
+
changeFileTitle: string;
|
|
20
|
+
changeFileToolbarLabel: string;
|
|
21
|
+
fitWidthTitle: string;
|
|
22
|
+
fitPageTitle: string;
|
|
23
|
+
fitToolbarLabel: string;
|
|
24
|
+
switchToLightTitle: string;
|
|
25
|
+
switchToDarkTitle: string;
|
|
26
|
+
themeToolbarLabel: string;
|
|
27
|
+
expandSidebarTitle: string;
|
|
28
|
+
collapseSidebarTitle: string;
|
|
29
|
+
sidebarToolbarLabel: string;
|
|
30
|
+
attachmentsLoading: string;
|
|
31
|
+
attachmentsEmpty: string;
|
|
32
|
+
downloadAttachmentTitle: string;
|
|
33
|
+
outlineLoading: string;
|
|
34
|
+
outlineEmpty: string;
|
|
35
|
+
thumbnailAlt: string;
|
|
36
|
+
annotationTypes: Record<string, string>;
|
|
37
|
+
annotationsLoading: string;
|
|
38
|
+
annotationsEmpty: string;
|
|
39
|
+
annotationsPageHeader: string;
|
|
40
|
+
signatureSigned: string;
|
|
41
|
+
signatureUnsigned: string;
|
|
42
|
+
signatureSignerLabel: string;
|
|
43
|
+
signatureDateLabel: string;
|
|
44
|
+
signatureReasonLabel: string;
|
|
45
|
+
signatureLocationLabel: string;
|
|
46
|
+
signaturesLoading: string;
|
|
47
|
+
signaturesEmpty: string;
|
|
48
|
+
toolbarMoreOptions: string;
|
|
49
|
+
requireReadPending: string;
|
|
50
|
+
requireReadDone: string;
|
|
51
|
+
}
|
|
52
|
+
export declare const italianLabels: Labels;
|
|
53
|
+
export declare const englishLabels: Labels;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pdf-tsx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "A fully-featured, composable PDF viewer component for React",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.cjs",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"dev": "vite",
|
|
33
33
|
"watch": "tsc -b --watch",
|
|
34
34
|
"build": "vite build",
|
|
35
|
+
"tsc": "tsc --noEmit",
|
|
35
36
|
"lint": "eslint .",
|
|
36
37
|
"format": "prettier --write \"src/**/*.{ts,tsx,css}\"",
|
|
37
38
|
"preview": "vite preview"
|