{"_id":"@iamjariwala/react-doc-viewer","_rev":"21-be063d455b4287a713476017871d4cf7","name":"@iamjariwala/react-doc-viewer","dist-tags":{"latest":"1.9.0"},"versions":{"0.2.0":{"name":"@iamjariwala/react-doc-viewer","version":"0.2.0","keywords":["reactjs","react-library","file-viewer","doc-viewer","pdf-viewer","document-viewer","office-viewer","docx","xlsx","pptx"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@0.2.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"2b2a99e2874ae5b050cddfc1b334c30e0780ad1c","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-0.2.0.tgz","fileCount":106,"integrity":"sha512-OXENJB1rwNJUFnXEIWFNw2LQ5yRIwxBIXmrZ50AaytsHADYBq3Enem5TAsNm73Es9OKM+8Mfj1H01zUSUyLGVg==","signatures":[{"sig":"MEUCICRSqpXvvkLroZTx7GXEbGiNDsxT2XyNHeuyozgLY799AiEAiMXCI3vgd4JbqCW2ZcXO+mAO+pCjNecpyYek++wNp2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1607342},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"314a174bf86598af572fb0c5790c5ca59c39f2aa","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.8.2","description":"Universal document viewer for React - supports PDF, Office docs, images, videos and more.","directories":{},"_nodeVersion":"20.19.5","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"ajv":"^7.2.4","core-js":"^3.37.1","mustache":"^4.2.0","papaparse":"^5.4.1","react-pdf":"^9.0.0","@types/mustache":"^4.2.5","@types/papaparse":"^5.3.14","styled-components":"^6.1.11"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@types/styled-components":"^5.1.34","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_0.2.0_1770302821006_0.58412234599302","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@iamjariwala/react-doc-viewer","version":"0.2.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff","webp","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","annotations","pdf-annotations","highlight","drawing","thumbnail","page-navigation","zoom","react-pdf","react-viewer","react-document","typescript","i18n","multi-format","react17","react18","nextjs","vite"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@0.2.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"d6882531fcbfcdae8213314a04a3b9dd1e33cb14","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-0.2.1.tgz","fileCount":106,"integrity":"sha512-3JBMp8ZfV8WOdcivxI/AGSc3C8Dg7Ixx/isvdCBGVAAhLkYykT7esBFfkMioy8Vy5jVZFVZkn+Ejdt7Re1HTuw==","signatures":[{"sig":"MEQCIE9WeG/ScY9feLCEboQH7h/GNh18KmVhJibp979l58+oAiAts7QGbBy3QGf4VH2fxpLw4jSVGFWG9wLr22wKSW5ZAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1613852},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"9fa401dda92084fa400183eeea428f3f3dd9602e","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"ajv":"^7.2.4","core-js":"^3.37.1","mustache":"^4.2.0","papaparse":"^5.4.1","react-pdf":"^9.0.0","@types/mustache":"^4.2.5","@types/papaparse":"^5.3.14","styled-components":"^6.1.11"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@types/styled-components":"^5.1.34","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_0.2.1_1770718538665_0.621991798347816","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.0.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff","webp","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","annotations","pdf-annotations","highlight","drawing","thumbnail","page-navigation","zoom","react-pdf","react-viewer","react-document","typescript","i18n","multi-format","react17","react18","nextjs","vite"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.0.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"08208a9611425adc4492a2e057f355c79b0d388c","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.0.0.tgz","fileCount":3,"integrity":"sha512-DYdRvfCiVgXSVL3kzvMqQGH3iwCGszo90fM1HVYfM5hBDX9oSn1/BqVAYLPNEpo771ZzHUi0Po6Cc4Pb6J7Ewg==","signatures":[{"sig":"MEUCIBLzB+KtAR7IL55M+NCFrZdsdjSoMFzmAQfFlzeLj/xIAiEAx0vaFtF/IlJZAGnkK5MGU+ZvcnsPcPV7/x8R0u6eM7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37659},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"b0107aa0274752c2319785ac36ba2f6c68d88db8","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"ajv":"^7.2.4","core-js":"^3.37.1","mustache":"^4.2.0","papaparse":"^5.4.1","react-pdf":"^9.0.0","@types/mustache":"^4.2.5","@types/papaparse":"^5.3.14","styled-components":"^6.1.11"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@types/styled-components":"^5.1.34","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.0.0_1770790775467_0.1145166540787832","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.1.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff","webp","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","annotations","pdf-annotations","highlight","drawing","thumbnail","page-navigation","zoom","react-pdf","react-viewer","react-document","typescript","i18n","multi-format","react17","react18","nextjs","vite"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.1.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"3a1899e48f5eb1df24def8e75901200905dcb4d7","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.1.0.tgz","fileCount":106,"integrity":"sha512-pTslGptNPlJMhif1tVNEIG/Hxp9Z5gzDVbWHoUV/7zZugKP/izeTxl1oAhEsr2y8j2lvSlUW+1e9LEpdfbWtsg==","signatures":[{"sig":"MEYCIQDfcT/EbG+l2ra1/+VbynEqIJAVe5oSOJN6+LRMNUlYkAIhAM4F2YbPyicw4sehsNDPEGPIdcxBFz5PA9IHFQ5U2POs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5124775},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"b0107aa0274752c2319785ac36ba2f6c68d88db8","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.1.0_1770959058053_0.6138773059478215","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@iamjariwala/react-doc-viewer","version":"1.1.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.1.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"5728f55700c44ccfb6d33451e328962216a41696","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.1.1.tgz","fileCount":106,"integrity":"sha512-v6a4EhYZzDdaFlRafOxf5Dkzwmcb0WdXJatGvOZlN32R38VwMOCooOTKZskz9ogdXZv6ESbmsr2RAALVU0oUQw==","signatures":[{"sig":"MEUCIEqThwaseXq891M2Wt9wIxXfn2g8e4o4CzyUqABe46v3AiEA8lQOD8xWlZsv+jZlCd8i5K6pbPhCkga/gcwbJPE6yUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5138794},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"b0107aa0274752c2319785ac36ba2f6c68d88db8","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.1.1_1770959396417_0.38274509575590887","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.2.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.2.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"d1ad3946641aa5e08cc84906034d3c18671e91d7","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.2.0.tgz","fileCount":110,"integrity":"sha512-UA4ZJIJDOuFHBxWyAhCNqWYFQ+2i8UVL/FhZroxpyFq+kcp3jcZvLmpnFkz7uvJpSXvieKDyiYn78X7VvDcHtw==","signatures":[{"sig":"MEYCIQDc5LIylBtSS42zlSGedQxmvycJKODM4osN9w9KtxmdvQIhANr5T70hDM2xweGsh1UTbysD4BMZqSqYoj4ZLP8OjA/R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5139194},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"0d5c63eae75718b8e378b069a14846eb38fe8615","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.2.0_1770961599856_0.005101436178373442","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@iamjariwala/react-doc-viewer","version":"1.2.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.2.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"aa3375b6c52d3d758852da34b5fd1b84d2a5582b","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.2.1.tgz","fileCount":110,"integrity":"sha512-E31jgiDbImM9TZN0mvaJ7MiMbaeleXnty4TOkaq8SNe02nZSNrzt+cbBn4RAl5bCY0UBppdqZxi/gQbEOOFLWA==","signatures":[{"sig":"MEQCIFTTxmOa8+PHlbC4pWNuSiIhQBmARR/3+h3eZVMR5LcRAiBhrXIunopsQUkwb4agPfGj+aSJ87Q+AbEtyrx9NATFAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5141260},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"eab42d13a06f511b58c22cf6f0e356a904e4544a","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.2.1_1770963533183_0.5919106700696948","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.3.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.3.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"773f0201c31ca00189b44fe16167ef14a8ad8a7d","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.3.0.tgz","fileCount":110,"integrity":"sha512-GrZ+kuubUXULpHOgveLSz9aID+Q3x2fQSkKm655ScXe7rcREOph3dp12lxT2UzalYswsFlKCmvPhXHFyizUZLQ==","signatures":[{"sig":"MEQCICxqcP2wLB3bbhfXMiFwF9Ik76+CfIIo8LjdcNoRjSvxAiAtpDbIDC0M3bowMGypjVxZYZO17AoI8/FzM2SxWlsXmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5140128},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"d268e407cfaec92e10cf7b6ee03f1e96c2b050bf","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.3.0_1770964157830_0.27553475005788486","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.4.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.4.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"9857053454e023fd0e2b5e2cf1e156568a6d09a3","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.4.0.tgz","fileCount":138,"integrity":"sha512-ynts6mtzOJkBDu1wsVHJlYtgKErFsxHibblZ0xlrXJd5p/NAAWRj5rEZQAvLcenr0CGFXouzU8YenZh44JXdIA==","signatures":[{"sig":"MEQCIE5CooJPaAT5PHGkU2dmV5LUAhfYegToRu4Bn8ofABk8AiBDr02hz4q6MPm/XKtjfX+DCwMt3v9ldKvdA6z/2iFDgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5251770},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"58d5ca2aace39f79b89d3cda3fad60998ddbbef8","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.4.0_1770967258478_0.0627232563310911","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@iamjariwala/react-doc-viewer","version":"1.4.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.4.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"bb14224adc76d2ee926d28c5358379b5e73203c4","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.4.1.tgz","fileCount":138,"integrity":"sha512-0ZkbFs1nI8w1/a+tY/WjliTyO+GMZIwDzV9CXqcXtP4d82s0WOcUGFlnt7DW0/xCGcTDT+8zwSjIlW7EQiyOfQ==","signatures":[{"sig":"MEUCICYC4SQXTBjq8YczNmwvMdXXAeu57Em++uFMC1TfrOFOAiEAi+ZevOi7qox7ZoilORePNKO5gEA7UPrkLid1O9HP5Io=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5252414},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"432172073d55ef7d2ee129e2c3f53fd3cb621254","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.4.1_1770969625122_0.8770456119117012","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@iamjariwala/react-doc-viewer","version":"1.4.2","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.4.2","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"e7dc5909d31c1fe9dddc714279ac9b31c4f47f10","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.4.2.tgz","fileCount":134,"integrity":"sha512-+NIi2x7yhPbRLgLDQVa+XOG8TjEm9gdiV/xw/tJFKvH0UOpwJI5ubiBU+o8l3a+NcU54gMr5aC1LEb98zoZ1MA==","signatures":[{"sig":"MEQCICQBhE4WDQSPugz/hs62a8OFyVnTTJ6Ze4qEBcJS0/1jAiBa8+UYvP/rUBohDzBbaHRCuLI5eJ+DB/p/rpb0FhZO2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5252014},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"8872ca172855ff517e2367a088a09b8953ca639b","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.4.2_1770970350238_0.7435093717155126","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.5.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.5.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"19b3651b1626cd3eca47d345196ce1c910c5cebb","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.5.0.tgz","fileCount":137,"integrity":"sha512-kwNkfRgqIvVDWUtaC/oZB606lT8xWksZVpFRKWwbw4W/X+iqIrgsxQyI1ottY3YwsfQWSUpk+RVHayiDMkKkAQ==","signatures":[{"sig":"MEQCIHfKyzPS3QQnyS2sqknpoegP9WwlMJcB8NY6ay1sceNEAiAJkU62npqUnLKJkfabXsFoCdQ2EjiE6v6AQKrG7mFoTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5690236},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"05cc6e17f1fcfba121bcfea2f9e11425c9c83c18","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.5.0_1770994014143_0.91512922841349","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@iamjariwala/react-doc-viewer","version":"1.5.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.5.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"7c15c9f5061aff41efcf68f5fb9b991f070e85a9","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.5.1.tgz","fileCount":137,"integrity":"sha512-7Gj/vVjZruAv3h17utwZrOwSBuOkZJ44Jo0UnB/Fh5kEw7TSXaLQGJw66mz+5641ySu/GDRO0vLGRT//6+k5Tw==","signatures":[{"sig":"MEUCIBAAY7UZe+jl+cN7YWqVRIkIhBgBmMlmEHfvxAYP8KDTAiEAxvsDte7PBMRYHy0WKHJyqrUPdTZdIBKDAuRHNNR42uk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5690236},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"0dba898dcce2d1a7926b17a5d0971f11f7c21a58","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.5.1_1770994587708_0.5095722202525093","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.6.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.6.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"7151c042da05de46f3acf4cefe0ea545ffa3b0b2","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.6.0.tgz","fileCount":138,"integrity":"sha512-QZQeFzYMo7vELdBeaDV6DOBaN4oO8xOv9kJ2ITYWFuMzrqxCMPKlMapacHWU1/lCkeqSUIZuZlaY6wqHY1/jlQ==","signatures":[{"sig":"MEYCIQDjPsbZPAP35Fi5DikGhqnIBZwh16dGlD1fALfqCM30iQIhAK3nxxmlAypMImU/0uRpkZKlBcH+RsC4icA78llsmVrs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5712279},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"af070eb2801b3c1ef1e5639753b9012639e8acdf","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word, Excel, PowerPoint, images, video, CSV and 20+ file types with drag-and-drop, annotations, thumbnails and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.6.0_1771144101508_0.1980984522691529","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@iamjariwala/react-doc-viewer","version":"1.6.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.6.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"9648fa7b551310420da56a34192903435ef09bb0","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.6.1.tgz","fileCount":138,"integrity":"sha512-82ipTvfCTX9ksu54hsDxjBkGH9ihCXT7UKVv4Vhqsfvut1lwYwqIiyelHrsRot6LPs8umeJEHsc4u74B5m0zJQ==","signatures":[{"sig":"MEUCIBPxGICpHqe3k1026EfyGqCb3xKoIdCYQx4Uy+Az/z3pAiEA1BR5nNWh8YGnbJXcFwg2ttHcxggvcR5nMeJBQcYGC3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5712717},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"14d6dc2fe4407db866538d5ae3d3f5117b17f5bd","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word (DOCX inline), Excel, PowerPoint, Markdown, images, video, CSV and 20+ file types with annotations, text search, dark mode, drag-and-drop, thumbnails, zoom and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.6.1_1771147592819_0.8087537985533524","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@iamjariwala/react-doc-viewer","version":"1.6.2","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.6.2","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"dbf52704069383093465e285ebcf09a4bfd01fd3","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.6.2.tgz","fileCount":139,"integrity":"sha512-IlNBC2qhOceC2Q+kR8vAtY6qpJkCnOFIH2kwegAvWsdd+oCALWzMzZSqhWWcIqJDPNGgLHhBT/OQw4QwSnzaOw==","signatures":[{"sig":"MEUCIDNygrGGkUcYBqgL6WpNcJg7TGiNJcy/NmnHgeIh9ikaAiEAjI9EflN/kxYvqex/gUq9xK5wtIPUIoW287x00/NoKXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8529398},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"7f85c3786578c5e9fb5fb0c7cc5ce7c5825e1d79","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word (DOCX inline), Excel, PowerPoint, Markdown, images, video, CSV and 20+ file types with annotations, text search, dark mode, drag-and-drop, thumbnails, zoom and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview-sync":"^0.4.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.6.2_1771165863726_0.7623474449694758","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"@iamjariwala/react-doc-viewer","version":"1.6.3","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.6.3","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"769fd112ac4f7b92d964c02de09a24de0ca12a80","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.6.3.tgz","fileCount":139,"integrity":"sha512-p23QgYglLdD9RHrMb0ssIW4vEz+fJ5h8wor3hYwg3HE6Sfdru6IzTT0gHdYn+1ianpiQB8wRrKQgNoQExLFUZg==","signatures":[{"sig":"MEQCIAJBFEc63PhrTvm25cbAs+ZeN7Sn5VgngvTK9iMekF29AiAF1gQIJoiTOmc3VxASD0DszKvnPHWgPCcZRPC3qhSTjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8540320},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"1197e3c1eca49afc774151cd926a56bb3080718d","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","postinstall":"npx patch-package","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word (DOCX inline), Excel, PowerPoint, Markdown, images, video, CSV and 20+ file types with annotations, text search, dark mode, drag-and-drop, thumbnails, zoom and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview-sync":"^0.4.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.6.3_1771166906997_0.35661916630394197","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.7.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.7.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"f7165ae0075a8af68e646ef9584b98773ef76832","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.7.0.tgz","fileCount":138,"integrity":"sha512-q/tksD6BJ5N+1ad1Bp20z+1Y3NbGVtx7PhGV7GoVLWcXJVhCXkfTs+1NMQMyoUxBeABsE4MUZiVEC59lvPK4uA==","signatures":[{"sig":"MEYCIQDbGyZh7IdTdB3u2webUTPEJctCFZ/jc6XfFLAoWOAEEQIhAPGcQ0h8ZnbYCOY4u4dN3r/UKyjEMXRhUf2ojXVjTMEF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6379192},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"7d8d8c171905c2dc99371bf819dc1692a4a3912a","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","postinstall":"npx patch-package","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word (DOCX inline), Excel, PowerPoint, Markdown, images, video, CSV and 20+ file types with annotations, text search, dark mode, drag-and-drop, thumbnails, zoom and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview-sync":"^0.4.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.7.0_1771223950678_0.5909922216815051","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@iamjariwala/react-doc-viewer","version":"1.7.1","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.7.1","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"efc93b94099fb89dc371ab176ef52de1da292b56","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.7.1.tgz","fileCount":138,"integrity":"sha512-2AVbNftXkXGEmGAH305MgPp3U0qgrJHgpRiyP3EgNGxhytJNRmMroD2kr/1XYTRxlSyBA5hakKL7bcuhhX7ssA==","signatures":[{"sig":"MEYCIQCGt05Ik+5XmHCfImlySQlew/xX7MWdVT9ykDpV2Yl73wIhAKe49ssocnBL+aEgtcimfsEY3whRjTuvDnUyaX2EdLqx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6379166},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"3db8708c13c918e48ccb48831d7cd42363d5d813","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","postinstall":"npx patch-package","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word (DOCX inline), Excel, PowerPoint, Markdown, images, video, CSV and 20+ file types with annotations, text search, dark mode, drag-and-drop, thumbnails, zoom and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview-sync":"^0.4.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.7.1_1771242446655_0.9807350067253588","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@iamjariwala/react-doc-viewer","version":"1.8.0","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","lightweight","responsive","accessible","ssr","server-side-rendering","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","_id":"@iamjariwala/react-doc-viewer@1.8.0","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"homepage":"https://github.com/mehuljariwala/react-doc-viewer","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"dc1ebda3dce5d723031261a6409180a0d7c57f84","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.8.0.tgz","fileCount":141,"integrity":"sha512-SLnbCztWhJbBr1dX153/Omyq8s+Lmb4d1L+B9KUA0eqTXyZT10ItogiikxgTLzOr1DckPippP6eUWX/SCwPt/A==","signatures":[{"sig":"MEYCIQDMkqVf42uIeX3waG0Cc/UWTIgV/DXM5s4kDAteEvQxRwIhAIgEhx6vwBuVvennCCRmDf84oVz66okK3tyRSr+7ed/4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6400380},"main":"./dist/react-doc-viewer.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"4d584b3d7965c047637ff8cbb8d01a64d918e155","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc && vite build","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","release":"release-it && npm run deploy","prepublish":"npm run build-readme-toc","prerelease":"git checkout main && git pull && npm run prettier:check && npm run lint && npm run test && npm run build && node ./scripts/copy-worker.mjs && cd use-cases/nextjs && npm i && npm run build","postinstall":"npx patch-package","prettier:fix":"prettier --write .","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'"},"_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"10.1.0","description":"React document viewer and PDF viewer component — render PDF, Word (DOCX inline), Excel, PowerPoint, Markdown, images, video, CSV and 20+ file types with annotations, text search, dark mode, drag-and-drop, thumbnails, zoom and i18n.","directories":{},"_nodeVersion":"20.8.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","docx-preview-sync":"^0.4.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doc-viewer_1.8.0_1771499682426_0.5656154736786387","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"_id":"@iamjariwala/react-doc-viewer@1.9.0","bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"dist":{"shasum":"bab61efae25ddc9730f788f8526fab8476fac19c","tarball":"https://registry.npmjs.org/@iamjariwala/react-doc-viewer/-/react-doc-viewer-1.9.0.tgz","fileCount":149,"integrity":"sha512-0fgLAsZZNtZgqZ1aqXgBWf5pdFWUwu5GXp1mAbnpPlfXYN6ENtFYQrqnY60veDmu6Rsta/LgSFb3eZC+kH5oyw==","signatures":[{"sig":"MEYCIQCuI++uDaEPszO8YbGmFQTO+YhdOU8AnLO7fa2zntRabAIhAJaR6GJ0QvSVK8J9nDMjm9LrA+dXd2FIvUj8eHVTeIjn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDbd98HJHInAAiZk2debf1kUd7YcteZQ6c9DZc3F7HiSAiAbz6rpRCD9Z6wetZKMg4bnoer9zkECqWf5au4S21f1UA=="}],"unpackedSize":8740897},"main":"./dist/react-doc-viewer.cjs","name":"@iamjariwala/react-doc-viewer","type":"module","_from":"file:/Users/mit/Documents/Codex/2026-09-14/can/outputs/iamjariwala-react-doc-viewer-1.9.0.tgz","types":"./dist/index.d.ts","author":{"name":"Mehul Jariwala"},"module":"./dist/react-doc-viewer.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/react-doc-viewer.js","require":"./dist/react-doc-viewer.cjs"},"./dist/index.css":{"import":"./dist/index.css","require":"./dist/index.css"},"./dist/pdf.worker.mjs":"./dist/pdf.worker.mjs"},"license":"Apache-2.0","scripts":{"lint":"eslint ./src --ext .ts,.tsx","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && vite build && node scripts/copy-worker.mjs","start":"storybook dev -p 6006","deploy":"npm run storybook:build && gh-pages --nojekyll -d storybook-static --message 'feat: storybook deploy'","metrics":"node scripts/collect-metrics.mjs","release":"release-it && npm run deploy","prebuild":"node scripts/apply-docx-patch.mjs","docs:sync":"node scripts/sync-docs.mjs","docs:check":"node scripts/sync-docs.mjs --check","prerelease":"npm run docs:check && npm run lint && npm test && npm run build && npm run package:smoke","prettier:fix":"prettier --write .","package:smoke":"node scripts/package-smoke.mjs","measure:bundle":"node scripts/measure-bundle.mjs","prettier:check":"prettier --check .","storybook:build":"rm -rf storybook-static && storybook build && node scripts/prepare-demo.mjs","build-readme-toc":"npx doctoc README.md --title '## Table of Contents'","prettier:changed":"node scripts/check-changed-format.mjs"},"version":"1.9.0","_npmUser":{"name":"iamjariwala","email":"mjariwala98@gmail.com"},"homepage":"https://github.com/mehuljariwala/react-doc-viewer","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","responsive","accessible","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"_resolved":"/Users/mit/Documents/Codex/2026-09-14/can/outputs/iamjariwala-react-doc-viewer-1.9.0.tgz","_integrity":"sha512-0fgLAsZZNtZgqZ1aqXgBWf5pdFWUwu5GXp1mAbnpPlfXYN6ENtFYQrqnY60veDmu6Rsta/LgSFb3eZC+kH5oyw==","repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"_npmVersion":"11.19.0","description":"React document viewer with PDF tools, local DOCX and XLSX previews, images, text and pluggable renderers. Other Office formats can use Microsoft Office Online.","directories":{},"maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"_nodeVersion":"26.8.1","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"fflate":"^0.8.3","mustache":"^4.2.0","dompurify":"^3.3.1","papaparse":"^5.4.1","react-pdf":"^9.0.0","read-excel-file":"^9.3.10","docx-preview-sync":"^0.4.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.12","jsdom":"^24.1.3","react":"^18.3.1","eslint":"^8.57.0","vitest":"^1.6.0","webpack":"^5.91.0","gh-pages":"^6.1.1","prettier":"^3.2.5","happy-dom":"^14.12.0","react-dom":"^18.3.1","storybook":"^8.1.5","release-it":"^17.3.0","typescript":"^5.4.5","@types/node":"^20.12.13","file-loader":"^6.2.0","@types/react":"^18.3.3","babel-loader":"^9.1.3","@storybook/test":"^8.1.5","@types/mustache":"^4.2.5","vite-plugin-dts":"^3.9.1","@storybook/react":"^8.1.5","@types/dompurify":"^3.2.0","@types/papaparse":"^5.3.14","@types/react-dom":"^18.3.0","@storybook/blocks":"^8.1.5","vitest-fetch-mock":"^0.2.2","@rollup/plugin-dsv":"^3.0.4","eslint-plugin-react":"^7.34.2","@storybook/react-vite":"^8.1.5","@storybook/addon-links":"^8.1.5","@testing-library/react":"^15.0.7","@types/react-router-dom":"^5.3.3","eslint-plugin-storybook":"^0.8.0","@testing-library/jest-dom":"^6.4.5","@typescript-eslint/parser":"^7.11.0","eslint-plugin-react-hooks":"^4.6.2","vite-plugin-node-polyfills":"^0.22.0","@storybook/addon-essentials":"^8.1.5","@testing-library/user-event":"^14.5.2","@storybook/addon-interactions":"^8.1.5","@typescript-eslint/eslint-plugin":"^7.11.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-doc-viewer_1.9.0_1789376176208_0.6500208356645705"}}},"time":{"created":"2026-02-05T14:47:00.903Z","modified":"2026-09-14T08:56:16.537Z","0.2.0":"2026-02-05T14:47:01.223Z","0.2.1":"2026-02-10T10:15:39.020Z","1.0.0":"2026-02-11T06:19:35.611Z","1.1.0":"2026-02-13T05:04:18.250Z","1.1.1":"2026-02-13T05:09:56.624Z","1.2.0":"2026-02-13T05:46:40.096Z","1.2.1":"2026-02-13T06:18:53.494Z","1.3.0":"2026-02-13T06:29:18.034Z","1.4.0":"2026-02-13T07:20:58.692Z","1.4.1":"2026-02-13T08:00:25.342Z","1.4.2":"2026-02-13T08:12:30.453Z","1.5.0":"2026-02-13T14:46:54.419Z","1.5.1":"2026-02-13T14:56:27.981Z","1.6.0":"2026-02-15T08:28:21.672Z","1.6.1":"2026-02-15T09:26:33.032Z","1.6.2":"2026-02-15T14:31:04.041Z","1.6.3":"2026-02-15T14:48:27.254Z","1.7.0":"2026-02-16T06:39:10.914Z","1.7.1":"2026-02-16T11:47:26.867Z","1.8.0":"2026-02-19T11:14:42.662Z","1.9.0":"2026-09-14T08:56:16.398Z"},"bugs":{"url":"https://github.com/mehuljariwala/react-doc-viewer/issues"},"author":{"name":"Mehul Jariwala"},"license":"Apache-2.0","homepage":"https://github.com/mehuljariwala/react-doc-viewer","keywords":["react","reactjs","react-component","document-viewer","document-preview","file-viewer","file-preview","pdf-viewer","pdf-reader","pdf-renderer","pdf","doc-viewer","office-viewer","word-viewer","excel-viewer","powerpoint-viewer","docx","xlsx","pptx","csv-viewer","image-viewer","video-player","html-viewer","tiff-viewer","tiff","webp","bmp","gif","odt","viewer","preview","reader","renderer","drag-and-drop","file-upload","dropzone","annotations","pdf-annotations","highlight","drawing","freehand-drawing","commenting","markup","thumbnail","thumbnail-sidebar","page-navigation","page-jump","zoom","react-pdf","react-viewer","react-document","typescript","i18n","internationalization","localization","multi-format","multi-file","react17","react18","react19","nextjs","next-js","vite","remix","gatsby","create-react-app","cra","document-management","dms","file-browser","content-platform","pdf-component","embed-pdf","display-pdf","render-pdf","view-pdf","open-source","apache-2","tree-shakeable","css-variables","themeable","customizable","responsive","accessible","dark-mode","text-search","search-highlight","pdf-search","markdown-viewer","markdown","rtf","docx-viewer","docx-preview","watermark","bookmarks","pdf-bookmarks","keyboard-shortcuts","split-view","fullscreen","password-protected-pdf"],"repository":{"url":"git+https://github.com/mehuljariwala/react-doc-viewer.git","type":"git"},"description":"React document viewer with PDF tools, local DOCX and XLSX previews, images, text and pluggable renderers. Other Office formats can use Microsoft Office Online.","maintainers":[{"name":"iamjariwala","email":"mjariwala98@gmail.com"}],"readme":"[![npm version](https://img.shields.io/npm/v/@iamjariwala/react-doc-viewer.svg)](https://www.npmjs.com/package/@iamjariwala/react-doc-viewer)\n[![npm downloads](https://img.shields.io/npm/dm/@iamjariwala/react-doc-viewer.svg)](https://www.npmjs.com/package/@iamjariwala/react-doc-viewer)\n[![npm total downloads](https://img.shields.io/npm/dt/@iamjariwala/react-doc-viewer.svg)](https://www.npmjs.com/package/@iamjariwala/react-doc-viewer)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@iamjariwala/react-doc-viewer)](https://bundlephobia.com/package/@iamjariwala/react-doc-viewer)\n[![license](https://img.shields.io/npm/l/@iamjariwala/react-doc-viewer.svg)](https://github.com/mehuljariwala/react-doc-viewer/blob/main/LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n[![React](https://img.shields.io/badge/React-17%20%7C%2018%20%7C%2019-61dafb.svg)](https://reactjs.org/)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/mehuljariwala/react-doc-viewer/pulls)\n[![GitHub stars](https://img.shields.io/github/stars/mehuljariwala/react-doc-viewer?style=social)](https://github.com/mehuljariwala/react-doc-viewer)\n\n# @iamjariwala/react-doc-viewer\n\n**A React document viewer with PDF tools, local DOCX and XLSX previews, and pluggable renderers.** View PDF, images, CSV, text, Markdown and video; add PDF search, annotations, thumbnails and dark mode. Office preview behavior varies by format—see [Supported File Types](#supported-file-types).\n\n> One component, explicit format support, TypeScript APIs.\n\n```bash\nnpm install @iamjariwala/react-doc-viewer\n```\n\n```tsx\nimport DocViewer, { DocViewerRenderers } from \"@iamjariwala/react-doc-viewer\";\nimport \"@iamjariwala/react-doc-viewer/dist/index.css\";\n\n<DocViewer\n  documents={[{ uri: \"https://example.com/sample.pdf\" }]}\n  pluginRenderers={DocViewerRenderers}\n/>;\n```\n\n[Live Demo (Storybook)](https://mehuljariwala.github.io/react-doc-viewer) | [npm](https://www.npmjs.com/package/@iamjariwala/react-doc-viewer) | [GitHub](https://github.com/mehuljariwala/react-doc-viewer)\n\n---\n\n## Why @iamjariwala/react-doc-viewer?\n\nUse one viewer API for multiple document formats, with these built-in tools:\n\n- **20+ file types** in a single `<DocViewer />` component -- no need to install separate libraries for PDF, images, CSV, video, etc.\n- **Dark Mode** -- built-in light/dark/auto theme switching with full CSS variable support\n- **Text Search** -- full-text search across all PDF pages with match highlighting and navigation\n- **Annotations** -- highlight text, freehand draw, add comments, and export as JSON\n- **Keyboard Shortcuts** -- navigate pages, zoom, search, print, and fullscreen via keyboard\n- **Watermark Overlay** -- configurable text watermark with custom opacity, color, size, and rotation\n- **Bookmarks / TOC** -- auto-extracted PDF outline with nested sidebar navigation\n- **Password-Protected PDFs** -- built-in password prompt modal for encrypted documents\n- **Fullscreen Mode** -- one-click fullscreen with keyboard shortcut (F key)\n- **Print** -- print PDFs directly from the toolbar or via Ctrl+P\n- **Split View** -- side-by-side document comparison with optional synchronized scrolling\n- **Loading Progress** -- animated progress bar during PDF loading\n- **Text Selection** -- select and copy text from PDF pages\n- **Drag & Drop** -- drop files directly onto the viewer to add or replace documents\n- **Thumbnail Sidebar** -- visual page navigation with click-to-jump for PDFs\n- **Programmatic Control** -- jump to any page via ref or prop, navigate documents programmatically\n- **14 Languages** -- built-in i18n with community translations\n- **Theming & CSS Variables** -- full color control via theme object or `--rdv-*` CSS custom properties\n- **Custom Renderers** -- extend or replace any file type renderer with your own React component\n- **TypeScript First** -- complete type definitions, generics, and IntelliSense support\n- **Selectable renderers** -- choose allowed formats; measure actual bundle output with the included tooling\n- **Local DOCX and XLSX previews** -- see [Security](#security) for formats and options that use external services\n- **Framework examples** -- packed-package checks for Vite and Next.js; see the compatibility notes below\n\n### Best for\n\n| Use Case | Why this library |\n| -------- | ---------------- |\n| **Document Management Systems (DMS)** | Preview any uploaded file without leaving the app |\n| **Legal & Compliance Platforms** | Annotate, highlight, watermark, and search contracts and filings |\n| **Education & LMS** | Display course materials in PDF, DOCX, video, and image formats |\n| **Healthcare & Medical Records** | View lab reports, imaging files, and clinical documents with password protection |\n| **Real Estate & Insurance** | Preview property documents, claims, and inspection photos with split view compare |\n| **File Browsers & Cloud Storage** | Inline file preview for any storage UI with dark mode support |\n| **Internal Tools & Admin Panels** | Quick document preview with fullscreen, print, and keyboard shortcuts |\n| **Content Platforms & CMS** | Embedded viewer for user-uploaded content with watermark overlay |\n\n---\n\n## How It Compares\n\nChoose based on the formats and controls your application needs. This package combines document navigation and PDF tools with local DOCX and XLSX previews. It is a fork of `@cyntler/react-doc-viewer` and uses `react-pdf` internally.\n\nFor PDF-only applications, compare the APIs of [react-pdf](https://github.com/wojtekmaj/react-pdf) with this package's built-in viewer controls. For other viewers, verify the exact version, required formats, external-service behavior, license and measured consumer bundle before choosing. We do not claim unmeasured size advantages or missing features in competing projects.\n\nSee [Migration](docs-site/docs/migration.md) and [Performance](docs-site/docs/performance.md) for reproducible checks.\n\n---\n\n### Feature Highlights\n\n| | | |\n|:--|:--|:--|\n| **Dark Mode** -- Light, dark, and auto theme with CSS variables | **Text Search** -- Full-text search across all PDF pages | **Annotations** -- Highlight, draw, and comment on documents |\n| **Keyboard Shortcuts** -- Navigate, zoom, search, print via keyboard | **Watermark** -- Configurable text overlay for confidential docs | **Bookmarks / TOC** -- Auto-extracted PDF outline sidebar |\n| **Password PDFs** -- Built-in password prompt for encrypted files | **Fullscreen** -- One-click or F-key fullscreen mode | **Print** -- Print directly from toolbar or Ctrl+P |\n| **Split View** -- Side-by-side compare with sync scroll | **Thumbnail Sidebar** -- Visual page navigation for PDFs | **20+ File Types** -- PDF, DOCX, images, video, CSV & more |\n| **Drag & Drop** -- Drop files directly onto the viewer | **14 Languages** -- Built-in i18n with community translations | **Custom Renderers** -- Extend or replace any file type |\n\n---\n\n### What's New in v1.9.0\n\n- Local XLSX table preview with sheet selection, load/error states and documented limits.\n- Clean consumer installation without an install-time `npx` command.\n- Packed-package validation, runnable examples and reproducible bundle measurements.\n- Synchronized AI documentation with accurate Office rendering and privacy descriptions.\n\nSee [Release validation and walkthrough](docs-site/docs/release.md), [focused guides](docs-site/docs/guides/pdf.md), and [CHANGELOG](CHANGELOG.md).\n\n### What's New in v1.6.0\n\n- **Common Toolbar for All File Types** -- Non-PDF renderers (DOCX, images, text, markdown, RTF, CSV) now have a toolbar with download, print, and zoom controls\n- **DOCX Inline Rendering** -- Word documents render inline with full formatting using `docx-preview-sync` instead of download cards\n- **DOCX Page Navigation** -- Multi-page DOCX documents show page controls (prev/next, page input, jump-to-page) with automatic page detection\n- **Markdown Renderer** -- Native markdown rendering with headings, lists, links, code blocks, and formatting\n- **RTF Renderer** -- Rich Text Format file support\n- **Search Highlighting** -- Text search now highlights matched text with yellow background directly in the PDF\n- **Search Page Navigation** -- Clicking next/prev match automatically navigates to the page containing the match\n- **PDF Scroll Mode Navigation** -- Page prev/next buttons now scroll to the correct page in scroll (continuous) mode\n- **Sticky Header** -- Header bar stays fixed at the top when scrolling through documents\n- **Improved Storybook Organization** -- Stories reorganized into categorized navigation (Core, Features, File Types, Upload)\n\n### What's New in v1.3.0\n\n**11 new features** that bring the viewer to professional-grade quality:\n\n- **Dark Mode** -- `themeMode: \"light\" | \"dark\" | \"auto\"` with full CSS variable theming and `prefers-color-scheme` auto-detection\n- **Print** -- Print button in toolbar, opens PDF in hidden iframe for native print dialog\n- **Fullscreen** -- Toggle fullscreen from toolbar or keyboard (F key), with proper Escape exit\n- **Loading Progress Bar** -- Animated progress bar during PDF loading with smooth transitions\n- **Watermark Overlay** -- Repeated rotated text overlay with configurable opacity, color, size, and rotation\n- **Text Selection & Copy** -- Enable react-pdf text layer for selecting and copying text from PDF pages\n- **Keyboard Shortcuts** -- Arrow keys for pages, +/- for zoom, Home/End, Ctrl+F for search, Ctrl+P for print, F for fullscreen\n- **Password-Protected PDFs** -- Modal password prompt with error feedback for encrypted PDF files\n- **Text Search** -- Full-text search across all pages using pdfjs, with match count, prev/next navigation, and Ctrl+F shortcut\n- **PDF Bookmarks / TOC** -- Sidebar with auto-extracted PDF outline (table of contents), nested items, click-to-navigate\n- **Split View / Compare** -- `<SplitDocViewer>` component with two viewers side-by-side, draggable divider, and optional scroll sync\n\n---\n\n## Table of Contents\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n## Table of Contents\n\n- [Supported File Types](#supported-file-types)\n- [Live Demo](#live-demo)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Framework Guides](#framework-guides)\n  - [Next.js (App Router & Pages Router)](#nextjs-app-router--pages-router)\n  - [Vite](#vite)\n  - [Create React App](#create-react-app)\n  - [Remix](#remix)\n- [Documents](#documents)\n  - [Remote & Local Files](#remote--local-files)\n  - [Initial Active Document](#initial-active-document)\n  - [Controlled Document](#controlled-document)\n  - [Blob / Uploaded Files](#blob--uploaded-files)\n- [Renderers](#renderers)\n  - [Built-in Renderers](#built-in-renderers)\n  - [Custom Renderer](#custom-renderer)\n  - [Custom File Loader](#custom-file-loader)\n- [Features](#features)\n  - [Dark Mode](#dark-mode)\n  - [Text Search in PDF](#text-search-in-pdf)\n  - [Keyboard Shortcuts](#keyboard-shortcuts)\n  - [Watermark Overlay](#watermark-overlay)\n  - [PDF Bookmarks / TOC Sidebar](#pdf-bookmarks--toc-sidebar)\n  - [Password-Protected PDFs](#password-protected-pdfs)\n  - [Fullscreen Mode](#fullscreen-mode)\n  - [Print](#print)\n  - [Split View / Compare](#split-view--compare)\n  - [Loading Progress Bar](#loading-progress-bar)\n  - [Text Selection & Copy](#text-selection--copy)\n  - [Drag & Drop File Upload](#drag--drop-file-upload)\n  - [Thumbnail Sidebar](#thumbnail-sidebar)\n  - [Annotations (Highlight, Draw, Comment)](#annotations-highlight-draw-comment)\n  - [Page Navigation & Page Jump](#page-navigation--page-jump)\n- [Configuration](#configuration)\n  - [Full Config Reference](#full-config-reference)\n  - [Overriding Header](#overriding-header)\n  - [Overriding Loading Renderer](#overriding-loading-renderer)\n  - [Overriding No Renderer (Error)](#overriding-no-renderer-error)\n- [Theming & CSS Variables](#theming--css-variables)\n- [Styling & CSS Customization](#styling--css-customization)\n- [Internationalization (i18n) -- 14 Languages](#internationalization-i18n----14-languages)\n- [Performance & Bundle Size](#performance--bundle-size)\n- [Security](#security)\n- [Advanced](#advanced)\n  - [DocViewerRef API](#docviewerref-api)\n  - [Custom HTTP Verb for S3 / Cloud Storage](#custom-http-verb-for-s3--cloud-storage)\n  - [Custom Request Headers for Authenticated APIs](#custom-request-headers-for-authenticated-apis)\n- [FAQ](#faq)\n- [Migrating from Other Libraries](#migrating-from-other-libraries)\n- [Contributing](#contributing)\n- [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## Supported File Types\n\n`@iamjariwala/react-doc-viewer` supports **20+ file formats** out of the box:\n\n| Extension | MIME Type | Renderer |\n| --------- | --------- | -------- |\n| pdf | `application/pdf` | Full viewer with zoom, pagination, thumbnails, search, bookmarks |\n| png | `image/png` | Image with checkerboard background |\n| jpg / jpeg | `image/jpg`, `image/jpeg` | Image viewer |\n| gif | `image/gif` | Image viewer (animated GIF support) |\n| bmp | `image/bmp` | Image viewer |\n| tiff | `image/tiff` | Canvas-based TIFF renderer |\n| webp | `image/webp` | Image viewer |\n| csv | `text/csv` | Parsed table with configurable delimiter |\n| txt | `text/plain` | Monospace text viewer |\n| htm / html | `text/htm`, `text/html` | Sandboxed iframe with DOMPurify sanitization |\n| mp4 | `video/mp4` | Native video player with controls |\n| md | `text/markdown` | Parsed markdown with headings, lists, code, links |\n| rtf | `application/rtf` | Rich text viewer |\n| doc | `application/msword` | Office Online for HTTP(S); download card for local/blob files |\n| docx | `application/vnd.openxmlformats-officedocument.wordprocessingml.document` | Inline rendered with page navigation and formatting |\n| xls | `application/vnd.ms-excel` | Office Online for HTTP(S); download card for local/blob files |\n| xlsx | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` | Local read-only table with sheet navigation |\n| ppt | `application/vnd.ms-powerpoint` | Office Online for HTTP(S); download card for local/blob files |\n| pptx | `application/vnd.openxmlformats-officedocument.presentationml.presentation` | Office Online for HTTP(S); download card for local/blob files |\n| odt | `application/vnd.oasis.opendocument.text` | Office Online for HTTP(S); download card for local/blob files |\n\n> [!NOTE]\n> DOCX renders inline locally by default; its optional Office Online mode sends the document URL to Microsoft. XLSX renders locally as a read-only table with sheet navigation. DOC, XLS, PPT, PPTX and ODT use Microsoft Office Online for HTTP(S) URLs and download cards for local/blob URLs. Office Online needs a publicly reachable document and does not receive your requestHeaders. Optional server conversion uploads eligible documents to your configured service.\n\n## Live Demo\n\nTry all features interactively:\n\n[Storybook Demo](https://mehuljariwala.github.io/react-doc-viewer)\n\n## Installation\n\n```bash\nnpm install @iamjariwala/react-doc-viewer\n```\n\n```bash\nyarn add @iamjariwala/react-doc-viewer\n```\n\n```bash\npnpm add @iamjariwala/react-doc-viewer\n```\n\n```bash\nbun add @iamjariwala/react-doc-viewer\n```\n\n## Quick Start\n\n```tsx\nimport DocViewer, { DocViewerRenderers } from \"@iamjariwala/react-doc-viewer\";\nimport \"@iamjariwala/react-doc-viewer/dist/index.css\";\n\nfunction App() {\n  const docs = [\n    { uri: \"https://example.com/sample.pdf\" },\n    { uri: \"https://example.com/photo.png\" },\n  ];\n\n  return <DocViewer documents={docs} pluginRenderers={DocViewerRenderers} />;\n}\n```\n\n> The CSS import (`@iamjariwala/react-doc-viewer/dist/index.css`) is required for correct rendering of PDF pages, annotations, thumbnails, and all styled elements.\n\n## Framework Guides\n\n### Next.js (App Router & Pages Router)\n\nUse a client component and `next/dynamic` with `ssr: false` to load the viewer in the browser. `\"use client\"` alone does not disable prerendering. See the [complete Next.js guide](docs-site/docs/frameworks/nextjs.md) and the runnable [packed-package example](use-cases/nextjs/).\n\n\n### Vite\n\n```tsx\nimport DocViewer, { DocViewerRenderers } from \"@iamjariwala/react-doc-viewer\";\nimport \"@iamjariwala/react-doc-viewer/dist/index.css\";\n\nfunction App() {\n  return (\n    <DocViewer\n      documents={[{ uri: \"/sample.pdf\" }]}\n      pluginRenderers={DocViewerRenderers}\n    />\n  );\n}\n```\n\n### Create React App\n\n```tsx\nimport DocViewer, { DocViewerRenderers } from \"@iamjariwala/react-doc-viewer\";\nimport \"@iamjariwala/react-doc-viewer/dist/index.css\";\n\nfunction App() {\n  return (\n    <DocViewer\n      documents={[{ uri: `${process.env.PUBLIC_URL}/sample.pdf` }]}\n      pluginRenderers={DocViewerRenderers}\n    />\n  );\n}\n```\n\n### Remix\n\nLoad browser-dependent viewer code inside a client-only boundary. Keep CSS imports in your framework's supported stylesheet entry. The current package smoke matrix covers Vite and Next.js; verify Remix integration against the version used by your application. See the [framework note](docs-site/docs/frameworks/remix.md).\n\n\n## Documents\n\n### Remote & Local Files\n\nEach document needs a `uri` pointing to a file URL or a local file path.\n\n```tsx\nconst docs = [\n  { uri: \"https://example.com/file.pdf\" },\n  { uri: require(\"./files/document.pdf\") },\n];\n```\n\n### Initial Active Document\n\nBy default the first document is displayed. Use `initialActiveDocument` to change this:\n\n```tsx\n<DocViewer\n  documents={docs}\n  initialActiveDocument={docs[1]}\n  pluginRenderers={DocViewerRenderers}\n/>\n```\n\n### Controlled Document\n\nControl which document is displayed with `activeDocument` and `onDocumentChange`:\n\n```tsx\nconst [activeDocument, setActiveDocument] = useState(docs[0]);\n\n<DocViewer\n  documents={docs}\n  activeDocument={activeDocument}\n  onDocumentChange={setActiveDocument}\n  pluginRenderers={DocViewerRenderers}\n/>\n```\n\n### Blob / Uploaded Files\n\nCreate object URLs when selection changes, and revoke them when replacing files or unmounting. Set the real `fileType` for uploads with a missing/generic MIME type. See the [complete upload example](docs-site/docs/guides/uploads.md) and [authenticated-file guide](docs-site/docs/guides/authenticated-files.md).\n\n\n## Renderers\n\n### Built-in Renderers\n\nUse all built-in renderers:\n\n```tsx\nimport DocViewer, { DocViewerRenderers } from \"@iamjariwala/react-doc-viewer\";\n\n<DocViewer pluginRenderers={DocViewerRenderers} documents={docs} />;\n```\n\nOr select the renderers your application needs:\n\n```tsx\nimport DocViewer, { PDFRenderer, PNGRenderer } from \"@iamjariwala/react-doc-viewer\";\n\n<DocViewer pluginRenderers={[PDFRenderer, PNGRenderer]} documents={docs} />;\n```\n\n**Available renderers:** `BMPRenderer`, `CSVRenderer`, `DocxRenderer`, `XLSXRenderer`, `GIFRenderer`, `HTMLRenderer`, `JPGRenderer`, `MarkdownRenderer`, `MSDocRenderer`, `PDFRenderer`, `PNGRenderer`, `RTFRenderer`, `TIFFRenderer`, `TXTRenderer`, `VideoRenderer`, `WebPRenderer`\n\n### Custom Renderer\n\nCreate a renderer for any file type by defining `fileTypes`, `weight`, and a React component:\n\n```tsx\nimport { DocRenderer } from \"@iamjariwala/react-doc-viewer\";\n\nconst MyPNGRenderer: DocRenderer = ({ mainState: { currentDocument } }) => {\n  if (!currentDocument) return null;\n  return <img src={currentDocument.fileData as string} />;\n};\n\nMyPNGRenderer.fileTypes = [\"png\", \"image/png\"];\nMyPNGRenderer.weight = 1;\n\n<DocViewer pluginRenderers={[MyPNGRenderer]} documents={docs} />;\n```\n\n### Custom File Loader\n\nPrevent the default file loading and handle it yourself:\n\n```tsx\nMyPNGRenderer.fileLoader = ({ documentURI, signal, fileLoaderComplete }) => {\n  myCustomLoader(documentURI).then(() => {\n    fileLoaderComplete();\n  });\n};\n```\n\n## Features\n\n### Dark Mode\n\nSwitch between light, dark, and auto (system preference) themes. Dark mode applies to the entire viewer including the toolbar, header, sidebars, and modals.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    themeMode: \"dark\",\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `themeMode` | `\"light\" \\| \"dark\" \\| \"auto\"` | `\"light\"` | `\"auto\"` uses `prefers-color-scheme` media query |\n\nThe `\"auto\"` mode listens for system theme changes in real-time. All dark mode styles use `[data-theme=\"dark\"]` CSS selectors, so you can override any element:\n\n```css\n#react-doc-viewer[data-theme=\"dark\"] .rdv-pdf-controls {\n  background: #1a1a2e;\n}\n```\n\n### Text Search in PDF\n\nFull-text search across all pages using the pdfjs text extraction API. Matched text is highlighted with a yellow background directly in the PDF. Displays match count with prev/next navigation that automatically jumps to the page containing the match.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    search: { enableSearch: true },\n    keyboard: { enableKeyboardShortcuts: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableSearch` | `boolean` | `false` | Show search icon in toolbar and enable Ctrl+F shortcut |\n\nWhen enabled, a search icon appears in the toolbar. Click it or press **Ctrl+F** to open the search bar. Type to search -- matched text is highlighted in yellow directly on the PDF pages. Press **Enter** to go to the next match (auto-navigates to the correct page), **Shift+Enter** for the previous match, and **Escape** to close.\n\n### Keyboard Shortcuts\n\nNavigate pages, zoom, search, print, and toggle fullscreen entirely from the keyboard.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    keyboard: { enableKeyboardShortcuts: true },\n    search: { enableSearch: true },\n    fullscreen: { enableFullscreen: true },\n    print: { enablePrint: true },\n  }}\n/>\n```\n\n| Shortcut | Action |\n| -------- | ------ |\n| `Arrow Left` / `Arrow Right` | Previous / next page |\n| `Home` / `End` | First / last page |\n| `+` or `=` | Zoom in |\n| `-` | Zoom out |\n| `0` | Reset zoom |\n| `Ctrl+F` | Open text search (requires `search.enableSearch`) |\n| `Ctrl+P` | Print (requires `print.enablePrint`) |\n| `F` | Toggle fullscreen (requires `fullscreen.enableFullscreen`) |\n| `Escape` | Close search / exit fullscreen |\n\nShortcuts are automatically disabled when focus is inside an input, textarea, or select element.\n\n### Watermark Overlay\n\nAdd a configurable text watermark overlay to every PDF page. The watermark is rendered as a non-interactive CSS grid of repeated rotated text.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    watermark: {\n      text: \"CONFIDENTIAL\",\n      opacity: 0.08,\n      fontSize: 52,\n      color: \"#ff0000\",\n      rotation: -35,\n    },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `text` | `string` | (required) | Watermark text to display |\n| `opacity` | `number` | `0.1` | Opacity (0 to 1) |\n| `fontSize` | `number` | `48` | Font size in pixels |\n| `color` | `string` | `\"#000\"` | Text color |\n| `rotation` | `number` | `-30` | Rotation angle in degrees |\n\nThe watermark has `pointer-events: none` so it never blocks interaction with the document.\n\n### PDF Bookmarks / TOC Sidebar\n\nAutomatically extract and display the PDF's table of contents (outline) in a collapsible sidebar. Nested bookmark items are supported with indentation.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    bookmarks: { enableBookmarks: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableBookmarks` | `boolean` | `false` | Show bookmarks icon in toolbar |\n\nWhen enabled, a bookmarks icon appears in the toolbar. Click to toggle the sidebar. Each bookmark navigates to its target page. If the PDF has no outline, an empty state message is shown.\n\n### Password-Protected PDFs\n\nDisplay a password prompt modal when a PDF file is encrypted. The user enters their password to decrypt and view the document.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    password: { enablePasswordPrompt: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enablePasswordPrompt` | `boolean` | `false` | Show password modal for encrypted PDFs |\n\nWhen disabled, encrypted PDFs will fail to load silently. When enabled, a styled modal with a lock icon, password input, and error feedback appears.\n\n### Fullscreen Mode\n\nToggle fullscreen viewing from the toolbar or keyboard. The entire PDF container (including toolbar and sidebars) enters fullscreen.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    fullscreen: { enableFullscreen: true },\n    keyboard: { enableKeyboardShortcuts: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableFullscreen` | `boolean` | `false` | Show fullscreen icon in toolbar and enable F shortcut |\n\nPress **F** to toggle fullscreen, **Escape** to exit. The fullscreen icon in the toolbar dynamically switches between enter/exit icons.\n\n### Print\n\nPrint the current PDF document directly from the toolbar. Opens the browser's native print dialog.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    print: { enablePrint: true },\n    keyboard: { enableKeyboardShortcuts: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enablePrint` | `boolean` | `false` | Show print icon in toolbar and enable Ctrl+P shortcut |\n\nThe print feature creates a hidden iframe with the PDF, loads it, and triggers `window.print()` for the native print dialog. Print media CSS automatically hides the toolbar and sidebars.\n\n### Split View / Compare\n\nCompare two documents side-by-side with an independent `<SplitDocViewer>` component. Each side has its own DocViewer instance with independent navigation, zoom, and controls.\n\n```tsx\nimport { SplitDocViewer } from \"@iamjariwala/react-doc-viewer\";\nimport \"@iamjariwala/react-doc-viewer/dist/index.css\";\n\n<SplitDocViewer\n  left={{\n    documents: [{ uri: \"/document-v1.pdf\" }],\n    config: { pdfVerticalScrollByDefault: true },\n  }}\n  right={{\n    documents: [{ uri: \"/document-v2.pdf\" }],\n    config: { pdfVerticalScrollByDefault: true },\n  }}\n  syncScroll={true}\n/>\n```\n\n| Prop | Type | Description |\n| ---- | ---- | ----------- |\n| `left` | `{ documents, config?, pluginRenderers?, ... }` | Props for the left DocViewer instance |\n| `right` | `{ documents, config?, pluginRenderers?, ... }` | Props for the right DocViewer instance |\n| `syncScroll` | `boolean` | When `true`, scrolling one side scrolls the other |\n\nThe divider between panels is draggable to resize. `SplitDocViewer` is exported directly from the package:\n\n```tsx\nimport { SplitDocViewer } from \"@iamjariwala/react-doc-viewer\";\n```\n\n### Loading Progress Bar\n\nDisplay an animated progress bar while PDF documents are loading. Shows actual load progress from the PDF.js library.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    loadingProgress: { enableProgressBar: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableProgressBar` | `boolean` | `false` | Show progress bar during PDF loading |\n\nThe progress bar appears at the top of the PDF area and smoothly animates from 0% to 100% as the PDF loads.\n\n### Text Selection & Copy\n\nEnable the react-pdf text layer so users can select and copy text from PDF pages.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    textSelection: { enableTextSelection: true },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableTextSelection` | `boolean` | `false` | Render PDF text layer for selection and copying |\n\nWhen enabled, text on PDF pages becomes selectable. Use Ctrl+C / Cmd+C to copy selected text.\n\n### Drag & Drop File Upload\n\nEnable file drag-and-drop to add or replace documents in the viewer. Supports file type filtering, size limits, and callbacks.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    dragDrop: {\n      enableDragDrop: true,\n      acceptedFileTypes: [\"application/pdf\", \"image/*\"],\n      maxFileSize: 50 * 1024 * 1024, // 50 MB\n      dropBehavior: \"append\",\n      onDrop: (files) => {\n        console.log(\"Files dropped:\", files);\n      },\n      onDropRejected: (files, reason) => {\n        console.log(\"Rejected:\", reason);\n      },\n    },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableDragDrop` | `boolean` | `false` | Enable drag-and-drop |\n| `acceptedFileTypes` | `string[]` | all types | MIME types to accept (supports wildcards like `image/*`) |\n| `maxFileSize` | `number` | unlimited | Max file size in bytes |\n| `dropBehavior` | `\"append\" \\| \"replace\"` | `\"append\"` | Add to or replace existing documents |\n| `onDrop` | `(files: File[]) => void` | -- | Callback when files are accepted |\n| `onDropRejected` | `(files: File[], reason: \"file-type\" \\| \"file-size\" \\| \"unknown\") => void` | -- | Callback when files are rejected |\n\n### Thumbnail Sidebar\n\nDisplay a visual sidebar with page thumbnails for quick PDF navigation. Click any thumbnail to jump to that page.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    thumbnail: {\n      enableThumbnails: true,\n      thumbnailWidth: 120,\n      sidebarDefaultOpen: true,\n    },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableThumbnails` | `boolean` | `false` | Enable thumbnail sidebar |\n| `thumbnailWidth` | `number` | `120` | Width of each thumbnail in pixels |\n| `sidebarDefaultOpen` | `boolean` | `false` | Open sidebar by default |\n\n### Annotations (Highlight, Draw, Comment)\n\nAdd highlights, freehand drawings, and comments to your documents. Export annotations as JSON for persistence.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    annotations: {\n      enableAnnotations: true,\n      defaultColor: \"#FFFF00\",\n      colors: [\"#FFFF00\", \"#FF6B6B\", \"#4ECDC4\", \"#45B7D1\", \"#96CEB4\"],\n      tools: [\"select\", \"highlight\", \"pen\", \"comment\", \"eraser\"],\n      onAnnotationChange: (annotations) => {\n        console.log(\"Annotations:\", annotations);\n      },\n      initialAnnotations: [],\n    },\n  }}\n/>\n```\n\n| Option | Type | Default | Description |\n| ------ | ---- | ------- | ----------- |\n| `enableAnnotations` | `boolean` | `false` | Enable annotation toolbar |\n| `defaultColor` | `string` | -- | Default color for new annotations |\n| `colors` | `string[]` | -- | Color palette for the picker |\n| `tools` | `AnnotationTool[]` | all | Which tools to show: `\"select\"`, `\"highlight\"`, `\"pen\"`, `\"comment\"`, `\"eraser\"` |\n| `onAnnotationChange` | `(annotations: IAnnotation[]) => void` | -- | Callback when annotations change |\n| `initialAnnotations` | `IAnnotation[]` | `[]` | Pre-loaded annotations |\n\n**Exporting annotations** -- Use the `useAnnotationExport` hook:\n\n```tsx\nimport { useAnnotationExport } from \"@iamjariwala/react-doc-viewer\";\n\nfunction AnnotationControls() {\n  const {\n    exportAnnotations,\n    exportAsJSON,\n    downloadAnnotations,\n    getAnnotationsForPage,\n    annotationCount,\n  } = useAnnotationExport();\n\n  return (\n    <button onClick={() => downloadAnnotations(\"my-annotations.json\")}>\n      Download {annotationCount} Annotations\n    </button>\n  );\n}\n```\n\n### Page Navigation & Page Jump\n\nJump to a specific page using a ref or the `jumpToPage` prop.\n\n**Using ref:**\n\n```tsx\nimport DocViewer, { DocViewerRef } from \"@iamjariwala/react-doc-viewer\";\n\nconst docViewerRef = useRef<DocViewerRef>(null);\n\n<DocViewer ref={docViewerRef} documents={docs} pluginRenderers={DocViewerRenderers} />;\n\ndocViewerRef.current?.goToPage(5);\ndocViewerRef.current?.prev();\ndocViewerRef.current?.next();\n```\n\n**Using the `jumpToPage` prop:**\n\n```tsx\nconst [page, setPage] = useState(1);\n\n<DocViewer documents={docs} pluginRenderers={DocViewerRenderers} jumpToPage={page} />;\n```\n\n## Configuration\n\n### Full Config Reference\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    // Header\n    header: {\n      disableHeader: false,\n      disableFileName: false,\n      retainURLParams: false,\n      overrideComponent: MyHeader,\n    },\n    // Loading & error\n    loadingRenderer: {\n      overrideComponent: MyLoader,\n      showLoadingTimeout: 500,\n    },\n    noRenderer: {\n      overrideComponent: MyError,\n    },\n    // PDF options\n    csvDelimiter: \",\",\n    pdfZoom: {\n      defaultZoom: 1.1,\n      zoomJump: 0.2,\n    },\n    pdfVerticalScrollByDefault: true,\n    // Theme\n    themeMode: \"dark\",             // \"light\" | \"dark\" | \"auto\"\n    // PDF features\n    print: { enablePrint: true },\n    fullscreen: { enableFullscreen: true },\n    loadingProgress: { enableProgressBar: true },\n    watermark: {\n      text: \"CONFIDENTIAL\",\n      opacity: 0.08,\n      fontSize: 52,\n      color: \"#ff0000\",\n      rotation: -35,\n    },\n    textSelection: { enableTextSelection: true },\n    keyboard: { enableKeyboardShortcuts: true },\n    password: { enablePasswordPrompt: true },\n    search: { enableSearch: true },\n    bookmarks: { enableBookmarks: true },\n    // Existing features\n    dragDrop: {\n      enableDragDrop: true,\n      acceptedFileTypes: [\"application/pdf\", \"image/*\"],\n      maxFileSize: 50 * 1024 * 1024,\n      dropBehavior: \"append\",\n      onDrop: (files) => console.log(files),\n      onDropRejected: (files, reason) => console.log(reason),\n    },\n    thumbnail: {\n      enableThumbnails: true,\n      thumbnailWidth: 120,\n      sidebarDefaultOpen: false,\n    },\n    annotations: {\n      enableAnnotations: true,\n      defaultColor: \"#FFFF00\",\n      colors: [\"#FFFF00\", \"#FF6B6B\", \"#4ECDC4\"],\n      tools: [\"select\", \"highlight\", \"pen\", \"comment\", \"eraser\"],\n      onAnnotationChange: (annotations) => console.log(annotations),\n      initialAnnotations: [],\n    },\n  }}\n/>\n```\n\n### Overriding Header\n\n```tsx\nimport { IHeaderOverride } from \"@iamjariwala/react-doc-viewer\";\n\nconst MyHeader: IHeaderOverride = (state, previousDocument, nextDocument) => {\n  if (!state.currentDocument) return null;\n\n  return (\n    <div>\n      <span>{state.currentDocument.uri}</span>\n      <button onClick={previousDocument} disabled={state.currentFileNo === 0}>\n        Prev\n      </button>\n      <button\n        onClick={nextDocument}\n        disabled={state.currentFileNo >= state.documents.length - 1}\n      >\n        Next\n      </button>\n    </div>\n  );\n};\n\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{ header: { overrideComponent: MyHeader } }}\n/>;\n```\n\n### Overriding Loading Renderer\n\n```tsx\nconst MyLoader = ({ document, fileName }: { document: IDocument | undefined; fileName: string }) => {\n  return <div>Loading {fileName || document?.fileType}...</div>;\n};\n\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{\n    loadingRenderer: {\n      overrideComponent: MyLoader,\n      showLoadingTimeout: 500,\n    },\n  }}\n/>;\n```\n\n### Overriding No Renderer (Error)\n\n```tsx\nconst MyError = ({ document, fileName }: { document: IDocument | undefined; fileName: string }) => {\n  return <div>Unsupported file: {fileName || document?.fileType}</div>;\n};\n\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  config={{ noRenderer: { overrideComponent: MyError } }}\n/>;\n```\n\n## Theming & CSS Variables\n\nCustomize the viewer's appearance with a theme object. Values are injected as CSS custom properties (`--rdv-*`) on the container element.\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  theme={{\n    primary: \"#5296d8\",\n    secondary: \"#ffffff\",\n    tertiary: \"#5296d899\",\n    textPrimary: \"#ffffff\",\n    textSecondary: \"#5296d8\",\n    textTertiary: \"#00000099\",\n    disableThemeScrollbar: false,\n  }}\n/>\n```\n\n| Property | CSS Variable | Default | Description |\n| -------- | ------------ | ------- | ----------- |\n| `primary` | `--rdv-primary` | `\"#fff\"` | Primary background color |\n| `secondary` | `--rdv-secondary` | `\"#000\"` | Secondary background color |\n| `tertiary` | `--rdv-tertiary` | `\"#ffffff99\"` | Tertiary background color |\n| `textPrimary` | `--rdv-text-primary` | `\"#000\"` | Primary text color |\n| `textSecondary` | `--rdv-text-secondary` | `\"#fff\"` | Secondary text color |\n| `textTertiary` | `--rdv-text-tertiary` | `\"#00000044\"` | Tertiary text color |\n| `disableThemeScrollbar` | -- | `false` | Disable themed scrollbar styling |\n\n## Styling & CSS Customization\n\n**CSS class:**\n\n```tsx\n<DocViewer documents={docs} pluginRenderers={DocViewerRenderers} className=\"my-viewer\" />\n```\n\n**Inline styles:**\n\n```tsx\n<DocViewer documents={docs} pluginRenderers={DocViewerRenderers} style={{ width: 500, height: 500 }} />\n```\n\n**Override internal elements with CSS classes:**\n\nAll internal elements use `.rdv-*` class names that you can target:\n\n```css\n.rdv-container {\n  border-radius: 10px;\n}\n\n.rdv-header-bar {\n  background-color: #faf;\n}\n\n.rdv-pdf-controls {\n  gap: 12px;\n}\n```\n\n**Override CSS custom properties globally:**\n\n```css\n#react-doc-viewer {\n  --rdv-primary: #1a1a2e;\n  --rdv-secondary: #16213e;\n  --rdv-text-primary: #e94560;\n}\n```\n\n**Common CSS class reference:**\n\n| Class | Element |\n| ----- | ------- |\n| `.rdv-container` | Root container |\n| `.rdv-header-bar` | Top header bar |\n| `.rdv-file-name` | File name display |\n| `.rdv-doc-nav-prev` / `.rdv-doc-nav-next` | Document navigation buttons |\n| `.rdv-pdf-controls` | PDF control bar (zoom, pagination) |\n| `.rdv-pdf-page-wrapper` | Individual PDF page wrapper |\n| `.rdv-pdf-progress-bar` | Loading progress bar container |\n| `.rdv-pdf-progress-fill` | Loading progress bar fill |\n| `.rdv-thumbnail-sidebar` | Thumbnail sidebar container |\n| `.rdv-annotation-toolbar` | Annotation toolbar |\n| `.rdv-search-bar` | Text search floating bar |\n| `.rdv-bookmarks-sidebar` | Bookmarks / TOC sidebar |\n| `.rdv-password-overlay` | Password prompt overlay |\n| `.rdv-password-modal` | Password prompt modal |\n| `.rdv-watermark-overlay` | Watermark overlay container |\n| `.rdv-split-container` | Split view container |\n| `.rdv-split-panel` | Split view panel |\n| `.rdv-split-divider` | Split view draggable divider |\n| `.rdv-image-container` | Image renderer container |\n| `.rdv-csv-container` | CSV table container |\n| `.rdv-txt-container` | Text renderer container |\n| `.rdv-video-container` | Video player container |\n| `.rdv-msdoc-container` | Office document download card |\n| `.rdv-loading-container` | Loading spinner container |\n\n## Internationalization (i18n) -- 14 Languages\n\nPass a `language` prop to translate the UI into any of the 14 supported languages:\n\n```tsx\n<DocViewer documents={docs} pluginRenderers={DocViewerRenderers} language=\"pl\" />\n```\n\n**Supported languages:**\n\n| Code | Language | Code | Language |\n| ---- | -------- | ---- | -------- |\n| `en` | English | `ja` | Japanese |\n| `ar` | Arabic | `pl` | Polish |\n| `de` | German | `pt` | Portuguese |\n| `es` | Spanish | `ru` | Russian |\n| `fr` | French | `se` | Swedish |\n| `it` | Italian | `sr` | Serbian (Latin) |\n| `tr` | Turkish | `sr_cyr` | Serbian (Cyrillic) |\n\nTranslation files are in `src/locales/`. PRs for new languages are welcome.\n\n## Performance & Bundle Size\n\nRun `npm run measure:bundle` after building to measure minified and gzip assets for real consumer bundles. See [Performance](docs-site/docs/performance.md) for the exact methodology and limitations. Selective renderer imports control accepted formats; they do not guarantee that all shared PDF dependencies disappear from a bundle.\n\nThe XLSX parser loads on demand. Spreadsheet preview has explicit input and display limits; see [XLSX guide](docs-site/docs/guides/xlsx.md).\n\n\n## Security\n\nPDF and XLSX parsing run in the browser. DOCX uses local rendering by default. Other Office formats may use Microsoft Office Online, and optional server conversion uploads documents to your configured service. Remote documents and embedded resources can still make network requests. See [Security](#security).\n\n- HTML and Markdown output use DOMPurify; sanitization is not a guarantee against every attack or network request. Apply your application's content policy and keep dependencies updated.\n- For confidential Office files, pass only local renderers (`DocxRenderer`, `XLSXRenderer`, `PDFRenderer`, etc.), leave `docx.useOfficeOnlineViewer` disabled and do not enable `serverConversion`.\n- XLSX is a data preview, not an Excel execution environment. Formula expressions are not executed; cached values may be displayed. Charts, macros and exact formatting are not supported.\n- Visible watermarks are a visual cue, not access control or DRM.\n\n\n## Advanced\n\n### DocViewerRef API\n\nControl the viewer programmatically:\n\n```tsx\nimport DocViewer, { DocViewerRef } from \"@iamjariwala/react-doc-viewer\";\n\nconst docViewerRef = useRef<DocViewerRef>(null);\n\n<DocViewer ref={docViewerRef} documents={docs} pluginRenderers={DocViewerRenderers} />;\n\ndocViewerRef.current?.prev();\ndocViewerRef.current?.next();\ndocViewerRef.current?.goToPage(3);\n```\n\n| Method | Description |\n| ------ | ----------- |\n| `prev()` | Navigate to the previous document |\n| `next()` | Navigate to the next document |\n| `goToPage(n)` | Jump to page `n` in the current PDF |\n\n### Custom HTTP Verb for S3 / Cloud Storage\n\nSome services (like AWS S3 pre-signed URLs) require a specific HTTP verb for pre-fetching. By default, `HEAD` is used:\n\n```tsx\n<DocViewer documents={docs} pluginRenderers={DocViewerRenderers} prefetchMethod=\"GET\" />\n```\n\n### Custom Request Headers for Authenticated APIs\n\nProvide custom headers for authenticated requests (JWT, API keys, etc.):\n\n```tsx\n<DocViewer\n  documents={docs}\n  pluginRenderers={DocViewerRenderers}\n  prefetchMethod=\"GET\"\n  requestHeaders={{\n    \"X-Access-Token\": \"1234567890\",\n    \"My-Custom-Header\": \"value\",\n  }}\n/>\n```\n\n## FAQ\n\n**What is the best React document viewer library?**\nChoose based on formats, privacy requirements, accessibility, integrations and measured performance. This package is suitable when you want multiple renderers and built-in PDF tools behind one API; no package is the best fit for every application.\n\n**How do I display a PDF in React?**\nInstall `@iamjariwala/react-doc-viewer`, import `DocViewer` and `DocViewerRenderers`, pass your PDF URL as a document, and the component handles rendering, zoom, pagination, and page navigation automatically. See [Quick Start](#quick-start).\n\n**How do I display a PDF in Next.js?**\nLoad the viewer through a browser-only dynamic import from a client component, import the CSS file, and pass your PDF document. See [Next.js guide](#nextjs-app-router--pages-router).\n\n**Can I view Word, Excel, and PowerPoint files in React?**\nDOCX renders inline locally by default; its optional Office Online mode sends the document URL to Microsoft. XLSX renders locally as a read-only table with sheet navigation. DOC, XLS, PPT, PPTX and ODT use Microsoft Office Online for HTTP(S) URLs and download cards for local/blob URLs. Office Online needs a publicly reachable document and does not receive your requestHeaders. Optional server conversion uploads eligible documents to your configured service.\n\n**Does it support dark mode?**\nYes. Set `config.themeMode` to `\"dark\"` for dark mode, `\"light\"` for light mode, or `\"auto\"` to follow the system's `prefers-color-scheme` preference. Dark mode applies to the toolbar, header, sidebars, modals, and all UI elements.\n\n**Does it support text search in PDFs?**\nYes. Enable `config.search.enableSearch` to add a search icon to the toolbar. Press Ctrl+F to open the search bar, which searches across all pages with match count and prev/next navigation.\n\n**Does it support keyboard shortcuts?**\nYes. Enable `config.keyboard.enableKeyboardShortcuts` for arrow key page navigation, +/- zoom, Home/End, Ctrl+F search, Ctrl+P print, F for fullscreen, and Escape to exit.\n\n**Can I add a watermark to PDFs?**\nYes. Set `config.watermark` with your desired text, opacity, color, font size, and rotation. The watermark appears on every page as a non-interactive overlay.\n\n**Does it support password-protected PDFs?**\nYes. Enable `config.password.enablePasswordPrompt` to show a password prompt modal when an encrypted PDF is loaded. The user enters their password to decrypt and view the document.\n\n**Can I view bookmarks or table of contents in a PDF?**\nYes. Enable `config.bookmarks.enableBookmarks` to show a bookmarks sidebar that auto-extracts the PDF's outline with nested items and click-to-navigate.\n\n**Can I compare two documents side by side?**\nYes. Use the `<SplitDocViewer>` component with `left` and `right` props. Each side gets its own DocViewer instance. Optional `syncScroll` keeps both sides in sync.\n\n**Does it support annotations and highlighting?**\nYes. Enable annotations via config to get text highlighting, freehand drawing, comments, and an eraser tool. Annotations can be exported as JSON and pre-loaded from saved data. See [Annotations](#annotations-highlight-draw-comment).\n\n**Can I annotate a PDF in React?**\nYes. Enable `config.annotations.enableAnnotations` to get a full annotation toolbar with highlighting, freehand drawing, comments, color picker, and eraser. Annotations are per-page and can be exported/imported as JSON.\n\n**Does it work with Next.js?**\nThe repository validates packed-package Vite consumers and a Next.js example. Use a browser-only boundary for server-rendered applications. Other frameworks need application-level verification. See [Framework Guides](#framework-guides).\n\n**Does it work with Vite?**\nYes. Import the component and CSS file -- no additional configuration needed. See [Vite guide](#vite).\n\n**Can I add my own file type renderer?**\nYes. Create a custom renderer component with `fileTypes` and `weight` properties and pass it via `pluginRenderers`. You can also override the file loading logic. See [Custom Renderer](#custom-renderer).\n\n**How do I style or theme the document viewer?**\nUse the `theme` prop for color customization, the `className` or `style` props for container styling, or override `.rdv-*` CSS classes and `--rdv-*` CSS custom properties for fine-grained control. See [Theming](#theming--css-variables) and [Styling](#styling--css-customization).\n\n**Is it secure? Does it send data to external servers?**\nPDF and XLSX parsing run in the browser. DOCX uses local rendering by default. Other Office formats may use Microsoft Office Online, and optional server conversion uploads documents to your configured service. Remote documents and embedded resources can still make network requests. See [Security](#security).\n\n**How does this compare to react-pdf?**\nreact-pdf only handles PDF files. `@iamjariwala/react-doc-viewer` handles 20+ file types including PDF, and adds dark mode, text search, annotations, keyboard shortcuts, watermarks, bookmarks, password support, fullscreen, print, split view, drag-and-drop, thumbnails, theming, and i18n on top. Compare application bundle measurements and required controls before choosing.\n\n**How do I reduce bundle size?**\nImport only the renderers you need (`PDFRenderer`, `PNGRenderer`, etc.) instead of `DocViewerRenderers`. Use `React.lazy()` to code-split the viewer. See [Performance](#performance--bundle-size).\n\n**Does it support drag-and-drop file upload?**\nYes. Enable `config.dragDrop.enableDragDrop` to allow users to drag files onto the viewer. Supports file type filtering, size limits, append/replace behavior, and rejection callbacks. See [Drag & Drop](#drag--drop-file-upload).\n\n**Does it support thumbnail navigation?**\nYes. Enable `config.thumbnail.enableThumbnails` to show a sidebar with page thumbnails for PDFs. Click any thumbnail to jump to that page. See [Thumbnail Sidebar](#thumbnail-sidebar).\n\n**Can I jump to a specific page in a PDF?**\nYes. Use `docViewerRef.current?.goToPage(5)` for programmatic navigation, or the `jumpToPage` prop for declarative control. See [Page Navigation](#page-navigation--page-jump).\n\n**Can I print a PDF from the viewer?**\nYes. Enable `config.print.enablePrint` to add a print button to the toolbar. Press Ctrl+P with keyboard shortcuts enabled.\n\n**Does it support fullscreen mode?**\nYes. Enable `config.fullscreen.enableFullscreen` to add a fullscreen button. Press F with keyboard shortcuts enabled.\n\n**Does it support TypeScript?**\nYes. The library is written in TypeScript and ships with complete type definitions. All props, config options, and hooks are fully typed with IntelliSense support.\n\n**What React versions are supported?**\nReact 17, 18 and 19 are the supported peer major versions. CI checks packed-package consumer builds; this is not a claim that every browser or framework version is tested. See [Release validation](docs-site/docs/release.md).\n\n**Is it accessible?**\nThe viewer uses semantic HTML, keyboard-navigable controls, and appropriate ARIA attributes where applicable.\n\n## Migrating from Other Libraries\n\n### From @cyntler/react-doc-viewer\n\n`@iamjariwala/react-doc-viewer` is a fork of `@cyntler/react-doc-viewer` with additional features. Migration is straightforward:\n\n1. Replace the package: `npm uninstall @cyntler/react-doc-viewer && npm install @iamjariwala/react-doc-viewer`\n2. Update imports: replace `@cyntler/react-doc-viewer` with `@iamjariwala/react-doc-viewer`\n3. Add the CSS import: `import \"@iamjariwala/react-doc-viewer/dist/index.css\"`\n4. Review changed configuration, CSS, Office privacy behavior and renderer exports before migrating\n\n### From react-pdf\n\nIf you're using `react-pdf` and need multi-format support:\n\n1. Install: `npm install @iamjariwala/react-doc-viewer`\n2. Replace `<Document>` + `<Page>` with `<DocViewer documents={[{ uri: pdfUrl }]} />`\n3. The built-in PDF renderer handles zoom, pagination, and page navigation automatically\n\n### From react-file-viewer\n\n1. Install: `npm install @iamjariwala/react-doc-viewer`\n2. Replace `<FileViewer fileType={type} filePath={path} />` with `<DocViewer documents={[{ uri: path }]} />`\n3. File type is detected automatically from the URL or can be specified via `fileType` property\n\n## Contributing\n\nContributions are welcome. Please open an issue first to discuss significant changes. PRs for bug fixes, new renderers, and translations are appreciated.\n\n```bash\ngit clone https://github.com/mehuljariwala/react-doc-viewer.git\ncd react-doc-viewer\nnpm install\nnpm start\n```\n\n## License\n\n[Apache-2.0](./LICENSE)\n\n---\n\n<sub>Forked from [@cyntler/react-doc-viewer](https://github.com/cyntler/react-doc-viewer). Built and maintained by [Mehul Jariwala](https://github.com/mehuljariwala).</sub>\n","readmeFilename":"README.md"}