pdf-tsx 0.14.0 → 0.15.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 +12 -0
- package/dist/cjs/components/PDFViewer.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbar.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbarSeparator.cjs +1 -1
- package/dist/cjs/components/ui/PDFToolbarSeparator.module.cjs +1 -1
- package/dist/cjs/hooks/useKeyboardShortcuts.cjs +1 -1
- package/dist/cjs/hooks/useScrollTracking.cjs +1 -1
- package/dist/cjs/hooks/useThumbnails.cjs +1 -1
- package/dist/cjs/pdf-tsx.css +1 -1
- package/dist/components/ui/PDFToolbarSeparator.d.ts +4 -1
- package/dist/es/components/PDFViewer.js +103 -103
- package/dist/es/components/ui/PDFToolbar.js +16 -4
- package/dist/es/components/ui/PDFToolbarSeparator.js +5 -1
- package/dist/es/components/ui/PDFToolbarSeparator.module.js +4 -1
- package/dist/es/hooks/useKeyboardShortcuts.js +3 -12
- package/dist/es/hooks/useScrollTracking.js +26 -19
- package/dist/es/hooks/useThumbnails.js +23 -47
- package/dist/es/pdf-tsx.css +1 -1
- package/dist/hooks/useKeyboardShortcuts.d.ts +1 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -466,6 +466,18 @@ function App() {
|
|
|
466
466
|
|
|
467
467
|
---
|
|
468
468
|
|
|
469
|
+
## Keyboard shortcuts
|
|
470
|
+
|
|
471
|
+
When focus is not on an input or textarea, the following keys are active:
|
|
472
|
+
|
|
473
|
+
| Key | Action |
|
|
474
|
+
|-----------------------------|------------------|
|
|
475
|
+
| `ArrowLeft` / `ArrowUp` | Previous page |
|
|
476
|
+
| `ArrowRight` / `ArrowDown` | Next page |
|
|
477
|
+
| `r` / `R` | Rotate +90° |
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
469
481
|
## Performance
|
|
470
482
|
|
|
471
483
|
`pdf-tsx` uses **virtual rendering**: only the pages near the current view are rendered at any one time. The default window is the current page ±2. Pages with an active highlight or search match are always included regardless of position.
|
|
@@ -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`),ee=require(`../hooks/useAnnotationLayer.cjs`),te=require(`../hooks/usePDFLoader.cjs`),ne=require(`../hooks/usePDFRenderer.cjs`),re=require(`../hooks/useOverlayRects.cjs`),o=require(`../utils/pdfFit.cjs`),ie=require(`../context/ThemeContext.cjs`),ae=require(`../context/LabelsContext.cjs`),s=require(`../hooks/useLabels.cjs`),c=require(`./PDFViewer.module.cjs`);let l=require(`react`);l=e.__toESM(l,1);let u=require(`pdfjs-dist`);u=e.__toESM(u,1);let d=require(`react/jsx-runtime`);var f=2;function oe({hasRead:e}){let t=s.useLabels();return(0,d.jsxs)(`div`,{className:`${c.default.requireReadBanner} ${e?c.default.requireReadDone:``}`,children:[e?(0,d.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,d.jsx)(`path`,{d:`M3 8l3.5 3.5L13 4.5`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}):(0,d.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,d.jsx)(`path`,{d:`M8 3v10M4 9l4 4 4-4`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,d.jsx)(`span`,{children:e?t.requireReadDone:t.requireReadPending})]})}var p=({file:e,workerSrc:s,sidebar:p,toolbar:m,onChangeFile:h,themeOverrides:se,defaultTheme:ce,defaultFit:g,language:le,className:_,style:ue,requireRead:v,onDocumentRead:y})=>{(0,l.useEffect)(()=>{u.GlobalWorkerOptions.workerSrc=s},[s]);let[b,x]=(0,l.useState)(1),[S,C]=(0,l.useState)(0),[w,T]=(0,l.useState)(null),[E,de]=(0,l.useState)([]),[D,fe]=(0,l.useState)(!1),[O,
|
|
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`),ee=require(`../hooks/useAnnotationLayer.cjs`),te=require(`../hooks/usePDFLoader.cjs`),ne=require(`../hooks/usePDFRenderer.cjs`),re=require(`../hooks/useOverlayRects.cjs`),o=require(`../utils/pdfFit.cjs`),ie=require(`../context/ThemeContext.cjs`),ae=require(`../context/LabelsContext.cjs`),s=require(`../hooks/useLabels.cjs`),c=require(`./PDFViewer.module.cjs`);let l=require(`react`);l=e.__toESM(l,1);let u=require(`pdfjs-dist`);u=e.__toESM(u,1);let d=require(`react/jsx-runtime`);var f=2;function oe({hasRead:e}){let t=s.useLabels();return(0,d.jsxs)(`div`,{className:`${c.default.requireReadBanner} ${e?c.default.requireReadDone:``}`,children:[e?(0,d.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,d.jsx)(`path`,{d:`M3 8l3.5 3.5L13 4.5`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}):(0,d.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,d.jsx)(`path`,{d:`M8 3v10M4 9l4 4 4-4`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,d.jsx)(`span`,{children:e?t.requireReadDone:t.requireReadPending})]})}var p=({file:e,workerSrc:s,sidebar:p,toolbar:m,onChangeFile:h,themeOverrides:se,defaultTheme:ce,defaultFit:g,language:le,className:_,style:ue,requireRead:v,onDocumentRead:y})=>{(0,l.useEffect)(()=>{u.GlobalWorkerOptions.workerSrc=s},[s]);let[b,x]=(0,l.useState)(1),[S,C]=(0,l.useState)(0),[w,T]=(0,l.useState)(null),[E,de]=(0,l.useState)([]),[D,fe]=(0,l.useState)(!1),[O,pe]=(0,l.useState)(g??null),[k,A]=(0,l.useState)(null),[j,M]=(0,l.useState)(!1),N=(0,l.useRef)(!1),P=(0,l.useRef)(null),F=(0,l.useRef)([]),I=(0,l.useRef)([]),L=(0,l.useRef)(S);(0,l.useEffect)(()=>{L.current=S},[S]);let[R,z]=(0,l.useState)(null);R!==e&&(z(e),T(null),M(!1)),(0,l.useEffect)(()=>{N.current=!1},[e]);let{pdf:B,numPages:V,loading:me}=te.usePDFLoader(e);(0,l.useEffect)(()=>{B&&(F.current=Array(B.numPages).fill(null),I.current=Array(B.numPages).fill(null))},[B]),(0,l.useEffect)(()=>{!B||!g||!P.current||o.computeFit(g,B,P.current,L.current).then(x)},[B,g]);let H=(0,l.useRef)(O);(0,l.useEffect)(()=>{H.current=O},[O]),(0,l.useEffect)(()=>{if(!B||!P.current)return;let e=P.current,t=new ResizeObserver(()=>{H.current&&o.computeFit(H.current,B,e,L.current).then(x)});return t.observe(e),()=>t.disconnect()},[B]);let{currentPage:U,goToPage:W}=n.useScrollTracking({numPages:V,containerRef:P,pageRefs:F});(0,l.useEffect)(()=>{V===0||U<V||(v&&!j&&M(!0),N.current||(N.current=!0,y?.()))},[U,V,v,j,y]);let G=(0,l.useMemo)(()=>{if(V===0)return[];let e=new Set,t=Math.max(U-f,1),n=Math.min(U+f,V);for(let r=t;r<=n;r++)e.add(r);w&&e.add(w.page);for(let t of E)e.add(t.page);return Array.from(e).sort((e,t)=>e-t)},[U,V,w,E]),{pageSizes:he,renderedPages:K}=ne.usePDFRenderer({pdf:B,zoom:b,rotation:S,visiblePages:G,canvasRefs:I}),q=(0,l.useMemo)(()=>{let e=new Set(G);for(let t of K)e.add(t);return Array.from(e).sort((e,t)=>e-t)},[G,K]);r.useKeyboardShortcuts({pdf:B,currentPage:U,goToPage:W,setRotation:C});let ge=i.useTextLayer({pdf:B,zoom:b,rotation:S,mountedPages:q,canvasRefs:I}),{linkOverlays:_e,noteOverlays:J}=ee.useAnnotationLayer({pdf:B,zoom:b,rotation:S,mountedPages:q,goToPage:W});(0,l.useEffect)(()=>{if(!k)return;let e=()=>A(null),t=e=>{e.key===`Escape`&&A(null)};return document.addEventListener(`click`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`click`,e),document.removeEventListener(`keydown`,t)}},[k]);let{overlayRect:Y,searchOverlays:ve}=re.useOverlayRects({pdf:B,highlight:w,searchMatches:E,zoom:b,rotation:S}),ye=(0,l.useCallback)((e,t)=>{(!e.url||!a.isSafeUrl(e.url))&&(t.preventDefault(),e.url||e._handleClick())},[]),X=(0,l.useRef)(null),Z=(0,l.useCallback)((e,t)=>{X.current&&clearTimeout(X.current);let n=t.clientY>window.innerHeight*.6;A({x:Math.min(t.clientX,window.innerWidth-304),y:n?window.innerHeight-t.clientY+8:t.clientY+12,above:n,contents:e.contents,title:e.title})},[]),Q=(0,l.useCallback)(()=>{X.current=setTimeout(()=>A(null),200)},[]),$=(0,l.useCallback)(e=>{T({page:e.page,pdfRect:e.pdfRect}),W(e.page)},[T,W]),be=(0,l.useMemo)(()=>({pdf:B,numPages:V,zoom:b,setZoom:x,rotation:S,setRotation:C,currentPage:U,goToPage:W,containerRef:P,canvasRefs:I,file:e,highlight:w,setHighlight:T,searchMatches:E,setSearchMatches:de,onChangeFile:h,sidebarCollapsed:D,setSidebarCollapsed:fe,fitMode:O,setFitMode:pe,navigationLocked:!!v&&!j}),[B,V,b,S,U,W,e,w,E,h,D,O,v,j]);return(0,d.jsx)(ie.ThemeProvider,{themeOverrides:se,defaultTheme:ce,children:(0,d.jsx)(ae.LabelsProvider,{language:le,children:(0,d.jsxs)(t.PDFViewerContext.Provider,{value:be,children:[(0,d.jsxs)(`div`,{className:`${c.default.appLayout}${_?` ${_}`:``}`,style:ue,children:[m&&(0,d.jsx)(`div`,{className:c.default.toolbar,children:m}),(0,d.jsxs)(`div`,{className:c.default.body,children:[p,(0,d.jsxs)(`div`,{className:c.default.scrollContainer,ref:P,children:[me&&(0,d.jsx)(`div`,{className:c.default.documentLoading}),Array.from({length:V},(e,t)=>{let n=K.has(t+1),r=he[t],i=q.includes(t+1);return(0,d.jsxs)(`div`,{className:c.default.pageWrapper,ref:e=>{F.current[t]=e},style:r?{width:r.width,height:r.height}:void 0,children:[r&&!n&&(0,d.jsx)(`div`,{className:c.default.pageSkeleton,style:{width:r.width,height:r.height}}),i&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`canvas`,{className:c.default.pageCanvas,ref:e=>{I.current[t]=e},style:{display:n?`block`:`none`}}),(0,d.jsx)(`div`,{className:`textLayer ${c.default.textLayer}`,ref:e=>{ge.current[t]=e}})]}),_e.filter(e=>e.page===t+1).map((e,t)=>(0,d.jsx)(`a`,{className:c.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=>ye(e,t)},t)),J.filter(e=>e.page===t+1).map((e,t)=>e.subtype===`Text`?(0,d.jsx)(`div`,{className:c.default.noteIconOverlay,style:{left:e.x,top:e.y,width:Math.max(e.width,26),height:Math.max(e.height,26)},onMouseEnter:t=>Z(e,t),onMouseLeave:Q,onClick:()=>$(e),children:(0,d.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 12 12`,fill:`none`,"aria-hidden":`true`,children:[(0,d.jsx)(`rect`,{x:`0.5`,y:`0.5`,width:`9`,height:`8`,rx:`1`,fill:`rgba(255,210,0,0.9)`,stroke:`rgba(160,120,0,0.7)`,strokeWidth:`1`}),(0,d.jsx)(`path`,{d:`M9.5 5.5v3l2.5-3z`,fill:`rgba(255,210,0,0.9)`,stroke:`rgba(160,120,0,0.7)`,strokeWidth:`1`}),(0,d.jsx)(`line`,{x1:`2`,y1:`3`,x2:`8`,y2:`3`,stroke:`rgba(90,60,0,0.8)`,strokeWidth:`1`,strokeLinecap:`round`}),(0,d.jsx)(`line`,{x1:`2`,y1:`5.5`,x2:`7`,y2:`5.5`,stroke:`rgba(90,60,0,0.8)`,strokeWidth:`1`,strokeLinecap:`round`})]})},t):(0,d.jsx)(`div`,{className:c.default.noteOverlay,style:{left:e.x,top:e.y,width:e.width,height:e.height},onMouseEnter:t=>Z(e,t),onMouseLeave:Q,onClick:()=>$(e)},t)),ve.filter(e=>e.page===t+1).map((e,t)=>(0,d.jsx)(`div`,{className:c.default.searchMatchOverlay,style:{left:e.x,top:e.y,width:e.width,height:e.height}},t)),w&&Y?.page===t+1&&(0,d.jsx)(`div`,{className:c.default.highlightOverlay,style:{left:Y.x,top:Y.y,width:Y.width,height:Y.height}})]},`${t}-${S}`)}),v&&(0,d.jsx)(oe,{hasRead:j})]})]})]}),k&&(0,d.jsxs)(`div`,{className:c.default.notePopover,style:k.above?{left:k.x,bottom:k.y}:{left:k.x,top:k.y},onMouseEnter:()=>{X.current&&clearTimeout(X.current)},onMouseLeave:Q,onClick:e=>e.stopPropagation(),children:[k.title&&(0,d.jsx)(`div`,{className:c.default.notePopoverTitle,children:k.title}),(0,d.jsx)(`p`,{className:c.default.notePopoverContent,children:k.contents})]})]})})})};exports.default=p;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../hooks/useLabels.cjs`),n=require(`./ToolbarButton.cjs`),r=require(`./PDFToolbar.module.cjs`),i=require(`./PDFToolbarDropdownContext.cjs`);let a=require(`react`);a=e.__toESM(a,1);let o=require(`react/jsx-runtime`);var s=40;function c({children:e,overflowIcon:c=`···`}){let l=t.useLabels(),u=(0,a.useRef)(null),d=(0,a.useRef)([]),f=(0,a.useRef)([]),[p,m]=(0,a.useState)(null),[h,g]=(0,a.useState)(!1),_=(0,a.useRef)(null),v=a.default.Children.toArray(e),y=(0,a.useCallback)(()=>{let e=u.current,t=f.current;if(
|
|
1
|
+
const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../hooks/useLabels.cjs`),n=require(`./ToolbarButton.cjs`),r=require(`./PDFToolbar.module.cjs`),i=require(`./PDFToolbarDropdownContext.cjs`);let a=require(`react`);a=e.__toESM(a,1);let o=require(`react/jsx-runtime`);var s=40;function c({children:e,overflowIcon:c=`···`}){let l=t.useLabels(),u=(0,a.useRef)(null),d=(0,a.useRef)([]),f=(0,a.useRef)([]),[p,m]=(0,a.useState)(null),[h,g]=(0,a.useState)(!1),_=(0,a.useRef)(null),v=a.default.Children.toArray(e),y=(0,a.useCallback)(()=>{let e=u.current;if(!e)return;d.current.forEach((e,t)=>{if(e){let n=e.offsetWidth;n>0&&(f.current[t]=n)}});let t=f.current;if(t.length===0)return;let n=e.offsetWidth;if(t.reduce((e,t)=>e+t,0)<=n){m(null);return}let r=0,i=0;for(let e=0;e<t.length&&r+t[e]+s<=n;e++)r+=t[e],i++;m(i)},[]);(0,a.useLayoutEffect)(()=>{y()},[y]),(0,a.useEffect)(()=>{let e=u.current;if(!e)return;let t=new ResizeObserver(()=>y());return t.observe(e),()=>t.disconnect()},[y]),(0,a.useEffect)(()=>{if(!h)return;let e=e=>{_.current?.contains(e.target)||g(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[h]);let b=p!==null&&p<v.length,x=b?v.slice(p):[];return(0,o.jsxs)(`div`,{ref:u,className:r.default.toolbar,children:[v.map((e,t)=>(0,o.jsx)(`div`,{ref:e=>{d.current[t]=e},className:r.default.item,style:p!==null&&t>=p?{display:`none`}:void 0,children:e},t)),b&&(0,o.jsxs)(`div`,{ref:_,className:r.default.overflowWrapper,children:[(0,o.jsx)(n.ToolbarButton,{onClick:()=>g(e=>!e),"aria-label":l.toolbarMoreOptions,"aria-expanded":h,"aria-haspopup":`true`,title:l.toolbarMoreOptions,className:h?r.default.overflowBtnActive:void 0,children:c}),h&&(0,o.jsx)(`div`,{className:r.default.dropdown,role:`menu`,children:x.map((e,t)=>{if(a.default.isValidElement(e)&&e.type.isSeparator)return(0,o.jsx)(i.PDFToolbarDropdownContext.Provider,{value:!0,children:e},t);let n=a.default.isValidElement(e)?e.type.toolbarLabelKey:void 0,s=n?l[n]:void 0;return(0,o.jsx)(`div`,{className:r.default.dropdownItem,role:`menuitem`,children:s?(0,o.jsxs)(`div`,{className:r.default.labeledItem,children:[(0,o.jsx)(`span`,{className:r.default.itemLabel,children:s}),(0,o.jsx)(`div`,{className:r.default.itemContent,children:e})]}):(0,o.jsx)(i.PDFToolbarDropdownContext.Provider,{value:!0,children:e})},t)})})]})]})}exports.PDFToolbar=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./PDFToolbarDropdownContext.cjs`),t=require(`./PDFToolbarSeparator.module.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i(){return(0,n.useContext)(e.PDFToolbarDropdownContext)?
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./PDFToolbarDropdownContext.cjs`),t=require(`./PDFToolbarSeparator.module.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i(){return(0,n.useContext)(e.PDFToolbarDropdownContext)?(0,r.jsx)(`div`,{className:t.default.separatorH,"aria-hidden":`true`}):(0,r.jsx)(`div`,{className:t.default.separator,"aria-hidden":`true`})}i.isSeparator=!0,exports.PDFToolbarSeparator=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={separator:`
|
|
1
|
+
var e={separator:`_separator_b9iob_1`,separatorH:`_separatorH_b9iob_9`};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);function r({pdf:e,currentPage:n,goToPage:r,
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);function r({pdf:e,currentPage:n,goToPage:r,setRotation:i}){(0,t.useEffect)(()=>{if(!e)return;let t=e=>{let t=e.target.tagName;if(!(t===`INPUT`||t===`TEXTAREA`))switch(e.key){case`ArrowLeft`:case`ArrowUp`:e.preventDefault(),r(n-1);break;case`ArrowRight`:case`ArrowDown`:e.preventDefault(),r(n+1);break;case`r`:case`R`:e.preventDefault(),i(e=>(e+90)%360);break}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,n,r,i])}exports.useKeyboardShortcuts=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=10;function n({numPages:n,containerRef:r,pageRefs:i}){let[a,o]=(0,e.useState)(1);return(0,e.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().top,n=i.current;for(let e=0;e<n.length;e++){let
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);let e=require(`react`);var t=10;function n({numPages:n,containerRef:r,pageRefs:i}){let[a,o]=(0,e.useState)(1),s=(0,e.useRef)(null),c=(0,e.useRef)(null);return(0,e.useEffect)(()=>{let e=r.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().top,n=i.current,r=-1;for(let e=0;e<n.length;e++){let i=n[e];i&&i.getBoundingClientRect().top-t<=150&&(r=e+1)}if(r!==-1){if(s.current!==null)if(r===s.current)s.current=null,c.current&&=(clearTimeout(c.current),null);else return;o(r)}};return e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)},[r,i]),{currentPage:a,goToPage:(0,e.useCallback)((e,a)=>{let l=Math.min(Math.max(e,1),n),u=i.current[l-1],d=r.current;if(u&&d){let e=u.getBoundingClientRect().top,n=d.getBoundingClientRect().top,r=d.scrollTop+(e-n)-t,i=a===void 0?r:r+a,f=()=>{s.current=null,c.current&&=(clearTimeout(c.current),null),d.removeEventListener(`wheel`,f),d.removeEventListener(`pointerdown`,f)};s.current=l,c.current&&clearTimeout(c.current),c.current=setTimeout(f,1e3),d.addEventListener(`wheel`,f,{once:!0}),d.addEventListener(`pointerdown`,f,{once:!0}),o(l),d.scrollTo({top:i,behavior:`smooth`})}},[n,r,i])}}exports.useScrollTracking=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);function r(
|
|
1
|
+
const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);function r({pdf:e,rotation:n,visiblePages:r}){let[i,a]=(0,t.useState)([]),[o,s]=(0,t.useState)(0),c=(0,t.useRef)(new Set),l=(0,t.useRef)({pdf:null,rotation:0});return(0,t.useEffect)(()=>{if(!e){a([]),s(0),c.current.clear(),l.current={pdf:null,rotation:0};return}if(l.current.pdf!==e||l.current.rotation!==n){l.current={pdf:e,rotation:n},c.current.clear(),a(Array(e.numPages).fill(null)),s(e=>e+1);return}let t=r.filter(e=>!c.current.has(e));if(t.length===0)return;let i=!1;return(async()=>{for(let r of t){if(i)break;let t=await e.getPage(r),o=t.getViewport({scale:.2,rotation:n}),s=document.createElement(`canvas`),l=s.getContext(`2d`);if(l){if(s.height=o.height,s.width=o.width,await t.render({canvasContext:l,viewport:o,canvas:s}).promise,i)break;c.current.add(r),a(e=>{let t=[...e];return t[r-1]=s.toDataURL(),t})}}})(),()=>{i=!0}},[e,n,r,o]),{thumbnails:i}}exports.useThumbnails=r;
|
package/dist/cjs/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_1xasy_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1xasy_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1xasy_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1xasy_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_1xasy_40{margin-bottom:25px;position:relative}._pageCanvas_1xasy_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1xasy_54{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1xasy_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1xasy_54>:not(._markedContent_1xasy_80),._textLayer_1xasy_54 ._markedContent_1xasy_80 span:not(._markedContent_1xasy_80){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1xasy_54 ._markedContent_1xasy_80{display:contents}._textLayer_1xasy_54 ._endOfContent_1xasy_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1xasy_54._selecting_1xasy_104 ._endOfContent_1xasy_95{top:0}._textLayer_1xasy_54 ::selection{background:#0000ff40}._textLayer_1xasy_54 br::selection{background:0 0}._documentLoading_1xasy_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1xasy_124:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1xasy_1}._pageSkeleton_1xasy_144{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1xasy_144:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1xasy_1}@keyframes _spin_1xasy_1{to{transform:rotate(360deg)}}._highlightOverlay_1xasy_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1xasy_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1xasy_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1xasy_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1xasy_204{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1xasy_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1xasy_221{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1xasy_245{background-color:#16a34abf}._notePopover_1xasy_249{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1xasy_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1xasy_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_uif34_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}
|
|
1
|
+
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_1xasy_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1xasy_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1xasy_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1xasy_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_1xasy_40{margin-bottom:25px;position:relative}._pageCanvas_1xasy_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1xasy_54{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1xasy_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1xasy_54>:not(._markedContent_1xasy_80),._textLayer_1xasy_54 ._markedContent_1xasy_80 span:not(._markedContent_1xasy_80){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1xasy_54 ._markedContent_1xasy_80{display:contents}._textLayer_1xasy_54 ._endOfContent_1xasy_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1xasy_54._selecting_1xasy_104 ._endOfContent_1xasy_95{top:0}._textLayer_1xasy_54 ::selection{background:#0000ff40}._textLayer_1xasy_54 br::selection{background:0 0}._documentLoading_1xasy_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1xasy_124:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1xasy_1}._pageSkeleton_1xasy_144{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1xasy_144:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1xasy_1}@keyframes _spin_1xasy_1{to{transform:rotate(360deg)}}._highlightOverlay_1xasy_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1xasy_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1xasy_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1xasy_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1xasy_204{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1xasy_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1xasy_221{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1xasy_245{background-color:#16a34abf}._notePopover_1xasy_249{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1xasy_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1xasy_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -54,107 +54,107 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
54
54
|
l(() => {
|
|
55
55
|
oe.GlobalWorkerOptions.workerSrc = g;
|
|
56
56
|
}, [g]);
|
|
57
|
-
let [C, w] = f(1), [T, E] = f(0), [D, O] = f(null), [k, me] = f([]), [A, he] = f(!1), [j,
|
|
57
|
+
let [C, w] = f(1), [T, E] = f(0), [D, O] = f(null), [k, me] = f([]), [A, he] = f(!1), [j, ge] = f(y ?? null), [M, N] = f(null), [P, F] = f(!1), I = d(!1), L = d(null), R = d([]), z = d([]), B = d(T);
|
|
58
58
|
l(() => {
|
|
59
|
-
|
|
59
|
+
B.current = T;
|
|
60
60
|
}, [T]);
|
|
61
|
-
let [
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
let [_e, ve] = f(null);
|
|
62
|
+
_e !== o && (ve(o), O(null), F(!1)), l(() => {
|
|
63
|
+
I.current = !1;
|
|
64
|
+
}, [o]);
|
|
65
|
+
let { pdf: V, numPages: H, loading: ye } = te(o);
|
|
64
66
|
l(() => {
|
|
65
|
-
|
|
66
|
-
}, [
|
|
67
|
-
!
|
|
68
|
-
}, [
|
|
69
|
-
let
|
|
67
|
+
V && (R.current = Array(V.numPages).fill(null), z.current = Array(V.numPages).fill(null));
|
|
68
|
+
}, [V]), l(() => {
|
|
69
|
+
!V || !y || !L.current || a(y, V, L.current, B.current).then(w);
|
|
70
|
+
}, [V, y]);
|
|
71
|
+
let U = d(j);
|
|
70
72
|
l(() => {
|
|
71
|
-
|
|
73
|
+
U.current = j;
|
|
72
74
|
}, [j]), l(() => {
|
|
73
|
-
if (!
|
|
74
|
-
let e =
|
|
75
|
-
|
|
75
|
+
if (!V || !L.current) return;
|
|
76
|
+
let e = L.current, t = new ResizeObserver(() => {
|
|
77
|
+
U.current && a(U.current, V, e, B.current).then(w);
|
|
76
78
|
});
|
|
77
79
|
return t.observe(e), () => t.disconnect();
|
|
78
|
-
}, [
|
|
79
|
-
let { currentPage:
|
|
80
|
-
numPages:
|
|
81
|
-
containerRef:
|
|
82
|
-
pageRefs:
|
|
80
|
+
}, [V]);
|
|
81
|
+
let { currentPage: W, goToPage: G } = t({
|
|
82
|
+
numPages: H,
|
|
83
|
+
containerRef: L,
|
|
84
|
+
pageRefs: R
|
|
83
85
|
});
|
|
84
86
|
l(() => {
|
|
85
|
-
|
|
87
|
+
H === 0 || W < H || (x && !P && F(!0), I.current || (I.current = !0, S?.()));
|
|
86
88
|
}, [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
W,
|
|
90
|
+
H,
|
|
89
91
|
x,
|
|
90
|
-
|
|
92
|
+
P,
|
|
91
93
|
S
|
|
92
94
|
]);
|
|
93
|
-
let
|
|
94
|
-
if (
|
|
95
|
-
let e = /* @__PURE__ */ new Set(), t = Math.max(
|
|
95
|
+
let K = u(() => {
|
|
96
|
+
if (H === 0) return [];
|
|
97
|
+
let e = /* @__PURE__ */ new Set(), t = Math.max(W - h, 1), n = Math.min(W + h, H);
|
|
96
98
|
for (let r = t; r <= n; r++) e.add(r);
|
|
97
99
|
D && e.add(D.page);
|
|
98
100
|
for (let t of k) e.add(t.page);
|
|
99
101
|
return Array.from(e).sort((e, t) => e - t);
|
|
100
102
|
}, [
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
W,
|
|
104
|
+
H,
|
|
103
105
|
D,
|
|
104
106
|
k
|
|
105
|
-
]), { pageSizes:
|
|
106
|
-
pdf:
|
|
107
|
+
]), { pageSizes: be, renderedPages: q } = ne({
|
|
108
|
+
pdf: V,
|
|
107
109
|
zoom: C,
|
|
108
110
|
rotation: T,
|
|
109
|
-
visiblePages:
|
|
110
|
-
canvasRefs:
|
|
111
|
-
}),
|
|
112
|
-
let e = new Set(
|
|
113
|
-
for (let t of
|
|
111
|
+
visiblePages: K,
|
|
112
|
+
canvasRefs: z
|
|
113
|
+
}), J = u(() => {
|
|
114
|
+
let e = new Set(K);
|
|
115
|
+
for (let t of q) e.add(t);
|
|
114
116
|
return Array.from(e).sort((e, t) => e - t);
|
|
115
|
-
}, [
|
|
117
|
+
}, [K, q]);
|
|
116
118
|
n({
|
|
117
|
-
pdf:
|
|
118
|
-
currentPage:
|
|
119
|
-
goToPage:
|
|
120
|
-
|
|
121
|
-
setRotation: E,
|
|
122
|
-
setFitMode: M
|
|
119
|
+
pdf: V,
|
|
120
|
+
currentPage: W,
|
|
121
|
+
goToPage: G,
|
|
122
|
+
setRotation: E
|
|
123
123
|
});
|
|
124
|
-
let
|
|
125
|
-
pdf:
|
|
124
|
+
let xe = r({
|
|
125
|
+
pdf: V,
|
|
126
126
|
zoom: C,
|
|
127
127
|
rotation: T,
|
|
128
|
-
mountedPages:
|
|
129
|
-
canvasRefs:
|
|
130
|
-
}), { linkOverlays:
|
|
131
|
-
pdf:
|
|
128
|
+
mountedPages: J,
|
|
129
|
+
canvasRefs: z
|
|
130
|
+
}), { linkOverlays: Se, noteOverlays: Ce } = ee({
|
|
131
|
+
pdf: V,
|
|
132
132
|
zoom: C,
|
|
133
133
|
rotation: T,
|
|
134
|
-
mountedPages:
|
|
135
|
-
goToPage:
|
|
134
|
+
mountedPages: J,
|
|
135
|
+
goToPage: G
|
|
136
136
|
});
|
|
137
137
|
l(() => {
|
|
138
|
-
if (!
|
|
139
|
-
let e = () =>
|
|
140
|
-
e.key === "Escape" &&
|
|
138
|
+
if (!M) return;
|
|
139
|
+
let e = () => N(null), t = (e) => {
|
|
140
|
+
e.key === "Escape" && N(null);
|
|
141
141
|
};
|
|
142
142
|
return document.addEventListener("click", e), document.addEventListener("keydown", t), () => {
|
|
143
143
|
document.removeEventListener("click", e), document.removeEventListener("keydown", t);
|
|
144
144
|
};
|
|
145
|
-
}, [
|
|
146
|
-
let { overlayRect:
|
|
147
|
-
pdf:
|
|
145
|
+
}, [M]);
|
|
146
|
+
let { overlayRect: Y, searchOverlays: we } = re({
|
|
147
|
+
pdf: V,
|
|
148
148
|
highlight: D,
|
|
149
149
|
searchMatches: k,
|
|
150
150
|
zoom: C,
|
|
151
151
|
rotation: T
|
|
152
|
-
}),
|
|
152
|
+
}), Te = c((e, t) => {
|
|
153
153
|
(!e.url || !i(e.url)) && (t.preventDefault(), e.url || e._handleClick());
|
|
154
|
-
}, []),
|
|
155
|
-
|
|
154
|
+
}, []), X = d(null), Z = c((e, t) => {
|
|
155
|
+
X.current && clearTimeout(X.current);
|
|
156
156
|
let n = t.clientY > window.innerHeight * .6;
|
|
157
|
-
|
|
157
|
+
N({
|
|
158
158
|
x: Math.min(t.clientX, window.innerWidth - 304),
|
|
159
159
|
y: n ? window.innerHeight - t.clientY + 8 : t.clientY + 12,
|
|
160
160
|
above: n,
|
|
@@ -162,23 +162,23 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
162
162
|
title: e.title
|
|
163
163
|
});
|
|
164
164
|
}, []), Q = c(() => {
|
|
165
|
-
|
|
165
|
+
X.current = setTimeout(() => N(null), 200);
|
|
166
166
|
}, []), $ = c((e) => {
|
|
167
167
|
O({
|
|
168
168
|
page: e.page,
|
|
169
169
|
pdfRect: e.pdfRect
|
|
170
|
-
}),
|
|
171
|
-
}, [O,
|
|
172
|
-
pdf:
|
|
173
|
-
numPages:
|
|
170
|
+
}), G(e.page);
|
|
171
|
+
}, [O, G]), Ee = u(() => ({
|
|
172
|
+
pdf: V,
|
|
173
|
+
numPages: H,
|
|
174
174
|
zoom: C,
|
|
175
175
|
setZoom: w,
|
|
176
176
|
rotation: T,
|
|
177
177
|
setRotation: E,
|
|
178
|
-
currentPage:
|
|
179
|
-
goToPage:
|
|
180
|
-
containerRef:
|
|
181
|
-
canvasRefs:
|
|
178
|
+
currentPage: W,
|
|
179
|
+
goToPage: G,
|
|
180
|
+
containerRef: L,
|
|
181
|
+
canvasRefs: z,
|
|
182
182
|
file: o,
|
|
183
183
|
highlight: D,
|
|
184
184
|
setHighlight: O,
|
|
@@ -188,15 +188,15 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
188
188
|
sidebarCollapsed: A,
|
|
189
189
|
setSidebarCollapsed: he,
|
|
190
190
|
fitMode: j,
|
|
191
|
-
setFitMode:
|
|
192
|
-
navigationLocked: !!x && !
|
|
191
|
+
setFitMode: ge,
|
|
192
|
+
navigationLocked: !!x && !P
|
|
193
193
|
}), [
|
|
194
|
+
V,
|
|
194
195
|
H,
|
|
195
|
-
U,
|
|
196
196
|
C,
|
|
197
197
|
T,
|
|
198
|
+
W,
|
|
198
199
|
G,
|
|
199
|
-
K,
|
|
200
200
|
o,
|
|
201
201
|
D,
|
|
202
202
|
k,
|
|
@@ -204,7 +204,7 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
204
204
|
A,
|
|
205
205
|
j,
|
|
206
206
|
x,
|
|
207
|
-
|
|
207
|
+
P
|
|
208
208
|
]);
|
|
209
209
|
return /* @__PURE__ */ p(ie, {
|
|
210
210
|
themeOverrides: ue,
|
|
@@ -223,15 +223,15 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
223
223
|
className: s.body,
|
|
224
224
|
children: [le, /* @__PURE__ */ m("div", {
|
|
225
225
|
className: s.scrollContainer,
|
|
226
|
-
ref:
|
|
226
|
+
ref: L,
|
|
227
227
|
children: [
|
|
228
|
-
|
|
229
|
-
Array.from({ length:
|
|
230
|
-
let n =
|
|
228
|
+
ye && /* @__PURE__ */ p("div", { className: s.documentLoading }),
|
|
229
|
+
Array.from({ length: H }, (e, t) => {
|
|
230
|
+
let n = q.has(t + 1), r = be[t], ee = J.includes(t + 1);
|
|
231
231
|
return /* @__PURE__ */ m("div", {
|
|
232
232
|
className: s.pageWrapper,
|
|
233
233
|
ref: (e) => {
|
|
234
|
-
|
|
234
|
+
R.current[t] = e;
|
|
235
235
|
},
|
|
236
236
|
style: r ? {
|
|
237
237
|
width: r.width,
|
|
@@ -248,16 +248,16 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
248
248
|
ee && /* @__PURE__ */ m(se, { children: [/* @__PURE__ */ p("canvas", {
|
|
249
249
|
className: s.pageCanvas,
|
|
250
250
|
ref: (e) => {
|
|
251
|
-
|
|
251
|
+
z.current[t] = e;
|
|
252
252
|
},
|
|
253
253
|
style: { display: n ? "block" : "none" }
|
|
254
254
|
}), /* @__PURE__ */ p("div", {
|
|
255
255
|
className: `textLayer ${s.textLayer}`,
|
|
256
256
|
ref: (e) => {
|
|
257
|
-
|
|
257
|
+
xe.current[t] = e;
|
|
258
258
|
}
|
|
259
259
|
})] }),
|
|
260
|
-
|
|
260
|
+
Se.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ p("a", {
|
|
261
261
|
className: s.linkOverlay,
|
|
262
262
|
href: e.url && i(e.url) ? e.url : "#",
|
|
263
263
|
target: "_blank",
|
|
@@ -268,9 +268,9 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
268
268
|
width: e.width,
|
|
269
269
|
height: e.height
|
|
270
270
|
},
|
|
271
|
-
onClick: (t) =>
|
|
271
|
+
onClick: (t) => Te(e, t)
|
|
272
272
|
}, t)),
|
|
273
|
-
|
|
273
|
+
Ce.filter((e) => e.page === t + 1).map((e, t) => e.subtype === "Text" ? /* @__PURE__ */ p("div", {
|
|
274
274
|
className: s.noteIconOverlay,
|
|
275
275
|
style: {
|
|
276
276
|
left: e.x,
|
|
@@ -278,7 +278,7 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
278
278
|
width: Math.max(e.width, 26),
|
|
279
279
|
height: Math.max(e.height, 26)
|
|
280
280
|
},
|
|
281
|
-
onMouseEnter: (t) =>
|
|
281
|
+
onMouseEnter: (t) => Z(e, t),
|
|
282
282
|
onMouseLeave: Q,
|
|
283
283
|
onClick: () => $(e),
|
|
284
284
|
children: /* @__PURE__ */ m("svg", {
|
|
@@ -332,11 +332,11 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
332
332
|
width: e.width,
|
|
333
333
|
height: e.height
|
|
334
334
|
},
|
|
335
|
-
onMouseEnter: (t) =>
|
|
335
|
+
onMouseEnter: (t) => Z(e, t),
|
|
336
336
|
onMouseLeave: Q,
|
|
337
337
|
onClick: () => $(e)
|
|
338
338
|
}, t)),
|
|
339
|
-
|
|
339
|
+
we.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ p("div", {
|
|
340
340
|
className: s.searchMatchOverlay,
|
|
341
341
|
style: {
|
|
342
342
|
left: e.x,
|
|
@@ -345,42 +345,42 @@ var g = ({ file: o, workerSrc: g, sidebar: le, toolbar: _, onChangeFile: v, them
|
|
|
345
345
|
height: e.height
|
|
346
346
|
}
|
|
347
347
|
}, t)),
|
|
348
|
-
D &&
|
|
348
|
+
D && Y?.page === t + 1 && /* @__PURE__ */ p("div", {
|
|
349
349
|
className: s.highlightOverlay,
|
|
350
350
|
style: {
|
|
351
|
-
left:
|
|
352
|
-
top:
|
|
353
|
-
width:
|
|
354
|
-
height:
|
|
351
|
+
left: Y.x,
|
|
352
|
+
top: Y.y,
|
|
353
|
+
width: Y.width,
|
|
354
|
+
height: Y.height
|
|
355
355
|
}
|
|
356
356
|
})
|
|
357
357
|
]
|
|
358
358
|
}, `${t}-${T}`);
|
|
359
359
|
}),
|
|
360
|
-
x && /* @__PURE__ */ p(ce, { hasRead:
|
|
360
|
+
x && /* @__PURE__ */ p(ce, { hasRead: P })
|
|
361
361
|
]
|
|
362
362
|
})]
|
|
363
363
|
})]
|
|
364
|
-
}),
|
|
364
|
+
}), M && /* @__PURE__ */ m("div", {
|
|
365
365
|
className: s.notePopover,
|
|
366
|
-
style:
|
|
367
|
-
left:
|
|
368
|
-
bottom:
|
|
366
|
+
style: M.above ? {
|
|
367
|
+
left: M.x,
|
|
368
|
+
bottom: M.y
|
|
369
369
|
} : {
|
|
370
|
-
left:
|
|
371
|
-
top:
|
|
370
|
+
left: M.x,
|
|
371
|
+
top: M.y
|
|
372
372
|
},
|
|
373
373
|
onMouseEnter: () => {
|
|
374
|
-
|
|
374
|
+
X.current && clearTimeout(X.current);
|
|
375
375
|
},
|
|
376
376
|
onMouseLeave: Q,
|
|
377
377
|
onClick: (e) => e.stopPropagation(),
|
|
378
|
-
children: [
|
|
378
|
+
children: [M.title && /* @__PURE__ */ p("div", {
|
|
379
379
|
className: s.notePopoverTitle,
|
|
380
|
-
children:
|
|
380
|
+
children: M.title
|
|
381
381
|
}), /* @__PURE__ */ p("p", {
|
|
382
382
|
className: s.notePopoverContent,
|
|
383
|
-
children:
|
|
383
|
+
children: M.contents
|
|
384
384
|
})]
|
|
385
385
|
})]
|
|
386
386
|
})
|
|
@@ -8,8 +8,16 @@ import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
|
8
8
|
var f = 40;
|
|
9
9
|
function p({ children: p, overflowIcon: m = "···" }) {
|
|
10
10
|
let h = e(), g = c(null), _ = c([]), v = c([]), [y, b] = l(null), [x, S] = l(!1), C = c(null), w = i.Children.toArray(p), T = a(() => {
|
|
11
|
-
let e = g.current
|
|
12
|
-
if (!e
|
|
11
|
+
let e = g.current;
|
|
12
|
+
if (!e) return;
|
|
13
|
+
_.current.forEach((e, t) => {
|
|
14
|
+
if (e) {
|
|
15
|
+
let n = e.offsetWidth;
|
|
16
|
+
n > 0 && (v.current[t] = n);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
let t = v.current;
|
|
20
|
+
if (t.length === 0) return;
|
|
13
21
|
let n = e.offsetWidth;
|
|
14
22
|
if (t.reduce((e, t) => e + t, 0) <= n) {
|
|
15
23
|
b(null);
|
|
@@ -20,8 +28,8 @@ function p({ children: p, overflowIcon: m = "···" }) {
|
|
|
20
28
|
b(i);
|
|
21
29
|
}, []);
|
|
22
30
|
s(() => {
|
|
23
|
-
|
|
24
|
-
}, []), o(() => {
|
|
31
|
+
T();
|
|
32
|
+
}, [T]), o(() => {
|
|
25
33
|
let e = g.current;
|
|
26
34
|
if (!e) return;
|
|
27
35
|
let t = new ResizeObserver(() => T());
|
|
@@ -59,6 +67,10 @@ function p({ children: p, overflowIcon: m = "···" }) {
|
|
|
59
67
|
className: n.dropdown,
|
|
60
68
|
role: "menu",
|
|
61
69
|
children: D.map((e, t) => {
|
|
70
|
+
if (i.isValidElement(e) && e.type.isSeparator) return /* @__PURE__ */ u(r.Provider, {
|
|
71
|
+
value: !0,
|
|
72
|
+
children: e
|
|
73
|
+
}, t);
|
|
62
74
|
let a = i.isValidElement(e) ? e.type.toolbarLabelKey : void 0, o = a ? h[a] : void 0;
|
|
63
75
|
return /* @__PURE__ */ u("div", {
|
|
64
76
|
className: n.dropdownItem,
|
|
@@ -4,10 +4,14 @@ import { useContext as n } from "react";
|
|
|
4
4
|
import { jsx as r } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/ui/PDFToolbarSeparator.tsx
|
|
6
6
|
function i() {
|
|
7
|
-
return n(e) ?
|
|
7
|
+
return n(e) ? /* @__PURE__ */ r("div", {
|
|
8
|
+
className: t.separatorH,
|
|
9
|
+
"aria-hidden": "true"
|
|
10
|
+
}) : /* @__PURE__ */ r("div", {
|
|
8
11
|
className: t.separator,
|
|
9
12
|
"aria-hidden": "true"
|
|
10
13
|
});
|
|
11
14
|
}
|
|
15
|
+
i.isSeparator = !0;
|
|
12
16
|
//#endregion
|
|
13
17
|
export { i as PDFToolbarSeparator };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEffect as e } from "react";
|
|
2
2
|
import "pdfjs-dist";
|
|
3
3
|
//#region src/hooks/useKeyboardShortcuts.ts
|
|
4
|
-
function t({ pdf: t, currentPage: n, goToPage: r,
|
|
4
|
+
function t({ pdf: t, currentPage: n, goToPage: r, setRotation: i }) {
|
|
5
5
|
e(() => {
|
|
6
6
|
if (!t) return;
|
|
7
7
|
let e = (e) => {
|
|
@@ -15,16 +15,9 @@ function t({ pdf: t, currentPage: n, goToPage: r, setZoom: i, setRotation: a, se
|
|
|
15
15
|
case "ArrowDown":
|
|
16
16
|
e.preventDefault(), r(n + 1);
|
|
17
17
|
break;
|
|
18
|
-
case "+":
|
|
19
|
-
case "=":
|
|
20
|
-
e.preventDefault(), o(null), i((e) => Math.min(e + .2, 3));
|
|
21
|
-
break;
|
|
22
|
-
case "-":
|
|
23
|
-
e.preventDefault(), o(null), i((e) => Math.max(e - .2, .2));
|
|
24
|
-
break;
|
|
25
18
|
case "r":
|
|
26
19
|
case "R":
|
|
27
|
-
e.preventDefault(),
|
|
20
|
+
e.preventDefault(), i((e) => (e + 90) % 360);
|
|
28
21
|
break;
|
|
29
22
|
}
|
|
30
23
|
};
|
|
@@ -33,9 +26,7 @@ function t({ pdf: t, currentPage: n, goToPage: r, setZoom: i, setRotation: a, se
|
|
|
33
26
|
t,
|
|
34
27
|
n,
|
|
35
28
|
r,
|
|
36
|
-
i
|
|
37
|
-
a,
|
|
38
|
-
o
|
|
29
|
+
i
|
|
39
30
|
]);
|
|
40
31
|
}
|
|
41
32
|
//#endregion
|
|
@@ -1,36 +1,43 @@
|
|
|
1
|
-
import { useCallback as e, useEffect as t,
|
|
1
|
+
import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
|
|
2
2
|
//#region src/hooks/useScrollTracking.ts
|
|
3
|
-
var
|
|
4
|
-
function
|
|
5
|
-
let [
|
|
3
|
+
var i = 10;
|
|
4
|
+
function a({ numPages: a, containerRef: o, pageRefs: s }) {
|
|
5
|
+
let [c, l] = r(1), u = n(null), d = n(null);
|
|
6
6
|
return t(() => {
|
|
7
|
-
let e =
|
|
7
|
+
let e = o.current;
|
|
8
8
|
if (!e) return;
|
|
9
9
|
let t = () => {
|
|
10
|
-
let t = e.getBoundingClientRect().top, n =
|
|
10
|
+
let t = e.getBoundingClientRect().top, n = s.current, r = -1;
|
|
11
11
|
for (let e = 0; e < n.length; e++) {
|
|
12
|
-
let
|
|
13
|
-
|
|
12
|
+
let i = n[e];
|
|
13
|
+
i && i.getBoundingClientRect().top - t <= 150 && (r = e + 1);
|
|
14
|
+
}
|
|
15
|
+
if (r !== -1) {
|
|
16
|
+
if (u.current !== null) if (r === u.current) u.current = null, d.current &&= (clearTimeout(d.current), null);
|
|
17
|
+
else return;
|
|
18
|
+
l(r);
|
|
14
19
|
}
|
|
15
20
|
};
|
|
16
21
|
return e.addEventListener("scroll", t), () => e.removeEventListener("scroll", t);
|
|
17
|
-
}, [
|
|
18
|
-
currentPage:
|
|
22
|
+
}, [o, s]), {
|
|
23
|
+
currentPage: c,
|
|
19
24
|
goToPage: e((e, t) => {
|
|
20
|
-
let n = Math.min(Math.max(e, 1),
|
|
21
|
-
if (
|
|
22
|
-
let e =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
let n = Math.min(Math.max(e, 1), a), r = s.current[n - 1], c = o.current;
|
|
26
|
+
if (r && c) {
|
|
27
|
+
let e = r.getBoundingClientRect().top, a = c.getBoundingClientRect().top, o = c.scrollTop + (e - a) - i, s = t === void 0 ? o : o + t, f = () => {
|
|
28
|
+
u.current = null, d.current &&= (clearTimeout(d.current), null), c.removeEventListener("wheel", f), c.removeEventListener("pointerdown", f);
|
|
29
|
+
};
|
|
30
|
+
u.current = n, d.current && clearTimeout(d.current), d.current = setTimeout(f, 1e3), c.addEventListener("wheel", f, { once: !0 }), c.addEventListener("pointerdown", f, { once: !0 }), l(n), c.scrollTo({
|
|
31
|
+
top: s,
|
|
25
32
|
behavior: "smooth"
|
|
26
|
-
})
|
|
33
|
+
});
|
|
27
34
|
}
|
|
28
35
|
}, [
|
|
29
|
-
i,
|
|
30
36
|
a,
|
|
31
|
-
o
|
|
37
|
+
o,
|
|
38
|
+
s
|
|
32
39
|
])
|
|
33
40
|
};
|
|
34
41
|
}
|
|
35
42
|
//#endregion
|
|
36
|
-
export {
|
|
43
|
+
export { a as useScrollTracking };
|
|
@@ -1,69 +1,45 @@
|
|
|
1
|
-
import { useEffect as e,
|
|
1
|
+
import { useEffect as e, useRef as t, useState as n } from "react";
|
|
2
2
|
import "pdfjs-dist";
|
|
3
3
|
//#region src/hooks/useThumbnails.ts
|
|
4
|
-
function r(
|
|
5
|
-
|
|
6
|
-
thumbnails: Array(t.numPages).fill(null),
|
|
7
|
-
version: e.version + 1
|
|
8
|
-
};
|
|
9
|
-
if (t.type === "set") {
|
|
10
|
-
let n = [...e.thumbnails];
|
|
11
|
-
return n[t.pageNum - 1] = t.dataUrl, {
|
|
12
|
-
thumbnails: n,
|
|
13
|
-
version: e.version
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
return e;
|
|
17
|
-
}
|
|
18
|
-
function i({ pdf: i, rotation: a, visiblePages: o }) {
|
|
19
|
-
let [{ thumbnails: s, version: c }, l] = t(r, {
|
|
20
|
-
thumbnails: [],
|
|
21
|
-
version: 0
|
|
22
|
-
}), u = n(/* @__PURE__ */ new Set()), d = n({
|
|
4
|
+
function r({ pdf: r, rotation: i, visiblePages: a }) {
|
|
5
|
+
let [o, s] = n([]), [c, l] = n(0), u = t(/* @__PURE__ */ new Set()), d = t({
|
|
23
6
|
pdf: null,
|
|
24
7
|
rotation: 0
|
|
25
8
|
});
|
|
26
9
|
return e(() => {
|
|
27
|
-
if (!
|
|
28
|
-
l({
|
|
29
|
-
type: "reset",
|
|
30
|
-
numPages: 0
|
|
31
|
-
}), u.current.clear(), d.current = {
|
|
10
|
+
if (!r) {
|
|
11
|
+
s([]), l(0), u.current.clear(), d.current = {
|
|
32
12
|
pdf: null,
|
|
33
13
|
rotation: 0
|
|
34
14
|
};
|
|
35
15
|
return;
|
|
36
16
|
}
|
|
37
|
-
if (d.current.pdf !==
|
|
17
|
+
if (d.current.pdf !== r || d.current.rotation !== i) {
|
|
38
18
|
d.current = {
|
|
39
|
-
pdf:
|
|
40
|
-
rotation:
|
|
41
|
-
}, u.current.clear(), l(
|
|
42
|
-
type: "reset",
|
|
43
|
-
numPages: i.numPages
|
|
44
|
-
});
|
|
19
|
+
pdf: r,
|
|
20
|
+
rotation: i
|
|
21
|
+
}, u.current.clear(), s(Array(r.numPages).fill(null)), l((e) => e + 1);
|
|
45
22
|
return;
|
|
46
23
|
}
|
|
47
|
-
let e =
|
|
24
|
+
let e = a.filter((e) => !u.current.has(e));
|
|
48
25
|
if (e.length === 0) return;
|
|
49
26
|
let t = !1;
|
|
50
27
|
return (async () => {
|
|
51
28
|
for (let n of e) {
|
|
52
29
|
if (t) break;
|
|
53
|
-
let e = await
|
|
30
|
+
let e = await r.getPage(n), a = e.getViewport({
|
|
54
31
|
scale: .2,
|
|
55
|
-
rotation:
|
|
56
|
-
}), o = document.createElement("canvas"),
|
|
57
|
-
if (
|
|
58
|
-
if (o.height =
|
|
59
|
-
canvasContext:
|
|
60
|
-
viewport:
|
|
32
|
+
rotation: i
|
|
33
|
+
}), o = document.createElement("canvas"), c = o.getContext("2d");
|
|
34
|
+
if (c) {
|
|
35
|
+
if (o.height = a.height, o.width = a.width, await e.render({
|
|
36
|
+
canvasContext: c,
|
|
37
|
+
viewport: a,
|
|
61
38
|
canvas: o
|
|
62
39
|
}).promise, t) break;
|
|
63
|
-
u.current.add(n),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
dataUrl: o.toDataURL()
|
|
40
|
+
u.current.add(n), s((e) => {
|
|
41
|
+
let t = [...e];
|
|
42
|
+
return t[n - 1] = o.toDataURL(), t;
|
|
67
43
|
});
|
|
68
44
|
}
|
|
69
45
|
}
|
|
@@ -71,11 +47,11 @@ function i({ pdf: i, rotation: a, visiblePages: o }) {
|
|
|
71
47
|
t = !0;
|
|
72
48
|
};
|
|
73
49
|
}, [
|
|
50
|
+
r,
|
|
74
51
|
i,
|
|
75
52
|
a,
|
|
76
|
-
o,
|
|
77
53
|
c
|
|
78
|
-
]), { thumbnails:
|
|
54
|
+
]), { thumbnails: o };
|
|
79
55
|
}
|
|
80
56
|
//#endregion
|
|
81
|
-
export {
|
|
57
|
+
export { r as useThumbnails };
|
package/dist/es/pdf-tsx.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_1xasy_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1xasy_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1xasy_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1xasy_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_1xasy_40{margin-bottom:25px;position:relative}._pageCanvas_1xasy_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1xasy_54{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1xasy_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1xasy_54>:not(._markedContent_1xasy_80),._textLayer_1xasy_54 ._markedContent_1xasy_80 span:not(._markedContent_1xasy_80){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1xasy_54 ._markedContent_1xasy_80{display:contents}._textLayer_1xasy_54 ._endOfContent_1xasy_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1xasy_54._selecting_1xasy_104 ._endOfContent_1xasy_95{top:0}._textLayer_1xasy_54 ::selection{background:#0000ff40}._textLayer_1xasy_54 br::selection{background:0 0}._documentLoading_1xasy_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1xasy_124:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1xasy_1}._pageSkeleton_1xasy_144{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1xasy_144:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1xasy_1}@keyframes _spin_1xasy_1{to{transform:rotate(360deg)}}._highlightOverlay_1xasy_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1xasy_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1xasy_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1xasy_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1xasy_204{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1xasy_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1xasy_221{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1xasy_245{background-color:#16a34abf}._notePopover_1xasy_249{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1xasy_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1xasy_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_uif34_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}
|
|
1
|
+
._wrapper_1kvg0_1{border-right:1px solid var(--pdf-border);height:100%;display:flex}._wrapperCollapsed_1kvg0_7{border-right:1px solid var(--pdf-border);background-color:var(--pdf-bg);flex-direction:column;height:100%;padding-top:4px;display:flex}._buttonBar_1kvg0_16{background-color:var(--pdf-bg);flex-direction:column;flex-shrink:0;gap:2px;width:48px;padding-top:4px;display:flex}._toggleButton_1kvg0_26{border-bottom:1px solid var(--pdf-border);border-radius:0;width:48px;margin:0;padding-bottom:6px}._panelButton_1kvg0_35{cursor:pointer;width:44px;height:44px;color:var(--pdf-text-muted);background-color:#0000;border:none;border-radius:6px;justify-content:center;align-items:center;margin:0 2px;transition:background-color .15s,color .15s;display:flex}._panelButton_1kvg0_35:hover{background-color:var(--pdf-surface);color:var(--pdf-text-secondary)}._panelButtonActive_1kvg0_57{background-color:var(--pdf-surface);color:var(--pdf-accent-light)}._panelButtonActive_1kvg0_57:hover{color:var(--pdf-accent-light)}._contentPanel_1kvg0_66{background-color:var(--pdf-panel-bg);border-right:1px solid var(--pdf-panel-border);flex-direction:column;width:260px;display:flex}._panelHeader_1kvg0_74{color:var(--pdf-text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-header-bg);flex-shrink:0;padding:10px 14px;font-size:11px;font-weight:600}._panelBody_1kvg0_86{flex:1;overflow-y:auto}._appLayout_1xasy_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1xasy_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1xasy_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1xasy_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_1xasy_40{margin-bottom:25px;position:relative}._pageCanvas_1xasy_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1xasy_54{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1xasy_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1xasy_54>:not(._markedContent_1xasy_80),._textLayer_1xasy_54 ._markedContent_1xasy_80 span:not(._markedContent_1xasy_80){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1xasy_54 ._markedContent_1xasy_80{display:contents}._textLayer_1xasy_54 ._endOfContent_1xasy_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1xasy_54._selecting_1xasy_104 ._endOfContent_1xasy_95{top:0}._textLayer_1xasy_54 ::selection{background:#0000ff40}._textLayer_1xasy_54 br::selection{background:0 0}._documentLoading_1xasy_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1xasy_124:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1xasy_1}._pageSkeleton_1xasy_144{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1xasy_144:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1xasy_1}@keyframes _spin_1xasy_1{to{transform:rotate(360deg)}}._highlightOverlay_1xasy_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1xasy_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1xasy_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1xasy_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1xasy_204{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1xasy_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1xasy_221{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1xasy_245{background-color:#16a34abf}._notePopover_1xasy_249{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1xasy_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1xasy_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
|
|
2
2
|
/*$vite$:1*/
|
|
@@ -3,9 +3,7 @@ interface UseKeyboardShortcutsOptions {
|
|
|
3
3
|
pdf: pdfjsLib.PDFDocumentProxy | null;
|
|
4
4
|
currentPage: number;
|
|
5
5
|
goToPage: (page: number) => void;
|
|
6
|
-
setZoom: React.Dispatch<React.SetStateAction<number>>;
|
|
7
6
|
setRotation: React.Dispatch<React.SetStateAction<number>>;
|
|
8
|
-
setFitMode: React.Dispatch<React.SetStateAction<"width" | "page" | null>>;
|
|
9
7
|
}
|
|
10
|
-
export declare function useKeyboardShortcuts({ pdf, currentPage, goToPage,
|
|
8
|
+
export declare function useKeyboardShortcuts({ pdf, currentPage, goToPage, setRotation, }: UseKeyboardShortcutsOptions): void;
|
|
11
9
|
export {};
|