pdf-tsx 0.17.1 → 0.17.3

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.
@@ -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"),ie=require("../hooks/usePinchZoom.cjs"),o=require("../utils/pdfFit.cjs"),ae=require("../context/ThemeContext.cjs"),oe=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 se({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:ce,defaultTheme:le,defaultFit:g,language:ue,className:_,style:de,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,D]=(0,l.useState)([]),[O,fe]=(0,l.useState)(!1),[k,A]=(0,l.useState)(g??null),[j,M]=(0,l.useState)(null),[N,P]=(0,l.useState)(!1),F=(0,l.useRef)(!1),I=(0,l.useRef)(null),L=(0,l.useRef)([]),R=(0,l.useRef)([]),z=(0,l.useRef)(S);(0,l.useEffect)(()=>{z.current=S},[S]);let[pe,B]=(0,l.useState)(null);pe!==e&&(B(e),T(null),P(!1)),(0,l.useEffect)(()=>{F.current=!1},[e]);let{pdf:V,numPages:H,loading:me}=te.usePDFLoader(e);(0,l.useEffect)(()=>{V&&(L.current=Array(V.numPages).fill(null),R.current=Array(V.numPages).fill(null))},[V]),(0,l.useEffect)(()=>{!V||!g||!I.current||o.computeFit(g,V,I.current,z.current).then(x)},[V,g]);let U=(0,l.useRef)(k);(0,l.useEffect)(()=>{U.current=k},[k]),(0,l.useEffect)(()=>{if(!V||!I.current)return;let e=I.current,t=new ResizeObserver(()=>{U.current&&o.computeFit(U.current,V,e,z.current).then(x)});return t.observe(e),()=>t.disconnect()},[V]);let{currentPage:W,goToPage:G}=n.useScrollTracking({numPages:H,containerRef:I,pageRefs:L});(0,l.useEffect)(()=>{H===0||W<H||(v&&!N&&P(!0),F.current||(F.current=!0,y?.()))},[W,H,v,N,y]);let K=(0,l.useMemo)(()=>{if(H===0)return[];let e=new Set,t=Math.max(W-f,1),n=Math.min(W+f,H);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)},[W,H,w,E]),{pageSizes:he,renderedPages:q}=ne.usePDFRenderer({pdf:V,zoom:b,rotation:S,visiblePages:K,canvasRefs:R}),J=(0,l.useMemo)(()=>{let e=new Set(K);for(let t of q)e.add(t);return Array.from(e).sort((e,t)=>e-t)},[K,q]);r.useKeyboardShortcuts({pdf:V,currentPage:W,goToPage:G,setRotation:C}),ie.usePinchZoom(I,b,x,A);let ge=i.useTextLayer({pdf:V,zoom:b,rotation:S,mountedPages:J,canvasRefs:R}),{linkOverlays:_e,noteOverlays:ve}=ee.useAnnotationLayer({pdf:V,zoom:b,rotation:S,mountedPages:J,goToPage:G});(0,l.useEffect)(()=>{if(!j)return;let e=()=>M(null),t=e=>{e.key===`Escape`&&M(null)};return document.addEventListener(`click`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`click`,e),document.removeEventListener(`keydown`,t)}},[j]);let{overlayRect:Y,searchOverlays:ye}=re.useOverlayRects({pdf:V,highlight:w,searchMatches:E,zoom:b,rotation:S}),be=(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;M({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(()=>M(null),200)},[]),$=(0,l.useCallback)(e=>{T({page:e.page,pdfRect:e.pdfRect}),G(e.page)},[T,G]),xe=(0,l.useMemo)(()=>({pdf:V,numPages:H,zoom:b,setZoom:x,rotation:S,setRotation:C,currentPage:W,goToPage:G,containerRef:I,canvasRefs:R,file:e,highlight:w,setHighlight:T,searchMatches:E,setSearchMatches:D,onChangeFile:h,sidebarCollapsed:O,setSidebarCollapsed:fe,fitMode:k,setFitMode:A,navigationLocked:!!v&&!N}),[V,H,b,S,W,G,e,w,E,h,O,k,v,N]);return(0,d.jsx)(ae.ThemeProvider,{themeOverrides:ce,defaultTheme:le,children:(0,d.jsx)(oe.LabelsProvider,{language:ue,children:(0,d.jsxs)(t.PDFViewerContext.Provider,{value:xe,children:[(0,d.jsxs)(`div`,{className:`${c.default.appLayout}${_?` ${_}`:``}`,style:de,children:[m&&(0,d.jsx)(`div`,{className:c.default.toolbar,children:m}),(0,d.jsxs)(`div`,{className:c.default.body,children:[p,(0,d.jsx)(`div`,{className:c.default.scrollContainer,ref:I,children:(0,d.jsxs)(`div`,{className:c.default.scrollInner,children:[me&&(0,d.jsx)(`div`,{className:c.default.documentLoading}),Array.from({length:H},(e,t)=>{let n=q.has(t+1),r=he[t],i=J.includes(t+1);return(0,d.jsxs)(`div`,{className:c.default.pageWrapper,ref:e=>{L.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=>{R.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=>be(e,t)},t)),ve.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)),ye.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)(se,{hasRead:N})]})})]})]}),j&&(0,d.jsxs)(`div`,{className:c.default.notePopover,style:j.above?{left:j.x,bottom:j.y}:{left:j.x,top:j.y},onMouseEnter:()=>{X.current&&clearTimeout(X.current)},onMouseLeave:Q,onClick:e=>e.stopPropagation(),children:[j.title&&(0,d.jsx)(`div`,{className:c.default.notePopoverTitle,children:j.title}),(0,d.jsx)(`p`,{className:c.default.notePopoverContent,children:j.contents})]})]})})})};exports.default=p;
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"),ie=require("../hooks/usePinchZoom.cjs"),o=require("../utils/pdfFit.cjs"),ae=require("../context/ThemeContext.cjs"),oe=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 se({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:ce,defaultTheme:le,defaultFit:g,language:ue,className:_,style:de,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,D]=(0,l.useState)([]),[O,fe]=(0,l.useState)(!1),[k,A]=(0,l.useState)(g??null),[j,M]=(0,l.useState)(null),[N,P]=(0,l.useState)(!1),F=(0,l.useRef)(!1),I=(0,l.useRef)(null),L=(0,l.useRef)([]),R=(0,l.useRef)([]),z=(0,l.useRef)(S);(0,l.useEffect)(()=>{z.current=S},[S]);let[pe,B]=(0,l.useState)(null);pe!==e&&(B(e),T(null),P(!1)),(0,l.useEffect)(()=>{F.current=!1},[e]);let{pdf:V,numPages:H,loading:me}=te.usePDFLoader(e);(0,l.useEffect)(()=>{V&&(L.current=Array(V.numPages).fill(null),R.current=Array(V.numPages).fill(null))},[V]),(0,l.useEffect)(()=>{!V||!g||!I.current||o.computeFit(g,V,I.current,z.current).then(x)},[V,g]);let U=(0,l.useRef)(k);(0,l.useEffect)(()=>{U.current=k},[k]),(0,l.useEffect)(()=>{if(!V||!I.current)return;let e=I.current,t=new ResizeObserver(()=>{U.current&&o.computeFit(U.current,V,e,z.current).then(x)});return t.observe(e),()=>t.disconnect()},[V]);let{currentPage:W,goToPage:G}=n.useScrollTracking({numPages:H,containerRef:I,pageRefs:L});(0,l.useEffect)(()=>{H===0||W<H||(v&&!N&&P(!0),F.current||(F.current=!0,y?.()))},[W,H,v,N,y]);let K=(0,l.useMemo)(()=>{if(H===0)return[];let e=new Set,t=Math.max(W-f,1),n=Math.min(W+f,H);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)},[W,H,w,E]),{pageSizes:he,renderedPages:q}=ne.usePDFRenderer({pdf:V,zoom:b,rotation:S,visiblePages:K,canvasRefs:R}),J=(0,l.useMemo)(()=>{let e=new Set(K);for(let t of q)e.add(t);return Array.from(e).sort((e,t)=>e-t)},[K,q]);r.useKeyboardShortcuts({pdf:V,currentPage:W,goToPage:G,setRotation:C}),ie.usePinchZoom(I,b,x,A);let ge=i.useTextLayer({pdf:V,zoom:b,rotation:S,mountedPages:J,canvasRefs:R}),{linkOverlays:_e,noteOverlays:ve}=ee.useAnnotationLayer({pdf:V,zoom:b,rotation:S,mountedPages:J,goToPage:G});(0,l.useEffect)(()=>{if(!j)return;let e=()=>M(null),t=e=>{e.key===`Escape`&&M(null)};return document.addEventListener(`click`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`click`,e),document.removeEventListener(`keydown`,t)}},[j]);let{overlayRect:Y,searchOverlays:ye}=re.useOverlayRects({pdf:V,highlight:w,searchMatches:E,zoom:b,rotation:S}),be=(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;M({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(()=>M(null),200)},[]),$=(0,l.useCallback)(e=>{T({page:e.page,pdfRect:e.pdfRect}),G(e.page)},[T,G]),xe=(0,l.useMemo)(()=>({pdf:V,numPages:H,zoom:b,setZoom:x,rotation:S,setRotation:C,currentPage:W,goToPage:G,containerRef:I,canvasRefs:R,file:e,highlight:w,setHighlight:T,searchMatches:E,setSearchMatches:D,onChangeFile:h,sidebarCollapsed:O,setSidebarCollapsed:fe,fitMode:k,setFitMode:A,navigationLocked:!!v&&!N}),[V,H,b,S,W,G,e,w,E,h,O,k,v,N]);return(0,d.jsx)(ae.ThemeProvider,{themeOverrides:ce,defaultTheme:le,children:(0,d.jsx)(oe.LabelsProvider,{language:ue,children:(0,d.jsxs)(t.PDFViewerContext.Provider,{value:xe,children:[(0,d.jsxs)(`div`,{className:`${c.default.appLayout}${_?` ${_}`:``}`,style:de,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:I,children:[me&&(0,d.jsx)(`div`,{className:c.default.documentLoading}),Array.from({length:H},(e,t)=>{let n=q.has(t+1),r=he[t],i=J.includes(t+1);return(0,d.jsxs)(`div`,{className:c.default.pageWrapper,ref:e=>{L.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=>{R.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=>be(e,t)},t)),ve.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)),ye.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)(se,{hasRead:N})]})]})]}),j&&(0,d.jsxs)(`div`,{className:c.default.notePopover,style:j.above?{left:j.x,bottom:j.y}:{left:j.x,top:j.y},onMouseEnter:()=>{X.current&&clearTimeout(X.current)},onMouseLeave:Q,onClick:e=>e.stopPropagation(),children:[j.title&&(0,d.jsx)(`div`,{className:c.default.notePopoverTitle,children:j.title}),(0,d.jsx)(`p`,{className:c.default.notePopoverContent,children:j.contents})]})]})})})};exports.default=p;
@@ -1 +1 @@
1
- var e={appLayout:`_appLayout_1kgj9_1`,body:`_body_1kgj9_9`,toolbar:`_toolbar_1kgj9_17`,scrollContainer:`_scrollContainer_1kgj9_29`,scrollInner:`_scrollInner_1kgj9_37`,pageWrapper:`_pageWrapper_1kgj9_46`,pageCanvas:`_pageCanvas_1kgj9_51`,textLayer:`_textLayer_1kgj9_60`,markedContent:`_markedContent_1kgj9_86`,endOfContent:`_endOfContent_1kgj9_101`,selecting:`_selecting_1kgj9_110`,documentLoading:`_documentLoading_1kgj9_130`,spin:`_spin_1kgj9_1`,pageSkeleton:`_pageSkeleton_1kgj9_150`,highlightOverlay:`_highlightOverlay_1kgj9_179`,linkOverlay:`_linkOverlay_1kgj9_188`,searchMatchOverlay:`_searchMatchOverlay_1kgj9_195`,noteOverlay:`_noteOverlay_1kgj9_203`,noteIconOverlay:`_noteIconOverlay_1kgj9_210`,requireReadBanner:`_requireReadBanner_1kgj9_227`,requireReadDone:`_requireReadDone_1kgj9_251`,notePopover:`_notePopover_1kgj9_255`,notePopoverTitle:`_notePopoverTitle_1kgj9_268`,notePopoverContent:`_notePopoverContent_1kgj9_275`};exports.default=e;
1
+ var e={appLayout:`_appLayout_13t77_1`,body:`_body_13t77_9`,toolbar:`_toolbar_13t77_17`,scrollContainer:`_scrollContainer_13t77_29`,pageWrapper:`_pageWrapper_13t77_40`,pageCanvas:`_pageCanvas_13t77_45`,textLayer:`_textLayer_13t77_54`,markedContent:`_markedContent_13t77_80`,endOfContent:`_endOfContent_13t77_95`,selecting:`_selecting_13t77_104`,documentLoading:`_documentLoading_13t77_124`,spin:`_spin_13t77_1`,pageSkeleton:`_pageSkeleton_13t77_144`,highlightOverlay:`_highlightOverlay_13t77_173`,linkOverlay:`_linkOverlay_13t77_182`,searchMatchOverlay:`_searchMatchOverlay_13t77_189`,noteOverlay:`_noteOverlay_13t77_197`,noteIconOverlay:`_noteIconOverlay_13t77_204`,requireReadBanner:`_requireReadBanner_13t77_221`,requireReadDone:`_requireReadDone_13t77_245`,notePopover:`_notePopover_13t77_249`,notePopoverTitle:`_notePopoverTitle_13t77_262`,notePopoverContent:`_notePopoverContent_13t77_269`};exports.default=e;
@@ -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;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
+ 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),d.current.forEach(e=>{e&&t.observe(e)}),()=>t.disconnect()},[y,v.length]),(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
- const e=require("../_virtual/_rolldown/runtime.cjs");let t=require("react"),n=require("pdfjs-dist");n=e.__toESM(n,1);function r({pdf:e,zoom:n,rotation:r,visiblePages:i,canvasRefs:a}){let[o,s]=(0,t.useState)([]),[c,l]=(0,t.useState)(new Set),u=(0,t.useRef)([]),d=(0,t.useRef)(new Set),f=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{if(!e)return;f.current=!1,d.current=new Set,l(new Set);let t=!1;return(async()=>{let i=u.current.map(e=>e?(e.cancel(),e.promise.catch(()=>{})):Promise.resolve());if(await Promise.all(i),u.current=Array(e.numPages).fill(null),t)return;let a=await e.getPage(1);if(t)return;let o=a.getViewport({scale:n,rotation:r}),c={width:o.width,height:o.height};s(Array(e.numPages).fill(c));let l=await Promise.all(Array.from({length:e.numPages},async(t,i)=>{let o=(i===0?a:await e.getPage(i+1)).getViewport({scale:n,rotation:r});return{width:o.width,height:o.height}}));t||(f.current=!0,s(l))})(),()=>{t=!0,u.current.forEach(e=>e?.cancel())}},[e,n,r]),(0,t.useEffect)(()=>{if(!e||o.length!==e.numPages||!f.current)return;let t=!1;return(async()=>{for(let o of i){if(t||d.current.has(o))continue;let i=await e.getPage(o);if(t)return;let s=window.devicePixelRatio||1,c=i.getViewport({scale:n,rotation:r}),f=i.getViewport({scale:n*s,rotation:r}),p=a.current[o-1];if(!p)continue;let m=p.getContext(`2d`);if(!m)continue;let h=u.current[o-1];if(h&&(h.cancel(),await h.promise.catch(()=>{}),t))return;p.width=f.width,p.height=f.height,p.style.width=`${c.width}px`,p.style.height=`${c.height}px`;let g=i.render({canvasContext:m,viewport:f,canvas:p});u.current[o-1]=g;try{await g.promise,t||(d.current=new Set(d.current).add(o),l(e=>{if(e.has(o))return e;let t=new Set(e);return t.add(o),t}))}catch(e){e&&typeof e==`object`&&`name`in e&&e.name!==`RenderingCancelledException`&&console.error(`Render error:`,e)}finally{u.current[o-1]===g&&(u.current[o-1]=null)}}})(),()=>{t=!0}},[e,o,r,i,n,a]),{pageSizes:o,renderedPages:c}}exports.usePDFRenderer=r;
1
+ const e=require("../_virtual/_rolldown/runtime.cjs");let t=require("react"),n=require("pdfjs-dist");n=e.__toESM(n,1);function r(e,t,n,r){let i=e.getContext(`2d`);if(!i)return null;let a=t.getViewport({scale:n,rotation:r}),o=window.devicePixelRatio||1,s=Math.min(1,4096/Math.max(a.width,a.height)),c=Math.sqrt(Math.min(1,16777216/(a.width*a.height))),l=Math.max(.1,Math.min(o,s,c));l<o&&console.warn(`[pdf-tsx] canvas clamped to avoid blank render: page=${t.pageNumber} zoom=${n} dpr=${o} requested=${Math.round(a.width*o)}x${Math.round(a.height*o)}px clamped=${Math.round(a.width*l)}x${Math.round(a.height*l)}px`);let u=t.getViewport({scale:n*l,rotation:r});return e.width=u.width,e.height=u.height,e.style.width=`${a.width}px`,e.style.height=`${a.height}px`,t.render({canvasContext:i,viewport:u,canvas:e})}function i({pdf:e,zoom:n,rotation:i,visiblePages:a,canvasRefs:o}){let[s,c]=(0,t.useState)([]),[l,u]=(0,t.useState)(new Set),d=(0,t.useRef)([]),f=(0,t.useRef)(new Set),p=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{if(!e)return;p.current=!1,f.current=new Set,u(new Set);let t=!1;return(async()=>{let r=d.current.map(e=>e?(e.cancel(),e.promise.catch(()=>{})):Promise.resolve());if(await Promise.all(r),d.current=Array(e.numPages).fill(null),t)return;let a=await e.getPage(1);if(t)return;let o=a.getViewport({scale:n,rotation:i}),s={width:o.width,height:o.height};c(Array(e.numPages).fill(s));let l=await Promise.all(Array.from({length:e.numPages},async(t,r)=>{let o=(r===0?a:await e.getPage(r+1)).getViewport({scale:n,rotation:i});return{width:o.width,height:o.height}}));t||(p.current=!0,c(l))})(),()=>{t=!0,d.current.forEach(e=>e?.cancel())}},[e,n,i]),(0,t.useEffect)(()=>{if(!e||s.length!==e.numPages||!p.current)return;let t=!1;return(async()=>{for(let s of a){if(t||f.current.has(s))continue;let a=await e.getPage(s);if(t)return;let c=o.current[s-1];if(!c)continue;let l=d.current[s-1];if(l&&(l.cancel(),await l.promise.catch(()=>{}),t))return;let p=r(c,a,n,i);if(p){d.current[s-1]=p;try{await p.promise,t||(f.current=new Set(f.current).add(s),u(e=>{if(e.has(s))return e;let t=new Set(e);return t.add(s),t}))}catch(e){e&&typeof e==`object`&&`name`in e&&e.name!==`RenderingCancelledException`&&console.error(`Render error:`,e)}finally{d.current[s-1]===p&&(d.current[s-1]=null)}}}})(),()=>{t=!0}},[e,s,i,a,n,o]),{pageSizes:s,renderedPages:l}}exports.usePDFRenderer=i;
@@ -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_1kgj9_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1kgj9_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1kgj9_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1kgj9_29{background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex:1;position:relative;overflow:auto}._scrollInner_1kgj9_37{flex-direction:column;align-items:center;width:max-content;min-width:100%;padding:10px 20px;display:flex}._pageWrapper_1kgj9_46{margin-bottom:25px;position:relative}._pageCanvas_1kgj9_51{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1kgj9_60{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1kgj9_60 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1kgj9_60>:not(._markedContent_1kgj9_86),._textLayer_1kgj9_60 ._markedContent_1kgj9_86 span:not(._markedContent_1kgj9_86){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1kgj9_60 ._markedContent_1kgj9_86{display:contents}._textLayer_1kgj9_60 ._endOfContent_1kgj9_101{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1kgj9_60._selecting_1kgj9_110 ._endOfContent_1kgj9_101{top:0}._textLayer_1kgj9_60 ::selection{background:#0000ff40}._textLayer_1kgj9_60 br::selection{background:0 0}._documentLoading_1kgj9_130{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1kgj9_130:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1kgj9_1}._pageSkeleton_1kgj9_150{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1kgj9_150:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1kgj9_1}@keyframes _spin_1kgj9_1{to{transform:rotate(360deg)}}._highlightOverlay_1kgj9_179{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1kgj9_188{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1kgj9_195{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1kgj9_203{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1kgj9_210{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1kgj9_210:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1kgj9_227{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1kgj9_251{background-color:#16a34abf}._notePopover_1kgj9_255{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1kgj9_268{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1kgj9_275{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
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_13t77_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_13t77_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_13t77_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_13t77_29{background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex-direction:column;flex:1;padding:10px 20px;display:flex;position:relative;overflow:auto}._pageWrapper_13t77_40{margin:0 auto 25px;position:relative}._pageCanvas_13t77_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_13t77_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_13t77_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_13t77_54>:not(._markedContent_13t77_80),._textLayer_13t77_54 ._markedContent_13t77_80 span:not(._markedContent_13t77_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_13t77_54 ._markedContent_13t77_80{display:contents}._textLayer_13t77_54 ._endOfContent_13t77_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_13t77_54._selecting_13t77_104 ._endOfContent_13t77_95{top:0}._textLayer_13t77_54 ::selection{background:#0000ff40}._textLayer_13t77_54 br::selection{background:0 0}._documentLoading_13t77_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_13t77_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_13t77_1}._pageSkeleton_13t77_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_13t77_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_13t77_1}@keyframes _spin_13t77_1{to{transform:rotate(360deg)}}._highlightOverlay_13t77_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_13t77_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_13t77_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_13t77_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_13t77_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_13t77_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_13t77_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_13t77_245{background-color:#16a34abf}._notePopover_13t77_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_13t77_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_13t77_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
2
2
  /*$vite$:1*/
@@ -1 +1 @@
1
- var e=60,t=10;async function n(n,r,i,a){let o=(await r.getPage(1)).getViewport({scale:1,rotation:a}),s=i.clientWidth-e;if(n===`width`)return s/o.width;let c=i.clientHeight-t*2;return Math.min(s/o.width,c/o.height)}exports.computeFit=n;
1
+ const e=require("./zoom.cjs");var t=60,n=10;async function r(r,i,a,o){if(a.clientWidth<=t)return 1;let s=(await i.getPage(1)).getViewport({scale:1,rotation:o}),c=a.clientWidth-t,l;if(r===`width`)l=c/s.width;else{let e=a.clientHeight-n*2;l=Math.min(c/s.width,e/s.height)}return Math.max(e.MIN_ZOOM,Math.min(5,l))}exports.computeFit=r;
@@ -222,147 +222,144 @@ var _ = ({ file: s, workerSrc: _, sidebar: le, toolbar: v, onChangeFile: y, them
222
222
  children: v
223
223
  }), /* @__PURE__ */ h("div", {
224
224
  className: c.body,
225
- children: [le, /* @__PURE__ */ m("div", {
225
+ children: [le, /* @__PURE__ */ h("div", {
226
226
  className: c.scrollContainer,
227
227
  ref: z,
228
- children: /* @__PURE__ */ h("div", {
229
- className: c.scrollInner,
230
- children: [
231
- ve && /* @__PURE__ */ m("div", { className: c.documentLoading }),
232
- Array.from({ length: W }, (e, t) => {
233
- let n = Y.has(t + 1), r = ye[t], a = X.includes(t + 1);
234
- return /* @__PURE__ */ h("div", {
235
- className: c.pageWrapper,
236
- ref: (e) => {
237
- B.current[t] = e;
238
- },
239
- style: r ? {
240
- width: r.width,
241
- height: r.height
242
- } : void 0,
243
- children: [
244
- r && !n && /* @__PURE__ */ m("div", {
245
- className: c.pageSkeleton,
246
- style: {
247
- width: r.width,
248
- height: r.height
249
- }
250
- }),
251
- a && /* @__PURE__ */ h(se, { children: [/* @__PURE__ */ m("canvas", {
252
- className: c.pageCanvas,
253
- ref: (e) => {
254
- V.current[t] = e;
255
- },
256
- style: { display: n ? "block" : "none" }
257
- }), /* @__PURE__ */ m("div", {
258
- className: `textLayer ${c.textLayer}`,
259
- ref: (e) => {
260
- be.current[t] = e;
261
- }
262
- })] }),
263
- xe.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ m("a", {
264
- className: c.linkOverlay,
265
- href: e.url && i(e.url) ? e.url : "#",
266
- target: "_blank",
267
- rel: "noopener noreferrer",
268
- style: {
269
- left: e.x,
270
- top: e.y,
271
- width: e.width,
272
- height: e.height
273
- },
274
- onClick: (t) => we(e, t)
275
- }, t)),
276
- Se.filter((e) => e.page === t + 1).map((e, t) => e.subtype === "Text" ? /* @__PURE__ */ m("div", {
277
- className: c.noteIconOverlay,
278
- style: {
279
- left: e.x,
280
- top: e.y,
281
- width: Math.max(e.width, 26),
282
- height: Math.max(e.height, 26)
283
- },
284
- onMouseEnter: (t) => Te(e, t),
285
- onMouseLeave: $,
286
- onClick: () => Ee(e),
287
- children: /* @__PURE__ */ h("svg", {
288
- width: "22",
289
- height: "22",
290
- viewBox: "0 0 12 12",
291
- fill: "none",
292
- "aria-hidden": "true",
293
- children: [
294
- /* @__PURE__ */ m("rect", {
295
- x: "0.5",
296
- y: "0.5",
297
- width: "9",
298
- height: "8",
299
- rx: "1",
300
- fill: "rgba(255,210,0,0.9)",
301
- stroke: "rgba(160,120,0,0.7)",
302
- strokeWidth: "1"
303
- }),
304
- /* @__PURE__ */ m("path", {
305
- d: "M9.5 5.5v3l2.5-3z",
306
- fill: "rgba(255,210,0,0.9)",
307
- stroke: "rgba(160,120,0,0.7)",
308
- strokeWidth: "1"
309
- }),
310
- /* @__PURE__ */ m("line", {
311
- x1: "2",
312
- y1: "3",
313
- x2: "8",
314
- y2: "3",
315
- stroke: "rgba(90,60,0,0.8)",
316
- strokeWidth: "1",
317
- strokeLinecap: "round"
318
- }),
319
- /* @__PURE__ */ m("line", {
320
- x1: "2",
321
- y1: "5.5",
322
- x2: "7",
323
- y2: "5.5",
324
- stroke: "rgba(90,60,0,0.8)",
325
- strokeWidth: "1",
326
- strokeLinecap: "round"
327
- })
328
- ]
329
- })
330
- }, t) : /* @__PURE__ */ m("div", {
331
- className: c.noteOverlay,
332
- style: {
333
- left: e.x,
334
- top: e.y,
335
- width: e.width,
336
- height: e.height
337
- },
338
- onMouseEnter: (t) => Te(e, t),
339
- onMouseLeave: $,
340
- onClick: () => Ee(e)
341
- }, t)),
342
- Ce.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ m("div", {
343
- className: c.searchMatchOverlay,
344
- style: {
345
- left: e.x,
346
- top: e.y,
347
- width: e.width,
348
- height: e.height
349
- }
350
- }, t)),
351
- O && Z?.page === t + 1 && /* @__PURE__ */ m("div", {
352
- className: c.highlightOverlay,
353
- style: {
354
- left: Z.x,
355
- top: Z.y,
356
- width: Z.width,
357
- height: Z.height
358
- }
228
+ children: [
229
+ ve && /* @__PURE__ */ m("div", { className: c.documentLoading }),
230
+ Array.from({ length: W }, (e, t) => {
231
+ let n = Y.has(t + 1), r = ye[t], a = X.includes(t + 1);
232
+ return /* @__PURE__ */ h("div", {
233
+ className: c.pageWrapper,
234
+ ref: (e) => {
235
+ B.current[t] = e;
236
+ },
237
+ style: r ? {
238
+ width: r.width,
239
+ height: r.height
240
+ } : void 0,
241
+ children: [
242
+ r && !n && /* @__PURE__ */ m("div", {
243
+ className: c.pageSkeleton,
244
+ style: {
245
+ width: r.width,
246
+ height: r.height
247
+ }
248
+ }),
249
+ a && /* @__PURE__ */ h(se, { children: [/* @__PURE__ */ m("canvas", {
250
+ className: c.pageCanvas,
251
+ ref: (e) => {
252
+ V.current[t] = e;
253
+ },
254
+ style: { display: n ? "block" : "none" }
255
+ }), /* @__PURE__ */ m("div", {
256
+ className: `textLayer ${c.textLayer}`,
257
+ ref: (e) => {
258
+ be.current[t] = e;
259
+ }
260
+ })] }),
261
+ xe.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ m("a", {
262
+ className: c.linkOverlay,
263
+ href: e.url && i(e.url) ? e.url : "#",
264
+ target: "_blank",
265
+ rel: "noopener noreferrer",
266
+ style: {
267
+ left: e.x,
268
+ top: e.y,
269
+ width: e.width,
270
+ height: e.height
271
+ },
272
+ onClick: (t) => we(e, t)
273
+ }, t)),
274
+ Se.filter((e) => e.page === t + 1).map((e, t) => e.subtype === "Text" ? /* @__PURE__ */ m("div", {
275
+ className: c.noteIconOverlay,
276
+ style: {
277
+ left: e.x,
278
+ top: e.y,
279
+ width: Math.max(e.width, 26),
280
+ height: Math.max(e.height, 26)
281
+ },
282
+ onMouseEnter: (t) => Te(e, t),
283
+ onMouseLeave: $,
284
+ onClick: () => Ee(e),
285
+ children: /* @__PURE__ */ h("svg", {
286
+ width: "22",
287
+ height: "22",
288
+ viewBox: "0 0 12 12",
289
+ fill: "none",
290
+ "aria-hidden": "true",
291
+ children: [
292
+ /* @__PURE__ */ m("rect", {
293
+ x: "0.5",
294
+ y: "0.5",
295
+ width: "9",
296
+ height: "8",
297
+ rx: "1",
298
+ fill: "rgba(255,210,0,0.9)",
299
+ stroke: "rgba(160,120,0,0.7)",
300
+ strokeWidth: "1"
301
+ }),
302
+ /* @__PURE__ */ m("path", {
303
+ d: "M9.5 5.5v3l2.5-3z",
304
+ fill: "rgba(255,210,0,0.9)",
305
+ stroke: "rgba(160,120,0,0.7)",
306
+ strokeWidth: "1"
307
+ }),
308
+ /* @__PURE__ */ m("line", {
309
+ x1: "2",
310
+ y1: "3",
311
+ x2: "8",
312
+ y2: "3",
313
+ stroke: "rgba(90,60,0,0.8)",
314
+ strokeWidth: "1",
315
+ strokeLinecap: "round"
316
+ }),
317
+ /* @__PURE__ */ m("line", {
318
+ x1: "2",
319
+ y1: "5.5",
320
+ x2: "7",
321
+ y2: "5.5",
322
+ stroke: "rgba(90,60,0,0.8)",
323
+ strokeWidth: "1",
324
+ strokeLinecap: "round"
325
+ })
326
+ ]
359
327
  })
360
- ]
361
- }, `${t}-${E}`);
362
- }),
363
- S && /* @__PURE__ */ m(ce, { hasRead: I })
364
- ]
365
- })
328
+ }, t) : /* @__PURE__ */ m("div", {
329
+ className: c.noteOverlay,
330
+ style: {
331
+ left: e.x,
332
+ top: e.y,
333
+ width: e.width,
334
+ height: e.height
335
+ },
336
+ onMouseEnter: (t) => Te(e, t),
337
+ onMouseLeave: $,
338
+ onClick: () => Ee(e)
339
+ }, t)),
340
+ Ce.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ m("div", {
341
+ className: c.searchMatchOverlay,
342
+ style: {
343
+ left: e.x,
344
+ top: e.y,
345
+ width: e.width,
346
+ height: e.height
347
+ }
348
+ }, t)),
349
+ O && Z?.page === t + 1 && /* @__PURE__ */ m("div", {
350
+ className: c.highlightOverlay,
351
+ style: {
352
+ left: Z.x,
353
+ top: Z.y,
354
+ width: Z.width,
355
+ height: Z.height
356
+ }
357
+ })
358
+ ]
359
+ }, `${t}-${E}`);
360
+ }),
361
+ S && /* @__PURE__ */ m(ce, { hasRead: I })
362
+ ]
366
363
  })]
367
364
  })]
368
365
  }), P && /* @__PURE__ */ h("div", {
@@ -1,28 +1,27 @@
1
1
  var e = {
2
- appLayout: "_appLayout_1kgj9_1",
3
- body: "_body_1kgj9_9",
4
- toolbar: "_toolbar_1kgj9_17",
5
- scrollContainer: "_scrollContainer_1kgj9_29",
6
- scrollInner: "_scrollInner_1kgj9_37",
7
- pageWrapper: "_pageWrapper_1kgj9_46",
8
- pageCanvas: "_pageCanvas_1kgj9_51",
9
- textLayer: "_textLayer_1kgj9_60",
10
- markedContent: "_markedContent_1kgj9_86",
11
- endOfContent: "_endOfContent_1kgj9_101",
12
- selecting: "_selecting_1kgj9_110",
13
- documentLoading: "_documentLoading_1kgj9_130",
14
- spin: "_spin_1kgj9_1",
15
- pageSkeleton: "_pageSkeleton_1kgj9_150",
16
- highlightOverlay: "_highlightOverlay_1kgj9_179",
17
- linkOverlay: "_linkOverlay_1kgj9_188",
18
- searchMatchOverlay: "_searchMatchOverlay_1kgj9_195",
19
- noteOverlay: "_noteOverlay_1kgj9_203",
20
- noteIconOverlay: "_noteIconOverlay_1kgj9_210",
21
- requireReadBanner: "_requireReadBanner_1kgj9_227",
22
- requireReadDone: "_requireReadDone_1kgj9_251",
23
- notePopover: "_notePopover_1kgj9_255",
24
- notePopoverTitle: "_notePopoverTitle_1kgj9_268",
25
- notePopoverContent: "_notePopoverContent_1kgj9_275"
2
+ appLayout: "_appLayout_13t77_1",
3
+ body: "_body_13t77_9",
4
+ toolbar: "_toolbar_13t77_17",
5
+ scrollContainer: "_scrollContainer_13t77_29",
6
+ pageWrapper: "_pageWrapper_13t77_40",
7
+ pageCanvas: "_pageCanvas_13t77_45",
8
+ textLayer: "_textLayer_13t77_54",
9
+ markedContent: "_markedContent_13t77_80",
10
+ endOfContent: "_endOfContent_13t77_95",
11
+ selecting: "_selecting_13t77_104",
12
+ documentLoading: "_documentLoading_13t77_124",
13
+ spin: "_spin_13t77_1",
14
+ pageSkeleton: "_pageSkeleton_13t77_144",
15
+ highlightOverlay: "_highlightOverlay_13t77_173",
16
+ linkOverlay: "_linkOverlay_13t77_182",
17
+ searchMatchOverlay: "_searchMatchOverlay_13t77_189",
18
+ noteOverlay: "_noteOverlay_13t77_197",
19
+ noteIconOverlay: "_noteIconOverlay_13t77_204",
20
+ requireReadBanner: "_requireReadBanner_13t77_221",
21
+ requireReadDone: "_requireReadDone_13t77_245",
22
+ notePopover: "_notePopover_13t77_249",
23
+ notePopoverTitle: "_notePopoverTitle_13t77_262",
24
+ notePopoverContent: "_notePopoverContent_13t77_269"
26
25
  };
27
26
  //#endregion
28
27
  export { e as default };
@@ -33,8 +33,10 @@ function p({ children: p, overflowIcon: m = "···" }) {
33
33
  let e = g.current;
34
34
  if (!e) return;
35
35
  let t = new ResizeObserver(() => T());
36
- return t.observe(e), () => t.disconnect();
37
- }, [T]), o(() => {
36
+ return t.observe(e), _.current.forEach((e) => {
37
+ e && t.observe(e);
38
+ }), () => t.disconnect();
39
+ }, [T, w.length]), o(() => {
38
40
  if (!x) return;
39
41
  let e = (e) => {
40
42
  C.current?.contains(e.target) || S(!1);
@@ -1,96 +1,103 @@
1
1
  import { useEffect as e, useRef as t, useState as n } from "react";
2
2
  import "pdfjs-dist";
3
3
  //#region src/hooks/usePDFRenderer.ts
4
- function r({ pdf: r, zoom: i, rotation: a, visiblePages: o, canvasRefs: s }) {
5
- let [c, l] = n([]), [u, d] = n(/* @__PURE__ */ new Set()), f = t([]), p = t(/* @__PURE__ */ new Set()), m = t(!1);
4
+ function r(e, t, n, r) {
5
+ let i = e.getContext("2d");
6
+ if (!i) return null;
7
+ let a = t.getViewport({
8
+ scale: n,
9
+ rotation: r
10
+ }), o = window.devicePixelRatio || 1, s = Math.min(1, 4096 / Math.max(a.width, a.height)), c = Math.sqrt(Math.min(1, 16777216 / (a.width * a.height))), l = Math.max(.1, Math.min(o, s, c));
11
+ l < o && console.warn(`[pdf-tsx] canvas clamped to avoid blank render: page=${t.pageNumber} zoom=${n} dpr=${o} requested=${Math.round(a.width * o)}x${Math.round(a.height * o)}px clamped=${Math.round(a.width * l)}x${Math.round(a.height * l)}px`);
12
+ let u = t.getViewport({
13
+ scale: n * l,
14
+ rotation: r
15
+ });
16
+ return e.width = u.width, e.height = u.height, e.style.width = `${a.width}px`, e.style.height = `${a.height}px`, t.render({
17
+ canvasContext: i,
18
+ viewport: u,
19
+ canvas: e
20
+ });
21
+ }
22
+ function i({ pdf: i, zoom: a, rotation: o, visiblePages: s, canvasRefs: c }) {
23
+ let [l, u] = n([]), [d, f] = n(/* @__PURE__ */ new Set()), p = t([]), m = t(/* @__PURE__ */ new Set()), h = t(!1);
6
24
  return e(() => {
7
- if (!r) return;
8
- m.current = !1, p.current = /* @__PURE__ */ new Set(), d(/* @__PURE__ */ new Set());
25
+ if (!i) return;
26
+ h.current = !1, m.current = /* @__PURE__ */ new Set(), f(/* @__PURE__ */ new Set());
9
27
  let e = !1;
10
28
  return (async () => {
11
- let t = f.current.map((e) => e ? (e.cancel(), e.promise.catch(() => {})) : Promise.resolve());
12
- if (await Promise.all(t), f.current = Array(r.numPages).fill(null), e) return;
13
- let n = await r.getPage(1);
29
+ let t = p.current.map((e) => e ? (e.cancel(), e.promise.catch(() => {})) : Promise.resolve());
30
+ if (await Promise.all(t), p.current = Array(i.numPages).fill(null), e) return;
31
+ let n = await i.getPage(1);
14
32
  if (e) return;
15
- let o = n.getViewport({
16
- scale: i,
17
- rotation: a
33
+ let r = n.getViewport({
34
+ scale: a,
35
+ rotation: o
18
36
  }), s = {
19
- width: o.width,
20
- height: o.height
37
+ width: r.width,
38
+ height: r.height
21
39
  };
22
- l(Array(r.numPages).fill(s));
23
- let c = await Promise.all(Array.from({ length: r.numPages }, async (e, t) => {
24
- let o = (t === 0 ? n : await r.getPage(t + 1)).getViewport({
25
- scale: i,
26
- rotation: a
40
+ u(Array(i.numPages).fill(s));
41
+ let c = await Promise.all(Array.from({ length: i.numPages }, async (e, t) => {
42
+ let r = (t === 0 ? n : await i.getPage(t + 1)).getViewport({
43
+ scale: a,
44
+ rotation: o
27
45
  });
28
46
  return {
29
- width: o.width,
30
- height: o.height
47
+ width: r.width,
48
+ height: r.height
31
49
  };
32
50
  }));
33
- e || (m.current = !0, l(c));
51
+ e || (h.current = !0, u(c));
34
52
  })(), () => {
35
- e = !0, f.current.forEach((e) => e?.cancel());
53
+ e = !0, p.current.forEach((e) => e?.cancel());
36
54
  };
37
55
  }, [
38
- r,
39
56
  i,
40
- a
57
+ a,
58
+ o
41
59
  ]), e(() => {
42
- if (!r || c.length !== r.numPages || !m.current) return;
60
+ if (!i || l.length !== i.numPages || !h.current) return;
43
61
  let e = !1;
44
62
  return (async () => {
45
- for (let t of o) {
46
- if (e || p.current.has(t)) continue;
47
- let n = await r.getPage(t);
63
+ for (let t of s) {
64
+ if (e || m.current.has(t)) continue;
65
+ let n = await i.getPage(t);
48
66
  if (e) return;
49
- let o = window.devicePixelRatio || 1, c = n.getViewport({
50
- scale: i,
51
- rotation: a
52
- }), l = n.getViewport({
53
- scale: i * o,
54
- rotation: a
55
- }), u = s.current[t - 1];
56
- if (!u) continue;
57
- let m = u.getContext("2d");
58
- if (!m) continue;
59
- let h = f.current[t - 1];
60
- if (h && (h.cancel(), await h.promise.catch(() => {}), e)) return;
61
- u.width = l.width, u.height = l.height, u.style.width = `${c.width}px`, u.style.height = `${c.height}px`;
62
- let g = n.render({
63
- canvasContext: m,
64
- viewport: l,
65
- canvas: u
66
- });
67
- f.current[t - 1] = g;
68
- try {
69
- await g.promise, e || (p.current = new Set(p.current).add(t), d((e) => {
70
- if (e.has(t)) return e;
71
- let n = new Set(e);
72
- return n.add(t), n;
73
- }));
74
- } catch (e) {
75
- e && typeof e == "object" && "name" in e && e.name !== "RenderingCancelledException" && console.error("Render error:", e);
76
- } finally {
77
- f.current[t - 1] === g && (f.current[t - 1] = null);
67
+ let s = c.current[t - 1];
68
+ if (!s) continue;
69
+ let l = p.current[t - 1];
70
+ if (l && (l.cancel(), await l.promise.catch(() => {}), e)) return;
71
+ let u = r(s, n, a, o);
72
+ if (u) {
73
+ p.current[t - 1] = u;
74
+ try {
75
+ await u.promise, e || (m.current = new Set(m.current).add(t), f((e) => {
76
+ if (e.has(t)) return e;
77
+ let n = new Set(e);
78
+ return n.add(t), n;
79
+ }));
80
+ } catch (e) {
81
+ e && typeof e == "object" && "name" in e && e.name !== "RenderingCancelledException" && console.error("Render error:", e);
82
+ } finally {
83
+ p.current[t - 1] === u && (p.current[t - 1] = null);
84
+ }
78
85
  }
79
86
  }
80
87
  })(), () => {
81
88
  e = !0;
82
89
  };
83
90
  }, [
84
- r,
85
- c,
86
- a,
87
- o,
88
91
  i,
89
- s
92
+ l,
93
+ o,
94
+ s,
95
+ a,
96
+ c
90
97
  ]), {
91
- pageSizes: c,
92
- renderedPages: u
98
+ pageSizes: l,
99
+ renderedPages: d
93
100
  };
94
101
  }
95
102
  //#endregion
96
- export { r as usePDFRenderer };
103
+ export { i as usePDFRenderer };
@@ -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_1kgj9_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1kgj9_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1kgj9_17{border-bottom:1px solid var(--pdf-border);background-color:var(--pdf-bg);z-index:10;flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex}._scrollContainer_1kgj9_29{background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex:1;position:relative;overflow:auto}._scrollInner_1kgj9_37{flex-direction:column;align-items:center;width:max-content;min-width:100%;padding:10px 20px;display:flex}._pageWrapper_1kgj9_46{margin-bottom:25px;position:relative}._pageCanvas_1kgj9_51{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1kgj9_60{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;text-align:initial;opacity:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;z-index:2;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));line-height:1;position:absolute;inset:0;overflow:clip}._textLayer_1kgj9_60 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1kgj9_60>:not(._markedContent_1kgj9_86),._textLayer_1kgj9_60 ._markedContent_1kgj9_86 span:not(._markedContent_1kgj9_86){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}._textLayer_1kgj9_60 ._markedContent_1kgj9_86{display:contents}._textLayer_1kgj9_60 ._endOfContent_1kgj9_101{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1kgj9_60._selecting_1kgj9_110 ._endOfContent_1kgj9_101{top:0}._textLayer_1kgj9_60 ::selection{background:#0000ff40}._textLayer_1kgj9_60 br::selection{background:0 0}._documentLoading_1kgj9_130{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_1kgj9_130:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite _spin_1kgj9_1}._pageSkeleton_1kgj9_150{z-index:0;pointer-events:none;background:#fff;border-radius:1px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}._pageSkeleton_1kgj9_150:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1kgj9_1}@keyframes _spin_1kgj9_1{to{transform:rotate(360deg)}}._highlightOverlay_1kgj9_179{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1kgj9_188{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1kgj9_195{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_1kgj9_203{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_1kgj9_210{z-index:3;pointer-events:all;cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:background-color .1s;display:flex;position:absolute}._noteIconOverlay_1kgj9_210:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_1kgj9_227{font-size:13px;font-weight:500;font-family:var(--pdf-font-family);color:#fff;background-color:color-mix(in srgb, var(--pdf-accent) 82%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:5px;align-self:flex-end;align-items:center;gap:8px;margin-top:auto;margin-right:25px;padding:9px 16px;transition:background-color .4s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 12px #0000002e}._requireReadDone_1kgj9_251{background-color:#16a34abf}._notePopover_1kgj9_255{z-index:9999;background-color:var(--pdf-surface);border:1px solid var(--pdf-border);min-width:160px;max-width:280px;font-family:var(--pdf-font-family);border-radius:6px;padding:10px 12px;position:fixed;box-shadow:0 4px 16px #00000026}._notePopoverTitle_1kgj9_268{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_1kgj9_275{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
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_13t77_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_13t77_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_13t77_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_13t77_29{background-color:var(--pdf-scroll-area);touch-action:pan-x pan-y;flex-direction:column;flex:1;padding:10px 20px;display:flex;position:relative;overflow:auto}._pageWrapper_13t77_40{margin:0 auto 25px;position:relative}._pageCanvas_13t77_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_13t77_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_13t77_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_13t77_54>:not(._markedContent_13t77_80),._textLayer_13t77_54 ._markedContent_13t77_80 span:not(._markedContent_13t77_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_13t77_54 ._markedContent_13t77_80{display:contents}._textLayer_13t77_54 ._endOfContent_13t77_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_13t77_54._selecting_13t77_104 ._endOfContent_13t77_95{top:0}._textLayer_13t77_54 ::selection{background:#0000ff40}._textLayer_13t77_54 br::selection{background:0 0}._documentLoading_13t77_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_13t77_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_13t77_1}._pageSkeleton_13t77_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_13t77_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_13t77_1}@keyframes _spin_13t77_1{to{transform:rotate(360deg)}}._highlightOverlay_13t77_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_13t77_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_13t77_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._noteOverlay_13t77_197{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._noteIconOverlay_13t77_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_13t77_204:hover{background-color:#ffd20033;outline:1px solid #a0780066}._requireReadBanner_13t77_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_13t77_245{background-color:#16a34abf}._notePopover_13t77_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_13t77_262{color:var(--pdf-text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}._notePopoverContent_13t77_269{color:var(--pdf-text-primary);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}._list_gygvf_1{flex-direction:column;display:flex}._emptyState_gygvf_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_gygvf_12{color:var(--pdf-text-secondary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--pdf-panel-header-bg);border-bottom:1px solid var(--pdf-panel-border);padding:5px 12px;font-size:10px;font-weight:600}._card_gygvf_23{border:1px solid var(--pdf-panel-border);background-color:var(--pdf-panel-bg);border-radius:6px;margin:8px;padding:10px 12px;font-size:12px;transition:box-shadow .12s}._cardClickable_gygvf_33{cursor:pointer}._cardClickable_gygvf_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_gygvf_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_gygvf_48{color:var(--pdf-text-secondary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}._cardPage_gygvf_57{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_gygvf_62{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_gygvf_68{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_gygvf_74{justify-content:center;align-items:center;display:flex;position:relative}._badge_gygvf_81{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_1b8zt_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_1b8zt_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_1b8zt_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_1b8zt_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_1b8zt_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_1b8zt_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_1b8zt_41>*{flex-shrink:0}._labeledItem_1b8zt_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_1b8zt_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_1b8zt_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._separator_b9iob_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}._separatorH_b9iob_9{background:var(--pdf-toolbar-separator);height:1px;margin:2px 4px}
2
2
  /*$vite$:1*/
@@ -1,13 +1,18 @@
1
+ import { MIN_ZOOM as e } from "./zoom.js";
1
2
  //#region src/utils/pdfFit.ts
2
- var e = 60, t = 10;
3
- async function n(n, r, i, a) {
4
- let o = (await r.getPage(1)).getViewport({
3
+ var t = 60, n = 10;
4
+ async function r(r, i, a, o) {
5
+ if (a.clientWidth <= t) return 1;
6
+ let s = (await i.getPage(1)).getViewport({
5
7
  scale: 1,
6
- rotation: a
7
- }), s = i.clientWidth - e;
8
- if (n === "width") return s / o.width;
9
- let c = i.clientHeight - t * 2;
10
- return Math.min(s / o.width, c / o.height);
8
+ rotation: o
9
+ }), c = a.clientWidth - t, l;
10
+ if (r === "width") l = c / s.width;
11
+ else {
12
+ let e = a.clientHeight - n * 2;
13
+ l = Math.min(c / s.width, e / s.height);
14
+ }
15
+ return Math.max(e, Math.min(5, l));
11
16
  }
12
17
  //#endregion
13
- export { n as computeFit };
18
+ export { r as computeFit };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-tsx",
3
- "version": "0.17.1",
3
+ "version": "0.17.3",
4
4
  "description": "A fully-featured, composable PDF viewer component for React",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.cjs",