pdf-tsx 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -139,6 +139,7 @@ themeOverrides={{ dark: { ...darkTheme, bg: '#0f0f0f' } }}
139
139
  | `panelHeaderBg` | `--pdf-panel-header-bg` | Sidebar panel header background |
140
140
  | `shadowPage` | `--pdf-shadow-page` | Drop shadow color for PDF pages |
141
141
  | `badgeBg` | `--pdf-badge-bg` | Count badge background (signatures, annotations, attachments) |
142
+ | `toolbarSeparator` | `--pdf-toolbar-separator` | `PDFToolbarSeparator` line color |
142
143
  | `fontFamily` | `--pdf-font-family` | Font family for all viewer UI text |
143
144
 
144
145
  ---
@@ -247,6 +248,7 @@ All feature components must be rendered inside `<PDFViewer>`. They read and writ
247
248
  |------------------------|-----------------------------------------------------|------------------------------------------------------|
248
249
  | `PDFToolbar` | `overflowIcon` | Responsive toolbar — collapses items into `···` dropdown when space runs out |
249
250
  | `PDFToolbarItem` | — | Wrapper for custom toolbar items to add a dropdown label |
251
+ | `PDFToolbarSeparator` | — | Vertical divider between toolbar groups — hidden automatically in the overflow dropdown |
250
252
  | `PDFThumbnails` | — | Page thumbnail strip for quick navigation |
251
253
  | `PDFOutline` | — | Document outline / bookmarks tree |
252
254
  | `PDFAnnotations` | — | Display PDF annotations |
@@ -307,7 +309,7 @@ The badge uses `var(--pdf-accent)` and respects `themeOverrides`.
307
309
  ```tsx
308
310
  import { useState, Suspense, lazy } from 'react'
309
311
  import {
310
- PDFSidebar, PDFSidebarToggle, PDFToolbar, PDFToolbarItem,
312
+ PDFSidebar, PDFSidebarToggle, PDFToolbar, PDFToolbarItem, PDFToolbarSeparator,
311
313
  PDFThumbnails, PDFOutline, PDFSearch,
312
314
  PDFZoomControls, PDFPageFit, PDFRotationControl,
313
315
  PDFNavigation, PDFDownloadButton, PDFChangeFile,
@@ -364,20 +366,24 @@ function App() {
364
366
  collapseIcon={<FiChevronsLeft size={16} />}
365
367
  expandIcon={<FiChevronsRight size={16} />}
366
368
  />
369
+ <PDFToolbarSeparator />
367
370
  <PDFSearch
368
371
  searchIcon={<FiSearch size={14} />}
369
372
  prevIcon={<FiChevronUp size={14} />}
370
373
  nextIcon={<FiChevronDown size={14} />}
371
374
  clearIcon={<FiX size={14} />}
372
375
  />
376
+ <PDFToolbarSeparator />
373
377
  <PDFZoomControls zoomOutIcon={<FiZoomOut size={16} />} zoomInIcon={<FiZoomIn size={16} />} />
374
378
  <PDFRotationControl icon={<FiRotateCw size={16} />} />
375
379
  <PDFPageFit fitWidthIcon={<FiAlignJustify size={16} />} fitPageIcon={<FiMaximize2 size={16} />} />
380
+ <PDFToolbarSeparator />
381
+ <PDFNavigation prevIcon={<FiChevronLeft size={16} />} nextIcon={<FiChevronRight size={16} />} />
382
+ <PDFToolbarSeparator />
376
383
  <PDFThemeToggle lightIcon={<FiSun size={16} />} darkIcon={<FiMoon size={16} />} />
377
384
  <PDFPrintButton icon={<FiPrinter size={16} />} />
378
385
  <PDFChangeFile icon={<FiFolderPlus size={16} />} />
379
386
  <PDFDownloadButton icon={<FiDownload size={15} />} />
380
- <PDFNavigation prevIcon={<FiChevronLeft size={16} />} nextIcon={<FiChevronRight size={16} />} />
381
387
  {/* custom button with overflow label */}
382
388
  <PDFToolbarItem label="Share">
383
389
  <button onClick={() => {}}>Share</button>
@@ -1 +1 @@
1
- const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../context/PDFViewerContext.cjs`),n=require(`../hooks/useScrollTracking.cjs`),r=require(`../hooks/useKeyboardShortcuts.cjs`),i=require(`../hooks/useTextLayer.cjs`),a=require(`../utils/url.cjs`),o=require(`../hooks/useAnnotationLayer.cjs`),s=require(`../hooks/usePDFLoader.cjs`),c=require(`../hooks/usePDFRenderer.cjs`),l=require(`../hooks/useOverlayRects.cjs`),u=require(`../utils/pdfFit.cjs`),d=require(`../context/ThemeContext.cjs`),f=require(`./PDFViewer.module.cjs`);let p=require(`react`);p=e.__toESM(p,1);let m=require(`pdfjs-dist`);m=e.__toESM(m,1);let h=require(`react/jsx-runtime`);var g=2,_=({file:e,workerSrc:_,sidebar:v,toolbar:y,onChangeFile:b,themeOverrides:x,defaultTheme:S,defaultFit:C,className:w,style:T})=>{(0,p.useEffect)(()=>{m.GlobalWorkerOptions.workerSrc=_},[_]);let[E,D]=(0,p.useState)(1),[O,k]=(0,p.useState)(0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)([]),[P,F]=(0,p.useState)(!1),[I,L]=(0,p.useState)(C??null),R=(0,p.useRef)(null),z=(0,p.useRef)([]),B=(0,p.useRef)([]),V=(0,p.useRef)(O);(0,p.useEffect)(()=>{V.current=O},[O]);let[H,U]=(0,p.useState)(null);H!==e&&(U(e),j(null));let{pdf:W,numPages:G}=s.usePDFLoader(e);(0,p.useEffect)(()=>{W&&(z.current=Array(W.numPages).fill(null),B.current=Array(W.numPages).fill(null))},[W]),(0,p.useEffect)(()=>{!W||!C||!R.current||u.computeFit(C,W,R.current,V.current).then(D)},[W,C]);let K=(0,p.useRef)(I);(0,p.useEffect)(()=>{K.current=I},[I]),(0,p.useEffect)(()=>{if(!W||!R.current)return;let e=R.current,t=new ResizeObserver(()=>{K.current&&u.computeFit(K.current,W,e,V.current).then(D)});return t.observe(e),()=>t.disconnect()},[W]);let{currentPage:q,goToPage:J}=n.useScrollTracking({numPages:G,containerRef:R,pageRefs:z}),Y=(0,p.useMemo)(()=>{if(G===0)return[];let e=new Set,t=Math.max(q-g,1),n=Math.min(q+g,G);for(let r=t;r<=n;r++)e.add(r);A&&e.add(A.page);for(let t of M)e.add(t.page);return Array.from(e).sort((e,t)=>e-t)},[q,G,A,M]),{pageSizes:X,renderedPages:Z}=c.usePDFRenderer({pdf:W,zoom:E,rotation:O,visiblePages:Y,canvasRefs:B}),Q=(0,p.useMemo)(()=>{let e=new Set(Y);for(let t of Z)e.add(t);return Array.from(e).sort((e,t)=>e-t)},[Y,Z]);r.useKeyboardShortcuts({pdf:W,currentPage:q,goToPage:J,setZoom:D,setRotation:k,setFitMode:L});let ee=i.useTextLayer({pdf:W,zoom:E,rotation:O,mountedPages:Q,canvasRefs:B}),te=o.useAnnotationLayer({pdf:W,zoom:E,rotation:O,mountedPages:Q,goToPage:J}),{overlayRect:$,searchOverlays:ne}=l.useOverlayRects({pdf:W,highlight:A,searchMatches:M,zoom:E,rotation:O}),re=(0,p.useCallback)((e,t)=>{(!e.url||!a.isSafeUrl(e.url))&&(t.preventDefault(),e.url||e._handleClick())},[]),ie=(0,p.useMemo)(()=>({pdf:W,numPages:G,zoom:E,setZoom:D,rotation:O,setRotation:k,currentPage:q,goToPage:J,containerRef:R,canvasRefs:B,file:e,highlight:A,setHighlight:j,searchMatches:M,setSearchMatches:N,onChangeFile:b,sidebarCollapsed:P,setSidebarCollapsed:F,fitMode:I,setFitMode:L}),[W,G,E,O,q,J,e,A,M,b,P,I]);return(0,h.jsx)(d.ThemeProvider,{themeOverrides:x,defaultTheme:S,children:(0,h.jsx)(t.PDFViewerContext.Provider,{value:ie,children:(0,h.jsxs)(`div`,{className:`${f.default.appLayout}${w?` ${w}`:``}`,style:T,children:[y&&(0,h.jsx)(`div`,{className:f.default.toolbar,children:y}),(0,h.jsxs)(`div`,{className:f.default.body,children:[v,(0,h.jsx)(`div`,{className:f.default.scrollContainer,ref:R,children:Array.from({length:G},(e,t)=>{let n=Z.has(t+1),r=X[t],i=Q.includes(t+1);return(0,h.jsxs)(`div`,{className:f.default.pageWrapper,ref:e=>{z.current[t]=e},style:r?{width:r.width,height:r.height}:void 0,children:[r&&!n&&(0,h.jsx)(`div`,{className:f.default.pageSkeleton,style:{width:r.width,height:r.height}}),i&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`canvas`,{className:f.default.pageCanvas,ref:e=>{B.current[t]=e},style:{display:n?`block`:`none`}}),(0,h.jsx)(`div`,{className:`textLayer ${f.default.textLayer}`,ref:e=>{ee.current[t]=e}})]}),te.filter(e=>e.page===t+1).map((e,t)=>(0,h.jsx)(`a`,{className:f.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=>re(e,t)},t)),ne.filter(e=>e.page===t+1).map((e,t)=>(0,h.jsx)(`div`,{className:f.default.searchMatchOverlay,style:{left:e.x,top:e.y,width:e.width,height:e.height}},t)),A&&$?.page===t+1&&(0,h.jsx)(`div`,{className:f.default.highlightOverlay,style:{left:$.x,top:$.y,width:$.width,height:$.height}})]},`${t}-${O}`)})})]})]})})})};exports.default=_;
1
+ const e=require(`../_virtual/_rolldown/runtime.cjs`),t=require(`../context/PDFViewerContext.cjs`),n=require(`../hooks/useScrollTracking.cjs`),r=require(`../hooks/useKeyboardShortcuts.cjs`),i=require(`../hooks/useTextLayer.cjs`),a=require(`../utils/url.cjs`),o=require(`../hooks/useAnnotationLayer.cjs`),s=require(`../hooks/usePDFLoader.cjs`),c=require(`../hooks/usePDFRenderer.cjs`),l=require(`../hooks/useOverlayRects.cjs`),u=require(`../utils/pdfFit.cjs`),d=require(`../context/ThemeContext.cjs`),f=require(`./PDFViewer.module.cjs`);let p=require(`react`);p=e.__toESM(p,1);let m=require(`pdfjs-dist`);m=e.__toESM(m,1);let h=require(`react/jsx-runtime`);var g=2,_=({file:e,workerSrc:_,sidebar:v,toolbar:y,onChangeFile:b,themeOverrides:x,defaultTheme:S,defaultFit:C,className:w,style:T})=>{(0,p.useEffect)(()=>{m.GlobalWorkerOptions.workerSrc=_},[_]);let[E,D]=(0,p.useState)(1),[O,k]=(0,p.useState)(0),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)([]),[P,F]=(0,p.useState)(!1),[I,L]=(0,p.useState)(C??null),R=(0,p.useRef)(null),z=(0,p.useRef)([]),B=(0,p.useRef)([]),V=(0,p.useRef)(O);(0,p.useEffect)(()=>{V.current=O},[O]);let[H,U]=(0,p.useState)(null);H!==e&&(U(e),j(null));let{pdf:W,numPages:G,loading:K}=s.usePDFLoader(e);(0,p.useEffect)(()=>{W&&(z.current=Array(W.numPages).fill(null),B.current=Array(W.numPages).fill(null))},[W]),(0,p.useEffect)(()=>{!W||!C||!R.current||u.computeFit(C,W,R.current,V.current).then(D)},[W,C]);let q=(0,p.useRef)(I);(0,p.useEffect)(()=>{q.current=I},[I]),(0,p.useEffect)(()=>{if(!W||!R.current)return;let e=R.current,t=new ResizeObserver(()=>{q.current&&u.computeFit(q.current,W,e,V.current).then(D)});return t.observe(e),()=>t.disconnect()},[W]);let{currentPage:J,goToPage:Y}=n.useScrollTracking({numPages:G,containerRef:R,pageRefs:z}),X=(0,p.useMemo)(()=>{if(G===0)return[];let e=new Set,t=Math.max(J-g,1),n=Math.min(J+g,G);for(let r=t;r<=n;r++)e.add(r);A&&e.add(A.page);for(let t of M)e.add(t.page);return Array.from(e).sort((e,t)=>e-t)},[J,G,A,M]),{pageSizes:ee,renderedPages:Z}=c.usePDFRenderer({pdf:W,zoom:E,rotation:O,visiblePages:X,canvasRefs:B}),Q=(0,p.useMemo)(()=>{let e=new Set(X);for(let t of Z)e.add(t);return Array.from(e).sort((e,t)=>e-t)},[X,Z]);r.useKeyboardShortcuts({pdf:W,currentPage:J,goToPage:Y,setZoom:D,setRotation:k,setFitMode:L});let te=i.useTextLayer({pdf:W,zoom:E,rotation:O,mountedPages:Q,canvasRefs:B}),ne=o.useAnnotationLayer({pdf:W,zoom:E,rotation:O,mountedPages:Q,goToPage:Y}),{overlayRect:$,searchOverlays:re}=l.useOverlayRects({pdf:W,highlight:A,searchMatches:M,zoom:E,rotation:O}),ie=(0,p.useCallback)((e,t)=>{(!e.url||!a.isSafeUrl(e.url))&&(t.preventDefault(),e.url||e._handleClick())},[]),ae=(0,p.useMemo)(()=>({pdf:W,numPages:G,zoom:E,setZoom:D,rotation:O,setRotation:k,currentPage:J,goToPage:Y,containerRef:R,canvasRefs:B,file:e,highlight:A,setHighlight:j,searchMatches:M,setSearchMatches:N,onChangeFile:b,sidebarCollapsed:P,setSidebarCollapsed:F,fitMode:I,setFitMode:L}),[W,G,E,O,J,Y,e,A,M,b,P,I]);return(0,h.jsx)(d.ThemeProvider,{themeOverrides:x,defaultTheme:S,children:(0,h.jsx)(t.PDFViewerContext.Provider,{value:ae,children:(0,h.jsxs)(`div`,{className:`${f.default.appLayout}${w?` ${w}`:``}`,style:T,children:[y&&(0,h.jsx)(`div`,{className:f.default.toolbar,children:y}),(0,h.jsxs)(`div`,{className:f.default.body,children:[v,(0,h.jsxs)(`div`,{className:f.default.scrollContainer,ref:R,children:[K&&(0,h.jsx)(`div`,{className:f.default.documentLoading}),Array.from({length:G},(e,t)=>{let n=Z.has(t+1),r=ee[t],i=Q.includes(t+1);return(0,h.jsxs)(`div`,{className:f.default.pageWrapper,ref:e=>{z.current[t]=e},style:r?{width:r.width,height:r.height}:void 0,children:[r&&!n&&(0,h.jsx)(`div`,{className:f.default.pageSkeleton,style:{width:r.width,height:r.height}}),i&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`canvas`,{className:f.default.pageCanvas,ref:e=>{B.current[t]=e},style:{display:n?`block`:`none`}}),(0,h.jsx)(`div`,{className:`textLayer ${f.default.textLayer}`,ref:e=>{te.current[t]=e}})]}),ne.filter(e=>e.page===t+1).map((e,t)=>(0,h.jsx)(`a`,{className:f.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=>ie(e,t)},t)),re.filter(e=>e.page===t+1).map((e,t)=>(0,h.jsx)(`div`,{className:f.default.searchMatchOverlay,style:{left:e.x,top:e.y,width:e.width,height:e.height}},t)),A&&$?.page===t+1&&(0,h.jsx)(`div`,{className:f.default.highlightOverlay,style:{left:$.x,top:$.y,width:$.width,height:$.height}})]},`${t}-${O}`)})]})]})]})})})};exports.default=_;
@@ -1 +1 @@
1
- var e={appLayout:`_appLayout_1nhg3_1`,body:`_body_1nhg3_9`,toolbar:`_toolbar_1nhg3_17`,scrollContainer:`_scrollContainer_1nhg3_29`,pageWrapper:`_pageWrapper_1nhg3_39`,pageCanvas:`_pageCanvas_1nhg3_44`,textLayer:`_textLayer_1nhg3_53`,markedContent:`_markedContent_1nhg3_79`,endOfContent:`_endOfContent_1nhg3_94`,selecting:`_selecting_1nhg3_103`,pageSkeleton:`_pageSkeleton_1nhg3_123`,spin:`_spin_1nhg3_1`,highlightOverlay:`_highlightOverlay_1nhg3_152`,linkOverlay:`_linkOverlay_1nhg3_161`,searchMatchOverlay:`_searchMatchOverlay_1nhg3_168`};exports.default=e;
1
+ var e={appLayout:`_appLayout_18euq_1`,body:`_body_18euq_9`,toolbar:`_toolbar_18euq_17`,scrollContainer:`_scrollContainer_18euq_29`,pageWrapper:`_pageWrapper_18euq_40`,pageCanvas:`_pageCanvas_18euq_45`,textLayer:`_textLayer_18euq_54`,markedContent:`_markedContent_18euq_80`,endOfContent:`_endOfContent_18euq_95`,selecting:`_selecting_18euq_104`,documentLoading:`_documentLoading_18euq_124`,spin:`_spin_18euq_1`,pageSkeleton:`_pageSkeleton_18euq_144`,highlightOverlay:`_highlightOverlay_18euq_173`,linkOverlay:`_linkOverlay_18euq_182`,searchMatchOverlay:`_searchMatchOverlay_18euq_189`};exports.default=e;
@@ -1 +1 @@
1
- var e={navWrapper:`_navWrapper_hrnrb_1`,pageInput:`_pageInput_hrnrb_7`,pageTotal:`_pageTotal_hrnrb_35`};exports.default=e;
1
+ var e={navWrapper:`_navWrapper_14eo9_1`,pageInput:`_pageInput_14eo9_7`,pageTotal:`_pageTotal_14eo9_34`};exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./PDFToolbarDropdownContext.cjs`),t=require(`./PDFToolbarSeparator.module.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i(){return(0,n.useContext)(e.PDFToolbarDropdownContext)?null:(0,r.jsx)(`div`,{className:t.default.separator,"aria-hidden":`true`})}exports.PDFToolbarSeparator=i;
@@ -0,0 +1 @@
1
+ var e={separator:`_separator_uif34_1`};exports.default=e;
@@ -1 +1 @@
1
- const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`react`),n=require(`pdfjs-dist`);n=e.__toESM(n,1);function r(e){let[r,i]=(0,t.useState)(null),[a,o]=(0,t.useState)(0);return(0,t.useEffect)(()=>{let t=new FileReader;t.onload=async e=>{let t=new Uint8Array(e.target?.result);try{let e=await n.getDocument(t).promise;i(e),o(e.numPages)}catch(e){console.error(`Errore caricamento:`,e)}},t.readAsArrayBuffer(e)},[e]),{pdf:r,numPages:a}}exports.usePDFLoader=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){let[r,i]=(0,t.useState)(null),[a,o]=(0,t.useState)(0),[s,c]=(0,t.useState)(!0);return(0,t.useEffect)(()=>{c(!0),i(null),o(0);let t=new FileReader;t.onload=async e=>{let t=new Uint8Array(e.target?.result);try{let e=await n.getDocument(t).promise;i(e),o(e.numPages)}catch(e){console.error(`Errore caricamento:`,e)}finally{c(!1)}},t.readAsArrayBuffer(e)},[e]),{pdf:r,numPages:a,loading:s}}exports.usePDFLoader=r;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme.cjs`),t=require(`./components/PDFViewer.cjs`),n=require(`./components/PDFSidebar.cjs`),r=require(`./components/features/PDFAttachments.cjs`),i=require(`./components/features/PDFAnnotations.cjs`),a=require(`./components/features/PDFChangeFile.cjs`),o=require(`./components/features/PDFDownloadButton.cjs`),s=require(`./components/features/PDFNavigation.cjs`),c=require(`./components/features/PDFOutline.cjs`),l=require(`./components/features/PDFPageFit.cjs`),u=require(`./components/features/PDFRotationControl.cjs`),d=require(`./components/features/PDFSearch.cjs`),f=require(`./components/features/PDFSignatures.cjs`),p=require(`./components/features/PDFThumbnails.cjs`),m=require(`./components/features/PDFZoomControls.cjs`),h=require(`./components/features/PDFThemeToggle.cjs`),g=require(`./components/features/PDFPrintButton.cjs`),_=require(`./components/features/PDFSidebarToggle.cjs`),v=require(`./components/ui/PDFToolbar.cjs`),y=require(`./components/ui/PDFToolbarItem.cjs`);exports.PDFAnnotations=i.PDFAnnotations,exports.PDFAnnotationsIcon=i.PDFAnnotationsIcon,exports.PDFAttachments=r.PDFAttachments,exports.PDFAttachmentsIcon=r.PDFAttachmentsIcon,exports.PDFChangeFile=a.PDFChangeFile,exports.PDFDownloadButton=o.PDFDownloadButton,exports.PDFNavigation=s.PDFNavigation,exports.PDFOutline=c.PDFOutline,exports.PDFPageFit=l.PDFPageFit,exports.PDFPrintButton=g.PDFPrintButton,exports.PDFRotationControl=u.PDFRotationControl,exports.PDFSearch=d.PDFSearch,exports.PDFSidebar=n.PDFSidebar,exports.PDFSidebarToggle=_.PDFSidebarToggle,exports.PDFSignatures=f.PDFSignatures,exports.PDFSignaturesIcon=f.PDFSignaturesIcon,exports.PDFThemeToggle=h.PDFThemeToggle,exports.PDFThumbnails=p.PDFThumbnails,exports.PDFToolbar=v.PDFToolbar,exports.PDFToolbarItem=y.PDFToolbarItem,exports.PDFViewer=t,exports.PDFZoomControls=m.PDFZoomControls,exports.darkTheme=e.darkTheme,exports.lightTheme=e.lightTheme;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./theme.cjs`),t=require(`./components/PDFViewer.cjs`),n=require(`./components/PDFSidebar.cjs`),r=require(`./components/features/PDFAttachments.cjs`),i=require(`./components/features/PDFAnnotations.cjs`),a=require(`./components/features/PDFChangeFile.cjs`),o=require(`./components/features/PDFDownloadButton.cjs`),s=require(`./components/features/PDFNavigation.cjs`),c=require(`./components/features/PDFOutline.cjs`),l=require(`./components/features/PDFPageFit.cjs`),u=require(`./components/features/PDFRotationControl.cjs`),d=require(`./components/features/PDFSearch.cjs`),f=require(`./components/features/PDFSignatures.cjs`),p=require(`./components/features/PDFThumbnails.cjs`),m=require(`./components/features/PDFZoomControls.cjs`),h=require(`./components/features/PDFThemeToggle.cjs`),g=require(`./components/features/PDFPrintButton.cjs`),_=require(`./components/features/PDFSidebarToggle.cjs`),v=require(`./components/ui/PDFToolbar.cjs`),y=require(`./components/ui/PDFToolbarItem.cjs`),b=require(`./components/ui/PDFToolbarSeparator.cjs`);exports.PDFAnnotations=i.PDFAnnotations,exports.PDFAnnotationsIcon=i.PDFAnnotationsIcon,exports.PDFAttachments=r.PDFAttachments,exports.PDFAttachmentsIcon=r.PDFAttachmentsIcon,exports.PDFChangeFile=a.PDFChangeFile,exports.PDFDownloadButton=o.PDFDownloadButton,exports.PDFNavigation=s.PDFNavigation,exports.PDFOutline=c.PDFOutline,exports.PDFPageFit=l.PDFPageFit,exports.PDFPrintButton=g.PDFPrintButton,exports.PDFRotationControl=u.PDFRotationControl,exports.PDFSearch=d.PDFSearch,exports.PDFSidebar=n.PDFSidebar,exports.PDFSidebarToggle=_.PDFSidebarToggle,exports.PDFSignatures=f.PDFSignatures,exports.PDFSignaturesIcon=f.PDFSignaturesIcon,exports.PDFThemeToggle=h.PDFThemeToggle,exports.PDFThumbnails=p.PDFThumbnails,exports.PDFToolbar=v.PDFToolbar,exports.PDFToolbarItem=y.PDFToolbarItem,exports.PDFToolbarSeparator=b.PDFToolbarSeparator,exports.PDFViewer=t,exports.PDFZoomControls=m.PDFZoomControls,exports.darkTheme=e.darkTheme,exports.lightTheme=e.lightTheme;
@@ -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_1nhg3_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1nhg3_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1nhg3_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_1nhg3_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_1nhg3_39{margin-bottom:25px;position:relative}._pageCanvas_1nhg3_44{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1nhg3_53{--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_1nhg3_53 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1nhg3_53>:not(._markedContent_1nhg3_79),._textLayer_1nhg3_53 ._markedContent_1nhg3_79 span:not(._markedContent_1nhg3_79){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_1nhg3_53 ._markedContent_1nhg3_79{display:contents}._textLayer_1nhg3_53 ._endOfContent_1nhg3_94{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1nhg3_53._selecting_1nhg3_103 ._endOfContent_1nhg3_94{top:0}._textLayer_1nhg3_53 ::selection{background:#0000ff40}._textLayer_1nhg3_53 br::selection{background:0 0}._pageSkeleton_1nhg3_123{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_1nhg3_123:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1nhg3_1}@keyframes _spin_1nhg3_1{to{transform:rotate(360deg)}}._highlightOverlay_1nhg3_152{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1nhg3_161{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1nhg3_168{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_113xr_1{flex-direction:column;display:flex}._emptyState_113xr_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_113xr_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_113xr_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_113xr_33{cursor:pointer}._cardClickable_113xr_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_113xr_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_113xr_48{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_113xr_54{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_113xr_59{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_113xr_65{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_113xr_71{justify-content:center;align-items:center;display:flex;position:relative}._badge_113xr_78{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_hrnrb_1{align-items:center;gap:2px;display:flex}._pageInput_hrnrb_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_hrnrb_7:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_hrnrb_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_hrnrb_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_hrnrb_7{-moz-appearance:textfield}._pageTotal_hrnrb_35{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}
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_18euq_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_18euq_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_18euq_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_18euq_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_18euq_40{margin-bottom:25px;position:relative}._pageCanvas_18euq_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_18euq_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_18euq_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_18euq_54>:not(._markedContent_18euq_80),._textLayer_18euq_54 ._markedContent_18euq_80 span:not(._markedContent_18euq_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_18euq_54 ._markedContent_18euq_80{display:contents}._textLayer_18euq_54 ._endOfContent_18euq_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_18euq_54._selecting_18euq_104 ._endOfContent_18euq_95{top:0}._textLayer_18euq_54 ::selection{background:#0000ff40}._textLayer_18euq_54 br::selection{background:0 0}._documentLoading_18euq_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_18euq_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_18euq_1}._pageSkeleton_18euq_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_18euq_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_18euq_1}@keyframes _spin_18euq_1{to{transform:rotate(360deg)}}._highlightOverlay_18euq_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_18euq_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_18euq_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_113xr_1{flex-direction:column;display:flex}._emptyState_113xr_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_113xr_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_113xr_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_113xr_33{cursor:pointer}._cardClickable_113xr_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_113xr_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_113xr_48{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_113xr_54{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_113xr_59{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_113xr_65{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_113xr_71{justify-content:center;align-items:center;display:flex;position:relative}._badge_113xr_78{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_uif34_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}
2
2
  /*$vite$:1*/
@@ -1 +1 @@
1
- var e={fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif`,bg:`#18181b`,surface:`#27272a`,surfaceHover:`#3f3f46`,border:`#3f3f46`,borderLight:`#52525b`,scrollArea:`#525659`,textPrimary:`#fafafa`,textSecondary:`#a1a1aa`,textMuted:`#71717a`,textPlaceholder:`#52525b`,accent:`#3b82f6`,accentHover:`#2563eb`,accentDark:`#1d4ed8`,accentLight:`#60a5fa`,accentSubtle:`rgba(59, 130, 246, 0.15)`,panelBg:`#1f1f23`,panelBorder:`#27272a`,panelHeaderBg:`#18181b`,shadowPage:`rgba(0, 0, 0, 0.4)`,badgeBg:`#3b82f6`},t={fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif`,bg:`#f4f4f5`,surface:`#ffffff`,surfaceHover:`#f4f4f5`,border:`#e4e4e7`,borderLight:`#d4d4d8`,scrollArea:`#e4e4e7`,textPrimary:`#18181b`,textSecondary:`#52525b`,textMuted:`#71717a`,textPlaceholder:`#a1a1aa`,accent:`#3b82f6`,accentHover:`#2563eb`,accentDark:`#1d4ed8`,accentLight:`#60a5fa`,accentSubtle:`rgba(59, 130, 246, 0.1)`,panelBg:`#ffffff`,panelBorder:`#e4e4e7`,panelHeaderBg:`#fafafa`,shadowPage:`rgba(0, 0, 0, 0.12)`,badgeBg:`#3b82f6`};function n(e){return{"--pdf-font-family":e.fontFamily,"--pdf-bg":e.bg,"--pdf-surface":e.surface,"--pdf-surface-hover":e.surfaceHover,"--pdf-border":e.border,"--pdf-border-light":e.borderLight,"--pdf-scroll-area":e.scrollArea,"--pdf-text-primary":e.textPrimary,"--pdf-text-secondary":e.textSecondary,"--pdf-text-muted":e.textMuted,"--pdf-text-placeholder":e.textPlaceholder,"--pdf-accent":e.accent,"--pdf-accent-hover":e.accentHover,"--pdf-accent-dark":e.accentDark,"--pdf-accent-light":e.accentLight,"--pdf-accent-subtle":e.accentSubtle,"--pdf-panel-bg":e.panelBg,"--pdf-panel-border":e.panelBorder,"--pdf-panel-header-bg":e.panelHeaderBg,"--pdf-shadow-page":e.shadowPage,"--pdf-badge-bg":e.badgeBg}}exports.darkTheme=e,exports.lightTheme=t,exports.themeToCssVars=n;
1
+ var e={fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif`,bg:`#18181b`,surface:`#27272a`,surfaceHover:`#3f3f46`,border:`#3f3f46`,borderLight:`#52525b`,scrollArea:`#525659`,textPrimary:`#fafafa`,textSecondary:`#a1a1aa`,textMuted:`#71717a`,textPlaceholder:`#52525b`,accent:`#3b82f6`,accentHover:`#2563eb`,accentDark:`#1d4ed8`,accentLight:`#60a5fa`,accentSubtle:`rgba(59, 130, 246, 0.15)`,panelBg:`#1f1f23`,panelBorder:`#27272a`,panelHeaderBg:`#18181b`,shadowPage:`rgba(0, 0, 0, 0.4)`,badgeBg:`#3b82f6`,toolbarSeparator:`#3f3f46`},t={fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif`,bg:`#f4f4f5`,surface:`#ffffff`,surfaceHover:`#f4f4f5`,border:`#e4e4e7`,borderLight:`#d4d4d8`,scrollArea:`#e4e4e7`,textPrimary:`#18181b`,textSecondary:`#52525b`,textMuted:`#71717a`,textPlaceholder:`#a1a1aa`,accent:`#3b82f6`,accentHover:`#2563eb`,accentDark:`#1d4ed8`,accentLight:`#60a5fa`,accentSubtle:`rgba(59, 130, 246, 0.1)`,panelBg:`#ffffff`,panelBorder:`#e4e4e7`,panelHeaderBg:`#fafafa`,shadowPage:`rgba(0, 0, 0, 0.12)`,badgeBg:`#3b82f6`,toolbarSeparator:`#e4e4e7`};function n(e){return{"--pdf-font-family":e.fontFamily,"--pdf-bg":e.bg,"--pdf-surface":e.surface,"--pdf-surface-hover":e.surfaceHover,"--pdf-border":e.border,"--pdf-border-light":e.borderLight,"--pdf-scroll-area":e.scrollArea,"--pdf-text-primary":e.textPrimary,"--pdf-text-secondary":e.textSecondary,"--pdf-text-muted":e.textMuted,"--pdf-text-placeholder":e.textPlaceholder,"--pdf-accent":e.accent,"--pdf-accent-hover":e.accentHover,"--pdf-accent-dark":e.accentDark,"--pdf-accent-light":e.accentLight,"--pdf-accent-subtle":e.accentSubtle,"--pdf-panel-bg":e.panelBg,"--pdf-panel-border":e.panelBorder,"--pdf-panel-header-bg":e.panelHeaderBg,"--pdf-shadow-page":e.shadowPage,"--pdf-badge-bg":e.badgeBg,"--pdf-toolbar-separator":e.toolbarSeparator}}exports.darkTheme=e,exports.lightTheme=t,exports.themeToCssVars=n;
@@ -0,0 +1 @@
1
+ export declare function PDFToolbarSeparator(): import("react/jsx-runtime").JSX.Element | null;
@@ -18,107 +18,107 @@ var y = 2, b = ({ file: b, workerSrc: x, sidebar: S, toolbar: C, onChangeFile: w
18
18
  d(() => {
19
19
  h.GlobalWorkerOptions.workerSrc = x;
20
20
  }, [x]);
21
- let [D, O] = m(1), [k, A] = m(0), [j, M] = m(null), [N, P] = m([]), [F, I] = m(!1), [L, R] = m(T ?? null), z = p(null), B = p([]), V = p([]), H = p(k);
21
+ let [D, O] = m(1), [k, A] = m(0), [j, M] = m(null), [N, ae] = m([]), [P, F] = m(!1), [I, L] = m(T ?? null), R = p(null), z = p([]), B = p([]), V = p(k);
22
22
  d(() => {
23
- H.current = k;
23
+ V.current = k;
24
24
  }, [k]);
25
- let [U, W] = m(null);
26
- U !== b && (W(b), M(null));
27
- let { pdf: G, numPages: K } = ee(b);
25
+ let [H, U] = m(null);
26
+ H !== b && (U(b), M(null));
27
+ let { pdf: W, numPages: G, loading: K } = ee(b);
28
28
  d(() => {
29
- G && (B.current = Array(G.numPages).fill(null), V.current = Array(G.numPages).fill(null));
30
- }, [G]), d(() => {
31
- !G || !T || !z.current || s(T, G, z.current, H.current).then(O);
32
- }, [G, T]);
33
- let q = p(L);
29
+ W && (z.current = Array(W.numPages).fill(null), B.current = Array(W.numPages).fill(null));
30
+ }, [W]), d(() => {
31
+ !W || !T || !R.current || s(T, W, R.current, V.current).then(O);
32
+ }, [W, T]);
33
+ let q = p(I);
34
34
  d(() => {
35
- q.current = L;
36
- }, [L]), d(() => {
37
- if (!G || !z.current) return;
38
- let e = z.current, t = new ResizeObserver(() => {
39
- q.current && s(q.current, G, e, H.current).then(O);
35
+ q.current = I;
36
+ }, [I]), d(() => {
37
+ if (!W || !R.current) return;
38
+ let e = R.current, t = new ResizeObserver(() => {
39
+ q.current && s(q.current, W, e, V.current).then(O);
40
40
  });
41
41
  return t.observe(e), () => t.disconnect();
42
- }, [G]);
42
+ }, [W]);
43
43
  let { currentPage: J, goToPage: Y } = t({
44
- numPages: K,
45
- containerRef: z,
46
- pageRefs: B
44
+ numPages: G,
45
+ containerRef: R,
46
+ pageRefs: z
47
47
  }), X = f(() => {
48
- if (K === 0) return [];
49
- let e = /* @__PURE__ */ new Set(), t = Math.max(J - y, 1), n = Math.min(J + y, K);
48
+ if (G === 0) return [];
49
+ let e = /* @__PURE__ */ new Set(), t = Math.max(J - y, 1), n = Math.min(J + y, G);
50
50
  for (let r = t; r <= n; r++) e.add(r);
51
51
  j && e.add(j.page);
52
52
  for (let t of N) e.add(t.page);
53
53
  return Array.from(e).sort((e, t) => e - t);
54
54
  }, [
55
55
  J,
56
- K,
56
+ G,
57
57
  j,
58
58
  N
59
- ]), { pageSizes: ae, renderedPages: Z } = te({
60
- pdf: G,
59
+ ]), { pageSizes: oe, renderedPages: Z } = te({
60
+ pdf: W,
61
61
  zoom: D,
62
62
  rotation: k,
63
63
  visiblePages: X,
64
- canvasRefs: V
64
+ canvasRefs: B
65
65
  }), Q = f(() => {
66
66
  let e = new Set(X);
67
67
  for (let t of Z) e.add(t);
68
68
  return Array.from(e).sort((e, t) => e - t);
69
69
  }, [X, Z]);
70
70
  n({
71
- pdf: G,
71
+ pdf: W,
72
72
  currentPage: J,
73
73
  goToPage: Y,
74
74
  setZoom: O,
75
75
  setRotation: A,
76
- setFitMode: R
76
+ setFitMode: L
77
77
  });
78
- let oe = r({
79
- pdf: G,
78
+ let se = r({
79
+ pdf: W,
80
80
  zoom: D,
81
81
  rotation: k,
82
82
  mountedPages: Q,
83
- canvasRefs: V
84
- }), se = a({
85
- pdf: G,
83
+ canvasRefs: B
84
+ }), ce = a({
85
+ pdf: W,
86
86
  zoom: D,
87
87
  rotation: k,
88
88
  mountedPages: Q,
89
89
  goToPage: Y
90
- }), { overlayRect: $, searchOverlays: ce } = o({
91
- pdf: G,
90
+ }), { overlayRect: $, searchOverlays: le } = o({
91
+ pdf: W,
92
92
  highlight: j,
93
93
  searchMatches: N,
94
94
  zoom: D,
95
95
  rotation: k
96
- }), le = u((e, t) => {
96
+ }), ue = u((e, t) => {
97
97
  (!e.url || !i(e.url)) && (t.preventDefault(), e.url || e._handleClick());
98
- }, []), ue = f(() => ({
99
- pdf: G,
100
- numPages: K,
98
+ }, []), de = f(() => ({
99
+ pdf: W,
100
+ numPages: G,
101
101
  zoom: D,
102
102
  setZoom: O,
103
103
  rotation: k,
104
104
  setRotation: A,
105
105
  currentPage: J,
106
106
  goToPage: Y,
107
- containerRef: z,
108
- canvasRefs: V,
107
+ containerRef: R,
108
+ canvasRefs: B,
109
109
  file: b,
110
110
  highlight: j,
111
111
  setHighlight: M,
112
112
  searchMatches: N,
113
- setSearchMatches: P,
113
+ setSearchMatches: ae,
114
114
  onChangeFile: w,
115
- sidebarCollapsed: F,
116
- setSidebarCollapsed: I,
117
- fitMode: L,
118
- setFitMode: R
115
+ sidebarCollapsed: P,
116
+ setSidebarCollapsed: F,
117
+ fitMode: I,
118
+ setFitMode: L
119
119
  }), [
120
+ W,
120
121
  G,
121
- K,
122
122
  D,
123
123
  k,
124
124
  J,
@@ -127,14 +127,14 @@ var y = 2, b = ({ file: b, workerSrc: x, sidebar: S, toolbar: C, onChangeFile: w
127
127
  j,
128
128
  N,
129
129
  w,
130
- F,
131
- L
130
+ P,
131
+ I
132
132
  ]);
133
133
  return /* @__PURE__ */ _(c, {
134
134
  themeOverrides: ne,
135
135
  defaultTheme: re,
136
136
  children: /* @__PURE__ */ _(e.Provider, {
137
- value: ue,
137
+ value: de,
138
138
  children: /* @__PURE__ */ v("div", {
139
139
  className: `${l.appLayout}${E ? ` ${E}` : ""}`,
140
140
  style: ie,
@@ -143,15 +143,15 @@ var y = 2, b = ({ file: b, workerSrc: x, sidebar: S, toolbar: C, onChangeFile: w
143
143
  children: C
144
144
  }), /* @__PURE__ */ v("div", {
145
145
  className: l.body,
146
- children: [S, /* @__PURE__ */ _("div", {
146
+ children: [S, /* @__PURE__ */ v("div", {
147
147
  className: l.scrollContainer,
148
- ref: z,
149
- children: Array.from({ length: K }, (e, t) => {
150
- let n = Z.has(t + 1), r = ae[t], a = Q.includes(t + 1);
148
+ ref: R,
149
+ children: [K && /* @__PURE__ */ _("div", { className: l.documentLoading }), Array.from({ length: G }, (e, t) => {
150
+ let n = Z.has(t + 1), r = oe[t], a = Q.includes(t + 1);
151
151
  return /* @__PURE__ */ v("div", {
152
152
  className: l.pageWrapper,
153
153
  ref: (e) => {
154
- B.current[t] = e;
154
+ z.current[t] = e;
155
155
  },
156
156
  style: r ? {
157
157
  width: r.width,
@@ -168,16 +168,16 @@ var y = 2, b = ({ file: b, workerSrc: x, sidebar: S, toolbar: C, onChangeFile: w
168
168
  a && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("canvas", {
169
169
  className: l.pageCanvas,
170
170
  ref: (e) => {
171
- V.current[t] = e;
171
+ B.current[t] = e;
172
172
  },
173
173
  style: { display: n ? "block" : "none" }
174
174
  }), /* @__PURE__ */ _("div", {
175
175
  className: `textLayer ${l.textLayer}`,
176
176
  ref: (e) => {
177
- oe.current[t] = e;
177
+ se.current[t] = e;
178
178
  }
179
179
  })] }),
180
- se.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ _("a", {
180
+ ce.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ _("a", {
181
181
  className: l.linkOverlay,
182
182
  href: e.url && i(e.url) ? e.url : "#",
183
183
  target: "_blank",
@@ -188,9 +188,9 @@ var y = 2, b = ({ file: b, workerSrc: x, sidebar: S, toolbar: C, onChangeFile: w
188
188
  width: e.width,
189
189
  height: e.height
190
190
  },
191
- onClick: (t) => le(e, t)
191
+ onClick: (t) => ue(e, t)
192
192
  }, t)),
193
- ce.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ _("div", {
193
+ le.filter((e) => e.page === t + 1).map((e, t) => /* @__PURE__ */ _("div", {
194
194
  className: l.searchMatchOverlay,
195
195
  style: {
196
196
  left: e.x,
@@ -210,7 +210,7 @@ var y = 2, b = ({ file: b, workerSrc: x, sidebar: S, toolbar: C, onChangeFile: w
210
210
  })
211
211
  ]
212
212
  }, `${t}-${k}`);
213
- })
213
+ })]
214
214
  })]
215
215
  })]
216
216
  })
@@ -1,19 +1,20 @@
1
1
  var e = {
2
- appLayout: "_appLayout_1nhg3_1",
3
- body: "_body_1nhg3_9",
4
- toolbar: "_toolbar_1nhg3_17",
5
- scrollContainer: "_scrollContainer_1nhg3_29",
6
- pageWrapper: "_pageWrapper_1nhg3_39",
7
- pageCanvas: "_pageCanvas_1nhg3_44",
8
- textLayer: "_textLayer_1nhg3_53",
9
- markedContent: "_markedContent_1nhg3_79",
10
- endOfContent: "_endOfContent_1nhg3_94",
11
- selecting: "_selecting_1nhg3_103",
12
- pageSkeleton: "_pageSkeleton_1nhg3_123",
13
- spin: "_spin_1nhg3_1",
14
- highlightOverlay: "_highlightOverlay_1nhg3_152",
15
- linkOverlay: "_linkOverlay_1nhg3_161",
16
- searchMatchOverlay: "_searchMatchOverlay_1nhg3_168"
2
+ appLayout: "_appLayout_18euq_1",
3
+ body: "_body_18euq_9",
4
+ toolbar: "_toolbar_18euq_17",
5
+ scrollContainer: "_scrollContainer_18euq_29",
6
+ pageWrapper: "_pageWrapper_18euq_40",
7
+ pageCanvas: "_pageCanvas_18euq_45",
8
+ textLayer: "_textLayer_18euq_54",
9
+ markedContent: "_markedContent_18euq_80",
10
+ endOfContent: "_endOfContent_18euq_95",
11
+ selecting: "_selecting_18euq_104",
12
+ documentLoading: "_documentLoading_18euq_124",
13
+ spin: "_spin_18euq_1",
14
+ pageSkeleton: "_pageSkeleton_18euq_144",
15
+ highlightOverlay: "_highlightOverlay_18euq_173",
16
+ linkOverlay: "_linkOverlay_18euq_182",
17
+ searchMatchOverlay: "_searchMatchOverlay_18euq_189"
17
18
  };
18
19
  //#endregion
19
20
  export { e as default };
@@ -1,7 +1,7 @@
1
1
  var e = {
2
- navWrapper: "_navWrapper_hrnrb_1",
3
- pageInput: "_pageInput_hrnrb_7",
4
- pageTotal: "_pageTotal_hrnrb_35"
2
+ navWrapper: "_navWrapper_14eo9_1",
3
+ pageInput: "_pageInput_14eo9_7",
4
+ pageTotal: "_pageTotal_14eo9_34"
5
5
  };
6
6
  //#endregion
7
7
  export { e as default };
@@ -0,0 +1,13 @@
1
+ import { PDFToolbarDropdownContext as e } from "./PDFToolbarDropdownContext.js";
2
+ import t from "./PDFToolbarSeparator.module.js";
3
+ import { useContext as n } from "react";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region src/components/ui/PDFToolbarSeparator.tsx
6
+ function i() {
7
+ return n(e) ? null : /* @__PURE__ */ r("div", {
8
+ className: t.separator,
9
+ "aria-hidden": "true"
10
+ });
11
+ }
12
+ //#endregion
13
+ export { i as PDFToolbarSeparator };
@@ -0,0 +1,3 @@
1
+ var e = { separator: "_separator_uif34_1" };
2
+ //#endregion
3
+ export { e as default };
@@ -2,8 +2,9 @@ import { useEffect as e, useState as t } from "react";
2
2
  import * as n from "pdfjs-dist";
3
3
  //#region src/hooks/usePDFLoader.ts
4
4
  function r(r) {
5
- let [i, a] = t(null), [o, s] = t(0);
5
+ let [i, a] = t(null), [o, s] = t(0), [c, l] = t(!0);
6
6
  return e(() => {
7
+ l(!0), a(null), s(0);
7
8
  let e = new FileReader();
8
9
  e.onload = async (e) => {
9
10
  let t = new Uint8Array(e.target?.result);
@@ -12,11 +13,14 @@ function r(r) {
12
13
  a(e), s(e.numPages);
13
14
  } catch (e) {
14
15
  console.error("Errore caricamento:", e);
16
+ } finally {
17
+ l(!1);
15
18
  }
16
19
  }, e.readAsArrayBuffer(r);
17
20
  }, [r]), {
18
21
  pdf: i,
19
- numPages: o
22
+ numPages: o,
23
+ loading: c
20
24
  };
21
25
  }
22
26
  //#endregion
package/dist/es/index.js CHANGED
@@ -18,4 +18,5 @@ import { PDFPrintButton as b } from "./components/features/PDFPrintButton.js";
18
18
  import { PDFSidebarToggle as x } from "./components/features/PDFSidebarToggle.js";
19
19
  import { PDFToolbar as S } from "./components/ui/PDFToolbar.js";
20
20
  import { PDFToolbarItem as C } from "./components/ui/PDFToolbarItem.js";
21
- export { o as PDFAnnotations, s as PDFAnnotationsIcon, i as PDFAttachments, a as PDFAttachmentsIcon, c as PDFChangeFile, l as PDFDownloadButton, u as PDFNavigation, d as PDFOutline, f as PDFPageFit, b as PDFPrintButton, p as PDFRotationControl, m as PDFSearch, r as PDFSidebar, x as PDFSidebarToggle, h as PDFSignatures, g as PDFSignaturesIcon, y as PDFThemeToggle, _ as PDFThumbnails, S as PDFToolbar, C as PDFToolbarItem, n as PDFViewer, v as PDFZoomControls, e as darkTheme, t as lightTheme };
21
+ import { PDFToolbarSeparator as w } from "./components/ui/PDFToolbarSeparator.js";
22
+ export { o as PDFAnnotations, s as PDFAnnotationsIcon, i as PDFAttachments, a as PDFAttachmentsIcon, c as PDFChangeFile, l as PDFDownloadButton, u as PDFNavigation, d as PDFOutline, f as PDFPageFit, b as PDFPrintButton, p as PDFRotationControl, m as PDFSearch, r as PDFSidebar, x as PDFSidebarToggle, h as PDFSignatures, g as PDFSignaturesIcon, y as PDFThemeToggle, _ as PDFThumbnails, S as PDFToolbar, C as PDFToolbarItem, w as PDFToolbarSeparator, n as PDFViewer, v as PDFZoomControls, e as darkTheme, t as lightTheme };
@@ -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_1nhg3_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_1nhg3_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_1nhg3_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_1nhg3_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;overflow-y:auto}._pageWrapper_1nhg3_39{margin-bottom:25px;position:relative}._pageCanvas_1nhg3_44{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_1nhg3_53{--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_1nhg3_53 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_1nhg3_53>:not(._markedContent_1nhg3_79),._textLayer_1nhg3_53 ._markedContent_1nhg3_79 span:not(._markedContent_1nhg3_79){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_1nhg3_53 ._markedContent_1nhg3_79{display:contents}._textLayer_1nhg3_53 ._endOfContent_1nhg3_94{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_1nhg3_53._selecting_1nhg3_103 ._endOfContent_1nhg3_94{top:0}._textLayer_1nhg3_53 ::selection{background:#0000ff40}._textLayer_1nhg3_53 br::selection{background:0 0}._pageSkeleton_1nhg3_123{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_1nhg3_123:after{content:"";border:3px solid #0000001a;border-top-color:var(--pdf-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite _spin_1nhg3_1}@keyframes _spin_1nhg3_1{to{transform:rotate(360deg)}}._highlightOverlay_1nhg3_152{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_1nhg3_161{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_1nhg3_168{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_113xr_1{flex-direction:column;display:flex}._emptyState_113xr_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_113xr_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_113xr_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_113xr_33{cursor:pointer}._cardClickable_113xr_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_113xr_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_113xr_48{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_113xr_54{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_113xr_59{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_113xr_65{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_113xr_71{justify-content:center;align-items:center;display:flex;position:relative}._badge_113xr_78{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_hrnrb_1{align-items:center;gap:2px;display:flex}._pageInput_hrnrb_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_hrnrb_7:focus{border-color:var(--pdf-accent);background:var(--pdf-bg)}._pageInput_hrnrb_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_hrnrb_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_hrnrb_7{-moz-appearance:textfield}._pageTotal_hrnrb_35{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}
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_18euq_1{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}._body_18euq_9{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}._toolbar_18euq_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_18euq_29{background-color:var(--pdf-scroll-area);flex-direction:column;flex:1;align-items:center;padding:10px 20px;display:flex;position:relative;overflow-y:auto}._pageWrapper_18euq_40{margin-bottom:25px;position:relative}._pageCanvas_18euq_45{z-index:1;box-shadow:0 5px 20px var(--pdf-shadow-page);pointer-events:none;background-color:#fff;display:block;position:relative}._textLayer_18euq_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_18euq_54 :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;position:absolute}._textLayer_18euq_54>:not(._markedContent_18euq_80),._textLayer_18euq_54 ._markedContent_18euq_80 span:not(._markedContent_18euq_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_18euq_54 ._markedContent_18euq_80{display:contents}._textLayer_18euq_54 ._endOfContent_18euq_95{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}._textLayer_18euq_54._selecting_18euq_104 ._endOfContent_18euq_95{top:0}._textLayer_18euq_54 ::selection{background:#0000ff40}._textLayer_18euq_54 br::selection{background:0 0}._documentLoading_18euq_124{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._documentLoading_18euq_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_18euq_1}._pageSkeleton_18euq_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_18euq_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_18euq_1}@keyframes _spin_18euq_1{to{transform:rotate(360deg)}}._highlightOverlay_18euq_173{z-index:4;pointer-events:none;background-color:#ffdc0059;border:2px solid #ffa000e6;border-radius:2px;position:absolute}._linkOverlay_18euq_182{z-index:3;pointer-events:all;cursor:pointer;position:absolute}._searchMatchOverlay_18euq_189{z-index:3;pointer-events:none;background-color:#fde0474d;border-bottom:2px solid #eab308cc;position:absolute}._list_113xr_1{flex-direction:column;display:flex}._emptyState_113xr_6{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._pageHeader_113xr_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_113xr_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_113xr_33{cursor:pointer}._cardClickable_113xr_33:hover{box-shadow:0 1px 6px var(--pdf-shadow-page)}._cardHeader_113xr_41{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}._cardLabel_113xr_48{color:var(--pdf-text-secondary);font-size:11px;font-weight:600}._cardPage_113xr_54{color:var(--pdf-text-secondary);font-size:10px}._cardAuthor_113xr_59{color:var(--pdf-text-muted);margin-bottom:3px;font-size:11px}._cardContent_113xr_65{color:var(--pdf-text-primary);font-size:12px;line-height:1.5}._iconWrapper_113xr_71{justify-content:center;align-items:center;display:flex;position:relative}._badge_113xr_78{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._list_12ybz_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_12ybz_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_12ybz_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;box-sizing:border-box;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}._fileIcon_12ybz_33{color:var(--pdf-text-muted);flex-shrink:0;align-items:center;display:flex}._filename_12ybz_40{min-width:0;color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}._downloadBtn_12ybz_51{border:1px solid var(--pdf-border);background:var(--pdf-surface);width:28px;height:28px;color:var(--pdf-text-secondary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;transition:background .15s,border-color .15s,color .15s;display:flex}._downloadBtn_12ybz_51:hover{background:var(--pdf-accent);border-color:var(--pdf-accent);color:#fff}._iconWrapper_12ybz_77{justify-content:center;align-items:center;display:flex;position:relative}._badge_12ybz_84{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._btn_1dub8_1{color:var(--pdf-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;gap:5px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1;transition:background .12s,color .12s;display:flex}._btn_1dub8_1:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._btn_1dub8_1:disabled{color:var(--pdf-border);cursor:default}._primary_1dub8_31{background:var(--pdf-accent);color:#fff;padding:6px 14px}._primary_1dub8_31:hover:not(:disabled){background:var(--pdf-accent-hover);color:#fff}._navWrapper_14eo9_1{align-items:center;gap:2px;display:flex}._pageInput_14eo9_7{background:var(--pdf-surface);width:32px;color:var(--pdf-text-primary);font-variant-numeric:tabular-nums;text-align:center;border:1px solid #0000;border-radius:4px;outline:none;padding:3px 4px;font-family:inherit;font-size:12px}._pageInput_14eo9_7:focus{border-color:var(--pdf-accent)}._pageInput_14eo9_7::-webkit-outer-spin-button{-webkit-appearance:none}._pageInput_14eo9_7::-webkit-inner-spin-button{-webkit-appearance:none}._pageInput_14eo9_7{-moz-appearance:textfield}._pageTotal_14eo9_34{color:var(--pdf-text-placeholder);font-variant-numeric:tabular-nums;font-size:12px}._emptyState_hqvdn_1{color:var(--pdf-text-secondary);padding:20px 14px;font-size:12px}._tree_hqvdn_7{flex-direction:column;padding:4px 0;display:flex}._row_hqvdn_13{color:var(--pdf-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:4px;margin:0 4px;padding:5px 12px;font-size:12px;line-height:1.4;display:flex}._row_hqvdn_13:hover{background-color:var(--pdf-surface-hover);color:var(--pdf-text-primary)}._chevronBtn_hqvdn_31{cursor:pointer;color:var(--pdf-text-secondary);background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}._chevronBtn_hqvdn_31:hover{color:var(--pdf-text-muted)}._title_hqvdn_46{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._wrapper_18kvs_1{align-items:center;gap:4px;display:flex}._searchIconWrapper_18kvs_7{color:var(--pdf-text-secondary);align-items:center;display:flex}._searchInput_18kvs_13{background:var(--pdf-surface);border:1px solid var(--pdf-border);color:var(--pdf-text-primary);border-radius:4px;outline:none;width:180px;padding:4px 8px;font-family:inherit;font-size:13px}._searchInput_18kvs_13:focus{border-color:var(--pdf-accent)}._searchInput_18kvs_13::placeholder{color:var(--pdf-text-placeholder)}._navButton_18kvs_33{color:var(--pdf-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 5px;display:flex}._navButton_18kvs_33:hover:not(:disabled){background:var(--pdf-surface);color:var(--pdf-text-primary)}._navButton_18kvs_33:disabled{color:var(--pdf-border);cursor:default}._counter_18kvs_54{color:var(--pdf-text-muted);text-align:center;min-width:36px;font-size:11px}._list_b0wj1_1{flex-direction:column;gap:6px;padding:8px;display:flex}._emptyState_b0wj1_8{color:var(--pdf-text-muted);text-align:center;padding:24px 14px;font-size:12px}._card_b0wj1_15{border:1px solid var(--pdf-border);background:var(--pdf-panel-bg);text-align:left;cursor:default;box-sizing:border-box;border-radius:8px;width:100%;font-family:inherit;font-size:12px;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}._cardSigned_b0wj1_32{background:#22c55e0a;border-color:#22c55e47}._cardClickable_b0wj1_37{cursor:pointer}._cardClickable_b0wj1_37:hover{box-shadow:0 2px 10px var(--pdf-shadow-page);border-color:var(--pdf-border-light)}._cardSigned_b0wj1_32._cardClickable_b0wj1_37:hover{border-color:#22c55e73}._cardBody_b0wj1_50{padding:10px 12px 10px 16px}._cardHeader_b0wj1_54{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}._fieldName_b0wj1_62{color:var(--pdf-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}._statusChip_b0wj1_73{text-transform:uppercase;letter-spacing:.5px;background:var(--pdf-surface-hover);color:var(--pdf-text-muted);border:1px solid var(--pdf-border);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}._statusChipSigned_b0wj1_89{color:#15803d;background:#22c55e1f;border-color:#22c55e4d}._fieldList_b0wj1_95{flex-direction:column;gap:4px;display:flex}._fieldRow_b0wj1_101{grid-template-columns:72px 1fr;gap:4px;font-size:11px;line-height:1.5;display:grid}._fieldLabel_b0wj1_109{color:var(--pdf-text-muted);font-weight:500}._fieldValue_b0wj1_114{color:var(--pdf-text-secondary);word-break:break-word}._iconWrapper_b0wj1_119{justify-content:center;align-items:center;display:flex;position:relative}._badge_b0wj1_126{background-color:var(--pdf-badge-bg);color:#fff;text-align:center;pointer-events:none;box-sizing:border-box;border-radius:7px;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-7px}._thumbnailList_t3mg8_1{background-color:var(--pdf-panel-bg);padding-bottom:8px}._thumbnailItem_t3mg8_6{cursor:pointer;text-align:center;background-color:#0000;border-left:2px solid #0000;padding:12px 16px;transition:background-color .15s}._thumbnailItem_t3mg8_6:hover{background-color:var(--pdf-surface-hover)}._thumbnailItemActive_t3mg8_19{background-color:var(--pdf-accent-subtle);border-left-color:var(--pdf-accent)}._thumbnailItemActive_t3mg8_19:hover{background-color:var(--pdf-accent-subtle)}._thumbnailImg_t3mg8_28{width:120px;box-shadow:0 1px 4px var(--pdf-shadow-page);border-radius:2px}._thumbnailImgActive_t3mg8_34{box-shadow:0 0 0 2px var(--pdf-accent), 0 2px 8px var(--pdf-shadow-page)}._thumbnailSkeleton_t3mg8_40{background:linear-gradient(90deg, var(--pdf-surface) 25%, var(--pdf-surface-hover) 50%, var(--pdf-surface) 75%);background-size:200% 100%;border-radius:2px;width:120px;height:160px;animation:1.4s infinite _shimmer_t3mg8_1}@keyframes _shimmer_t3mg8_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumbnailLabel_t3mg8_63{color:var(--pdf-text-muted);margin-top:6px;font-size:11px;font-weight:400}._thumbnailLabelActive_t3mg8_70{color:var(--pdf-accent-hover);font-weight:600}._zoomLabel_m8iv9_1{text-align:center;min-width:42px;color:var(--pdf-text-muted);font-variant-numeric:tabular-nums;font-size:12px}._toolbar_xoqxq_1{flex:1;align-items:center;gap:2px;min-width:0;display:flex}._item_xoqxq_9{flex-shrink:0;align-items:center;display:flex}._overflowWrapper_xoqxq_15{flex-shrink:0;margin-left:auto;position:relative}._overflowBtnActive_xoqxq_21{background:var(--pdf-surface);color:var(--pdf-text-primary)}._dropdown_xoqxq_26{background:var(--pdf-bg);border:1px solid var(--pdf-border);z-index:100;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000002e}._dropdownItem_xoqxq_41{border-radius:4px;justify-content:flex-end;align-items:center;padding:1px 2px;display:flex}._dropdownItem_xoqxq_41>*{flex-shrink:0}._labeledItem_xoqxq_53{align-items:center;gap:8px;width:100%;display:flex}._itemContent_xoqxq_60{flex-shrink:0;align-items:center;display:flex}._itemLabel_xoqxq_66{color:var(--pdf-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex:1;font-size:12px}._dropdownItem_xoqxq_41:hover{background:var(--pdf-surface-hover)}._separator_uif34_1{background:var(--pdf-toolbar-separator);flex-shrink:0;width:1px;height:20px;margin:0 4px}
2
2
  /*$vite$:1*/
package/dist/es/theme.js CHANGED
@@ -20,7 +20,8 @@ var e = {
20
20
  panelBorder: "#27272a",
21
21
  panelHeaderBg: "#18181b",
22
22
  shadowPage: "rgba(0, 0, 0, 0.4)",
23
- badgeBg: "#3b82f6"
23
+ badgeBg: "#3b82f6",
24
+ toolbarSeparator: "#3f3f46"
24
25
  }, t = {
25
26
  fontFamily: "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif",
26
27
  bg: "#f4f4f5",
@@ -42,7 +43,8 @@ var e = {
42
43
  panelBorder: "#e4e4e7",
43
44
  panelHeaderBg: "#fafafa",
44
45
  shadowPage: "rgba(0, 0, 0, 0.12)",
45
- badgeBg: "#3b82f6"
46
+ badgeBg: "#3b82f6",
47
+ toolbarSeparator: "#e4e4e7"
46
48
  };
47
49
  function n(e) {
48
50
  return {
@@ -66,7 +68,8 @@ function n(e) {
66
68
  "--pdf-panel-border": e.panelBorder,
67
69
  "--pdf-panel-header-bg": e.panelHeaderBg,
68
70
  "--pdf-shadow-page": e.shadowPage,
69
- "--pdf-badge-bg": e.badgeBg
71
+ "--pdf-badge-bg": e.badgeBg,
72
+ "--pdf-toolbar-separator": e.toolbarSeparator
70
73
  };
71
74
  }
72
75
  //#endregion
@@ -1,4 +1,5 @@
1
1
  export declare function usePDFLoader(file: File): {
2
2
  pdf: import('pdfjs-dist/types/src/display/api').PDFDocumentProxy | null;
3
3
  numPages: number;
4
+ loading: boolean;
4
5
  };
package/dist/index.d.ts CHANGED
@@ -19,3 +19,4 @@ export { PDFPrintButton } from './components/features/PDFPrintButton';
19
19
  export { PDFSidebarToggle } from './components/features/PDFSidebarToggle';
20
20
  export { PDFToolbar } from './components/ui/PDFToolbar';
21
21
  export { PDFToolbarItem } from './components/ui/PDFToolbarItem';
22
+ export { PDFToolbarSeparator } from './components/ui/PDFToolbarSeparator';
package/dist/theme.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface Theme {
20
20
  panelHeaderBg: string;
21
21
  shadowPage: string;
22
22
  badgeBg: string;
23
+ toolbarSeparator: string;
23
24
  }
24
25
  export declare const darkTheme: Theme;
25
26
  export declare const lightTheme: Theme;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-tsx",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "A fully-featured, composable PDF viewer component for React",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.cjs",