pdf-tsx 0.3.0 → 0.4.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 +59 -18
- package/dist/cjs/components/PDFSidebar.cjs +1 -1
- package/dist/cjs/components/PDFSidebar.module.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/PDFNavigation.module.cjs +1 -1
- package/dist/cjs/components/features/PDFSearch.cjs +1 -1
- package/dist/cjs/components/features/PDFSearch.module.cjs +1 -1
- package/dist/cjs/components/features/PDFSidebarToggle.cjs +1 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/components/PDFSidebar.d.ts +2 -1
- package/dist/components/PDFViewer.d.ts +2 -0
- package/dist/components/features/PDFSidebarToggle.d.ts +7 -0
- package/dist/context/PDFViewerContext.d.ts +2 -0
- package/dist/es/components/PDFSidebar.js +48 -38
- package/dist/es/components/PDFSidebar.module.js +9 -7
- package/dist/es/components/PDFViewer.js +107 -104
- package/dist/es/components/PDFViewer.module.js +15 -15
- package/dist/es/components/features/PDFNavigation.module.js +3 -3
- package/dist/es/components/features/PDFSearch.js +16 -11
- package/dist/es/components/features/PDFSearch.module.js +5 -4
- package/dist/es/components/features/PDFSidebarToggle.js +20 -0
- package/dist/es/index.js +2 -1
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -86,6 +86,8 @@ The main component. Must wrap all feature components.
|
|
|
86
86
|
| `defaultTheme` | `"light" \| "dark"` | no | Initial theme mode (default: `"light"`) |
|
|
87
87
|
| `themeOverrides` | `{ light?: Partial<Theme>; dark?: Partial<Theme> }` | no | Override individual theme tokens (see Theming) |
|
|
88
88
|
| `defaultFit` | `"width" \| "page"` | no | Initial zoom mode when a PDF is loaded |
|
|
89
|
+
| `className` | `string` | no | CSS class applied to the root layout element |
|
|
90
|
+
| `style` | `React.CSSProperties` | no | Inline style applied to the root layout element |
|
|
89
91
|
|
|
90
92
|
---
|
|
91
93
|
|
|
@@ -141,21 +143,25 @@ themeOverrides={{ dark: { ...darkTheme, bg: '#0f0f0f' } }}
|
|
|
141
143
|
|
|
142
144
|
## PDFSidebar
|
|
143
145
|
|
|
144
|
-
A collapsible icon sidebar. Each panel has an icon button — clicking it toggles the panel open/closed.
|
|
146
|
+
A collapsible icon sidebar. Each panel has an icon button — clicking it toggles the panel open/closed. When collapsed via `PDFSidebarToggle`, the entire sidebar is hidden (`null`).
|
|
145
147
|
|
|
146
148
|
```tsx
|
|
147
149
|
import { PDFSidebar } from 'pdf-tsx'
|
|
148
|
-
import { FiImage, FiList } from 'react-icons/fi'
|
|
149
|
-
|
|
150
|
-
<PDFSidebar
|
|
151
|
-
{
|
|
152
|
-
|
|
153
|
-
|
|
150
|
+
import { FiImage, FiList, FiChevronsLeft } from 'react-icons/fi'
|
|
151
|
+
|
|
152
|
+
<PDFSidebar
|
|
153
|
+
collapseIcon={<FiChevronsLeft size={16} />}
|
|
154
|
+
panels={[
|
|
155
|
+
{ icon: <FiImage size={18} />, label: 'Thumbnails', content: <PDFThumbnails /> },
|
|
156
|
+
{ icon: <FiList size={18} />, label: 'Outline', content: <PDFOutline /> },
|
|
157
|
+
]}
|
|
158
|
+
/>
|
|
154
159
|
```
|
|
155
160
|
|
|
156
|
-
| Prop
|
|
157
|
-
|
|
158
|
-
| `panels`
|
|
161
|
+
| Prop | Type | Description |
|
|
162
|
+
|----------------|------------------|------------------------------------------------------------------|
|
|
163
|
+
| `panels` | `SidebarPanel[]` | Array of panels to display |
|
|
164
|
+
| `collapseIcon` | `ReactNode` | If provided, renders a toggle button at the top of the icon bar to hide the sidebar |
|
|
159
165
|
|
|
160
166
|
**SidebarPanel**
|
|
161
167
|
|
|
@@ -165,6 +171,33 @@ import { FiImage, FiList } from 'react-icons/fi'
|
|
|
165
171
|
| `label` | `string` | Panel title shown in the header |
|
|
166
172
|
| `content` | `ReactNode` | Content rendered inside the open panel |
|
|
167
173
|
|
|
174
|
+
### Sidebar hide/show pattern
|
|
175
|
+
|
|
176
|
+
Use `PDFSidebarToggle` in the toolbar alongside `PDFSidebar`. When the sidebar is open, the collapse button lives inside the sidebar. When collapsed, the expand button appears in the toolbar.
|
|
177
|
+
|
|
178
|
+
```tsx
|
|
179
|
+
import { PDFSidebar, PDFSidebarToggle } from 'pdf-tsx'
|
|
180
|
+
import { FiChevronsLeft, FiChevronsRight } from 'react-icons/fi'
|
|
181
|
+
|
|
182
|
+
<PDFViewer
|
|
183
|
+
sidebar={
|
|
184
|
+
<PDFSidebar
|
|
185
|
+
collapseIcon={<FiChevronsLeft size={16} />}
|
|
186
|
+
panels={[...]}
|
|
187
|
+
/>
|
|
188
|
+
}
|
|
189
|
+
toolbar={
|
|
190
|
+
<>
|
|
191
|
+
<PDFSidebarToggle
|
|
192
|
+
collapseIcon={<FiChevronsLeft size={16} />}
|
|
193
|
+
expandIcon={<FiChevronsRight size={16} />}
|
|
194
|
+
/>
|
|
195
|
+
{/* other toolbar items */}
|
|
196
|
+
</>
|
|
197
|
+
}
|
|
198
|
+
/>
|
|
199
|
+
```
|
|
200
|
+
|
|
168
201
|
---
|
|
169
202
|
|
|
170
203
|
## Feature components
|
|
@@ -188,6 +221,7 @@ All feature components must be rendered inside `<PDFViewer>`. They read and writ
|
|
|
188
221
|
| `PDFChangeFile` | `icon` | Button to open a new PDF file |
|
|
189
222
|
| `PDFThemeToggle` | `lightIcon` `darkIcon` | Toggle between dark and light mode |
|
|
190
223
|
| `PDFPrintButton` | `icon` | Print the PDF using the browser's native print dialog|
|
|
224
|
+
| `PDFSidebarToggle` | `collapseIcon` `expandIcon` | Toolbar button to expand the sidebar — visible only when sidebar is hidden (see Sidebar hide/show pattern) |
|
|
191
225
|
|
|
192
226
|
### Count badges
|
|
193
227
|
|
|
@@ -220,7 +254,7 @@ The badge uses `var(--pdf-accent)` and respects `themeOverrides`.
|
|
|
220
254
|
```tsx
|
|
221
255
|
import { useState, Suspense, lazy } from 'react'
|
|
222
256
|
import {
|
|
223
|
-
PDFSidebar, PDFThumbnails, PDFOutline, PDFSearch,
|
|
257
|
+
PDFSidebar, PDFSidebarToggle, PDFThumbnails, PDFOutline, PDFSearch,
|
|
224
258
|
PDFZoomControls, PDFPageFit, PDFRotationControl,
|
|
225
259
|
PDFNavigation, PDFDownloadButton, PDFChangeFile,
|
|
226
260
|
PDFThemeToggle, PDFPrintButton,
|
|
@@ -232,7 +266,7 @@ import {
|
|
|
232
266
|
FiSearch, FiChevronUp, FiChevronDown, FiX,
|
|
233
267
|
FiZoomIn, FiZoomOut, FiAlignJustify, FiMaximize2, FiRotateCw,
|
|
234
268
|
FiChevronLeft, FiChevronRight, FiDownload, FiFolderPlus,
|
|
235
|
-
FiPrinter, FiSun, FiMoon,
|
|
269
|
+
FiPrinter, FiSun, FiMoon, FiChevronsLeft, FiChevronsRight,
|
|
236
270
|
} from 'react-icons/fi'
|
|
237
271
|
import workerUrl from 'pdfjs-dist/build/pdf.worker.min.mjs?url'
|
|
238
272
|
|
|
@@ -258,15 +292,22 @@ function App() {
|
|
|
258
292
|
workerSrc={workerUrl}
|
|
259
293
|
onChangeFile={setFile}
|
|
260
294
|
sidebar={
|
|
261
|
-
<PDFSidebar
|
|
262
|
-
{
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
295
|
+
<PDFSidebar
|
|
296
|
+
collapseIcon={<FiChevronsLeft size={16} />}
|
|
297
|
+
panels={[
|
|
298
|
+
{ icon: <FiImage size={18} />, label: 'Thumbnails', content: <PDFThumbnails /> },
|
|
299
|
+
{ icon: <FiList size={18} />, label: 'Outline', content: <PDFOutline /> },
|
|
300
|
+
{ icon: <PDFSignaturesIcon icon={<FiPenTool size={17} />} />, label: 'Signatures', content: <PDFSignatures /> },
|
|
301
|
+
{ icon: <PDFAnnotationsIcon icon={<FiMessageSquare size={17} />} />, label: 'Annotations', content: <PDFAnnotations /> },
|
|
302
|
+
]}
|
|
303
|
+
/>
|
|
267
304
|
}
|
|
268
305
|
toolbar={
|
|
269
306
|
<>
|
|
307
|
+
<PDFSidebarToggle
|
|
308
|
+
collapseIcon={<FiChevronsLeft size={16} />}
|
|
309
|
+
expandIcon={<FiChevronsRight size={16} />}
|
|
310
|
+
/>
|
|
270
311
|
<PDFSearch
|
|
271
312
|
searchIcon={<FiSearch size={14} />}
|
|
272
313
|
prevIcon={<FiChevronUp size={14} />}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./PDFSidebar.module.cjs`);let
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../context/PDFViewerContext.cjs`),t=require(`./PDFSidebar.module.cjs`);let n=require(`react`),r=require(`react/compiler-runtime`),i=require(`react/jsx-runtime`);function a(a){let o=(0,r.c)(18),{panels:s,collapseIcon:c}=a,{sidebarCollapsed:l,setSidebarCollapsed:u}=e.usePDFViewer(),[d,f]=(0,n.useState)(null),p;o[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>f(t=>t===e?null:e),o[0]=p):p=o[0];let m=p;if(l)return null;let h;o[1]!==c||o[2]!==u?(h=c!=null&&(0,i.jsx)(`button`,{className:`${t.default.panelButton} ${t.default.toggleButton}`,onClick:()=>u(!0),title:`Comprimi sidebar`,children:c}),o[1]=c,o[2]=u,o[3]=h):h=o[3];let g;if(o[4]!==d||o[5]!==s){let e;o[7]===d?e=o[8]:(e=(e,n)=>(0,i.jsx)(`button`,{className:`${t.default.panelButton} ${d===n?t.default.panelButtonActive:``}`,onClick:()=>m(n),title:e.label,children:e.icon},n),o[7]=d,o[8]=e),g=s.map(e),o[4]=d,o[5]=s,o[6]=g}else g=o[6];let _;o[9]!==h||o[10]!==g?(_=(0,i.jsxs)(`div`,{className:t.default.buttonBar,children:[h,g]}),o[9]=h,o[10]=g,o[11]=_):_=o[11];let v;o[12]!==d||o[13]!==s?(v=d!==null&&(0,i.jsxs)(`div`,{className:t.default.contentPanel,children:[(0,i.jsx)(`div`,{className:t.default.panelHeader,children:s[d].label}),(0,i.jsx)(`div`,{className:t.default.panelBody,children:s[d].content})]}),o[12]=d,o[13]=s,o[14]=v):v=o[14];let y;return o[15]!==_||o[16]!==v?(y=(0,i.jsxs)(`div`,{className:t.default.wrapper,children:[_,v]}),o[15]=_,o[16]=v,o[17]=y):y=o[17],y}exports.PDFSidebar=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={wrapper:`
|
|
1
|
+
var e={wrapper:`_wrapper_1xud4_1`,wrapperCollapsed:`_wrapperCollapsed_1xud4_13`,buttonBar:`_buttonBar_1xud4_31`,toggleButton:`_toggleButton_1xud4_51`,panelButton:`_panelButton_1xud4_69`,panelButtonActive:`_panelButtonActive_1xud4_109`,contentPanel:`_contentPanel_1xud4_127`,panelHeader:`_panelHeader_1xud4_143`,panelBody:`_panelBody_1xud4_167`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../context/PDFViewerContext.cjs`),n=require(`../hooks/useScrollTracking.cjs`),r=require(`../hooks/useKeyboardShortcuts.cjs`),i=require(`../hooks/useTextLayer.cjs`),a=require(`../utils/url.cjs`),o=require(`../hooks/useAnnotationLayer.cjs`),s=require(`../utils/pdfFit.cjs`),c=require(`../context/ThemeContext.cjs`),l=require(`./PDFViewer.module.cjs`);let u=require(`react`);u=e.__toESM(u,1);let d=require(`pdfjs-dist`);d=e.__toESM(d,1);let f=require(`react/jsx-runtime`);var p=({file:e,workerSrc:p,sidebar:m,toolbar:h,onChangeFile:g,themeOverrides:_,defaultTheme:v,defaultFit:y})=>{(0,u.useEffect)(()=>{d.GlobalWorkerOptions.workerSrc=p},[p]);let[
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../context/PDFViewerContext.cjs`),n=require(`../hooks/useScrollTracking.cjs`),r=require(`../hooks/useKeyboardShortcuts.cjs`),i=require(`../hooks/useTextLayer.cjs`),a=require(`../utils/url.cjs`),o=require(`../hooks/useAnnotationLayer.cjs`),s=require(`../utils/pdfFit.cjs`),c=require(`../context/ThemeContext.cjs`),l=require(`./PDFViewer.module.cjs`);let u=require(`react`);u=e.__toESM(u,1);let d=require(`pdfjs-dist`);d=e.__toESM(d,1);let f=require(`react/jsx-runtime`);var p=({file:e,workerSrc:p,sidebar:m,toolbar:h,onChangeFile:g,themeOverrides:_,defaultTheme:v,defaultFit:y,className:b,style:x})=>{(0,u.useEffect)(()=>{d.GlobalWorkerOptions.workerSrc=p},[p]);let[S,C]=(0,u.useState)(null),[w,T]=(0,u.useState)(0),[E,D]=(0,u.useState)(1),[O,k]=(0,u.useState)(0),[A,j]=(0,u.useState)(null),[M,N]=(0,u.useState)(null),[P,F]=(0,u.useState)([]),[I,L]=(0,u.useState)(!1),[R,z]=(0,u.useState)(new Set),[B,V]=(0,u.useState)([]),H=(0,u.useRef)(null),U=(0,u.useRef)([]),W=(0,u.useRef)([]),G=(0,u.useRef)(O);(0,u.useEffect)(()=>{G.current=O},[O]),(0,u.useEffect)(()=>{if(!S||!y||!H.current)return;let e=H.current;s.computeFit(y,S,e,G.current).then(D)},[S,y]);let{currentPage:K,goToPage:q}=n.useScrollTracking({pdf:S,numPages:w,zoom:E,rotation:O,containerRef:H,canvasRefs:U});r.useKeyboardShortcuts({pdf:S,currentPage:K,numPages:w,goToPage:q,setZoom:D,setRotation:k});let J=i.useTextLayer({pdf:S,zoom:E,rotation:O,numPages:w,canvasRefs:U}),Y=o.useAnnotationLayer({pdf:S,zoom:E,rotation:O,numPages:w,goToPage:q});(0,u.useEffect)(()=>{(async()=>{let t=new FileReader;t.onload=async e=>{let t=new Uint8Array(e.target?.result);try{let e=await d.getDocument(t).promise;C(e),T(e.numPages),j(null),N(null),z(new Set),V([]),U.current=Array(e.numPages).fill(null),W.current=Array(e.numPages).fill(null)}catch(e){console.error(`Errore caricamento:`,e)}},t.readAsArrayBuffer(e)})()},[e]),(0,u.useEffect)(()=>{if(!S)return;z(new Set);let e=!1;return(async()=>{let t=W.current.map(e=>e?(e.cancel(),e.promise.catch(()=>{})):Promise.resolve());if(await Promise.all(t),W.current=Array(S.numPages).fill(null),e)return;let n=[];for(let e=1;e<=S.numPages;e++){let t=(await S.getPage(e)).getViewport({scale:E,rotation:O});n.push({width:t.width,height:t.height})}if(!e){V(n);for(let t=1;t<=S.numPages;t++){if(e)return;let n=await S.getPage(t),r=n.getViewport({scale:E,rotation:O}),i=U.current[t-1];if(i){let a=i.getContext(`2d`);if(a){i.height=r.height,i.width=r.width;let o=n.render({canvasContext:a,viewport:r,canvas:i});W.current[t-1]=o;try{await o.promise,e||z(e=>new Set(e).add(t))}catch(e){e&&typeof e==`object`&&`name`in e&&e.name!==`RenderingCancelledException`&&console.error(`Render error:`,e)}}}}}})(),()=>{e=!0,W.current.forEach(e=>e?.cancel())}},[S,E,O]);let[X,Z]=(0,u.useState)([]);return(0,u.useEffect)(()=>{if(!S||P.length===0){Z([]);return}let e=!1;return(async()=>{let t=[];for(let n of P){if(e)break;let[r,i,a,o]=(await S.getPage(n.page)).getViewport({scale:E,rotation:O}).convertToViewportRectangle(n.pdfRect);t.push({page:n.page,x:Math.min(r,a),y:Math.min(i,o),width:Math.abs(a-r),height:Math.abs(o-i)})}e||Z(t)})(),()=>{e=!0}},[P,E,O,S]),(0,u.useEffect)(()=>{if(!A||!S)return;let e=!1;return(async()=>{let[t,n,r,i]=(await S.getPage(A.page)).getViewport({scale:E,rotation:O}).convertToViewportRectangle(A.pdfRect);e||N({page:A.page,x:Math.min(t,r),y:Math.min(n,i),width:Math.abs(r-t),height:Math.abs(i-n)})})(),()=>{e=!0}},[A,E,O,S]),(0,f.jsx)(c.ThemeProvider,{themeOverrides:_,defaultTheme:v,children:(0,f.jsx)(t.PDFViewerContext.Provider,{value:{pdf:S,numPages:w,zoom:E,setZoom:D,rotation:O,setRotation:k,currentPage:K,goToPage:q,containerRef:H,canvasRefs:U,file:e,highlight:A,setHighlight:j,searchMatches:P,setSearchMatches:F,onChangeFile:g,sidebarCollapsed:I,setSidebarCollapsed:L},children:(0,f.jsxs)(`div`,{className:`${l.default.appLayout}${b?` ${b}`:``}`,style:x,children:[m,(0,f.jsxs)(`div`,{className:l.default.mainContent,children:[h&&(0,f.jsx)(`div`,{className:l.default.toolbar,children:h}),(0,f.jsx)(`div`,{className:l.default.scrollContainer,ref:H,children:Array.from({length:w},(e,t)=>{let n=R.has(t+1),r=B[t];return(0,f.jsxs)(`div`,{className:l.default.pageWrapper,children:[!n&&r&&(0,f.jsx)(`div`,{className:l.default.pageSkeleton,style:{width:r.width,height:r.height}}),(0,f.jsx)(`canvas`,{className:l.default.pageCanvas,ref:e=>{U.current[t]=e},style:{display:n?`block`:`none`}}),(0,f.jsx)(`div`,{className:`textLayer ${l.default.textLayer}`,ref:e=>{J.current[t]=e}}),Y.filter(e=>e.page===t+1).map((e,t)=>(0,f.jsx)(`a`,{className:l.default.linkOverlay,href:e.url&&a.isSafeUrl(e.url)?e.url:`#`,target:`_blank`,rel:`noopener noreferrer`,style:{left:e.x,top:e.y,width:e.width,height:e.height},onClick:t=>{(!e.url||!a.isSafeUrl(e.url))&&(t.preventDefault(),e.url||e._handleClick())}},t)),X.filter(e=>e.page===t+1).map((e,t)=>(0,f.jsx)(`div`,{className:l.default.searchMatchOverlay,style:{left:e.x,top:e.y,width:e.width,height:e.height}},t)),A&&M?.page===t+1&&(0,f.jsx)(`div`,{className:l.default.highlightOverlay,style:{left:M.x,top:M.y,width:M.width,height:M.height}})]},`${t}-${O}`)})})]})]})})})};exports.default=p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={appLayout:`
|
|
1
|
+
var e={appLayout:`_appLayout_8il7s_1`,mainContent:`_mainContent_8il7s_15`,toolbar:`_toolbar_8il7s_29`,scrollContainer:`_scrollContainer_8il7s_53`,pageWrapper:`_pageWrapper_8il7s_73`,pageCanvas:`_pageCanvas_8il7s_83`,textLayer:`_textLayer_8il7s_97`,markedContent:`_markedContent_8il7s_149`,endOfContent:`_endOfContent_8il7s_179`,selecting:`_selecting_8il7s_197`,pageSkeleton:`_pageSkeleton_8il7s_237`,shimmer:`_shimmer_8il7s_1`,highlightOverlay:`_highlightOverlay_8il7s_269`,linkOverlay:`_linkOverlay_8il7s_285`,searchMatchOverlay:`_searchMatchOverlay_8il7s_297`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={navWrapper:`
|
|
1
|
+
var e={navWrapper:`_navWrapper_1s04k_1`,pageInput:`_pageInput_1s04k_13`,pageTotal:`_pageTotal_1s04k_69`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../../hooks/useTextSearch.cjs`),r=require(`./PDFSearch.module.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/compiler-runtime`),o=require(`react/jsx-runtime`);function s(e){let s=(0,a.c)(
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../context/PDFViewerContext.cjs`),n=require(`../../hooks/useTextSearch.cjs`),r=require(`./PDFSearch.module.cjs`);let i=require(`react`);i=e.__toESM(i,1);let a=require(`react/compiler-runtime`),o=require(`react/jsx-runtime`);function s(e){let s=(0,a.c)(35),{searchIcon:c,prevIcon:l,nextIcon:u,clearIcon:d}=e,{pdf:f,goToPage:p,setHighlight:m,setSearchMatches:h}=t.usePDFViewer(),[g,_]=(0,i.useState)(``),[v,y]=(0,i.useState)(0),b;s[0]!==f||s[1]!==g?(b={pdf:f,query:g},s[0]=f,s[1]=g,s[2]=b):b=s[2];let{matches:x,searching:S}=n.useTextSearch(b),C=x.length,w,T;s[3]!==x||s[4]!==h?(w=()=>(h(x),()=>h([])),T=[x,h],s[3]=x,s[4]=h,s[5]=w,s[6]=T):(w=s[5],T=s[6]),(0,i.useEffect)(w,T);let E;s[7]!==p||s[8]!==x||s[9]!==m||s[10]!==C?(E=e=>{let t=(e+C)%C;y(t);let n=x[t];p(n.page),m({page:n.page,pdfRect:n.pdfRect})},s[7]=p,s[8]=x,s[9]=m,s[10]=C,s[11]=E):E=s[11];let D=E,O;s[12]===m?O=s[13]:(O=e=>{_(e.target.value),y(0),m(null)},s[12]=m,s[13]=O);let k=O,A;s[14]===m?A=s[15]:(A=()=>{_(``),y(0),m(null)},s[14]=m,s[15]=A);let j=A,M;s[16]===c?M=s[17]:(M=(0,o.jsx)(`span`,{className:r.default.searchIconWrapper,children:c}),s[16]=c,s[17]=M);let N;s[18]!==k||s[19]!==g?(N=(0,o.jsx)(`input`,{className:r.default.searchInput,value:g,onChange:k,placeholder:`Cerca nel documento...`}),s[18]=k,s[19]=g,s[20]=N):N=s[20];let P;s[21]!==d||s[22]!==j||s[23]!==v||s[24]!==D||s[25]!==u||s[26]!==l||s[27]!==g||s[28]!==S||s[29]!==C?(P=g&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`span`,{className:r.default.counter,children:S?`…`:C===0?`0`:`${v+1}/${C}`}),(0,o.jsx)(`button`,{className:r.default.navButton,onClick:()=>D(v-1),disabled:C===0,children:l}),(0,o.jsx)(`button`,{className:r.default.navButton,onClick:()=>D(v+1),disabled:C===0,children:u}),(0,o.jsx)(`button`,{className:r.default.navButton,onClick:j,children:d})]}),s[21]=d,s[22]=j,s[23]=v,s[24]=D,s[25]=u,s[26]=l,s[27]=g,s[28]=S,s[29]=C,s[30]=P):P=s[30];let F;return s[31]!==M||s[32]!==N||s[33]!==P?(F=(0,o.jsxs)(`div`,{className:r.default.wrapper,children:[M,N,P]}),s[31]=M,s[32]=N,s[33]=P,s[34]=F):F=s[34],F}exports.PDFSearch=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={wrapper:`
|
|
1
|
+
var e={wrapper:`_wrapper_4qrs1_1`,searchIconWrapper:`_searchIconWrapper_4qrs1_13`,searchInput:`_searchInput_4qrs1_25`,navButton:`_navButton_4qrs1_65`,counter:`_counter_4qrs1_107`};exports.default=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../context/PDFViewerContext.cjs`),t=require(`../ui/ToolbarButton.module.cjs`);let n=require(`react/compiler-runtime`),r=require(`react/jsx-runtime`);function i(i){let a=(0,n.c)(5),{collapseIcon:o,expandIcon:s}=i,{sidebarCollapsed:c,setSidebarCollapsed:l}=e.usePDFViewer();if(!c)return null;let u;a[0]===l?u=a[1]:(u=()=>l(!1),a[0]=l,a[1]=u);let d=s??o,f;return a[2]!==u||a[3]!==d?(f=(0,r.jsx)(`button`,{className:t.default.btn,onClick:u,title:`Espandi sidebar`,children:d}),a[2]=u,a[3]=d,a[4]=f):f=a[4],f}exports.PDFSidebarToggle=i;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme.cjs`),t=require(`./components/PDFViewer.cjs`),n=require(`./components/PDFSidebar.cjs`),r=require(`./components/features/PDFAnnotations.cjs`),i=require(`./components/features/PDFChangeFile.cjs`),a=require(`./components/features/PDFDownloadButton.cjs`),o=require(`./components/features/PDFNavigation.cjs`),s=require(`./components/features/PDFOutline.cjs`),c=require(`./components/features/PDFPageFit.cjs`),l=require(`./components/features/PDFRotationControl.cjs`),u=require(`./components/features/PDFSearch.cjs`),d=require(`./components/features/PDFSignatures.cjs`),f=require(`./components/features/PDFThumbnails.cjs`),p=require(`./components/features/PDFZoomControls.cjs`),m=require(`./components/features/PDFThemeToggle.cjs`),h=require(`./components/features/PDFPrintButton.cjs`);exports.PDFAnnotations=r.PDFAnnotations,exports.PDFAnnotationsIcon=r.PDFAnnotationsIcon,exports.PDFChangeFile=i.PDFChangeFile,exports.PDFDownloadButton=a.PDFDownloadButton,exports.PDFNavigation=o.PDFNavigation,exports.PDFOutline=s.PDFOutline,exports.PDFPageFit=c.PDFPageFit,exports.PDFPrintButton=h.PDFPrintButton,exports.PDFRotationControl=l.PDFRotationControl,exports.PDFSearch=u.PDFSearch,exports.PDFSidebar=n.PDFSidebar,exports.PDFSignatures=d.PDFSignatures,exports.PDFSignaturesIcon=d.PDFSignaturesIcon,exports.PDFThemeToggle=m.PDFThemeToggle,exports.PDFThumbnails=f.PDFThumbnails,exports.PDFViewer=t,exports.PDFZoomControls=p.PDFZoomControls,exports.darkTheme=e.darkTheme,exports.lightTheme=e.lightTheme;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme.cjs`),t=require(`./components/PDFViewer.cjs`),n=require(`./components/PDFSidebar.cjs`),r=require(`./components/features/PDFAnnotations.cjs`),i=require(`./components/features/PDFChangeFile.cjs`),a=require(`./components/features/PDFDownloadButton.cjs`),o=require(`./components/features/PDFNavigation.cjs`),s=require(`./components/features/PDFOutline.cjs`),c=require(`./components/features/PDFPageFit.cjs`),l=require(`./components/features/PDFRotationControl.cjs`),u=require(`./components/features/PDFSearch.cjs`),d=require(`./components/features/PDFSignatures.cjs`),f=require(`./components/features/PDFThumbnails.cjs`),p=require(`./components/features/PDFZoomControls.cjs`),m=require(`./components/features/PDFThemeToggle.cjs`),h=require(`./components/features/PDFPrintButton.cjs`),g=require(`./components/features/PDFSidebarToggle.cjs`);exports.PDFAnnotations=r.PDFAnnotations,exports.PDFAnnotationsIcon=r.PDFAnnotationsIcon,exports.PDFChangeFile=i.PDFChangeFile,exports.PDFDownloadButton=a.PDFDownloadButton,exports.PDFNavigation=o.PDFNavigation,exports.PDFOutline=s.PDFOutline,exports.PDFPageFit=c.PDFPageFit,exports.PDFPrintButton=h.PDFPrintButton,exports.PDFRotationControl=l.PDFRotationControl,exports.PDFSearch=u.PDFSearch,exports.PDFSidebar=n.PDFSidebar,exports.PDFSidebarToggle=g.PDFSidebarToggle,exports.PDFSignatures=d.PDFSignatures,exports.PDFSignaturesIcon=d.PDFSignaturesIcon,exports.PDFThemeToggle=m.PDFThemeToggle,exports.PDFThumbnails=f.PDFThumbnails,exports.PDFViewer=t,exports.PDFZoomControls=p.PDFZoomControls,exports.darkTheme=e.darkTheme,exports.lightTheme=e.lightTheme;
|
package/dist/cjs/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_184n8_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._buttonBar_184n8_13{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._panelButton_184n8_33{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_184n8_33:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_184n8_73{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_184n8_73:hover{color:var(--pdf-accent-light)}._contentPanel_184n8_91{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_184n8_107{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_184n8_131{flex:1;overflow-y:auto}._appLayout_nel8e_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_nel8e_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_nel8e_29{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_nel8e_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_nel8e_73{margin-bottom:25px;position:relative}._pageCanvas_nel8e_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_nel8e_97{--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:0;--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_nel8e_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_nel8e_97>:not(._markedContent_nel8e_149),._textLayer_nel8e_97 ._markedContent_nel8e_149 span:not(._markedContent_nel8e_149){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_nel8e_97 ._markedContent_nel8e_149{display:contents}._textLayer_nel8e_97 ._endOfContent_nel8e_177{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_nel8e_97._selecting_nel8e_195 ._endOfContent_nel8e_177{top:0}._textLayer_nel8e_97 ::selection{background:#0000ff40}._textLayer_nel8e_97 br::selection{background:0 0}._pageSkeleton_nel8e_235{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_nel8e_1}@keyframes _shimmer_nel8e_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_nel8e_267{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_nel8e_283{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_nel8e_295{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_10scn_1{flex-direction:column;display:flex}._emptyState_10scn_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_10scn_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_10scn_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_10scn_65{cursor:pointer}._cardClickable_10scn_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_10scn_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_10scn_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_10scn_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_10scn_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_10scn_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_10scn_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_10scn_155{background-color:var(--pdf-accent);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_6ysgx_1{align-items:center;gap:2px;margin-left:auto;display:flex}._pageInput_6ysgx_15{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_6ysgx_15:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_6ysgx_15::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15{-moz-appearance:textfield}._pageTotal_6ysgx_71{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_yinyt_1{align-items:center;gap:4px;display:flex}._searchInput_yinyt_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_yinyt_13:focus{border-color:var(--pdf-accent)}._searchInput_yinyt_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_yinyt_53{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_yinyt_53:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_yinyt_53:disabled{color:var(--pdf-border);cursor:default}._counter_yinyt_95{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_11831_1{flex-direction:column;display:flex}._emptyState_11831_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_11831_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_11831_45{cursor:pointer}._cardClickable_11831_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_11831_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_11831_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_11831_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_11831_113{background-color:#22c55e}._statusLabel_11831_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_11831_137{color:#16a34a}._fieldList_11831_145{flex-direction:column;gap:3px;display:flex}._fieldRow_11831_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_11831_167{color:var(--pdf-text-secondary)}._disclaimer_11831_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._iconWrapper_11831_197{justify-content:center;align-items:center;display:flex;position:relative}._badge_11831_211{background-color:var(--pdf-accent);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_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{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_8il7s_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_8il7s_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_8il7s_29{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_8il7s_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_8il7s_73{margin-bottom:25px;position:relative}._pageCanvas_8il7s_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_8il7s_97{--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:0;--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_8il7s_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_8il7s_97>:not(._markedContent_8il7s_149),._textLayer_8il7s_97 ._markedContent_8il7s_149 span:not(._markedContent_8il7s_149){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_8il7s_97 ._markedContent_8il7s_149{display:contents}._textLayer_8il7s_97 ._endOfContent_8il7s_179{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_8il7s_97._selecting_8il7s_197 ._endOfContent_8il7s_179{top:0}._textLayer_8il7s_97 ::selection{background:#0000ff40}._textLayer_8il7s_97 br::selection{background:0 0}._pageSkeleton_8il7s_237{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_8il7s_1}@keyframes _shimmer_8il7s_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_8il7s_269{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_8il7s_285{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_8il7s_297{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_10scn_1{flex-direction:column;display:flex}._emptyState_10scn_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_10scn_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_10scn_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_10scn_65{cursor:pointer}._cardClickable_10scn_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_10scn_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_10scn_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_10scn_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_10scn_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_10scn_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_10scn_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_10scn_155{background-color:var(--pdf-accent);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_11831_1{flex-direction:column;display:flex}._emptyState_11831_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_11831_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_11831_45{cursor:pointer}._cardClickable_11831_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_11831_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_11831_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_11831_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_11831_113{background-color:#22c55e}._statusLabel_11831_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_11831_137{color:#16a34a}._fieldList_11831_145{flex-direction:column;gap:3px;display:flex}._fieldRow_11831_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_11831_167{color:var(--pdf-text-secondary)}._disclaimer_11831_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._iconWrapper_11831_197{justify-content:center;align-items:center;display:flex;position:relative}._badge_11831_211{background-color:var(--pdf-accent);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_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{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}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -6,6 +6,7 @@ export interface SidebarPanel {
|
|
|
6
6
|
}
|
|
7
7
|
interface PDFSidebarProps {
|
|
8
8
|
panels: SidebarPanel[];
|
|
9
|
+
collapseIcon?: ReactNode;
|
|
9
10
|
}
|
|
10
|
-
export declare function PDFSidebar({ panels }: PDFSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function PDFSidebar({ panels, collapseIcon }: PDFSidebarProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
12
|
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
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-runtime").JSX.Element | null;
|
|
7
|
+
export {};
|
|
@@ -20,6 +20,8 @@ export interface PDFViewerContextValue {
|
|
|
20
20
|
searchMatches: HighlightRect[];
|
|
21
21
|
setSearchMatches: (matches: HighlightRect[]) => void;
|
|
22
22
|
onChangeFile?: (file: File) => void;
|
|
23
|
+
sidebarCollapsed: boolean;
|
|
24
|
+
setSidebarCollapsed: React.Dispatch<React.SetStateAction<boolean>>;
|
|
23
25
|
}
|
|
24
26
|
export declare const PDFViewerContext: import('react').Context<PDFViewerContextValue | null>;
|
|
25
27
|
export declare function usePDFViewer(): PDFViewerContextValue;
|
|
@@ -1,42 +1,52 @@
|
|
|
1
|
-
import e from "
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { usePDFViewer as e } from "../context/PDFViewerContext.js";
|
|
2
|
+
import t from "./PDFSidebar.module.js";
|
|
3
|
+
import { useState as n } from "react";
|
|
4
|
+
import { c as r } from "react/compiler-runtime";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
5
6
|
//#region src/components/PDFSidebar.tsx
|
|
6
|
-
function
|
|
7
|
-
let
|
|
8
|
-
|
|
9
|
-
let
|
|
10
|
-
if (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
7
|
+
function o(o) {
|
|
8
|
+
let s = r(18), { panels: c, collapseIcon: l } = o, { sidebarCollapsed: u, setSidebarCollapsed: d } = e(), [f, p] = n(null), m;
|
|
9
|
+
s[0] === Symbol.for("react.memo_cache_sentinel") ? (m = (e) => p((t) => t === e ? null : e), s[0] = m) : m = s[0];
|
|
10
|
+
let h = m;
|
|
11
|
+
if (u) return null;
|
|
12
|
+
let g;
|
|
13
|
+
s[1] !== l || s[2] !== d ? (g = l != null && /* @__PURE__ */ i("button", {
|
|
14
|
+
className: `${t.panelButton} ${t.toggleButton}`,
|
|
15
|
+
onClick: () => d(!0),
|
|
16
|
+
title: "Comprimi sidebar",
|
|
17
|
+
children: l
|
|
18
|
+
}), s[1] = l, s[2] = d, s[3] = g) : g = s[3];
|
|
19
|
+
let _;
|
|
20
|
+
if (s[4] !== f || s[5] !== c) {
|
|
21
|
+
let e;
|
|
22
|
+
s[7] === f ? e = s[8] : (e = (e, n) => /* @__PURE__ */ i("button", {
|
|
23
|
+
className: `${t.panelButton} ${f === n ? t.panelButtonActive : ""}`,
|
|
24
|
+
onClick: () => h(n),
|
|
25
|
+
title: e.label,
|
|
26
|
+
children: e.icon
|
|
27
|
+
}, n), s[7] = f, s[8] = e), _ = c.map(e), s[4] = f, s[5] = c, s[6] = _;
|
|
28
|
+
} else _ = s[6];
|
|
29
|
+
let v;
|
|
30
|
+
s[9] !== g || s[10] !== _ ? (v = /* @__PURE__ */ a("div", {
|
|
31
|
+
className: t.buttonBar,
|
|
32
|
+
children: [g, _]
|
|
33
|
+
}), s[9] = g, s[10] = _, s[11] = v) : v = s[11];
|
|
34
|
+
let y;
|
|
35
|
+
s[12] !== f || s[13] !== c ? (y = f !== null && /* @__PURE__ */ a("div", {
|
|
36
|
+
className: t.contentPanel,
|
|
37
|
+
children: [/* @__PURE__ */ i("div", {
|
|
38
|
+
className: t.panelHeader,
|
|
39
|
+
children: c[f].label
|
|
40
|
+
}), /* @__PURE__ */ i("div", {
|
|
41
|
+
className: t.panelBody,
|
|
42
|
+
children: c[f].content
|
|
33
43
|
})]
|
|
34
|
-
}),
|
|
35
|
-
let
|
|
36
|
-
return
|
|
37
|
-
className:
|
|
38
|
-
children: [
|
|
39
|
-
}),
|
|
44
|
+
}), s[12] = f, s[13] = c, s[14] = y) : y = s[14];
|
|
45
|
+
let b;
|
|
46
|
+
return s[15] !== v || s[16] !== y ? (b = /* @__PURE__ */ a("div", {
|
|
47
|
+
className: t.wrapper,
|
|
48
|
+
children: [v, y]
|
|
49
|
+
}), s[15] = v, s[16] = y, s[17] = b) : b = s[17], b;
|
|
40
50
|
}
|
|
41
51
|
//#endregion
|
|
42
|
-
export {
|
|
52
|
+
export { o as PDFSidebar };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
wrapper: "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
wrapper: "_wrapper_1xud4_1",
|
|
3
|
+
wrapperCollapsed: "_wrapperCollapsed_1xud4_13",
|
|
4
|
+
buttonBar: "_buttonBar_1xud4_31",
|
|
5
|
+
toggleButton: "_toggleButton_1xud4_51",
|
|
6
|
+
panelButton: "_panelButton_1xud4_69",
|
|
7
|
+
panelButtonActive: "_panelButtonActive_1xud4_109",
|
|
8
|
+
contentPanel: "_contentPanel_1xud4_127",
|
|
9
|
+
panelHeader: "_panelHeader_1xud4_143",
|
|
10
|
+
panelBody: "_panelBody_1xud4_167"
|
|
9
11
|
};
|
|
10
12
|
//#endregion
|
|
11
13
|
export { e as default };
|
|
@@ -11,46 +11,46 @@ import { useEffect as l, useRef as u, useState as d } from "react";
|
|
|
11
11
|
import * as f from "pdfjs-dist";
|
|
12
12
|
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
13
13
|
//#region src/components/PDFViewer.tsx
|
|
14
|
-
var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, themeOverrides: b, defaultTheme: x, defaultFit: S }) => {
|
|
14
|
+
var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, themeOverrides: b, defaultTheme: x, defaultFit: S, className: C, style: w }) => {
|
|
15
15
|
l(() => {
|
|
16
16
|
f.GlobalWorkerOptions.workerSrc = g;
|
|
17
17
|
}, [g]);
|
|
18
|
-
let [
|
|
18
|
+
let [T, E] = d(null), [D, O] = d(0), [k, A] = d(1), [j, M] = d(0), [N, P] = d(null), [F, I] = d(null), [L, R] = d([]), [z, B] = d(!1), [V, H] = d(/* @__PURE__ */ new Set()), [U, W] = d([]), G = u(null), K = u([]), q = u([]), J = u(j);
|
|
19
19
|
l(() => {
|
|
20
|
-
|
|
21
|
-
}, [
|
|
22
|
-
if (!
|
|
23
|
-
let e =
|
|
24
|
-
o(S,
|
|
25
|
-
}, [
|
|
26
|
-
let { currentPage:
|
|
27
|
-
pdf:
|
|
28
|
-
numPages:
|
|
29
|
-
zoom:
|
|
30
|
-
rotation:
|
|
31
|
-
containerRef:
|
|
32
|
-
canvasRefs:
|
|
20
|
+
J.current = j;
|
|
21
|
+
}, [j]), l(() => {
|
|
22
|
+
if (!T || !S || !G.current) return;
|
|
23
|
+
let e = G.current;
|
|
24
|
+
o(S, T, e, J.current).then(A);
|
|
25
|
+
}, [T, S]);
|
|
26
|
+
let { currentPage: Y, goToPage: X } = t({
|
|
27
|
+
pdf: T,
|
|
28
|
+
numPages: D,
|
|
29
|
+
zoom: k,
|
|
30
|
+
rotation: j,
|
|
31
|
+
containerRef: G,
|
|
32
|
+
canvasRefs: K
|
|
33
33
|
});
|
|
34
34
|
n({
|
|
35
|
-
pdf:
|
|
36
|
-
currentPage:
|
|
37
|
-
numPages:
|
|
38
|
-
goToPage:
|
|
39
|
-
setZoom:
|
|
40
|
-
setRotation:
|
|
35
|
+
pdf: T,
|
|
36
|
+
currentPage: Y,
|
|
37
|
+
numPages: D,
|
|
38
|
+
goToPage: X,
|
|
39
|
+
setZoom: A,
|
|
40
|
+
setRotation: M
|
|
41
41
|
});
|
|
42
|
-
let
|
|
43
|
-
pdf:
|
|
44
|
-
zoom:
|
|
45
|
-
rotation:
|
|
46
|
-
numPages:
|
|
47
|
-
canvasRefs:
|
|
48
|
-
}),
|
|
49
|
-
pdf:
|
|
50
|
-
zoom:
|
|
51
|
-
rotation:
|
|
52
|
-
numPages:
|
|
53
|
-
goToPage:
|
|
42
|
+
let Z = r({
|
|
43
|
+
pdf: T,
|
|
44
|
+
zoom: k,
|
|
45
|
+
rotation: j,
|
|
46
|
+
numPages: D,
|
|
47
|
+
canvasRefs: K
|
|
48
|
+
}), Q = a({
|
|
49
|
+
pdf: T,
|
|
50
|
+
zoom: k,
|
|
51
|
+
rotation: j,
|
|
52
|
+
numPages: D,
|
|
53
|
+
goToPage: X
|
|
54
54
|
});
|
|
55
55
|
l(() => {
|
|
56
56
|
(async () => {
|
|
@@ -59,24 +59,24 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
59
59
|
let t = new Uint8Array(e.target?.result);
|
|
60
60
|
try {
|
|
61
61
|
let e = await f.getDocument(t).promise;
|
|
62
|
-
|
|
62
|
+
E(e), O(e.numPages), P(null), I(null), H(/* @__PURE__ */ new Set()), W([]), K.current = Array(e.numPages).fill(null), q.current = Array(e.numPages).fill(null);
|
|
63
63
|
} catch (e) {
|
|
64
64
|
console.error("Errore caricamento:", e);
|
|
65
65
|
}
|
|
66
66
|
}, e.readAsArrayBuffer(h);
|
|
67
67
|
})();
|
|
68
68
|
}, [h]), l(() => {
|
|
69
|
-
if (!
|
|
70
|
-
|
|
69
|
+
if (!T) return;
|
|
70
|
+
H(/* @__PURE__ */ new Set());
|
|
71
71
|
let e = !1;
|
|
72
72
|
return (async () => {
|
|
73
|
-
let t =
|
|
74
|
-
if (await Promise.all(t),
|
|
73
|
+
let t = q.current.map((e) => e ? (e.cancel(), e.promise.catch(() => {})) : Promise.resolve());
|
|
74
|
+
if (await Promise.all(t), q.current = Array(T.numPages).fill(null), e) return;
|
|
75
75
|
let n = [];
|
|
76
|
-
for (let e = 1; e <=
|
|
77
|
-
let t = (await
|
|
78
|
-
scale:
|
|
79
|
-
rotation:
|
|
76
|
+
for (let e = 1; e <= T.numPages; e++) {
|
|
77
|
+
let t = (await T.getPage(e)).getViewport({
|
|
78
|
+
scale: k,
|
|
79
|
+
rotation: j
|
|
80
80
|
});
|
|
81
81
|
n.push({
|
|
82
82
|
width: t.width,
|
|
@@ -84,13 +84,13 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
if (!e) {
|
|
87
|
-
|
|
88
|
-
for (let t = 1; t <=
|
|
87
|
+
W(n);
|
|
88
|
+
for (let t = 1; t <= T.numPages; t++) {
|
|
89
89
|
if (e) return;
|
|
90
|
-
let n = await
|
|
91
|
-
scale:
|
|
92
|
-
rotation:
|
|
93
|
-
}), i =
|
|
90
|
+
let n = await T.getPage(t), r = n.getViewport({
|
|
91
|
+
scale: k,
|
|
92
|
+
rotation: j
|
|
93
|
+
}), i = K.current[t - 1];
|
|
94
94
|
if (i) {
|
|
95
95
|
let a = i.getContext("2d");
|
|
96
96
|
if (a) {
|
|
@@ -100,9 +100,9 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
100
100
|
viewport: r,
|
|
101
101
|
canvas: i
|
|
102
102
|
});
|
|
103
|
-
|
|
103
|
+
q.current[t - 1] = o;
|
|
104
104
|
try {
|
|
105
|
-
await o.promise, e ||
|
|
105
|
+
await o.promise, e || H((e) => new Set(e).add(t));
|
|
106
106
|
} catch (e) {
|
|
107
107
|
e && typeof e == "object" && "name" in e && e.name !== "RenderingCancelledException" && console.error("Render error:", e);
|
|
108
108
|
}
|
|
@@ -111,27 +111,27 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
})(), () => {
|
|
114
|
-
e = !0,
|
|
114
|
+
e = !0, q.current.forEach((e) => e?.cancel());
|
|
115
115
|
};
|
|
116
116
|
}, [
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
T,
|
|
118
|
+
k,
|
|
119
|
+
j
|
|
120
120
|
]);
|
|
121
|
-
let [
|
|
121
|
+
let [ee, $] = d([]);
|
|
122
122
|
return l(() => {
|
|
123
|
-
if (!
|
|
124
|
-
|
|
123
|
+
if (!T || L.length === 0) {
|
|
124
|
+
$([]);
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
127
|
let e = !1;
|
|
128
128
|
return (async () => {
|
|
129
129
|
let t = [];
|
|
130
|
-
for (let n of
|
|
130
|
+
for (let n of L) {
|
|
131
131
|
if (e) break;
|
|
132
|
-
let [r, i, a, o] = (await
|
|
133
|
-
scale:
|
|
134
|
-
rotation:
|
|
132
|
+
let [r, i, a, o] = (await T.getPage(n.page)).getViewport({
|
|
133
|
+
scale: k,
|
|
134
|
+
rotation: j
|
|
135
135
|
}).convertToViewportRectangle(n.pdfRect);
|
|
136
136
|
t.push({
|
|
137
137
|
page: n.page,
|
|
@@ -141,25 +141,25 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
141
141
|
height: Math.abs(o - i)
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
|
-
e ||
|
|
144
|
+
e || $(t);
|
|
145
145
|
})(), () => {
|
|
146
146
|
e = !0;
|
|
147
147
|
};
|
|
148
148
|
}, [
|
|
149
|
-
|
|
150
|
-
D,
|
|
149
|
+
L,
|
|
151
150
|
k,
|
|
152
|
-
|
|
151
|
+
j,
|
|
152
|
+
T
|
|
153
153
|
]), l(() => {
|
|
154
|
-
if (!
|
|
154
|
+
if (!N || !T) return;
|
|
155
155
|
let e = !1;
|
|
156
156
|
return (async () => {
|
|
157
|
-
let [t, n, r, i] = (await
|
|
158
|
-
scale:
|
|
159
|
-
rotation:
|
|
160
|
-
}).convertToViewportRectangle(
|
|
161
|
-
e ||
|
|
162
|
-
page:
|
|
157
|
+
let [t, n, r, i] = (await T.getPage(N.page)).getViewport({
|
|
158
|
+
scale: k,
|
|
159
|
+
rotation: j
|
|
160
|
+
}).convertToViewportRectangle(N.pdfRect);
|
|
161
|
+
e || I({
|
|
162
|
+
page: N.page,
|
|
163
163
|
x: Math.min(t, r),
|
|
164
164
|
y: Math.min(n, i),
|
|
165
165
|
width: Math.abs(r - t),
|
|
@@ -169,34 +169,37 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
169
169
|
e = !0;
|
|
170
170
|
};
|
|
171
171
|
}, [
|
|
172
|
-
|
|
173
|
-
D,
|
|
172
|
+
N,
|
|
174
173
|
k,
|
|
175
|
-
|
|
174
|
+
j,
|
|
175
|
+
T
|
|
176
176
|
]), /* @__PURE__ */ p(s, {
|
|
177
177
|
themeOverrides: b,
|
|
178
178
|
defaultTheme: x,
|
|
179
179
|
children: /* @__PURE__ */ p(e.Provider, {
|
|
180
180
|
value: {
|
|
181
|
-
pdf:
|
|
182
|
-
numPages:
|
|
183
|
-
zoom:
|
|
184
|
-
setZoom:
|
|
185
|
-
rotation:
|
|
186
|
-
setRotation:
|
|
187
|
-
currentPage:
|
|
188
|
-
goToPage:
|
|
189
|
-
containerRef:
|
|
190
|
-
canvasRefs:
|
|
181
|
+
pdf: T,
|
|
182
|
+
numPages: D,
|
|
183
|
+
zoom: k,
|
|
184
|
+
setZoom: A,
|
|
185
|
+
rotation: j,
|
|
186
|
+
setRotation: M,
|
|
187
|
+
currentPage: Y,
|
|
188
|
+
goToPage: X,
|
|
189
|
+
containerRef: G,
|
|
190
|
+
canvasRefs: K,
|
|
191
191
|
file: h,
|
|
192
|
-
highlight:
|
|
193
|
-
setHighlight:
|
|
194
|
-
searchMatches:
|
|
195
|
-
setSearchMatches:
|
|
196
|
-
onChangeFile: y
|
|
192
|
+
highlight: N,
|
|
193
|
+
setHighlight: P,
|
|
194
|
+
searchMatches: L,
|
|
195
|
+
setSearchMatches: R,
|
|
196
|
+
onChangeFile: y,
|
|
197
|
+
sidebarCollapsed: z,
|
|
198
|
+
setSidebarCollapsed: B
|
|
197
199
|
},
|
|
198
200
|
children: /* @__PURE__ */ m("div", {
|
|
199
|
-
className: c.appLayout
|
|
201
|
+
className: `${c.appLayout}${C ? ` ${C}` : ""}`,
|
|
202
|
+
style: w,
|
|
200
203
|
children: [_, /* @__PURE__ */ m("div", {
|
|
201
204
|
className: c.mainContent,
|
|
202
205
|
children: [v && /* @__PURE__ */ p("div", {
|
|
@@ -204,9 +207,9 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
204
207
|
children: v
|
|
205
208
|
}), /* @__PURE__ */ p("div", {
|
|
206
209
|
className: c.scrollContainer,
|
|
207
|
-
ref:
|
|
208
|
-
children: Array.from({ length:
|
|
209
|
-
let n =
|
|
210
|
+
ref: G,
|
|
211
|
+
children: Array.from({ length: D }, (e, t) => {
|
|
212
|
+
let n = V.has(t + 1), r = U[t];
|
|
210
213
|
return /* @__PURE__ */ m("div", {
|
|
211
214
|
className: c.pageWrapper,
|
|
212
215
|
children: [
|
|
@@ -220,17 +223,17 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
220
223
|
/* @__PURE__ */ p("canvas", {
|
|
221
224
|
className: c.pageCanvas,
|
|
222
225
|
ref: (e) => {
|
|
223
|
-
|
|
226
|
+
K.current[t] = e;
|
|
224
227
|
},
|
|
225
228
|
style: { display: n ? "block" : "none" }
|
|
226
229
|
}),
|
|
227
230
|
/* @__PURE__ */ p("div", {
|
|
228
231
|
className: `textLayer ${c.textLayer}`,
|
|
229
232
|
ref: (e) => {
|
|
230
|
-
|
|
233
|
+
Z.current[t] = e;
|
|
231
234
|
}
|
|
232
235
|
}),
|
|
233
|
-
|
|
236
|
+
Q.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ p("a", {
|
|
234
237
|
className: c.linkOverlay,
|
|
235
238
|
href: e.url && i(e.url) ? e.url : "#",
|
|
236
239
|
target: "_blank",
|
|
@@ -245,7 +248,7 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
245
248
|
(!e.url || !i(e.url)) && (t.preventDefault(), e.url || e._handleClick());
|
|
246
249
|
}
|
|
247
250
|
}, t)),
|
|
248
|
-
|
|
251
|
+
ee.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ p("div", {
|
|
249
252
|
className: c.searchMatchOverlay,
|
|
250
253
|
style: {
|
|
251
254
|
left: e.x,
|
|
@@ -254,17 +257,17 @@ var h = ({ file: h, workerSrc: g, sidebar: _, toolbar: v, onChangeFile: y, theme
|
|
|
254
257
|
height: e.height
|
|
255
258
|
}
|
|
256
259
|
}, t)),
|
|
257
|
-
|
|
260
|
+
N && F?.page === t + 1 && /* @__PURE__ */ p("div", {
|
|
258
261
|
className: c.highlightOverlay,
|
|
259
262
|
style: {
|
|
260
|
-
left:
|
|
261
|
-
top:
|
|
262
|
-
width:
|
|
263
|
-
height:
|
|
263
|
+
left: F.x,
|
|
264
|
+
top: F.y,
|
|
265
|
+
width: F.width,
|
|
266
|
+
height: F.height
|
|
264
267
|
}
|
|
265
268
|
})
|
|
266
269
|
]
|
|
267
|
-
}, `${t}-${
|
|
270
|
+
}, `${t}-${j}`);
|
|
268
271
|
})
|
|
269
272
|
})]
|
|
270
273
|
})]
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
appLayout: "
|
|
3
|
-
mainContent: "
|
|
4
|
-
toolbar: "
|
|
5
|
-
scrollContainer: "
|
|
6
|
-
pageWrapper: "
|
|
7
|
-
pageCanvas: "
|
|
8
|
-
textLayer: "
|
|
9
|
-
markedContent: "
|
|
10
|
-
endOfContent: "
|
|
11
|
-
selecting: "
|
|
12
|
-
pageSkeleton: "
|
|
13
|
-
shimmer: "
|
|
14
|
-
highlightOverlay: "
|
|
15
|
-
linkOverlay: "
|
|
16
|
-
searchMatchOverlay: "
|
|
2
|
+
appLayout: "_appLayout_8il7s_1",
|
|
3
|
+
mainContent: "_mainContent_8il7s_15",
|
|
4
|
+
toolbar: "_toolbar_8il7s_29",
|
|
5
|
+
scrollContainer: "_scrollContainer_8il7s_53",
|
|
6
|
+
pageWrapper: "_pageWrapper_8il7s_73",
|
|
7
|
+
pageCanvas: "_pageCanvas_8il7s_83",
|
|
8
|
+
textLayer: "_textLayer_8il7s_97",
|
|
9
|
+
markedContent: "_markedContent_8il7s_149",
|
|
10
|
+
endOfContent: "_endOfContent_8il7s_179",
|
|
11
|
+
selecting: "_selecting_8il7s_197",
|
|
12
|
+
pageSkeleton: "_pageSkeleton_8il7s_237",
|
|
13
|
+
shimmer: "_shimmer_8il7s_1",
|
|
14
|
+
highlightOverlay: "_highlightOverlay_8il7s_269",
|
|
15
|
+
linkOverlay: "_linkOverlay_8il7s_285",
|
|
16
|
+
searchMatchOverlay: "_searchMatchOverlay_8il7s_297"
|
|
17
17
|
};
|
|
18
18
|
//#endregion
|
|
19
19
|
export { e as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
navWrapper: "
|
|
3
|
-
pageInput: "
|
|
4
|
-
pageTotal: "
|
|
2
|
+
navWrapper: "_navWrapper_1s04k_1",
|
|
3
|
+
pageInput: "_pageInput_1s04k_13",
|
|
4
|
+
pageTotal: "_pageTotal_1s04k_69"
|
|
5
5
|
};
|
|
6
6
|
//#endregion
|
|
7
7
|
export { e as default };
|
|
@@ -6,7 +6,7 @@ import { c as a } from "react/compiler-runtime";
|
|
|
6
6
|
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/features/PDFSearch.tsx
|
|
8
8
|
function l(l) {
|
|
9
|
-
let u = a(
|
|
9
|
+
let u = a(35), { searchIcon: d, prevIcon: f, nextIcon: p, clearIcon: m } = l, { pdf: h, goToPage: g, setHighlight: _, setSearchMatches: v } = e(), [y, b] = i(""), [x, S] = i(0), C;
|
|
10
10
|
u[0] !== h || u[1] !== y ? (C = {
|
|
11
11
|
pdf: h,
|
|
12
12
|
query: y
|
|
@@ -32,14 +32,19 @@ function l(l) {
|
|
|
32
32
|
b(""), S(0), _(null);
|
|
33
33
|
}, u[14] = _, u[15] = N);
|
|
34
34
|
let P = N, F;
|
|
35
|
-
u[16]
|
|
35
|
+
u[16] === d ? F = u[17] : (F = /* @__PURE__ */ s("span", {
|
|
36
|
+
className: n.searchIconWrapper,
|
|
37
|
+
children: d
|
|
38
|
+
}), u[16] = d, u[17] = F);
|
|
39
|
+
let I;
|
|
40
|
+
u[18] !== M || u[19] !== y ? (I = /* @__PURE__ */ s("input", {
|
|
36
41
|
className: n.searchInput,
|
|
37
42
|
value: y,
|
|
38
43
|
onChange: M,
|
|
39
44
|
placeholder: "Cerca nel documento..."
|
|
40
|
-
}), u[
|
|
41
|
-
let
|
|
42
|
-
u[
|
|
45
|
+
}), u[18] = M, u[19] = y, u[20] = I) : I = u[20];
|
|
46
|
+
let L;
|
|
47
|
+
u[21] !== m || u[22] !== P || u[23] !== x || u[24] !== A || u[25] !== p || u[26] !== f || u[27] !== y || u[28] !== T || u[29] !== E ? (L = y && /* @__PURE__ */ c(o, { children: [
|
|
43
48
|
/* @__PURE__ */ s("span", {
|
|
44
49
|
className: n.counter,
|
|
45
50
|
children: T ? "…" : E === 0 ? "0" : `${x + 1}/${E}`
|
|
@@ -61,16 +66,16 @@ function l(l) {
|
|
|
61
66
|
onClick: P,
|
|
62
67
|
children: m
|
|
63
68
|
})
|
|
64
|
-
] }), u[
|
|
65
|
-
let
|
|
66
|
-
return u[
|
|
69
|
+
] }), u[21] = m, u[22] = P, u[23] = x, u[24] = A, u[25] = p, u[26] = f, u[27] = y, u[28] = T, u[29] = E, u[30] = L) : L = u[30];
|
|
70
|
+
let R;
|
|
71
|
+
return u[31] !== F || u[32] !== I || u[33] !== L ? (R = /* @__PURE__ */ c("div", {
|
|
67
72
|
className: n.wrapper,
|
|
68
73
|
children: [
|
|
69
|
-
d,
|
|
70
74
|
F,
|
|
71
|
-
I
|
|
75
|
+
I,
|
|
76
|
+
L
|
|
72
77
|
]
|
|
73
|
-
}), u[
|
|
78
|
+
}), u[31] = F, u[32] = I, u[33] = L, u[34] = R) : R = u[34], R;
|
|
74
79
|
}
|
|
75
80
|
//#endregion
|
|
76
81
|
export { l as PDFSearch };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
var e = {
|
|
2
|
-
wrapper: "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
wrapper: "_wrapper_4qrs1_1",
|
|
3
|
+
searchIconWrapper: "_searchIconWrapper_4qrs1_13",
|
|
4
|
+
searchInput: "_searchInput_4qrs1_25",
|
|
5
|
+
navButton: "_navButton_4qrs1_65",
|
|
6
|
+
counter: "_counter_4qrs1_107"
|
|
6
7
|
};
|
|
7
8
|
//#endregion
|
|
8
9
|
export { e as default };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { usePDFViewer as e } from "../../context/PDFViewerContext.js";
|
|
2
|
+
import t from "../ui/ToolbarButton.module.js";
|
|
3
|
+
import { c as n } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/features/PDFSidebarToggle.tsx
|
|
6
|
+
function i(i) {
|
|
7
|
+
let a = n(5), { collapseIcon: o, expandIcon: s } = i, { sidebarCollapsed: c, setSidebarCollapsed: l } = e();
|
|
8
|
+
if (!c) return null;
|
|
9
|
+
let u;
|
|
10
|
+
a[0] === l ? u = a[1] : (u = () => l(!1), a[0] = l, a[1] = u);
|
|
11
|
+
let d = s ?? o, f;
|
|
12
|
+
return a[2] !== u || a[3] !== d ? (f = /* @__PURE__ */ r("button", {
|
|
13
|
+
className: t.btn,
|
|
14
|
+
onClick: u,
|
|
15
|
+
title: "Espandi sidebar",
|
|
16
|
+
children: d
|
|
17
|
+
}), a[2] = u, a[3] = d, a[4] = f) : f = a[4], f;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { i as PDFSidebarToggle };
|
package/dist/es/index.js
CHANGED
|
@@ -14,4 +14,5 @@ import { PDFThumbnails as h } from "./components/features/PDFThumbnails.js";
|
|
|
14
14
|
import { PDFZoomControls as g } from "./components/features/PDFZoomControls.js";
|
|
15
15
|
import { PDFThemeToggle as _ } from "./components/features/PDFThemeToggle.js";
|
|
16
16
|
import { PDFPrintButton as v } from "./components/features/PDFPrintButton.js";
|
|
17
|
-
|
|
17
|
+
import { PDFSidebarToggle as y } from "./components/features/PDFSidebarToggle.js";
|
|
18
|
+
export { i as PDFAnnotations, a as PDFAnnotationsIcon, o as PDFChangeFile, s as PDFDownloadButton, c as PDFNavigation, l as PDFOutline, u as PDFPageFit, v as PDFPrintButton, d as PDFRotationControl, f as PDFSearch, r as PDFSidebar, y as PDFSidebarToggle, p as PDFSignatures, m as PDFSignaturesIcon, _ as PDFThemeToggle, h as PDFThumbnails, n as PDFViewer, g as PDFZoomControls, e as darkTheme, t as lightTheme };
|
package/dist/es/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_184n8_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._buttonBar_184n8_13{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._panelButton_184n8_33{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_184n8_33:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_184n8_73{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_184n8_73:hover{color:var(--pdf-accent-light)}._contentPanel_184n8_91{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_184n8_107{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_184n8_131{flex:1;overflow-y:auto}._appLayout_nel8e_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_nel8e_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_nel8e_29{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_nel8e_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_nel8e_73{margin-bottom:25px;position:relative}._pageCanvas_nel8e_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_nel8e_97{--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:0;--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_nel8e_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_nel8e_97>:not(._markedContent_nel8e_149),._textLayer_nel8e_97 ._markedContent_nel8e_149 span:not(._markedContent_nel8e_149){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_nel8e_97 ._markedContent_nel8e_149{display:contents}._textLayer_nel8e_97 ._endOfContent_nel8e_177{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_nel8e_97._selecting_nel8e_195 ._endOfContent_nel8e_177{top:0}._textLayer_nel8e_97 ::selection{background:#0000ff40}._textLayer_nel8e_97 br::selection{background:0 0}._pageSkeleton_nel8e_235{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_nel8e_1}@keyframes _shimmer_nel8e_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_nel8e_267{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_nel8e_283{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_nel8e_295{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_10scn_1{flex-direction:column;display:flex}._emptyState_10scn_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_10scn_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_10scn_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_10scn_65{cursor:pointer}._cardClickable_10scn_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_10scn_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_10scn_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_10scn_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_10scn_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_10scn_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_10scn_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_10scn_155{background-color:var(--pdf-accent);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_6ysgx_1{align-items:center;gap:2px;margin-left:auto;display:flex}._pageInput_6ysgx_15{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_6ysgx_15:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_6ysgx_15::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_6ysgx_15{-moz-appearance:textfield}._pageTotal_6ysgx_71{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_yinyt_1{align-items:center;gap:4px;display:flex}._searchInput_yinyt_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_yinyt_13:focus{border-color:var(--pdf-accent)}._searchInput_yinyt_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_yinyt_53{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_yinyt_53:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_yinyt_53:disabled{color:var(--pdf-border);cursor:default}._counter_yinyt_95{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_11831_1{flex-direction:column;display:flex}._emptyState_11831_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_11831_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_11831_45{cursor:pointer}._cardClickable_11831_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_11831_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_11831_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_11831_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_11831_113{background-color:#22c55e}._statusLabel_11831_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_11831_137{color:#16a34a}._fieldList_11831_145{flex-direction:column;gap:3px;display:flex}._fieldRow_11831_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_11831_167{color:var(--pdf-text-secondary)}._disclaimer_11831_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._iconWrapper_11831_197{justify-content:center;align-items:center;display:flex;position:relative}._badge_11831_211{background-color:var(--pdf-accent);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_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{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_8il7s_1{width:100%;height:100%;display:flex;overflow:hidden}._mainContent_8il7s_15{flex-direction:column;flex:1;min-width:0;display:flex}._toolbar_8il7s_29{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_8il7s_53{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_8il7s_73{margin-bottom:25px;position:relative}._pageCanvas_8il7s_83{box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block}._textLayer_8il7s_97{--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:0;--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_8il7s_97 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_8il7s_97>:not(._markedContent_8il7s_149),._textLayer_8il7s_97 ._markedContent_8il7s_149 span:not(._markedContent_8il7s_149){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_8il7s_97 ._markedContent_8il7s_149{display:contents}._textLayer_8il7s_97 ._endOfContent_8il7s_179{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_8il7s_97._selecting_8il7s_197 ._endOfContent_8il7s_179{top:0}._textLayer_8il7s_97 ::selection{background:#0000ff40}._textLayer_8il7s_97 br::selection{background:0 0}._pageSkeleton_8il7s_237{background:linear-gradient(90deg,#3f3f46 25%,#52525b 50%,#3f3f46 75%) 0 0/200% 100%;border-radius:1px;animation:1.4s infinite _shimmer_8il7s_1}@keyframes _shimmer_8il7s_1{0%{background-position:200% 0}to{background-position:-200% 0}}._highlightOverlay_8il7s_269{pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_8il7s_285{pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_8il7s_297{pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_10scn_1{flex-direction:column;display:flex}._emptyState_10scn_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_10scn_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_10scn_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_10scn_65{cursor:pointer}._cardClickable_10scn_65:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_10scn_81{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_10scn_95{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_10scn_107{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_10scn_117{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_10scn_129{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_10scn_141{justify-content:center;align-items:center;display:flex;position:relative}._badge_10scn_155{background-color:var(--pdf-accent);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_11831_1{flex-direction:column;display:flex}._emptyState_11831_11{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._card_11831_23{border:1px solid var(--pdf-border);background-color:var(--pdf-panel-bg);cursor:default;border-radius:6px;margin:8px;padding:12px;font-size:12px;transition:box-shadow .12s}._cardClickable_11831_45{cursor:pointer}._cardClickable_11831_45:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardSigned_11831_61{background-color:#f0fdf4;border-color:#bbf7d0}._cardHeader_11831_71{align-items:center;gap:7px;margin-bottom:8px;display:flex}._statusDot_11831_85{background-color:var(--pdf-border-light);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:flex}._statusDotSigned_11831_113{background-color:#22c55e}._statusLabel_11831_121{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:600}._statusLabelSigned_11831_137{color:#16a34a}._fieldList_11831_145{flex-direction:column;gap:3px;display:flex}._fieldRow_11831_157{color:var(--pdf-text-secondary);font-size:12px}._fieldLabel_11831_167{color:var(--pdf-text-secondary)}._disclaimer_11831_175{color:#a16207;background-color:#fefce8;border:1px solid #fef08a;border-radius:4px;margin:0 8px 12px;padding:8px 10px;font-size:10px;line-height:1.5}._iconWrapper_11831_197{justify-content:center;align-items:center;display:flex;position:relative}._badge_11831_211{background-color:var(--pdf-accent);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_116om_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_116om_11{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_116om_11:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_116om_37{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_116om_37:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_116om_55{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_116om_67{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailLabel_116om_75{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_116om_89{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}
|
|
2
2
|
/*$vite$:1*/
|
package/dist/index.d.ts
CHANGED
|
@@ -15,3 +15,4 @@ export { PDFThumbnails } from './components/features/PDFThumbnails';
|
|
|
15
15
|
export { PDFZoomControls } from './components/features/PDFZoomControls';
|
|
16
16
|
export { PDFThemeToggle } from './components/features/PDFThemeToggle';
|
|
17
17
|
export { PDFPrintButton } from './components/features/PDFPrintButton';
|
|
18
|
+
export { PDFSidebarToggle } from './components/features/PDFSidebarToggle';
|