pdf-tsx 0.16.4 → 0.17.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.
- package/README.md +14 -0
- package/dist/cjs/components/PDFSidebar.cjs +1 -1
- 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/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/components/ui/PDFToolbarDropdownContext.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbarItem.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbarSeparator.cjs +1 -1
- package/dist/cjs/components/ui/ToolbarButton.cjs +1 -1
- package/dist/cjs/components/ui/icons.cjs +1 -1
- package/dist/cjs/context/LabelsContext.cjs +1 -1
- package/dist/cjs/context/PDFViewerContext.cjs +1 -1
- package/dist/cjs/context/ThemeContext.cjs +1 -1
- package/dist/cjs/context/labelsContextValue.cjs +1 -1
- package/dist/cjs/context/themeContextValue.cjs +1 -1
- package/dist/cjs/hooks/useAnnotationLayer.cjs +1 -1
- package/dist/cjs/hooks/useAnnotations.cjs +1 -1
- package/dist/cjs/hooks/useAttachments.cjs +1 -1
- package/dist/cjs/hooks/useKeyboardShortcuts.cjs +1 -1
- package/dist/cjs/hooks/useLabels.cjs +1 -1
- package/dist/cjs/hooks/useOutline.cjs +1 -1
- package/dist/cjs/hooks/useOverlayRects.cjs +1 -1
- package/dist/cjs/hooks/usePDFLoader.cjs +1 -1
- package/dist/cjs/hooks/usePDFRenderer.cjs +1 -1
- package/dist/cjs/hooks/usePinchZoom.cjs +1 -0
- package/dist/cjs/hooks/useScrollTracking.cjs +1 -1
- package/dist/cjs/hooks/useSignatures.cjs +1 -1
- package/dist/cjs/hooks/useTextLayer.cjs +1 -1
- package/dist/cjs/hooks/useTextSearch.cjs +1 -1
- package/dist/cjs/hooks/useTheme.cjs +1 -1
- package/dist/cjs/hooks/useThumbnails.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/cjs/utils/zoom.cjs +1 -0
- package/dist/components/PDFViewer.d.ts +2 -1
- package/dist/es/components/PDFViewer.js +307 -303
- package/dist/es/components/PDFViewer.module.js +24 -23
- package/dist/es/components/features/PDFZoomControls.js +24 -23
- package/dist/es/hooks/usePDFRenderer.js +18 -15
- package/dist/es/hooks/usePinchZoom.js +59 -0
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/es/utils/zoom.js +4 -0
- package/dist/hooks/usePDFLoader.d.ts +1 -1
- package/dist/src/components/PDFSidebar.d.ts +11 -0
- package/dist/src/components/PDFViewer.d.ts +22 -0
- package/dist/src/components/features/PDFAnnotations.d.ts +5 -0
- package/dist/src/components/features/PDFAttachments.d.ts +5 -0
- package/dist/src/components/features/PDFChangeFile.d.ts +9 -0
- package/dist/src/components/features/PDFDownloadButton.d.ts +9 -0
- package/dist/src/components/features/PDFNavigation.d.ts +10 -0
- package/dist/src/components/features/PDFOutline.d.ts +1 -0
- package/dist/src/components/features/PDFPageFit.d.ts +10 -0
- package/dist/src/components/features/PDFPrintButton.d.ts +9 -0
- package/dist/src/components/features/PDFRotationControl.d.ts +9 -0
- package/dist/src/components/features/PDFSearch.d.ts +13 -0
- package/dist/src/components/features/PDFSidebarToggle.d.ts +10 -0
- package/dist/src/components/features/PDFSignatures.d.ts +5 -0
- package/dist/src/components/features/PDFThemeToggle.d.ts +10 -0
- package/dist/src/components/features/PDFThumbnails.d.ts +1 -0
- package/dist/src/components/features/PDFZoomControls.d.ts +10 -0
- package/dist/src/components/ui/PDFToolbar.d.ts +8 -0
- package/dist/src/components/ui/PDFToolbarDropdownContext.d.ts +1 -0
- package/dist/src/components/ui/PDFToolbarItem.d.ts +7 -0
- package/dist/src/components/ui/PDFToolbarSeparator.d.ts +4 -0
- package/dist/src/components/ui/ToolbarButton.d.ts +6 -0
- package/dist/src/components/ui/icons.d.ts +7 -0
- package/dist/src/context/LabelsContext.d.ts +7 -0
- package/dist/src/context/PDFViewerContext.d.ts +30 -0
- package/dist/src/context/ThemeContext.d.ts +12 -0
- package/dist/src/context/labelsContextValue.d.ts +2 -0
- package/dist/src/context/themeContextValue.d.ts +7 -0
- package/dist/src/hooks/useAnnotationLayer.d.ts +34 -0
- package/dist/src/hooks/useAnnotations.d.ts +15 -0
- package/dist/src/hooks/useAttachments.d.ts +11 -0
- package/dist/src/hooks/useKeyboardShortcuts.d.ts +9 -0
- package/dist/src/hooks/useLabels.d.ts +2 -0
- package/dist/src/hooks/useOutline.d.ts +14 -0
- package/dist/src/hooks/useOverlayRects.d.ts +21 -0
- package/dist/src/hooks/usePDFLoader.d.ts +5 -0
- package/dist/src/hooks/usePDFRenderer.d.ts +16 -0
- package/dist/src/hooks/usePinchZoom.d.ts +1 -0
- package/dist/src/hooks/useScrollTracking.d.ts +10 -0
- package/dist/src/hooks/useSignatures.d.ts +17 -0
- package/dist/src/hooks/useTextLayer.d.ts +10 -0
- package/dist/src/hooks/useTextSearch.d.ts +12 -0
- package/dist/src/hooks/useTheme.d.ts +2 -0
- package/dist/src/hooks/useThumbnails.d.ts +10 -0
- package/dist/src/index.d.ts +24 -0
- package/dist/src/labels.d.ts +53 -0
- package/dist/src/theme.d.ts +27 -0
- package/dist/src/utils/pdfFit.d.ts +2 -0
- package/dist/src/utils/url.d.ts +1 -0
- package/dist/src/utils/zoom.d.ts +4 -0
- package/dist/wasm/LICENSE_JBIG2 +196 -0
- package/dist/wasm/LICENSE_OPENJPEG +39 -0
- package/dist/wasm/LICENSE_PDFJS_JBIG2 +13 -0
- package/dist/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
- package/dist/wasm/LICENSE_PDFJS_QCMS +22 -0
- package/dist/wasm/LICENSE_QCMS +21 -0
- package/dist/wasm/jbig2.wasm +0 -0
- package/dist/wasm/jbig2_nowasm_fallback.js +15 -0
- package/dist/wasm/openjpeg.wasm +0 -0
- package/dist/wasm/openjpeg_nowasm_fallback.js +17 -0
- package/dist/wasm/qcms_bg.wasm +0 -0
- package/dist/wasm/quickjs-eval.js +16 -0
- package/dist/wasm/quickjs-eval.wasm +0 -0
- package/package.json +15 -14
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
appLayout: "
|
|
3
|
-
body: "
|
|
4
|
-
toolbar: "
|
|
5
|
-
scrollContainer: "
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
2
|
+
appLayout: "_appLayout_1kgj9_1",
|
|
3
|
+
body: "_body_1kgj9_9",
|
|
4
|
+
toolbar: "_toolbar_1kgj9_17",
|
|
5
|
+
scrollContainer: "_scrollContainer_1kgj9_29",
|
|
6
|
+
scrollInner: "_scrollInner_1kgj9_37",
|
|
7
|
+
pageWrapper: "_pageWrapper_1kgj9_46",
|
|
8
|
+
pageCanvas: "_pageCanvas_1kgj9_51",
|
|
9
|
+
textLayer: "_textLayer_1kgj9_60",
|
|
10
|
+
markedContent: "_markedContent_1kgj9_86",
|
|
11
|
+
endOfContent: "_endOfContent_1kgj9_101",
|
|
12
|
+
selecting: "_selecting_1kgj9_110",
|
|
13
|
+
documentLoading: "_documentLoading_1kgj9_130",
|
|
14
|
+
spin: "_spin_1kgj9_1",
|
|
15
|
+
pageSkeleton: "_pageSkeleton_1kgj9_150",
|
|
16
|
+
highlightOverlay: "_highlightOverlay_1kgj9_179",
|
|
17
|
+
linkOverlay: "_linkOverlay_1kgj9_188",
|
|
18
|
+
searchMatchOverlay: "_searchMatchOverlay_1kgj9_195",
|
|
19
|
+
noteOverlay: "_noteOverlay_1kgj9_203",
|
|
20
|
+
noteIconOverlay: "_noteIconOverlay_1kgj9_210",
|
|
21
|
+
requireReadBanner: "_requireReadBanner_1kgj9_227",
|
|
22
|
+
requireReadDone: "_requireReadDone_1kgj9_251",
|
|
23
|
+
notePopover: "_notePopover_1kgj9_255",
|
|
24
|
+
notePopoverTitle: "_notePopoverTitle_1kgj9_268",
|
|
25
|
+
notePopoverContent: "_notePopoverContent_1kgj9_275"
|
|
25
26
|
};
|
|
26
27
|
//#endregion
|
|
27
28
|
export { e as default };
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { usePDFViewer as e } from "../../context/PDFViewerContext.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import r from "
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
2
|
+
import { MIN_ZOOM as t } from "../../utils/zoom.js";
|
|
3
|
+
import { useLabels as n } from "../../hooks/useLabels.js";
|
|
4
|
+
import { ToolbarButton as r } from "../ui/ToolbarButton.js";
|
|
5
|
+
import i from "./PDFZoomControls.module.js";
|
|
6
|
+
import { useCallback as a } from "react";
|
|
7
|
+
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
8
|
//#region src/components/features/PDFZoomControls.tsx
|
|
8
|
-
function
|
|
9
|
-
let { zoom:
|
|
10
|
-
|
|
11
|
-
}, [
|
|
12
|
-
return /* @__PURE__ */
|
|
13
|
-
/* @__PURE__ */
|
|
14
|
-
onClick: h,
|
|
15
|
-
title: p.zoomOutTitle,
|
|
16
|
-
children: c
|
|
17
|
-
}),
|
|
18
|
-
/* @__PURE__ */ s("span", {
|
|
19
|
-
className: r.zoomLabel,
|
|
20
|
-
children: [Math.round(u * 100), "%"]
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ o(n, {
|
|
9
|
+
function l({ zoomOutIcon: l, zoomInIcon: u }) {
|
|
10
|
+
let { zoom: d, setZoom: f, setFitMode: p } = e(), m = n(), h = a((e) => {
|
|
11
|
+
p(null), f((n) => Math.min(Math.max(n + e, t), 5));
|
|
12
|
+
}, [p, f]), g = a(() => h(-.2), [h]), _ = a(() => h(.2), [h]);
|
|
13
|
+
return /* @__PURE__ */ c(o, { children: [
|
|
14
|
+
/* @__PURE__ */ s(r, {
|
|
23
15
|
onClick: g,
|
|
24
|
-
title:
|
|
16
|
+
title: m.zoomOutTitle,
|
|
25
17
|
children: l
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ c("span", {
|
|
20
|
+
className: i.zoomLabel,
|
|
21
|
+
children: [Math.round(d * 100), "%"]
|
|
22
|
+
}),
|
|
23
|
+
/* @__PURE__ */ s(r, {
|
|
24
|
+
onClick: _,
|
|
25
|
+
title: m.zoomInTitle,
|
|
26
|
+
children: u
|
|
26
27
|
})
|
|
27
28
|
] });
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
l.toolbarLabelKey = "zoomToolbarLabel";
|
|
30
31
|
//#endregion
|
|
31
|
-
export {
|
|
32
|
+
export { l as PDFZoomControls };
|
|
@@ -46,24 +46,27 @@ function r({ pdf: r, zoom: i, rotation: a, visiblePages: o, canvasRefs: s }) {
|
|
|
46
46
|
if (e || p.current.has(t)) continue;
|
|
47
47
|
let n = await r.getPage(t);
|
|
48
48
|
if (e) return;
|
|
49
|
-
let o = n.getViewport({
|
|
49
|
+
let o = window.devicePixelRatio || 1, c = n.getViewport({
|
|
50
50
|
scale: i,
|
|
51
51
|
rotation: a
|
|
52
|
-
}),
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
let
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
52
|
+
}), l = n.getViewport({
|
|
53
|
+
scale: i * o,
|
|
54
|
+
rotation: a
|
|
55
|
+
}), u = s.current[t - 1];
|
|
56
|
+
if (!u) continue;
|
|
57
|
+
let m = u.getContext("2d");
|
|
58
|
+
if (!m) continue;
|
|
59
|
+
let h = f.current[t - 1];
|
|
60
|
+
if (h && (h.cancel(), await h.promise.catch(() => {}), e)) return;
|
|
61
|
+
u.width = l.width, u.height = l.height, u.style.width = `${c.width}px`, u.style.height = `${c.height}px`;
|
|
62
|
+
let g = n.render({
|
|
63
|
+
canvasContext: m,
|
|
64
|
+
viewport: l,
|
|
65
|
+
canvas: u
|
|
63
66
|
});
|
|
64
|
-
f.current[t - 1] =
|
|
67
|
+
f.current[t - 1] = g;
|
|
65
68
|
try {
|
|
66
|
-
await
|
|
69
|
+
await g.promise, e || (p.current = new Set(p.current).add(t), d((e) => {
|
|
67
70
|
if (e.has(t)) return e;
|
|
68
71
|
let n = new Set(e);
|
|
69
72
|
return n.add(t), n;
|
|
@@ -71,7 +74,7 @@ function r({ pdf: r, zoom: i, rotation: a, visiblePages: o, canvasRefs: s }) {
|
|
|
71
74
|
} catch (e) {
|
|
72
75
|
e && typeof e == "object" && "name" in e && e.name !== "RenderingCancelledException" && console.error("Render error:", e);
|
|
73
76
|
} finally {
|
|
74
|
-
f.current[t - 1] ===
|
|
77
|
+
f.current[t - 1] === g && (f.current[t - 1] = null);
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
})(), () => {
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { MIN_ZOOM as e, WHEEL_ZOOM_SPEED as t } from "../utils/zoom.js";
|
|
2
|
+
import { useEffect as n, useRef as r } from "react";
|
|
3
|
+
//#region src/hooks/usePinchZoom.ts
|
|
4
|
+
function i(e) {
|
|
5
|
+
let t = e[0].clientX - e[1].clientX, n = e[0].clientY - e[1].clientY;
|
|
6
|
+
return Math.sqrt(t * t + n * n);
|
|
7
|
+
}
|
|
8
|
+
function a(a, o, s, c) {
|
|
9
|
+
let l = r(o);
|
|
10
|
+
n(() => {
|
|
11
|
+
l.current = o;
|
|
12
|
+
}, [o]);
|
|
13
|
+
let u = r(null), d = r(1), f = r(null), p = r(!1);
|
|
14
|
+
n(() => {
|
|
15
|
+
let n = a.current;
|
|
16
|
+
if (!n) return;
|
|
17
|
+
let r = (e) => {
|
|
18
|
+
e.touches.length === 2 && (p.current = !0, f.current = null, u.current = i(e.touches), d.current = l.current);
|
|
19
|
+
}, o = (t) => {
|
|
20
|
+
if (t.touches.length !== 2 || u.current === null) return;
|
|
21
|
+
t.preventDefault();
|
|
22
|
+
let n = i(t.touches) / u.current;
|
|
23
|
+
s(Math.max(e, Math.min(5, d.current * (1 + (n - 1) * 1)))), c(null);
|
|
24
|
+
}, m = (e) => {
|
|
25
|
+
if (e.touches.length === 0 && u.current !== null) {
|
|
26
|
+
p.current = !1, u.current = null;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (u.current = null, p.current || e.changedTouches.length !== 1) return;
|
|
30
|
+
let t = e.changedTouches[0], n = Date.now(), r = f.current;
|
|
31
|
+
if (r && n - r.time < 300) {
|
|
32
|
+
let e = t.clientX - r.x, n = t.clientY - r.y;
|
|
33
|
+
if (Math.sqrt(e * e + n * n) < 40) {
|
|
34
|
+
f.current = null, s(l.current > 1.2 ? 1 : 2), c(null);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
f.current = {
|
|
39
|
+
time: n,
|
|
40
|
+
x: t.clientX,
|
|
41
|
+
y: t.clientY
|
|
42
|
+
};
|
|
43
|
+
}, h = (n) => {
|
|
44
|
+
if (!n.ctrlKey && !n.metaKey) return;
|
|
45
|
+
n.preventDefault();
|
|
46
|
+
let r = -(n.deltaMode === 1 ? n.deltaY * 30 : n.deltaMode === 2 ? n.deltaY * 300 : n.deltaY) * t;
|
|
47
|
+
s(Math.max(e, Math.min(5, l.current + r))), c(null);
|
|
48
|
+
};
|
|
49
|
+
return n.addEventListener("touchstart", r, { passive: !0 }), n.addEventListener("touchmove", o, { passive: !1 }), n.addEventListener("touchend", m, { passive: !0 }), n.addEventListener("wheel", h, { passive: !1 }), () => {
|
|
50
|
+
n.removeEventListener("touchstart", r), n.removeEventListener("touchmove", o), n.removeEventListener("touchend", m), n.removeEventListener("wheel", h);
|
|
51
|
+
};
|
|
52
|
+
}, [
|
|
53
|
+
a,
|
|
54
|
+
s,
|
|
55
|
+
c
|
|
56
|
+
]);
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
export { a as usePinchZoom };
|
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_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_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_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_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 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_1kgj9_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1kgj9_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1kgj9_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_1kgj9_29{background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex:1;position:relative;overflow:auto}._scrollInner_1kgj9_37{flex-direction:column;align-items:center;width:max-content;min-width:100%;padding:10px 20px;display:flex}._pageWrapper_1kgj9_46{margin-bottom:25px;position:relative}._pageCanvas_1kgj9_51{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1kgj9_60{--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_1kgj9_60 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1kgj9_60>:not(._markedContent_1kgj9_86),._textLayer_1kgj9_60 ._markedContent_1kgj9_86 span:not(._markedContent_1kgj9_86){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_1kgj9_60 ._markedContent_1kgj9_86{display:contents}._textLayer_1kgj9_60 ._endOfContent_1kgj9_101{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1kgj9_60._selecting_1kgj9_110 ._endOfContent_1kgj9_101{top:0}._textLayer_1kgj9_60 ::selection{background:#0000ff40}._textLayer_1kgj9_60 br::selection{background:0 0}._documentLoading_1kgj9_130{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1kgj9_130:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1kgj9_1}._pageSkeleton_1kgj9_150{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_1kgj9_150:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1kgj9_1}@keyframes _spin_1kgj9_1{to{transform:rotate(360deg)}}._highlightOverlay_1kgj9_179{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1kgj9_188{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1kgj9_195{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1kgj9_203{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1kgj9_210{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_1kgj9_210:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1kgj9_227{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_1kgj9_251{background-color:#16a34abf}._notePopover_1kgj9_255{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_1kgj9_268{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1kgj9_275{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_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_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_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface SidebarPanel {
|
|
3
|
+
icon: ReactNode;
|
|
4
|
+
label: string;
|
|
5
|
+
content: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
interface PDFSidebarProps {
|
|
8
|
+
panels: SidebarPanel[];
|
|
9
|
+
}
|
|
10
|
+
export declare function PDFSidebar({ panels }: Readonly<PDFSidebarProps>): import("react").JSX.Element | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { Theme } from '../theme';
|
|
3
|
+
interface PDFViewerProps {
|
|
4
|
+
file: File;
|
|
5
|
+
workerSrc: string;
|
|
6
|
+
sidebar?: React.ReactNode;
|
|
7
|
+
toolbar?: React.ReactNode;
|
|
8
|
+
onChangeFile?: (file: File) => void;
|
|
9
|
+
themeOverrides?: {
|
|
10
|
+
light?: Partial<Theme>;
|
|
11
|
+
dark?: Partial<Theme>;
|
|
12
|
+
};
|
|
13
|
+
defaultTheme?: "light" | "dark";
|
|
14
|
+
defaultFit?: "width" | "page";
|
|
15
|
+
language?: "it" | "en";
|
|
16
|
+
className?: string;
|
|
17
|
+
style?: React.CSSProperties;
|
|
18
|
+
requireRead?: boolean;
|
|
19
|
+
onDocumentRead?: () => void;
|
|
20
|
+
}
|
|
21
|
+
declare const PDFViewer: React.FC<PDFViewerProps>;
|
|
22
|
+
export default PDFViewer;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFChangeFileProps {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function PDFChangeFile({ icon }: PDFChangeFileProps): React.JSX.Element;
|
|
6
|
+
export declare namespace PDFChangeFile {
|
|
7
|
+
var toolbarLabelKey: "changeFileToolbarLabel";
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFDownloadButtonProps {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function PDFDownloadButton({ icon }: PDFDownloadButtonProps): React.JSX.Element;
|
|
6
|
+
export declare namespace PDFDownloadButton {
|
|
7
|
+
var toolbarLabelKey: "downloadToolbarLabel";
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFNavigationProps {
|
|
3
|
+
prevIcon: React.ReactNode;
|
|
4
|
+
nextIcon: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function PDFNavigation({ prevIcon, nextIcon }: PDFNavigationProps): React.JSX.Element;
|
|
7
|
+
export declare namespace PDFNavigation {
|
|
8
|
+
var toolbarLabelKey: "navigationToolbarLabel";
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PDFOutline(): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFPageFitProps {
|
|
3
|
+
fitWidthIcon: React.ReactNode;
|
|
4
|
+
fitPageIcon: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function PDFPageFit({ fitWidthIcon, fitPageIcon }: PDFPageFitProps): React.JSX.Element;
|
|
7
|
+
export declare namespace PDFPageFit {
|
|
8
|
+
var toolbarLabelKey: "fitToolbarLabel";
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFPrintButtonProps {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function PDFPrintButton({ icon }: PDFPrintButtonProps): React.JSX.Element;
|
|
6
|
+
export declare namespace PDFPrintButton {
|
|
7
|
+
var toolbarLabelKey: "printToolbarLabel";
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFRotationControlProps {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function PDFRotationControl({ icon }: PDFRotationControlProps): React.JSX.Element;
|
|
6
|
+
export declare namespace PDFRotationControl {
|
|
7
|
+
var toolbarLabelKey: "rotateToolbarLabel";
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFSearchProps {
|
|
3
|
+
searchIcon: React.ReactNode;
|
|
4
|
+
prevIcon: React.ReactNode;
|
|
5
|
+
nextIcon: React.ReactNode;
|
|
6
|
+
clearIcon: React.ReactNode;
|
|
7
|
+
initialSearch?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function PDFSearch({ searchIcon, prevIcon, nextIcon, clearIcon, initialSearch, }: PDFSearchProps): React.JSX.Element;
|
|
10
|
+
export declare namespace PDFSearch {
|
|
11
|
+
var toolbarLabelKey: "searchToolbarLabel";
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface PDFSidebarToggleProps {
|
|
3
|
+
collapseIcon: ReactNode;
|
|
4
|
+
expandIcon: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function PDFSidebarToggle({ collapseIcon, expandIcon, }: PDFSidebarToggleProps): import("react").JSX.Element;
|
|
7
|
+
export declare namespace PDFSidebarToggle {
|
|
8
|
+
var toolbarLabelKey: "sidebarToolbarLabel";
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFThemeToggleProps {
|
|
3
|
+
lightIcon: React.ReactNode;
|
|
4
|
+
darkIcon: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function PDFThemeToggle({ lightIcon, darkIcon }: PDFThemeToggleProps): React.JSX.Element;
|
|
7
|
+
export declare namespace PDFThemeToggle {
|
|
8
|
+
var toolbarLabelKey: "themeToolbarLabel";
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PDFThumbnails(): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface PDFZoomControlsProps {
|
|
3
|
+
zoomOutIcon: React.ReactNode;
|
|
4
|
+
zoomInIcon: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function PDFZoomControls({ zoomOutIcon, zoomInIcon, }: PDFZoomControlsProps): React.JSX.Element;
|
|
7
|
+
export declare namespace PDFZoomControls {
|
|
8
|
+
var toolbarLabelKey: "zoomToolbarLabel";
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { PDFToolbarDropdownContext } from './PDFToolbarDropdownContext';
|
|
3
|
+
export { PDFToolbarDropdownContext };
|
|
4
|
+
interface Props {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
overflowIcon?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare function PDFToolbar({ children, overflowIcon }: Props): React.JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PDFToolbarDropdownContext: import('react').Context<boolean>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface IconProps {
|
|
3
|
+
size?: number;
|
|
4
|
+
}
|
|
5
|
+
export declare const IconChevronRight: ({ size }: IconProps) => React.JSX.Element;
|
|
6
|
+
export declare const IconChevronDown: ({ size }: IconProps) => React.JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as pdfjsLib from "pdfjs-dist";
|
|
2
|
+
export interface HighlightRect {
|
|
3
|
+
page: number;
|
|
4
|
+
pdfRect: [number, number, number, number];
|
|
5
|
+
}
|
|
6
|
+
export interface PDFViewerContextValue {
|
|
7
|
+
pdf: pdfjsLib.PDFDocumentProxy | null;
|
|
8
|
+
numPages: number;
|
|
9
|
+
zoom: number;
|
|
10
|
+
setZoom: React.Dispatch<React.SetStateAction<number>>;
|
|
11
|
+
rotation: number;
|
|
12
|
+
setRotation: React.Dispatch<React.SetStateAction<number>>;
|
|
13
|
+
currentPage: number;
|
|
14
|
+
goToPage: (page: number, yOffset?: number) => void;
|
|
15
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
16
|
+
canvasRefs: React.RefObject<(HTMLCanvasElement | null)[]>;
|
|
17
|
+
file: File;
|
|
18
|
+
highlight: HighlightRect | null;
|
|
19
|
+
setHighlight: (h: HighlightRect | null) => void;
|
|
20
|
+
searchMatches: HighlightRect[];
|
|
21
|
+
setSearchMatches: (matches: HighlightRect[]) => void;
|
|
22
|
+
onChangeFile?: (file: File) => void;
|
|
23
|
+
sidebarCollapsed: boolean;
|
|
24
|
+
setSidebarCollapsed: React.Dispatch<React.SetStateAction<boolean>>;
|
|
25
|
+
fitMode: "width" | "page" | null;
|
|
26
|
+
setFitMode: React.Dispatch<React.SetStateAction<"width" | "page" | null>>;
|
|
27
|
+
navigationLocked: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare const PDFViewerContext: import('react').Context<PDFViewerContextValue | null>;
|
|
30
|
+
export declare function usePDFViewer(): PDFViewerContextValue;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Theme } from '../theme';
|
|
3
|
+
interface ThemeProviderProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
themeOverrides?: {
|
|
6
|
+
light?: Partial<Theme>;
|
|
7
|
+
dark?: Partial<Theme>;
|
|
8
|
+
};
|
|
9
|
+
defaultTheme?: "light" | "dark";
|
|
10
|
+
}
|
|
11
|
+
export declare function ThemeProvider({ children, themeOverrides, defaultTheme, }: ThemeProviderProps): import("react").JSX.Element;
|
|
12
|
+
export {};
|