pdf-tsx 0.6.0 → 0.7.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 +72 -25
- package/dist/cjs/components/PDFViewer.cjs +1 -1
- package/dist/cjs/components/PDFViewer.module.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/PDFThemeToggle.cjs +1 -1
- package/dist/cjs/components/features/PDFZoomControls.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbar.cjs +1 -0
- package/dist/cjs/components/ui/PDFToolbar.module.cjs +1 -0
- package/dist/cjs/components/ui/PDFToolbarItem.cjs +1 -0
- package/dist/cjs/context/ThemeContext.cjs +1 -1
- package/dist/cjs/hooks/useAnnotations.cjs +1 -1
- package/dist/cjs/hooks/useKeyboardShortcuts.cjs +1 -1
- package/dist/cjs/hooks/usePDFRenderer.cjs +1 -1
- package/dist/cjs/hooks/useScrollTracking.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/cjs/theme.cjs +1 -1
- package/dist/components/features/PDFChangeFile.d.ts +3 -0
- package/dist/components/features/PDFDownloadButton.d.ts +3 -0
- package/dist/components/features/PDFNavigation.d.ts +3 -0
- package/dist/components/features/PDFPageFit.d.ts +3 -0
- package/dist/components/features/PDFPrintButton.d.ts +3 -0
- package/dist/components/features/PDFRotationControl.d.ts +3 -0
- package/dist/components/features/PDFSearch.d.ts +3 -0
- package/dist/components/features/PDFSidebarToggle.d.ts +3 -0
- package/dist/components/features/PDFThemeToggle.d.ts +3 -0
- package/dist/components/features/PDFZoomControls.d.ts +3 -0
- package/dist/components/ui/PDFToolbar.d.ts +8 -0
- package/dist/components/ui/PDFToolbarItem.d.ts +7 -0
- package/dist/context/PDFViewerContext.d.ts +3 -1
- package/dist/es/components/PDFViewer.js +168 -173
- package/dist/es/components/PDFViewer.module.js +15 -15
- package/dist/es/components/features/PDFChangeFile.js +1 -0
- package/dist/es/components/features/PDFDownloadButton.js +1 -0
- package/dist/es/components/features/PDFNavigation.js +1 -0
- package/dist/es/components/features/PDFOutline.js +37 -24
- package/dist/es/components/features/PDFPageFit.js +18 -17
- package/dist/es/components/features/PDFPrintButton.js +1 -0
- package/dist/es/components/features/PDFRotationControl.js +1 -0
- package/dist/es/components/features/PDFSearch.js +1 -0
- package/dist/es/components/features/PDFSidebarToggle.js +1 -0
- package/dist/es/components/features/PDFThemeToggle.js +1 -0
- package/dist/es/components/features/PDFZoomControls.js +29 -30
- package/dist/es/components/ui/PDFToolbar.js +84 -0
- package/dist/es/components/ui/PDFToolbar.module.js +13 -0
- package/dist/es/components/ui/PDFToolbarItem.js +25 -0
- package/dist/es/context/ThemeContext.js +1 -0
- package/dist/es/hooks/useAnnotations.js +2 -6
- package/dist/es/hooks/useKeyboardShortcuts.js +8 -7
- package/dist/es/hooks/usePDFRenderer.js +20 -10
- package/dist/es/hooks/useScrollTracking.js +20 -30
- package/dist/es/index.js +3 -1
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/es/theme.js +3 -0
- package/dist/hooks/useAnnotations.d.ts +1 -1
- package/dist/hooks/useKeyboardShortcuts.d.ts +2 -1
- package/dist/hooks/useScrollTracking.d.ts +2 -7
- package/dist/index.d.ts +2 -0
- package/dist/theme.d.ts +1 -0
- package/package.json +1 -1
|
@@ -6,41 +6,40 @@ import "react";
|
|
|
6
6
|
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/features/PDFZoomControls.tsx
|
|
8
8
|
function s(s) {
|
|
9
|
-
let
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
children: d
|
|
16
|
-
}), u[2] = h, u[3] = d, u[4] = g) : g = u[4];
|
|
9
|
+
let c = r(21), { zoomOutIcon: l, zoomInIcon: u } = s, { zoom: d, setZoom: f, setFitMode: p } = e(), m;
|
|
10
|
+
c[0] !== p || c[1] !== f ? (m = (e) => {
|
|
11
|
+
p(null), f((t) => Math.min(Math.max(t + e, .2), 3));
|
|
12
|
+
}, c[0] = p, c[1] = f, c[2] = m) : m = c[2];
|
|
13
|
+
let h = m, g;
|
|
14
|
+
c[3] === h ? g = c[4] : (g = () => h(-.2), c[3] = h, c[4] = g);
|
|
17
15
|
let _;
|
|
18
|
-
|
|
16
|
+
c[5] !== g || c[6] !== l ? (_ = /* @__PURE__ */ a(t, {
|
|
17
|
+
onClick: g,
|
|
18
|
+
title: "Riduci zoom",
|
|
19
|
+
children: l
|
|
20
|
+
}), c[5] = g, c[6] = l, c[7] = _) : _ = c[7];
|
|
19
21
|
let v;
|
|
20
|
-
|
|
21
|
-
className: n.zoomLabel,
|
|
22
|
-
children: [_, "%"]
|
|
23
|
-
}), u[7] = _, u[8] = v);
|
|
22
|
+
c[8] === d ? v = c[9] : (v = Math.round(d * 100), c[8] = d, c[9] = v);
|
|
24
23
|
let y;
|
|
25
|
-
|
|
24
|
+
c[10] === v ? y = c[11] : (y = /* @__PURE__ */ o("span", {
|
|
25
|
+
className: n.zoomLabel,
|
|
26
|
+
children: [v, "%"]
|
|
27
|
+
}), c[10] = v, c[11] = y);
|
|
26
28
|
let b;
|
|
27
|
-
|
|
28
|
-
onClick: y,
|
|
29
|
-
title: "Aumenta zoom",
|
|
30
|
-
children: f
|
|
31
|
-
}), u[11] = y, u[12] = f, u[13] = b) : b = u[13];
|
|
29
|
+
c[12] === h ? b = c[13] : (b = () => h(.2), c[12] = h, c[13] = b);
|
|
32
30
|
let x;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
c[14] !== b || c[15] !== u ? (x = /* @__PURE__ */ a(t, {
|
|
32
|
+
onClick: b,
|
|
33
|
+
title: "Aumenta zoom",
|
|
34
|
+
children: u
|
|
35
|
+
}), c[14] = b, c[15] = u, c[16] = x) : x = c[16];
|
|
36
|
+
let S;
|
|
37
|
+
return c[17] !== _ || c[18] !== y || c[19] !== x ? (S = /* @__PURE__ */ o(i, { children: [
|
|
38
|
+
_,
|
|
39
|
+
y,
|
|
40
|
+
x
|
|
41
|
+
] }), c[17] = _, c[18] = y, c[19] = x, c[20] = S) : S = c[20], S;
|
|
44
42
|
}
|
|
43
|
+
s.toolbarLabel = "Zoom";
|
|
45
44
|
//#endregion
|
|
46
45
|
export { s as PDFZoomControls };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ToolbarButton as e } from "./ToolbarButton.js";
|
|
2
|
+
import t from "./PDFToolbar.module.js";
|
|
3
|
+
import n, { createContext as r, useEffect as i, useLayoutEffect as a, useRef as o, useState as s } from "react";
|
|
4
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/ui/PDFToolbar.tsx
|
|
6
|
+
var u = r(!1), d = 40;
|
|
7
|
+
function f({ children: r, overflowIcon: f = "···" }) {
|
|
8
|
+
let p = o(null), m = o([]), h = o([]), g = o(() => {}), [_, v] = s(null), [y, b] = s(!1), x = o(null), S = n.Children.toArray(r);
|
|
9
|
+
g.current = () => {
|
|
10
|
+
let e = p.current, t = h.current;
|
|
11
|
+
if (!e || t.length === 0) return;
|
|
12
|
+
let n = e.offsetWidth;
|
|
13
|
+
if (t.reduce((e, t) => e + t, 0) <= n) {
|
|
14
|
+
v(null);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
let r = 0, i = 0;
|
|
18
|
+
for (let e = 0; e < t.length && r + t[e] + d <= n; e++) r += t[e], i++;
|
|
19
|
+
v(i);
|
|
20
|
+
}, a(() => {
|
|
21
|
+
h.current = m.current.slice(0, S.length).map((e) => e?.offsetWidth ?? 0), g.current();
|
|
22
|
+
}, []), i(() => {
|
|
23
|
+
let e = p.current;
|
|
24
|
+
if (!e) return;
|
|
25
|
+
let t = new ResizeObserver(() => g.current());
|
|
26
|
+
return t.observe(e), () => t.disconnect();
|
|
27
|
+
}, []), i(() => {
|
|
28
|
+
if (!y) return;
|
|
29
|
+
let e = (e) => {
|
|
30
|
+
x.current?.contains(e.target) || b(!1);
|
|
31
|
+
};
|
|
32
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
33
|
+
}, [y]);
|
|
34
|
+
let C = _ !== null && _ < S.length, w = C ? S.slice(_) : [];
|
|
35
|
+
return /* @__PURE__ */ l("div", {
|
|
36
|
+
ref: p,
|
|
37
|
+
className: t.toolbar,
|
|
38
|
+
children: [S.map((e, n) => /* @__PURE__ */ c("div", {
|
|
39
|
+
ref: (e) => {
|
|
40
|
+
m.current[n] = e;
|
|
41
|
+
},
|
|
42
|
+
className: t.item,
|
|
43
|
+
style: _ !== null && n >= _ ? { display: "none" } : void 0,
|
|
44
|
+
children: e
|
|
45
|
+
}, n)), C && /* @__PURE__ */ l("div", {
|
|
46
|
+
ref: x,
|
|
47
|
+
className: t.overflowWrapper,
|
|
48
|
+
children: [/* @__PURE__ */ c(e, {
|
|
49
|
+
onClick: () => b((e) => !e),
|
|
50
|
+
"aria-label": "Altre opzioni",
|
|
51
|
+
"aria-expanded": y,
|
|
52
|
+
"aria-haspopup": "true",
|
|
53
|
+
title: "Altre opzioni",
|
|
54
|
+
className: y ? t.overflowBtnActive : void 0,
|
|
55
|
+
children: f
|
|
56
|
+
}), y && /* @__PURE__ */ c("div", {
|
|
57
|
+
className: t.dropdown,
|
|
58
|
+
role: "menu",
|
|
59
|
+
children: w.map((e, r) => {
|
|
60
|
+
let i = n.isValidElement(e) ? e.type.toolbarLabel : void 0;
|
|
61
|
+
return /* @__PURE__ */ c("div", {
|
|
62
|
+
className: t.dropdownItem,
|
|
63
|
+
role: "menuitem",
|
|
64
|
+
children: i ? /* @__PURE__ */ l("div", {
|
|
65
|
+
className: t.labeledItem,
|
|
66
|
+
children: [/* @__PURE__ */ c("span", {
|
|
67
|
+
className: t.itemLabel,
|
|
68
|
+
children: i
|
|
69
|
+
}), /* @__PURE__ */ c("div", {
|
|
70
|
+
className: t.itemContent,
|
|
71
|
+
children: e
|
|
72
|
+
})]
|
|
73
|
+
}) : /* @__PURE__ */ c(u.Provider, {
|
|
74
|
+
value: !0,
|
|
75
|
+
children: e
|
|
76
|
+
})
|
|
77
|
+
}, r);
|
|
78
|
+
})
|
|
79
|
+
})]
|
|
80
|
+
})]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
export { f as PDFToolbar, u as PDFToolbarDropdownContext };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var e = {
|
|
2
|
+
toolbar: "_toolbar_xoqxq_1",
|
|
3
|
+
item: "_item_xoqxq_9",
|
|
4
|
+
overflowWrapper: "_overflowWrapper_xoqxq_15",
|
|
5
|
+
overflowBtnActive: "_overflowBtnActive_xoqxq_21",
|
|
6
|
+
dropdown: "_dropdown_xoqxq_26",
|
|
7
|
+
dropdownItem: "_dropdownItem_xoqxq_41",
|
|
8
|
+
labeledItem: "_labeledItem_xoqxq_53",
|
|
9
|
+
itemContent: "_itemContent_xoqxq_60",
|
|
10
|
+
itemLabel: "_itemLabel_xoqxq_66"
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { e as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import e from "./PDFToolbar.module.js";
|
|
2
|
+
import { PDFToolbarDropdownContext as t } from "./PDFToolbar.js";
|
|
3
|
+
import { c as n } from "react/compiler-runtime";
|
|
4
|
+
import { useContext as r } from "react";
|
|
5
|
+
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/ui/PDFToolbarItem.tsx
|
|
7
|
+
function s(s) {
|
|
8
|
+
let c = n(7), { children: l, label: u } = s;
|
|
9
|
+
if (!r(t) || !u) {
|
|
10
|
+
let e;
|
|
11
|
+
return c[0] === l ? e = c[1] : (e = /* @__PURE__ */ a(i, { children: l }), c[0] = l, c[1] = e), e;
|
|
12
|
+
}
|
|
13
|
+
let d;
|
|
14
|
+
c[2] === u ? d = c[3] : (d = /* @__PURE__ */ a("span", {
|
|
15
|
+
className: e.itemLabel,
|
|
16
|
+
children: u
|
|
17
|
+
}), c[2] = u, c[3] = d);
|
|
18
|
+
let f;
|
|
19
|
+
return c[4] !== l || c[5] !== d ? (f = /* @__PURE__ */ o("div", {
|
|
20
|
+
className: e.labeledItem,
|
|
21
|
+
children: [d, l]
|
|
22
|
+
}), c[4] = l, c[5] = d, c[6] = f) : f = c[6], f;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { s as PDFToolbarItem };
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { useEffect as e, useState as t } from "react";
|
|
2
2
|
import "pdfjs-dist";
|
|
3
3
|
//#region src/hooks/useAnnotations.ts
|
|
4
|
-
var n = new Set([
|
|
5
|
-
"Widget",
|
|
6
|
-
"Link",
|
|
7
|
-
"Popup"
|
|
8
|
-
]);
|
|
4
|
+
var n = new Set(["Text", "PolyLine"]);
|
|
9
5
|
function r({ pdf: r }) {
|
|
10
6
|
let [i, a] = t([]), [o, s] = t(!1);
|
|
11
7
|
return e(() => {
|
|
@@ -17,7 +13,7 @@ function r({ pdf: r }) {
|
|
|
17
13
|
let i = await (await r.getPage(t)).getAnnotations();
|
|
18
14
|
for (let r of i) {
|
|
19
15
|
let i = r.subtype;
|
|
20
|
-
n.has(i)
|
|
16
|
+
n.has(i) && e.push({
|
|
21
17
|
id: r.id,
|
|
22
18
|
page: t,
|
|
23
19
|
subtype: i,
|
|
@@ -3,8 +3,8 @@ import { useEffect as t } from "react";
|
|
|
3
3
|
import "pdfjs-dist";
|
|
4
4
|
//#region src/hooks/useKeyboardShortcuts.ts
|
|
5
5
|
function n(n) {
|
|
6
|
-
let o = e(
|
|
7
|
-
o[0] !== c || o[1] !== l || o[2] !== s || o[3] !==
|
|
6
|
+
let o = e(8), { pdf: s, currentPage: c, goToPage: l, setZoom: u, setRotation: d, setFitMode: f } = n, p, m;
|
|
7
|
+
o[0] !== c || o[1] !== l || o[2] !== s || o[3] !== f || o[4] !== d || o[5] !== u ? (p = () => {
|
|
8
8
|
if (!s) return;
|
|
9
9
|
let e = (e) => {
|
|
10
10
|
let t = e.target.tagName;
|
|
@@ -19,23 +19,24 @@ function n(n) {
|
|
|
19
19
|
break bb13;
|
|
20
20
|
case "+":
|
|
21
21
|
case "=":
|
|
22
|
-
e.preventDefault(), u(a);
|
|
22
|
+
e.preventDefault(), f(null), u(a);
|
|
23
23
|
break bb13;
|
|
24
24
|
case "-":
|
|
25
|
-
e.preventDefault(), u(i);
|
|
25
|
+
e.preventDefault(), f(null), u(i);
|
|
26
26
|
break bb13;
|
|
27
27
|
case "r":
|
|
28
28
|
case "R": e.preventDefault(), d(r);
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
32
|
-
},
|
|
32
|
+
}, m = [
|
|
33
33
|
s,
|
|
34
34
|
c,
|
|
35
35
|
l,
|
|
36
36
|
u,
|
|
37
|
-
d
|
|
38
|
-
|
|
37
|
+
d,
|
|
38
|
+
f
|
|
39
|
+
], o[0] = c, o[1] = l, o[2] = s, o[3] = f, o[4] = d, o[5] = u, o[6] = p, o[7] = m) : (p = o[6], m = o[7]), t(p, m);
|
|
39
40
|
}
|
|
40
41
|
function r(e) {
|
|
41
42
|
return (e + 90) % 360;
|
|
@@ -10,18 +10,27 @@ function r({ pdf: r, zoom: i, rotation: a, visiblePages: o, canvasRefs: s }) {
|
|
|
10
10
|
return (async () => {
|
|
11
11
|
let t = f.current.map((e) => e ? (e.cancel(), e.promise.catch(() => {})) : Promise.resolve());
|
|
12
12
|
if (await Promise.all(t), f.current = Array(r.numPages).fill(null), e) return;
|
|
13
|
-
let n =
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
let n = await r.getPage(1);
|
|
14
|
+
if (e) return;
|
|
15
|
+
let o = n.getViewport({
|
|
16
|
+
scale: i,
|
|
17
|
+
rotation: a
|
|
18
|
+
}), s = {
|
|
19
|
+
width: o.width,
|
|
20
|
+
height: o.height
|
|
21
|
+
};
|
|
22
|
+
l(Array(r.numPages).fill(s));
|
|
23
|
+
let c = await Promise.all(Array.from({ length: r.numPages }, async (e, t) => {
|
|
24
|
+
let o = (t === 0 ? n : await r.getPage(t + 1)).getViewport({
|
|
16
25
|
scale: i,
|
|
17
26
|
rotation: a
|
|
18
27
|
});
|
|
19
|
-
|
|
20
|
-
width:
|
|
21
|
-
height:
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
e || (m.current = !0, l(
|
|
28
|
+
return {
|
|
29
|
+
width: o.width,
|
|
30
|
+
height: o.height
|
|
31
|
+
};
|
|
32
|
+
}));
|
|
33
|
+
e || (m.current = !0, l(c));
|
|
25
34
|
})(), () => {
|
|
26
35
|
e = !0, f.current.forEach((e) => e?.cancel());
|
|
27
36
|
};
|
|
@@ -73,7 +82,8 @@ function r({ pdf: r, zoom: i, rotation: a, visiblePages: o, canvasRefs: s }) {
|
|
|
73
82
|
c,
|
|
74
83
|
a,
|
|
75
84
|
o,
|
|
76
|
-
i
|
|
85
|
+
i,
|
|
86
|
+
s
|
|
77
87
|
]), {
|
|
78
88
|
pageSizes: c,
|
|
79
89
|
renderedPages: u
|
|
@@ -1,47 +1,37 @@
|
|
|
1
1
|
import { c as e } from "react/compiler-runtime";
|
|
2
2
|
import { useEffect as t, useState as n } from "react";
|
|
3
|
-
import "pdfjs-dist";
|
|
4
3
|
//#region src/hooks/useScrollTracking.ts
|
|
5
4
|
var r = 10;
|
|
6
5
|
function i(i) {
|
|
7
|
-
let a = e(
|
|
8
|
-
a[0] !==
|
|
9
|
-
let e =
|
|
6
|
+
let a = e(11), { numPages: o, containerRef: s, pageRefs: c } = i, [l, u] = n(1), d, f;
|
|
7
|
+
a[0] !== s || a[1] !== c ? (d = () => {
|
|
8
|
+
let e = s.current;
|
|
10
9
|
if (!e) return;
|
|
11
10
|
let t = () => {
|
|
12
|
-
let t = e.getBoundingClientRect().top, n =
|
|
11
|
+
let t = e.getBoundingClientRect().top, n = c.current;
|
|
13
12
|
for (let e = 0; e < n.length; e++) {
|
|
14
13
|
let r = n[e];
|
|
15
|
-
r && r.getBoundingClientRect().top - t <= 150 &&
|
|
14
|
+
r && r.getBoundingClientRect().top - t <= 150 && u(e + 1);
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
17
|
return e.addEventListener("scroll", t), () => e.removeEventListener("scroll", t);
|
|
19
|
-
}, a[0] =
|
|
20
|
-
let
|
|
21
|
-
a[
|
|
22
|
-
o,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
f
|
|
28
|
-
], a[3] = f, a[4] = u, a[5] = d, a[6] = o, a[7] = l, a[8] = c, a[9] = g) : g = a[9], t(h, g);
|
|
29
|
-
let _;
|
|
30
|
-
a[10] !== u || a[11] !== s || a[12] !== d ? (_ = (e) => {
|
|
31
|
-
let t = Math.min(Math.max(e, 1), s), n = d.current[t - 1], i = u.current;
|
|
32
|
-
if (n && i) {
|
|
33
|
-
let e = n.getBoundingClientRect().top, a = i.getBoundingClientRect().top, o = i.scrollTop + (e - a) - r;
|
|
34
|
-
i.scrollTo({
|
|
35
|
-
top: o,
|
|
18
|
+
}, f = [s, c], a[0] = s, a[1] = c, a[2] = d, a[3] = f) : (d = a[2], f = a[3]), t(d, f);
|
|
19
|
+
let p;
|
|
20
|
+
a[4] !== s || a[5] !== o || a[6] !== c ? (p = (e, t) => {
|
|
21
|
+
let n = Math.min(Math.max(e, 1), o), i = c.current[n - 1], a = s.current;
|
|
22
|
+
if (i && a) {
|
|
23
|
+
let e = i.getBoundingClientRect().top, o = a.getBoundingClientRect().top, s = a.scrollTop + (e - o) - r, c = t === void 0 ? s : s + t;
|
|
24
|
+
a.scrollTo({
|
|
25
|
+
top: c,
|
|
36
26
|
behavior: "smooth"
|
|
37
|
-
}),
|
|
27
|
+
}), u(n);
|
|
38
28
|
}
|
|
39
|
-
}, a[
|
|
40
|
-
let
|
|
41
|
-
return a[
|
|
42
|
-
currentPage:
|
|
43
|
-
goToPage:
|
|
44
|
-
}, a[
|
|
29
|
+
}, a[4] = s, a[5] = o, a[6] = c, a[7] = p) : p = a[7];
|
|
30
|
+
let m = p, h;
|
|
31
|
+
return a[8] !== l || a[9] !== m ? (h = {
|
|
32
|
+
currentPage: l,
|
|
33
|
+
goToPage: m
|
|
34
|
+
}, a[8] = l, a[9] = m, a[10] = h) : h = a[10], h;
|
|
45
35
|
}
|
|
46
36
|
//#endregion
|
|
47
37
|
export { i as useScrollTracking };
|
package/dist/es/index.js
CHANGED
|
@@ -16,4 +16,6 @@ import { PDFZoomControls as v } from "./components/features/PDFZoomControls.js";
|
|
|
16
16
|
import { PDFThemeToggle as y } from "./components/features/PDFThemeToggle.js";
|
|
17
17
|
import { PDFPrintButton as b } from "./components/features/PDFPrintButton.js";
|
|
18
18
|
import { PDFSidebarToggle as x } from "./components/features/PDFSidebarToggle.js";
|
|
19
|
-
|
|
19
|
+
import { PDFToolbar as S } from "./components/ui/PDFToolbar.js";
|
|
20
|
+
import { PDFToolbarItem as C } from "./components/ui/PDFToolbarItem.js";
|
|
21
|
+
export { o as PDFAnnotations, s as PDFAnnotationsIcon, i as PDFAttachments, a as PDFAttachmentsIcon, c as PDFChangeFile, l as PDFDownloadButton, u as PDFNavigation, d as PDFOutline, f as PDFPageFit, b as PDFPrintButton, p as PDFRotationControl, m as PDFSearch, r as PDFSidebar, x as PDFSidebarToggle, h as PDFSignatures, g as PDFSignaturesIcon, y as PDFThemeToggle, _ as PDFThumbnails, S as PDFToolbar, C as PDFToolbarItem, n as PDFViewer, v as PDFZoomControls, e as darkTheme, t as lightTheme };
|
package/dist/es/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_1xud4_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1xud4_13{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1xud4_31{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1xud4_51{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1xud4_69{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_1xud4_69:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1xud4_109{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1xud4_109:hover{color:var(--pdf-accent-light)}._contentPanel_1xud4_127{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1xud4_143{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_1xud4_167{flex:1;overflow-y:auto}._appLayout_9nx1k_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_9nx1k_17{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_9nx1k_33{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_9nx1k_57{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_9nx1k_77{margin-bottom:25px;position:relative}._pageCanvas_9nx1k_87{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_9nx1k_105{--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_9nx1k_105 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_9nx1k_105>:not(._markedContent_9nx1k_157),._textLayer_9nx1k_105 ._markedContent_9nx1k_157 span:not(._markedContent_9nx1k_157){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_9nx1k_105 ._markedContent_9nx1k_157{display:contents}._textLayer_9nx1k_105 ._endOfContent_9nx1k_187{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_9nx1k_105._selecting_9nx1k_205 ._endOfContent_9nx1k_187{top:0}._textLayer_9nx1k_105 ::selection{background:#0000ff40}._textLayer_9nx1k_105 br::selection{background:0 0}._pageSkeleton_9nx1k_245{z-index:0;pointer-events:none;background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_9nx1k_1;position:absolute;top:0;left:0}@keyframes _shimmer_9nx1k_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_9nx1k_287{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_9nx1k_305{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_9nx1k_319{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_185ig_1{flex-direction:column;display:flex}._emptyState_185ig_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_185ig_23{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_185ig_45{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_185ig_65{cursor:pointer}._cardClickable_185ig_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_185ig_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_185ig_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_185ig_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_185ig_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_185ig_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_185ig_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_185ig_155{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_8oiyp_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_8oiyp_15{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_8oiyp_29{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_8oiyp_65{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_8oiyp_79{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_8oiyp_101{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_8oiyp_101:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_8oiyp_153{justify-content:center;align-items:center;display:flex;position:relative}._badge_8oiyp_167{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_12ml0_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_12ml0_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_12ml0_1:disabled{color:var(--pdf-border);cursor:default}._primary_12ml0_57{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_12ml0_57:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_1s04k_1{align-items:center;gap:2px;display:flex}._pageInput_1s04k_13{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_1s04k_13:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_1s04k_13::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_1s04k_13::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_1s04k_13{-moz-appearance:textfield}._pageTotal_1s04k_69{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_1w4ic_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_1w4ic_13{flex-direction:column;padding:4px 0;display:flex}._row_1w4ic_25{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_1w4ic_25:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_1w4ic_61{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_1w4ic_61:hover{color:var(--pdf-text-muted)}._title_1w4ic_91{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_4qrs1_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_4qrs1_13{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_4qrs1_25{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_4qrs1_25:focus{border-color:var(--pdf-accent)}._searchInput_4qrs1_25::placeholder{color:var(--pdf-text-placeholder)}._navButton_4qrs1_65{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_4qrs1_65:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_4qrs1_65:disabled{color:var(--pdf-border);cursor:default}._counter_4qrs1_107{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_irrdi_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_irrdi_15{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_irrdi_29{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_irrdi_63{background:#22c55e0a;border-color:#22c55e47}._cardClickable_irrdi_73{cursor:pointer}._cardClickable_irrdi_73:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_irrdi_63._cardClickable_irrdi_73:hover{border-color:#22c55e73}._cardBody_irrdi_99{padding:10px 12px 10px 16px}._cardHeader_irrdi_107{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_irrdi_123{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_irrdi_145{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_irrdi_177{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_irrdi_189{flex-direction:column;gap:4px;display:flex}._fieldRow_irrdi_201{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_irrdi_217{color:var(--pdf-text-muted);font-weight:500}._fieldValue_irrdi_227{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_irrdi_237{justify-content:center;align-items:center;display:flex;position:relative}._badge_irrdi_251{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_vk7sw_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_vk7sw_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_vk7sw_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_vk7sw_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_vk7sw_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_vk7sw_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_vk7sw_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_vk7sw_75{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_vk7sw_1}@keyframes _shimmer_vk7sw_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_vk7sw_103{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_vk7sw_117{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_1r6if_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}
|
|
1
|
+
._wrapper_1xud4_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1xud4_13{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1xud4_31{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1xud4_51{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1xud4_69{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_1xud4_69:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1xud4_109{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1xud4_109:hover{color:var(--pdf-accent-light)}._contentPanel_1xud4_127{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1xud4_143{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_1xud4_167{flex:1;overflow-y:auto}._appLayout_1t51x_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1t51x_17{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1t51x_33{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_1t51x_57{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_1t51x_77{margin-bottom:25px;position:relative}._pageCanvas_1t51x_87{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1t51x_105{--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_1t51x_105 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1t51x_105>:not(._markedContent_1t51x_157),._textLayer_1t51x_105 ._markedContent_1t51x_157 span:not(._markedContent_1t51x_157){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_1t51x_105 ._markedContent_1t51x_157{display:contents}._textLayer_1t51x_105 ._endOfContent_1t51x_187{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1t51x_105._selecting_1t51x_205 ._endOfContent_1t51x_187{top:0}._textLayer_1t51x_105 ::selection{background:#0000ff40}._textLayer_1t51x_105 br::selection{background:0 0}._pageSkeleton_1t51x_245{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_1t51x_245:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1t51x_1}@keyframes _spin_1t51x_1{to{transform:rotate(360deg)}}._highlightOverlay_1t51x_299{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1t51x_317{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1t51x_331{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_185ig_1{flex-direction:column;display:flex}._emptyState_185ig_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_185ig_23{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_185ig_45{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_185ig_65{cursor:pointer}._cardClickable_185ig_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_185ig_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_185ig_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_185ig_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_185ig_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_185ig_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_185ig_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_185ig_155{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_8oiyp_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_8oiyp_15{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_8oiyp_29{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_8oiyp_65{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_8oiyp_79{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_8oiyp_101{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_8oiyp_101:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_8oiyp_153{justify-content:center;align-items:center;display:flex;position:relative}._badge_8oiyp_167{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_12ml0_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_12ml0_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_12ml0_1:disabled{color:var(--pdf-border);cursor:default}._primary_12ml0_57{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_12ml0_57:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_1s04k_1{align-items:center;gap:2px;display:flex}._pageInput_1s04k_13{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_1s04k_13:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_1s04k_13::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_1s04k_13::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_1s04k_13{-moz-appearance:textfield}._pageTotal_1s04k_69{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_1w4ic_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_1w4ic_13{flex-direction:column;padding:4px 0;display:flex}._row_1w4ic_25{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_1w4ic_25:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_1w4ic_61{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_1w4ic_61:hover{color:var(--pdf-text-muted)}._title_1w4ic_91{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_4qrs1_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_4qrs1_13{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_4qrs1_25{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_4qrs1_25:focus{border-color:var(--pdf-accent)}._searchInput_4qrs1_25::placeholder{color:var(--pdf-text-placeholder)}._navButton_4qrs1_65{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_4qrs1_65:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_4qrs1_65:disabled{color:var(--pdf-border);cursor:default}._counter_4qrs1_107{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_irrdi_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_irrdi_15{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_irrdi_29{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_irrdi_63{background:#22c55e0a;border-color:#22c55e47}._cardClickable_irrdi_73{cursor:pointer}._cardClickable_irrdi_73:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_irrdi_63._cardClickable_irrdi_73:hover{border-color:#22c55e73}._cardBody_irrdi_99{padding:10px 12px 10px 16px}._cardHeader_irrdi_107{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_irrdi_123{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_irrdi_145{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_irrdi_177{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_irrdi_189{flex-direction:column;gap:4px;display:flex}._fieldRow_irrdi_201{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_irrdi_217{color:var(--pdf-text-muted);font-weight:500}._fieldValue_irrdi_227{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_irrdi_237{justify-content:center;align-items:center;display:flex;position:relative}._badge_irrdi_251{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_vk7sw_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_vk7sw_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_vk7sw_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_vk7sw_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_vk7sw_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_vk7sw_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_vk7sw_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_vk7sw_75{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_vk7sw_1}@keyframes _shimmer_vk7sw_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_vk7sw_103{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_vk7sw_117{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_1r6if_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)}
|
|
2
2
|
/*$vite$:1*/
|
package/dist/es/theme.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
//#region src/theme.ts
|
|
2
2
|
var e = {
|
|
3
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif",
|
|
3
4
|
bg: "#18181b",
|
|
4
5
|
surface: "#27272a",
|
|
5
6
|
surfaceHover: "#3f3f46",
|
|
@@ -21,6 +22,7 @@ var e = {
|
|
|
21
22
|
shadowPage: "rgba(0, 0, 0, 0.4)",
|
|
22
23
|
badgeBg: "#3b82f6"
|
|
23
24
|
}, t = {
|
|
25
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif",
|
|
24
26
|
bg: "#f4f4f5",
|
|
25
27
|
surface: "#ffffff",
|
|
26
28
|
surfaceHover: "#f4f4f5",
|
|
@@ -44,6 +46,7 @@ var e = {
|
|
|
44
46
|
};
|
|
45
47
|
function n(e) {
|
|
46
48
|
return {
|
|
49
|
+
"--pdf-font-family": e.fontFamily,
|
|
47
50
|
"--pdf-bg": e.bg,
|
|
48
51
|
"--pdf-surface": e.surface,
|
|
49
52
|
"--pdf-surface-hover": e.surfaceHover,
|
|
@@ -7,7 +7,7 @@ export interface PDFAnnotation {
|
|
|
7
7
|
title?: string;
|
|
8
8
|
rect?: [number, number, number, number];
|
|
9
9
|
}
|
|
10
|
-
export declare function useAnnotations({ pdf }: {
|
|
10
|
+
export declare function useAnnotations({ pdf, }: {
|
|
11
11
|
pdf: pdfjsLib.PDFDocumentProxy | null;
|
|
12
12
|
}): {
|
|
13
13
|
annotations: PDFAnnotation[];
|
|
@@ -5,6 +5,7 @@ interface UseKeyboardShortcutsOptions {
|
|
|
5
5
|
goToPage: (page: number) => void;
|
|
6
6
|
setZoom: React.Dispatch<React.SetStateAction<number>>;
|
|
7
7
|
setRotation: React.Dispatch<React.SetStateAction<number>>;
|
|
8
|
+
setFitMode: React.Dispatch<React.SetStateAction<"width" | "page" | null>>;
|
|
8
9
|
}
|
|
9
|
-
export declare function useKeyboardShortcuts({ pdf, currentPage, goToPage, setZoom, setRotation, }: UseKeyboardShortcutsOptions): void;
|
|
10
|
+
export declare function useKeyboardShortcuts({ pdf, currentPage, goToPage, setZoom, setRotation, setFitMode, }: UseKeyboardShortcutsOptions): void;
|
|
10
11
|
export {};
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import * as pdfjsLib from "pdfjs-dist";
|
|
2
1
|
interface UseScrollTrackingOptions {
|
|
3
|
-
pdf: pdfjsLib.PDFDocumentProxy | null;
|
|
4
2
|
numPages: number;
|
|
5
|
-
zoom: number;
|
|
6
|
-
rotation: number;
|
|
7
3
|
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
8
4
|
pageRefs: React.RefObject<(HTMLDivElement | null)[]>;
|
|
9
|
-
canvasRefs: React.RefObject<(HTMLCanvasElement | null)[]>;
|
|
10
5
|
}
|
|
11
|
-
export declare function useScrollTracking({
|
|
6
|
+
export declare function useScrollTracking({ numPages, containerRef, pageRefs, }: UseScrollTrackingOptions): {
|
|
12
7
|
currentPage: number;
|
|
13
|
-
goToPage: (pageNum: number) => void;
|
|
8
|
+
goToPage: (pageNum: number, yOffset?: number) => void;
|
|
14
9
|
};
|
|
15
10
|
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -17,3 +17,5 @@ export { PDFZoomControls } from './components/features/PDFZoomControls';
|
|
|
17
17
|
export { PDFThemeToggle } from './components/features/PDFThemeToggle';
|
|
18
18
|
export { PDFPrintButton } from './components/features/PDFPrintButton';
|
|
19
19
|
export { PDFSidebarToggle } from './components/features/PDFSidebarToggle';
|
|
20
|
+
export { PDFToolbar } from './components/ui/PDFToolbar';
|
|
21
|
+
export { PDFToolbarItem } from './components/ui/PDFToolbarItem';
|
package/dist/theme.d.ts
CHANGED