pdf-tsx 0.3.0 → 0.4.0

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