{"_id":"react-visual-feedback","_rev":"47-611567d2292da1465559062d82feddca","name":"react-visual-feedback","dist-tags":{"latest":"2.3.9"},"versions":{"1.0.0":{"name":"react-visual-feedback","version":"1.0.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.0.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"cb26162da3745817bbb701770a988f548145c77a","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.0.0.tgz","fileCount":9,"integrity":"sha512-7abjMClUjEobhpT9q2b7aV6TOWb8kFMZ++yJN/qsav6bxOJIe+Rywn2CS0a7n3DFoPuRgMn/SMermddpJY3/2Q==","signatures":[{"sig":"MEUCIQCenXUbKmN2N013YigXJT56fBb15eJWdm3wyd2vqGZ2nAIgZsTY/dwEXbfUCHcq7Kcvak7xU+RcIljyYBR2qamdDPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1703269},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"2a51f574373eff9b59ea18120528ea600b4c0b76","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection and screenshot capture","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.0.0_1761120376941_0.678332190847488","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"react-visual-feedback","version":"1.1.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.1.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"1d32ff8e7d513ff98e6486e5263143d67ed7527d","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.1.0.tgz","fileCount":9,"integrity":"sha512-bECv+MT971qoiKrxRLm74c+zzdTZTIeek5n8oci5nzAD0GzarL4gRz3Srl3g/sjSU0TUpYhxAh6w6Arevw132Q==","signatures":[{"sig":"MEQCIGsg54VjeBipqxANDVADTTdQ8JaX38I0SBHJQ9iOIKvHAiB67hqVB44VHS7NI5qOeS3hWN5gbqX/Z+vOYVMXYrDUzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1849584},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"2a51f574373eff9b59ea18120528ea600b4c0b76","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection and screenshot capture","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.1.0_1761125980462_0.7087263461589886","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"react-visual-feedback","version":"1.1.1","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.1.1","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"4dc12d42d7cd9039a04d589a484f7c53ab741ea9","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.1.1.tgz","fileCount":9,"integrity":"sha512-qQign8WBbZGxfxjMxhaPVvGEUaBHKlKY2Lh0O5eUr09rOexyITmn8RzCS6pDwrOfXULhHu9nl54Wkd53H+efaA==","signatures":[{"sig":"MEUCIHf7FGLYxf7S28pq9zySlRcQmTFp/aj0h60IskOjqSSfAiEA2wqzW2OycTAiwCMPOk5mUzFKHgA4G6+wkJWoB7RUnfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1850666},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"2a51f574373eff9b59ea18120528ea600b4c0b76","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection and screenshot capture","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.1.1_1761126384557_0.40996744237359883","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"react-visual-feedback","version":"1.2.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.2.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"3f0e8968e8db989ec1d5cca39bc208e2231be582","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.2.0.tgz","fileCount":9,"integrity":"sha512-lt81RsNdb0Ojy2eNDzG5ngfsXnsBKmB2eXDZ7J3nOscqGntHFMpO5m1fdS69B5VQBDCuYz3SGHQUjKePH9Ezjw==","signatures":[{"sig":"MEYCIQDi3GEDgakPPLe/rTQxAsU/QYjy9iSmN8/2nnkEbUhN5wIhAOpb4h2j0yi0iHxV7SyepeVzzAbhlzgCxy2FE/nlRekI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1974480},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.2.0_1761154111712_0.7806866649958777","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"react-visual-feedback","version":"1.2.1","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.2.1","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"6e6e072ba756f99d3013600bb3747ec580f5b89c","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.2.1.tgz","fileCount":9,"integrity":"sha512-OIt49NvRvwUm60CPQmhNNBqQprGAsTgcFuwT71rqPMlnQwnVVjkCdIvE3jYdPJ3MjcPu8TduhpUf2C927S7AMw==","signatures":[{"sig":"MEQCIDxJ68pSNYtsTFbXiZM7+z923Ajk2wwc6XgApajNmB6tAiB5mjcIncfHqr1x9G4oownIqX157qwS/CLRlInk/cpbgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1992165},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.2.1_1762127276001_0.1136053791520899","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"react-visual-feedback","version":"1.3.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"2f42e263fa37a5ef8dac99de1389c96e9c7e705c","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.0.tgz","fileCount":9,"integrity":"sha512-383CpYiR67jereN1K+QEPywgD/E7FDV7am0M8THFQPUtcCCxD/EGZNm7nMLj1gyGRgcq9R3G8lID0NSdlXfmRA==","signatures":[{"sig":"MEYCIQCoeb6DLQWc0X5WepG7Dd+AOq64ITP4r4nMfit0Jj2ykAIhAI5E/wm2rZ2CUIEWXzUBimA/eUuqrdkOWR2Bd1cyB5z+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2172606},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.0_1762218396818_0.7038985597861598","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"react-visual-feedback","version":"1.3.1","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.1","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"cb7f93b28530bf7ca955260a1a37fd544a764dd3","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.1.tgz","fileCount":9,"integrity":"sha512-t83AJKW8poelwrVKVgUbGD6Lmf2yPCUOzZEG/mxJAQVu/pUKKb+el5YoehNL4WtfXQRiEM7t2CQ+2/ClzyQ0cw==","signatures":[{"sig":"MEYCIQCn8Gx90jZL3zSbiofBE2/2rvCvRUlOIQiaYJ/aallqfAIhALi9uuUMORP57i+AtDa8UzqTY70BwOcqUZNIYj1Uyt0t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2175989},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.1_1762218744496_0.08239114456848395","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"react-visual-feedback","version":"1.3.2","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.2","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"468edd67c294a19c2c0616a1732c9e8a3548c22b","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.2.tgz","fileCount":9,"integrity":"sha512-7HFDpo2PRGDc196BA66gqCRWpF4FQMdczQ8BF+MvzPKd0bmT/6EJSgRguwOEnVEYrcg0DkPj3lobylt/BkSifA==","signatures":[{"sig":"MEUCIQC2VGLdrwh/g+t0lUKkFBc6bvpPxTmWwkGOkakQScSXAwIgMxGXGPgA8hM62TkFf/jADiL3Ude9CY4fPtD/tPeIVpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2182821},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.2_1762449107073_0.110424197724315","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"react-visual-feedback","version":"1.3.3","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.3","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"dfcb3e87f87a424facc63139cc60e9e0243cd626","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.3.tgz","fileCount":9,"integrity":"sha512-G/4lGtu2aQibMVsFybcLZ5tbwDVcAYyMuQJjQiywBpynADXz74xpkyBKSLZP+1By0g8GkXFB1lyEoQoZGWa60Q==","signatures":[{"sig":"MEYCIQD4PXSyPzkx7j3QBGS/jPQQJdoEScrEbMIEf4dYy/RLDAIhAPFBL1col6d3dr/1surO6FnccSfMylv7YLHMy5Va8aBs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2187030},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.3_1762449328835_0.6200837127920993","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"react-visual-feedback","version":"1.3.4","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.4","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"0e06b42edfa6d37e71875b74ae8b6a10bc273a13","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.4.tgz","fileCount":9,"integrity":"sha512-6MJfcCc75cwuh6oPzK6DuwN49t1+TGQmsHVXBtanARK3L0IIwSmKdC5lk7u1mnOEnKNI63KQpAOxznBVE7Ky6Q==","signatures":[{"sig":"MEYCIQCZLh1Rl7Stf/TaJSHzBiSp2b3nexGdopP3RYnFAjngDQIhANdsOGI6uB8/TvS7rN6KujB0eWylD1n6EX6vZH+OP+aE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2198203},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"0d4016f4abffb624df613f6d5cb0362621812443","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.4_1762508618186_0.7541670135743592","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"react-visual-feedback","version":"1.3.5","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.5","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"07c49d9856e1e625705dfa3d5f1e99addc6ae170","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.5.tgz","fileCount":9,"integrity":"sha512-EZkDmNEnLfQxVZohmABLT1BLxuyTNf7BxXStwhng1ZKBX4M9deW7Y7hynQg5m+1gSNHNv0ineKfad61rS2bSbQ==","signatures":[{"sig":"MEUCIQDionJ/F7qsVGpb4tzK2YORsA3Os0tq4LvYnREy8qkF3wIgArIGGVLKzb659QTEXp7Fy8+af+aIkLqa7rxiANIKCSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2188505},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"246815510869427c555fec6ef6362ac6ef9d7082","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.5_1762509507587_0.09275322334859082","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"react-visual-feedback","version":"1.3.6","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.6","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"8fda718b94563f9ef50169fe7ffdb0510deb3a8b","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.6.tgz","fileCount":9,"integrity":"sha512-ojcZ1ik9LvJVIle0YSxj738DCCCdjLd62TlM7dedgq9bU8muuqw1IyoaCrIjKIFysDH0TlgXYXzLX5ZMVG1wOw==","signatures":[{"sig":"MEUCIQDahLrGJiBRF8yOboe4OVD1b/lDngeCuY6BZptilCMr7QIgHluhqgT5CwKACMADMErjDKRygebKl7gJgF9Syq1OX38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2186183},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"246815510869427c555fec6ef6362ac6ef9d7082","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.6_1762510164071_0.16695398161684483","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"react-visual-feedback","version":"1.3.7","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.3.7","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"72391265b6ec89884ea6f8e73630197a6a52387f","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.3.7.tgz","fileCount":9,"integrity":"sha512-CubQxzZe7jOebGd0BI223InT8lTtxJYeLH8qkNpIVWAYBrp132I9K0lUhPuap9v9M4ywH+RuTjgGR6lEOkjptA==","signatures":[{"sig":"MEUCID9aFS5aYI5SGtmGvYn0+tpjX/d7021p3PPQ688o6GGJAiEA9rrG5BFQ+0/jUiRRimyT7WJk089ikaUxgI/VzCVtmCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2187600},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"246815510869427c555fec6ef6362ac6ef9d7082","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"html2canvas":"^1.4.1","lucide-react":"^0.263.1","html-to-image":"^1.11.13"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.3.7_1762510643042_0.1263142521056002","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"react-visual-feedback","version":"1.4.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"74d83f734fb8ee113b095f89d03c120b8a81fec2","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.0.tgz","fileCount":9,"integrity":"sha512-Kpi702Cksuhu/dE1hv22w2hpjARqHUBJzE4TaUhXaTsQISHM54Akacygf5Qe1JbKXLgRc98F5cuWV68Fn7HJDw==","signatures":[{"sig":"MEYCIQDSHTVIljpQtYj65q6XzID7UEinu0ctG7MJVKy9H92zIwIhAID7WC25TBolkRr+4ODxPXq/yVkPSsM9NaRDPZBfi0cG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4369574},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.0_1764178838276_0.8453632759921179","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"react-visual-feedback","version":"1.4.2","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.2","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"10b9715b47124ef7812d5887eb2221357db9fbd9","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.2.tgz","fileCount":9,"integrity":"sha512-J9ku63Lji+g9ukYX6yWEDfI+2xEZoAyMtzTHbUf+pBHhCPYMoxS8E9Xb55eV7f1uDb7MFBkQI36OzWRjNqC4vA==","signatures":[{"sig":"MEUCIQC55z+KY8yNSHEmpywzWzHwH6Y2d47F9Tw25abLlucmLQIgTI3DD95O55+EUlBESAfGLHXAe0548ywjjJtfNrAGegA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4388443},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.2_1764181864224_0.6818026530221704","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"react-visual-feedback","version":"1.4.3","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.3","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"f66a85b3c832f80f3406806a0b64ccb1abed2a4a","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.3.tgz","fileCount":9,"integrity":"sha512-wu5WTD3fS0nqFe49EnYftwVhhRav+FpWPmQglVZOs5+RmoQrSSLlF7VmxHcZIPm8602KJ83Lq7b1cP8Z2UDnTw==","signatures":[{"sig":"MEUCIQDmxnLZrvNsfzTFhxVDOld016rr19hA+m56hz3nrTHm/QIgZtDlUWl1+wW4042jWNbyuNklofiQAdjSgznOEurqEFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4388443},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.3_1764181907057_0.217779389849454","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"react-visual-feedback","version":"1.4.4","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.4","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"8ded0ecddf73e9abcbcd8a6da149c75962a3b173","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.4.tgz","fileCount":9,"integrity":"sha512-eZCEXW9DqXGJ0p+TQAWteZaG7IES6MOyCvT1NB9VbumQSrrzqN9dyzMyLfK2pdfxflbBXX2nOZQQh/CGikAHXA==","signatures":[{"sig":"MEQCIAPXnct8pKK9cQFDHpTp+r5SGj6usgZxx8ZpY53nP8J7AiB+3XTSAqiZlq0tKXF/iI8UjAjXDUUN3qaws7uKEUf0aA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4368873},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.4_1764182740644_0.9670660471251977","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"react-visual-feedback","version":"1.4.5","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.5","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"0bd5936e9eb4da3e3c6a5a3d3f6e4ffb09d44a24","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.5.tgz","fileCount":9,"integrity":"sha512-acy15cNjqcsG88qzCm+ofJouPXpXCls8lvEAq4zYMuyBLhXoG7PEDoSrrUhNIs+5nxmsijUC2PgzO2iZpIE+zA==","signatures":[{"sig":"MEUCIQCQ6R/RDrtPOB2kcJGHx52gl3jxtOR2aSzXbPYlf6awpQIgWu/oFr0dm6yeV5yThpqHruwh/wGEbfNoxNZJg1rj3rI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4368873},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.5_1764182809986_0.18324512694221973","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"react-visual-feedback","version":"1.4.6","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.6","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"4189d6c3f8936753bd4925377f8c4ac80f8d8bd4","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.6.tgz","fileCount":9,"integrity":"sha512-oApjyEjInBclS3IO4t59UQ2zpHX+O2hfzKgXE68w+PYu0dnvGColPRcN6HXVjadSAzIfGyRClV8Qd8xQZ+iukg==","signatures":[{"sig":"MEYCIQConCYjRJ/kCjI/MviuQe1DTxf5bN7RNQ3s6O2EWoDryAIhANgxHcacAs/5mZAziMXdZhbCOe+VXK+XU39hYQMIPGLs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4369269},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.6_1764183210636_0.8526022845916879","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"react-visual-feedback","version":"1.4.7","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.7","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"d63e402090e0d7a0bd06e27bc8e431d420ea0214","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.7.tgz","fileCount":9,"integrity":"sha512-2bqpGIxB9LodL8KvDX21j1dVb7jBJ9dVhvuF3uqGh/2BvqoYmPJ+Vi1/wUhzv15dS7xjL9EqzezLGYLcMmiPcQ==","signatures":[{"sig":"MEUCIHd2jcRaP6KpsTt5NZFG1lisaQom1yEXCsrYABxoBpfaAiEA9jqexKCwAMyhdUPgretcBk3at4GISDktT+twOYslQ9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4373716},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.7_1764184144582_0.6475206823171649","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"react-visual-feedback","version":"1.4.8","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.8","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"c136fd2a97d21605d4f069cddf8fddfbe8f32a71","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.8.tgz","fileCount":9,"integrity":"sha512-+Fp96kSElXUacVIA7F3/tBjvnc8f3uemjp++0DeMwsYOPkWWbc7Kt/Sful/bksN3wT88wsJ4EZihZ61X2zq6RA==","signatures":[{"sig":"MEUCIQDWe1/Dyly8HD60J9PuA3wtqrmKHPV7ikQe1sJ/nxe4YQIgLGikn6Mqh4Jf/m2yU7yeTtFw3CezDgysFcfh6Wvak7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4375391},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"464f99281b924c2a8ab94849dcabd6aa5faec355","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.8_1764185509305_0.7381831292574095","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"react-visual-feedback","version":"1.4.9","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@1.4.9","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"b9f0a8c65ec58d26764dc37f5acbf10148853ac3","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-1.4.9.tgz","fileCount":9,"integrity":"sha512-RXC5h1WaEyzwQSsb+J0PjIuazwm/oTU0Gz/dEBQUumzuN25GY+BUuvTBmyGHj3ytuGEp7ohLeM45wYiiPeibYw==","signatures":[{"sig":"MEUCIAznMnrD1T16zgjiWvddqTDSyUZ4vIb7A3JYqoT/pUhjAiEAm1km0QRZkrb8wOct7tU1hdR+5aozQVvVO8H6sMg0iKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4424210},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","gitHead":"43560c12f846af4e7d0935923caa853fbf2888ed","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, and professional dashboard","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_1.4.9_1764232126565_0.0038394350014570033","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"react-visual-feedback","version":"2.2.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"854eabfd93f1f227c894893e60b1b8c8e2e24ee0","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.0.tgz","fileCount":19,"integrity":"sha512-ff383lagoGl1nNLJ7afMTAo/RMp4baU6emxzJLSI0DFkQl2DVO+EuSheUdpg3NJ0WNR36nWHAOemD5k7U3WJ9A==","signatures":[{"sig":"MEQCIBlopDu8svZcoZZPWOrkZJJg6wC/NsPFsXflpT7k+vYVAiA8+kYH+ljWeT+HG+ON8uUuGoJ84HfcEylWsJ5sqXPSXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3836924},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"c3fddd0e8344e21308e0aa403f445e02e48174eb","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.0_1764590620623_0.7204261650258346","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"react-visual-feedback","version":"2.2.1","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.1","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"2a49635d66512dc69cc834c26420440e4b7b6f18","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.1.tgz","fileCount":19,"integrity":"sha512-ZjSPtwpi7dLgL+gqhIpsUtLqLVkoK5nbVoAI0F1YK7jRrfOv8A8KhCvABhbFzJtihtkIoShAhRPJXc7TIYd2TA==","signatures":[{"sig":"MEUCIQDFEB4fiq4uTsWxx7/9C5hLgVM2I7ZXEKk6EJjq/r9mJQIgbmfYOGvibpQhUnmm51xaV/mkNPD7L1ILjmmCAUipvaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3837314},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"fbfde13944e8caa06d09bbfd352a8893c57e103d","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.1_1764590963355_0.6104645687179111","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"react-visual-feedback","version":"2.2.2","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.2","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"06817a2c6a17947bc3d3e01deede8897137b1bc5","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.2.tgz","fileCount":19,"integrity":"sha512-Xec790uu6QeEGgxBJosPzoDghVgjoQ25aZFOJOKAZ+zdspqM99czxZ4THcJQBrx7wH7SHv9RBpOMOv/LYUk28Q==","signatures":[{"sig":"MEUCIQDrJjbGRrgYj/k3PHolpSTjfEF3nXDSDeScApanSk1XwAIgFJTQj/LX/DlwUgriJHLpIi0vKO7VM69Sk7DzXD3J8/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3837314},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"07c70fb6bb19fe8552be19d4555ec14d79160a77","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.2_1764591229761_0.6975243514294105","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"react-visual-feedback","version":"2.2.3","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.3","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"81816e105eba0b66d4fc094e00b815a256cc512e","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.3.tgz","fileCount":19,"integrity":"sha512-sijCuL7kUdGrkpRiIDWEmZzmc5WZ94MVVZWzp3GsRCpAvdEfZOzuebd/tlaVbHrDjYY/fEhyisGRDjj7nD1ndA==","signatures":[{"sig":"MEUCIQD1Sej6jUmey+CVyjmtsvy5QppOP67Grp8zGjCatA+PXAIgDVSHIyNnpOX650i0ba0mIEXQE37lKguDDMHhc1RlKmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3865125},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"b730492ae2364bb1a1411c3c86b7f2fd5ac37c91","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.3_1764668356425_0.07807701696661895","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"react-visual-feedback","version":"2.2.4","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.4","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://github.com/Murali1889/react-feedback-widget#readme","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"13fe3aa6323c7ca4aac879ebc5a30fc61c08af56","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.4.tgz","fileCount":19,"integrity":"sha512-ptpjgwj82f2s3iBT0lhU1XqhNU9Lfe3uROUpi/2spQL0DPPkNrQmVaLb3cPxi+/Nj0NMUC2GaT2j9oNklssLjA==","signatures":[{"sig":"MEYCIQC1VSQbRi/IFs4DtFWNIMMqFKb5Ut3RjePwEcFU0GvOygIhAPpam0mW1Zkyt+7KitG63T99h23LvpMfnOS6vQzYy69N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3865187},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"94206961c1cda043a0bf82f209fef2b8a39185c5","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.4_1764756052974_0.9008488071928538","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"react-visual-feedback","version":"2.2.5","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.5","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"f198c80f9e910a6e3f2b3f04c39a5b6febf87649","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.5.tgz","fileCount":19,"integrity":"sha512-8wANDTnRnYXhQcamUwZFSeaDF878P22uGRpT31PztPwO+SeFzpn/diBRDP5BSbYChrFwYM1vuX89LZew48BP3A==","signatures":[{"sig":"MEUCIQCDdFsaKy12xbCsChc5SDNmyydpcly4ejZxlUX6uGJz2gIgGhaoG+AZFNPgLuUf54NTVpLaeH+cMcHnzfQscJ96bBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3865248},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.0.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"22.9.0","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.5_1764756160877_0.9857588888780358","host":"s3://npm-registry-packages-npm-production"}},"2.2.6":{"name":"react-visual-feedback","version":"2.2.6","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.6","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"7158381b1b3272663f55eca338c19dde3934d968","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.6.tgz","fileCount":17,"integrity":"sha512-Aa+3q8Agal8TRV/wZ/tnxPNZDI2ATkFXjLGDCB7n+b8C2bla4KjgZK3XvuO/pF/In04QBJtS0lS+cKb+1rhMnw==","signatures":[{"sig":"MEUCIQDGLRVRU3XvzEs1/hkjIRZFuF+evmiF8cwMnjE5R7vqHQIgc4z2J0OSJJ1Iyexx5NuXeTEZjPmSzlyYCs2p3EVdv90=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4039388},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.6_1774940869327_0.45153966386329225","host":"s3://npm-registry-packages-npm-production"}},"2.2.7":{"name":"react-visual-feedback","version":"2.2.7","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.7","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"e9ed8087c1a290592808af9de20cfc2c525de47b","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.7.tgz","fileCount":17,"integrity":"sha512-0YydkQmhzrc1NXOpFh3TmAhoQLb/arSgMTxha4EXxx6id0KM/CWDWZ/px10eje6TMXU2uH+ye35FWwqGU0skeg==","signatures":[{"sig":"MEYCIQCquk9xrP7rKosx6NwfHyD/8jor1J7wpxcaQOQVGaoPtwIhAJOM7HxElvad/F/FI96v4PN0bd0FID05xgTjur+kYV8N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4050284},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.7_1774941941669_0.5883948947726954","host":"s3://npm-registry-packages-npm-production"}},"2.2.8":{"name":"react-visual-feedback","version":"2.2.8","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.8","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"c85f0273b804039689141c07e76c3d8abd29d2b2","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.8.tgz","fileCount":17,"integrity":"sha512-2MZNEp6I1U/ycXhFtZAkFRG24PbcGCQe1s2PKWcJh/PH2vXyxT6pu0VE9mha73oG2aIdp5CNn//FSsL0JKa/RQ==","signatures":[{"sig":"MEUCICVffXikkiyJbwG5XIlTsSvNO/X/x81s8nEk554Ww+E/AiEAqOwWwXkfM19EyM52uO0ItLiboYLtjBkm1iNgvrOu3EE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4058838},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.8_1774942486462_0.6081688658338213","host":"s3://npm-registry-packages-npm-production"}},"2.2.9":{"name":"react-visual-feedback","version":"2.2.9","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.9","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"2f3d22d3b7d91f727c0793e95ec12f225bf78b2e","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.9.tgz","fileCount":17,"integrity":"sha512-4CxGYxdUZowKAoOySL4VT+N9fdNvASH98rMIadsiwcahzPoFaYJvoYI6NeNFJH/SsR6OS2Y3zOG7bRjrmVixMA==","signatures":[{"sig":"MEUCIEt4/BujvnMoa2EQqCOJCmD635Ya9QtlbjgOOxTALS0AAiEApqHz7rgK/fKLyxIoc0q0XFmEzCK48w+vn3ZrIqGGgkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4059396},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.9_1774946568086_0.9867503906218782","host":"s3://npm-registry-packages-npm-production"}},"2.2.10":{"name":"react-visual-feedback","version":"2.2.10","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.10","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"612e416bea58bda592690e85aafa0d98859b50e6","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.10.tgz","fileCount":17,"integrity":"sha512-oebeoZfvPZgUyVbbPjCxAKJBx9wDQl+Hma/J6G8t6JXR03g0oGOOpekZKq69Po7bsgqOwvVLuSdNPxydW4LA3Q==","signatures":[{"sig":"MEUCIDMovGhtXob8oMYHmlgg9vxzTuYc7luFT6p/LvqO0MFGAiEAu9l9SKBrYIVPq6t2B5LUlso6AYiP457MxGwNUP6bWY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4060916},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.10_1774948051861_0.7284035441180041","host":"s3://npm-registry-packages-npm-production"}},"2.2.11":{"name":"react-visual-feedback","version":"2.2.11","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.11","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"0793eec98b2559a74aabba85b652cc7be6a467f7","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.11.tgz","fileCount":17,"integrity":"sha512-FlFeYOZSjuwb61zrKbky2ibZYFonTy/5HEB3m2vnDhuZyVnY8uO+4qyl+kl4ypMMpbC80PRBJtdGg8vULaYxnQ==","signatures":[{"sig":"MEUCIAdV69RpGxTN50/YLiGAHYy/IfTDxehQQ+BjN/I6TgV/AiEAv88wuzDc4om+9f7r3PvWmprzXf//CvN9BLRd8gSvxlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4066043},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"6dcdf22d55e4bce43b6df312eae9c27958e56ba4","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.11_1775454626683_0.9672233447283807","host":"s3://npm-registry-packages-npm-production"}},"2.2.12":{"name":"react-visual-feedback","version":"2.2.12","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.12","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"b59c4ce29b93a0ccb26bc7d5522f1afa81bd3a0c","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.12.tgz","fileCount":17,"integrity":"sha512-nJbPzM/7SpntsraGPAo4NKdSwjyb0PnTK4Lx/eqXmTbWatsTPQ3OtvqFSXgkpNIie0nagh1mSl+EKGa7zRkFHQ==","signatures":[{"sig":"MEUCIH5GTlxsKsJvvt8h+y6UKTu04tvgP46eNVqF9MSmCTFLAiEApiI8yqn39SkQjymRBYfgKoqOxQxmosE/L12Gy3FkWd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4092780},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"b705c74cb1f63a9889ed6651e41ec9d1d9b58af9","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.12_1776269142411_0.2981295558441568","host":"s3://npm-registry-packages-npm-production"}},"2.2.13":{"name":"react-visual-feedback","version":"2.2.13","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.13","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"d7c0355025a064944a4af48c309cbe5d0a49733e","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.13.tgz","fileCount":17,"integrity":"sha512-RKJ8EPkAgtwS1iZ/e9SCBWFEZI2ftVCqfZv15VieZkpefvinuHjKCBaqztg5rNhl2mU3NPZmfVt65IRujJqrbA==","signatures":[{"sig":"MEYCIQDToW9IiQrj3bGlaFp+7qbwQRN4JSGDQplDva6QnKUFbQIhAOWMdesAZ3sTnmu/n34ca+s/D1D8HEIh/FFmWw8B2Q3X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4098024},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"b705c74cb1f63a9889ed6651e41ec9d1d9b58af9","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.13_1776269576481_0.5781974364180318","host":"s3://npm-registry-packages-npm-production"}},"2.2.14":{"name":"react-visual-feedback","version":"2.2.14","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.2.14","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"dist":{"shasum":"3d366fee24ad442ed4c3020811c17ee609051033","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.2.14.tgz","fileCount":17,"integrity":"sha512-Cstyymtm4+pahgwRKAmJ5JTANzfChshivPILYlPys5dcJhExGmUObiK7CA2L0rYhtLdo6wE8XZ8BBY9Osfzg/A==","signatures":[{"sig":"MEYCIQCihsk7N2SUvtdwqr9r9y6zBp7roOqSk1N3rQRB3HFhLQIhAI3y3XkLFRJ+0dhfWNwbxBNZUQO3mE7OUgZ+aTYpIfSR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4093206},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.js"},"./server":{"import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"}},"gitHead":"d3028b3948fa18dfba6739b1fb699982b2da4aea","scripts":{"build":"rollup -c"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"11.11.0","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"25.8.1","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rollup":"^4.9.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.2.14_1776269977502_0.08104998169589406","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"react-visual-feedback","version":"2.3.0","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.0","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"c6223b3723e3d45cb089ad6b9137c072689320d4","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.0.tgz","fileCount":83,"integrity":"sha512-lCl8jrRh7hnQPBsNRgQKJzPP5lxKbrdxqtEI4JOnVTDboH2y3WtAKNjNCVx59Kt8K4cRG3QU2VecbO7htjLM8Q==","signatures":[{"sig":"MEQCIEkeTu/qiUCMGCaslpqSjwI5pggeTmkqqG2/H2L7H7EKAiBqNr73OvaRcuGqfbj7F3dcrb0wIYWdhRPQSqrT1deTlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8780005},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b541137653f4c485dd212d8dc0353543456ddd2c","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.0_1781790045472_0.7404656431839851","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"react-visual-feedback","version":"2.3.1","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.1","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"6dd01f9195b52d3bec455f004e6ade383e4e6636","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.1.tgz","fileCount":83,"integrity":"sha512-W4PwFpmi+PiA5Ag4LyJ4l06j3uOFXjICWeGK0ODe5YFb3u4YjNAb90G4NV2JLbtNjkLbXxsHZfl4140Ckh0Y4Q==","signatures":[{"sig":"MEYCIQDw0UaK4EVmyWOqhrR2DoFYb5ErTYI69AxoQxRtwl5AeQIhAPzs4Hwo7nIL6Y//hROlS4GATh2f52npSW8hSNPvezaa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8788813},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"7cc0ecd738ea1596a1d57ba303d74058ee620bff","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.1_1781790794749_0.6977802446369532","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"react-visual-feedback","version":"2.3.2","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.2","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"3a72530bd59e205d8b8430ce42a0e9e61de016f6","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.2.tgz","fileCount":83,"integrity":"sha512-CRNOBmB5w7u77QVl0ieHuqjtnxVzncxOO/6POC9ChHkqY9y0rRzccPWYyW1RC3QrDegUBhQq4gUhFS8+u1wwcA==","signatures":[{"sig":"MEYCIQD4Q9J4JASnXPsx8mZxkIq8PqFyVq9U9SbLsMf//0ijWgIhAJRTWFdKv8rq1eFvQGaxg4ccW8hCYcr+RrrZ/OPt5Fy+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8790171},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"5cd7865cdb62df0cfad7dee3b92f84fd7502ef25","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.2_1781792491210_0.5695180512290952","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"react-visual-feedback","version":"2.3.3","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.3","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"3684a8ff0430ddb598d16b5aae8534b513879345","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.3.tgz","fileCount":83,"integrity":"sha512-etbPrRE5LviiHDTlK6V06aGPY+sj35TEST1z3Tni2qi57EkOL4BNWiHmpbozzcdkPhOE13Sl0qm59JsgaFW2vQ==","signatures":[{"sig":"MEUCIQC7r6avxkLr+pbyt5hfqWkbbTStWHPHRl9nCyIvq49taAIgadZZKHwjoBfMLf4J3o1sodvSJK3ZZlQseZq31xxbqj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8848667},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.3_1781793434576_0.6559966781450912","host":"s3://npm-registry-packages-npm-production"}},"2.3.4":{"name":"react-visual-feedback","version":"2.3.4","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.4","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"89a59fb7a4744f1ab41f99736aed75284c9aa51d","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.4.tgz","fileCount":83,"integrity":"sha512-two9oxDV/FtSQSllS+iYogoCU/4akMw4/+I6Wzj60Z8uoX47z95pAiuKrf1NiutYbnc/oS5FFCYQ/zUMouB+nQ==","signatures":[{"sig":"MEYCIQD4qWMpSA5K0wy/Yvpz5dzzKe/vcLTt9EnsEirkrKi/BQIhAKf21Ft8rnmKh2/lRpr1OvGj51Lgh7KpnXaVICaYRdRW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8931831},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.4_1781800443492_0.31968315611580844","host":"s3://npm-registry-packages-npm-production"}},"2.3.5":{"name":"react-visual-feedback","version":"2.3.5","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.5","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"a9e1e430ff1dafc56a700fc03a34fe573d3bc245","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.5.tgz","fileCount":83,"integrity":"sha512-FMi1weUdUtPm3tE8y3BMisx33P4y5loU6no+5WVm+tEW+64eeqKrwThc0oEUTra6mM/dOtuFD0Uh95voPs/dSQ==","signatures":[{"sig":"MEUCIG0fvQNJCc455p08eN7dZ8xhPXpaFMSqocDJ8IhP1V41AiEAv/Xzc2WK5JcOiIX5JYWsgqFio584ddqMFS+rHOdq+8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9046975},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.5_1781801835750_0.6012407572358001","host":"s3://npm-registry-packages-npm-production"}},"2.3.6":{"name":"react-visual-feedback","version":"2.3.6","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.6","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"5e77bd06af3f7ad10e8eabc2e3dbc359f0cc6369","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.6.tgz","fileCount":83,"integrity":"sha512-SrZmRBab+kakfXGy+VhT4FXpXjQ+TEVIT3+FZIlkP2B1VYhUDGo9UTKfm2CNviCHkunljsEA8NibEycBWfOmHg==","signatures":[{"sig":"MEUCIHSA3hyLVMx9n6X8/wKCZ9ktGbGScLHVZRMTaSzjpPVHAiEAh/gAwz9cbCKdoR1CBEcAgVVzrnwCuaKmVIbSzXF/Ufw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9066339},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.6_1781803700054_0.4252194278309287","host":"s3://npm-registry-packages-npm-production"}},"2.3.7":{"name":"react-visual-feedback","version":"2.3.7","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.7","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"f060c9e6c82ef3abdac4f466dd043a628e589c03","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.7.tgz","fileCount":83,"integrity":"sha512-0IOItc/CWa1fgeZDfeJZMm2N7m9C3r5yVhl1QQ1FWDsvXWkhARW9SjWvK65FdadlcuaWdCG0JYhU7UK3MZaQOg==","signatures":[{"sig":"MEUCID3dwOgxx71xBFO2Lefav7pMRHzlArxMw1GhIdeN5VZYAiEA07PsP/PVucVOxroBxmBk1zk74ng0UCIdf0pmbI9UH8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9082749},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.7_1781804379080_0.5582545681335065","host":"s3://npm-registry-packages-npm-production"}},"2.3.8":{"name":"react-visual-feedback","version":"2.3.8","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","_id":"react-visual-feedback@2.3.8","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"homepage":"https://react-library-demo-rosy.vercel.app/","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"dist":{"shasum":"5eec6588f41662cc5676dc7638cdd1524d565607","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.8.tgz","fileCount":83,"integrity":"sha512-1hxxbojARmZ2Dio78B4YzKQ/FufSPWrBjKaN2OP3pp4h3NVLVTpsXDtzwz2UEN7VHqgE9OGLB7Yu7qZ+v4Lhzw==","signatures":[{"sig":"MEQCIC+rtq5C+h9XU/ie0UBIzkNKGbP/4yQM7vhBJnYEpAEuAiA3HL6ZYnqYLsgLEzhTrle9GMGvgRRx8oUHJpMA5bMuXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9083211},"main":"dist/index.js","type":"module","module":"dist/index.esm.js","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"}},"gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","scripts":{"test":"vitest run","build":"rollup -c","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build","build:check-size":"node scripts/check-bundle-size.js"},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"repository":{"url":"git+https://github.com/Murali1889/react-feedback-widget.git","type":"git"},"_npmVersion":"10.8.2","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"jszip":"^3.10.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","lucide-react":"^0.263.1","source-map-js":"^1.2.1","@clack/prompts":"^1.5.1","modern-screenshot":"^4.6.7"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^24.1.3","react":"^18.2.0","rollup":"^4.9.0","vitest":"^1.6.1","axe-core":"^4.12.1","jest-axe":"^9.0.0","gzip-size":"^7.0.0","react-dom":"^18.2.0","@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","styled-components":"^6.1.19","@vitest/web-worker":"^1.6.1","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-terser":"^0.4.4","@testing-library/react":"^14.3.1","@rollup/plugin-commonjs":"^25.0.7","@testing-library/jest-dom":"^6.9.1","@rollup/plugin-node-resolve":"^15.2.3","@testing-library/user-event":"^14.6.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-visual-feedback_2.3.8_1781804994172_0.7460128791563052","host":"s3://npm-registry-packages-npm-production"}},"2.3.9":{"name":"react-visual-feedback","version":"2.3.9","description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","main":"dist/index.js","module":"dist/index.esm.js","type":"module","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"},"./lib":{"types":"./dist/types.d.ts","import":"./dist/lib/index.esm.js","require":"./dist/lib/index.js"},"./ui":{"types":"./dist/types.d.ts","import":"./dist/ui/index.esm.js","require":"./dist/ui/index.js"},"./dashboard":{"types":"./dist/types.d.ts","import":"./dist/dashboard/index.esm.js","require":"./dist/dashboard/index.js"},"./capture":{"types":"./dist/types.d.ts","import":"./dist/capture/index.esm.js","require":"./dist/capture/index.js"},"./capture/core":{"types":"./dist/types.d.ts","import":"./dist/capture/core.esm.js","require":"./dist/capture/core.js"},"./capture/worker":{"import":"./dist/capture/worker.js","require":"./dist/capture/worker.js"},"./server":{"types":"./dist/types.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./server/jira":{"import":"./dist/server/jira.js","require":"./dist/server/jira.js"},"./server/sheets":{"import":"./dist/server/sheets.js","require":"./dist/server/sheets.js"},"./server/github":{"import":"./dist/server/github.js","require":"./dist/server/github.js"},"./server/github-action":{"import":"./dist/server/github-action.js","require":"./dist/server/github-action.js"},"./server/linear":{"import":"./dist/server/linear.js","require":"./dist/server/linear.js"},"./server/notion":{"import":"./dist/server/notion.js","require":"./dist/server/notion.js"},"./server/supabase":{"import":"./dist/server/supabase.js","require":"./dist/server/supabase.js"},"./server/webhook":{"import":"./dist/server/webhook.js","require":"./dist/server/webhook.js"},"./server/upload-url":{"import":"./dist/server/upload-url.js","require":"./dist/server/upload-url.js"},"./integrations":{"import":"./dist/integrations/index.js","require":"./dist/integrations/index.js"},"./destinations":{"types":"./dist/types.d.ts","import":"./dist/destinations/index.esm.js","require":"./dist/destinations/index.js"},"./config":{"types":"./dist/types.d.ts","import":"./dist/config.esm.js","require":"./dist/config.js"}},"bin":{"rvf":"bin/rvf.mjs","react-visual-feedback":"bin/rvf.mjs"},"scripts":{"build":"rollup -c","build:check-size":"node scripts/check-bundle-size.js","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm test && npm run build"},"keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","homepage":"https://react-library-demo-rosy.vercel.app/","repository":{"type":"git","url":"git+https://github.com/Murali1889/react-feedback-widget.git"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0","styled-components":"^5.0.0 || ^6.0.0"},"dependencies":{"@clack/prompts":"^1.5.1","file-saver":"^2.0.5","html2canvas":"^1.4.1","jszip":"^3.10.1","lucide-react":"^0.263.1","modern-screenshot":"^4.6.7","source-map-js":"^1.2.1"},"devDependencies":{"@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","@babel/preset-react":"^7.22.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^14.3.1","@testing-library/user-event":"^14.6.1","@vitest/web-worker":"^1.6.1","axe-core":"^4.12.1","gzip-size":"^7.0.0","jest-axe":"^9.0.0","jsdom":"^24.1.3","react":"^18.2.0","react-dom":"^18.2.0","rollup":"^4.9.0","rollup-plugin-peer-deps-external":"^2.2.4","styled-components":"^6.1.19","vitest":"^1.6.1"},"_id":"react-visual-feedback@2.3.9","gitHead":"b3ff31bee7080dc0ed245bd43da5aa795d516ccf","bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-fnP75qlEmkbNWXFXU4gGL5QxwDrDMWb7xkm0mc8IqkZsJHAeSBhxOBrn81jMU+WW6NiHfEHYqEy8mOgBjc+FNQ==","shasum":"149339728567f009581cbb97bd81b72fac6b5897","tarball":"https://registry.npmjs.org/react-visual-feedback/-/react-visual-feedback-2.3.9.tgz","fileCount":83,"unpackedSize":9078746,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD5EQU6U+7hBzNqXtO3YRbTlQD1FLjSvMn6cVQ1UOnx0QIgf/ttQzmyVtDWn/hak0j3FYnxAx5c980v0u+eiBxKZUk="}]},"_npmUser":{"name":"murali_1889","email":"murali.g@hyperverge.co"},"directories":{},"maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-visual-feedback_2.3.9_1781822734202_0.42038098036015037"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-22T08:06:16.940Z","modified":"2026-06-18T22:45:34.521Z","1.0.0":"2025-10-22T08:06:17.207Z","1.1.0":"2025-10-22T09:39:40.712Z","1.1.1":"2025-10-22T09:46:24.775Z","1.2.0":"2025-10-22T17:28:31.953Z","1.2.1":"2025-11-02T23:47:56.230Z","1.3.0":"2025-11-04T01:06:37.142Z","1.3.1":"2025-11-04T01:12:24.776Z","1.3.2":"2025-11-06T17:11:47.266Z","1.3.3":"2025-11-06T17:15:29.068Z","1.3.4":"2025-11-07T09:43:38.454Z","1.3.5":"2025-11-07T09:58:27.800Z","1.3.6":"2025-11-07T10:09:24.290Z","1.3.7":"2025-11-07T10:17:23.295Z","1.4.0":"2025-11-26T17:40:38.516Z","1.4.2":"2025-11-26T18:31:04.443Z","1.4.3":"2025-11-26T18:31:47.283Z","1.4.4":"2025-11-26T18:45:40.900Z","1.4.5":"2025-11-26T18:46:50.228Z","1.4.6":"2025-11-26T18:53:30.898Z","1.4.7":"2025-11-26T19:09:04.833Z","1.4.8":"2025-11-26T19:31:49.541Z","1.4.9":"2025-11-27T08:28:46.784Z","2.2.0":"2025-12-01T12:03:40.832Z","2.2.1":"2025-12-01T12:09:23.628Z","2.2.2":"2025-12-01T12:13:50.006Z","2.2.3":"2025-12-02T09:39:16.711Z","2.2.4":"2025-12-03T10:00:53.221Z","2.2.5":"2025-12-03T10:02:41.125Z","2.2.6":"2026-03-31T07:07:49.564Z","2.2.7":"2026-03-31T07:25:41.866Z","2.2.8":"2026-03-31T07:34:46.653Z","2.2.9":"2026-03-31T08:42:48.319Z","2.2.10":"2026-03-31T09:07:32.098Z","2.2.11":"2026-04-06T05:50:26.887Z","2.2.12":"2026-04-15T16:05:42.594Z","2.2.13":"2026-04-15T16:12:56.703Z","2.2.14":"2026-04-15T16:19:37.728Z","2.3.0":"2026-06-18T13:40:45.665Z","2.3.1":"2026-06-18T13:53:14.934Z","2.3.2":"2026-06-18T14:21:31.430Z","2.3.3":"2026-06-18T14:37:14.813Z","2.3.4":"2026-06-18T16:34:03.852Z","2.3.5":"2026-06-18T16:57:15.950Z","2.3.6":"2026-06-18T17:28:20.264Z","2.3.7":"2026-06-18T17:39:39.286Z","2.3.8":"2026-06-18T17:49:54.409Z","2.3.9":"2026-06-18T22:45:34.404Z"},"bugs":{"url":"https://github.com/Murali1889/react-feedback-widget/issues"},"author":{"name":"Murali","email":"murali.g@hyperverge.co"},"license":"MIT","homepage":"https://react-library-demo-rosy.vercel.app/","keywords":["react","feedback","widget","screenshot","bug-report","user-feedback","dashboard","feedback-management","status-tracking","issue-tracker","jira","jira-integration","google-sheets","zapier","screen-recording"],"repository":{"type":"git","url":"git+https://github.com/Murali1889/react-feedback-widget.git"},"description":"A visual feedback widget for React applications with element selection, screenshot capture, professional dashboard, and Jira/Google Sheets integrations","maintainers":[{"name":"murali_1889","email":"murali.g@hyperverge.co"}],"readme":"# react-visual-feedback\n\n**[Live demo](https://react-library-demo-rosy.vercel.app/)** · [Quickstart](./docs/QUICKSTART.md) · [Integration Guide](./docs/INTEGRATION.md) · [AI Agent Guide](./AGENTS.md)\n\nDrop-in React widget. Press `Alt+A`, click on a broken element, type what's wrong, hit send — a fully-contexted bug report (screenshot, screen-recording, voice memo, console/network/storage traces, React component state, source-mapped `file:line`) lands in GitHub Issues / Linear / Slack / Discord / Notion / HubSpot / Sheets / Supabase / Jira / your webhook. The browser never holds a private credential.\n\n---\n\n## ⚡ Integrate in 3 minutes — one command\n\n```bash\nnpx rvf init --auth github\n```\n\nThat single command:\n1. Detects your framework — Next.js (App / Pages Router), Vite, Express\n2. Writes `feedback.config.ts`\n3. Writes the catch-all API route (`app/api/feedback/[...rest]/route.ts` on Next App Router)\n4. Opens GitHub's fine-grained PAT page **with the right scope pre-selected**, you click \"Generate\"\n5. Writes `GITHUB_TOKEN` + `GITHUB_REPO` to `.env.local`\n\nThen add **one line** to your root layout — paste the snippet the CLI prints:\n\n```tsx\n// app/layout.tsx\nimport feedbackConfig from './feedback.config'\nimport { FeedbackProvider } from 'react-visual-feedback'\n\nexport default function RootLayout({ children }) {\n  return (\n    <html>\n      <body>\n        <FeedbackProvider {...feedbackConfig}>{children}</FeedbackProvider>\n      </body>\n    </html>\n  )\n}\n```\n\nRestart your dev server. Press **`Alt+A`** to file your first feedback. Done.\n\n> Swap `github` for any other destination — they all use the same `npx rvf init --auth <name>` shape. The full destination matrix is below.\n\n---\n\n## All destinations — copy a row, you're done\n\n| Destination | One-line CLI | Env vars the CLI writes | Setup time | Auto-handles |\n|---|---|---|---|---|\n| **local** (browser) | `npx rvf init --destinations=local` | *(none — uses localStorage)* | 30s | nothing — works offline |\n| **github** Issues | `npx rvf init --auth github` | `GITHUB_TOKEN`, `GITHUB_REPO` | ~3 min | opens prefilled fine-grained PAT page, scoped to `Issues: write` on the picked repo |\n| **linear** | `npx rvf init --auth linear` | `LINEAR_API_KEY`, `LINEAR_TEAM_ID` | ~2.5 min | deep-links `/settings/api`, paste key, picks the team automatically |\n| **slack** channel | `npx rvf init --auth slack` | `SLACK_WEBHOOK_URL` | ~3 min | opens app-create page with a prefilled manifest (incoming-webhook scope) |\n| **discord** channel | `npx rvf init --auth discord` | `DISCORD_WEBHOOK_URL` | ~3 min | paste webhook URL — full multipart binary upload (screenshot + video + audio attached inline) |\n| **notion** database | `npx rvf init --auth notion` | `NOTION_TOKEN`, `NOTION_DB_ID` | ~4 min | active-polls `/v1/search` until you share a DB with the integration |\n| **hubspot** tickets | `npx rvf init --auth hubspot` | `HUBSPOT_TOKEN`, `HUBSPOT_PIPELINE`, `HUBSPOT_STAGE` | ~4 min | auto-fetches your pipelines + stages, picks if there's only one |\n| **sheets** (Google) | `npx rvf init --auth sheets` | `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_OAUTH_REFRESH_TOKEN`, `GOOGLE_SPREADSHEET_ID` | ~3.5 min | OAuth loopback + PKCE; auto-creates a new spreadsheet via Drive API |\n| **supabase** table | `npx rvf init --auth supabase` | `SUPABASE_URL`, `SUPABASE_SERVICE_ROLE_KEY` | ~3 min | lists your projects via Management API, auto-fetches the service-role key. **Run the `CREATE TABLE` SQL in [docs/SUPABASE_SETUP.md](./docs/SUPABASE_SETUP.md) once.** |\n| **jira** Cloud | `npx rvf init --auth jira` | `JIRA_DOMAIN`, `JIRA_EMAIL`, `JIRA_API_TOKEN`, `JIRA_PROJECT_KEY` | ~3 min | deep-links `id.atlassian.com/.../api-tokens`, sniffs your email from `git config`, validates against `/myself` + `/project/{KEY}` |\n\nOr pick interactively: `npx rvf` (no args).\n\nYou can also chain multiple destinations into one config — the CLI's interactive `init` lets you select with space, or non-interactively:\n\n```bash\nnpx rvf init --destinations=local,github,slack,supabase --yes\n# Then run `npx rvf auth <name>` for each one to fill env vars.\n```\n\nWhen you submit feedback, the widget fans out to **every** destination in parallel. The toast shows per-destination status chips (✓ or ⚠).\n\n---\n\n## 🤖 For AI agents\n\nVerbatim instructions an LLM coding assistant can follow. Pick the destination from the table above, swap it into Step 1.\n\n```text\nTask: integrate react-visual-feedback into this React project.\n\nStep 1. Run from the project root (pick a destination — github / linear /\n        slack / discord / notion / hubspot / sheets / supabase / jira):\n\n          npx rvf init --auth <destination> --yes\n\n        This single command auto-detects the framework (Next App Router,\n        Pages Router, Vite, Express), writes feedback.config.ts, writes\n        the catch-all API route, opens the provider's token page in the\n        browser, then writes the env vars to .env.local.\n\nStep 2. Open the file that wraps the app:\n          · Next App Router → app/layout.tsx\n          · Next Pages Router → src/pages/_app.tsx\n          · Vite → src/main.tsx\n          · CRA → src/App.tsx\n        Wrap children with:\n\n          import feedbackConfig from './feedback.config'\n          import { FeedbackProvider } from 'react-visual-feedback'\n          <FeedbackProvider {...feedbackConfig}>{children}</FeedbackProvider>\n\n        For Next Pages Router, also use dynamic({ ssr: false }) to skip\n        SSR — styled-components doesn't tolerate SSR without setup.\n\nStep 3. Supabase only: run the CREATE TABLE SQL in\n        docs/SUPABASE_SETUP.md (one time). Other destinations need no\n        extra setup beyond Step 1.\n\nStep 4. Tell the user to restart `npm run dev` (env-var changes don't\n        hot-reload) and press Alt+A in the browser to submit feedback.\n\nStep 5. Verify with:  npx rvf doctor\n\nPublic exports:\n  - react-visual-feedback             → FeedbackProvider, defineConfig, connect\n  - react-visual-feedback/config      → defineConfig\n  - react-visual-feedback/destinations → connect.*, local, githubIssue, …\n  - react-visual-feedback/server      → createFeedbackHandler, devSessionAuth\n\nImport rule: in feedback.config.ts, import defineConfig from\n'react-visual-feedback/config' and connect from\n'react-visual-feedback/destinations'. NOT from the root entry — the\nroot entry pulls the full UI bundle (React + html2canvas) and crashes\nNode when the catch-all API route imports the config file.\n```\n\nThe CLI is the source of truth for env-var names — never edit `.env.local` by hand. To switch destinations later, run `npx rvf auth <name>` again or `npx rvf add <name>`.\n\n---\n\n## 🚀 Or: try it with no server, no env vars\n\n```jsx\n<FeedbackProvider dashboard>{children}</FeedbackProvider>\n```\n\nFeedback lives in `localStorage`. `Alt+A` to capture, `Alt+Q` to see what's been reported. Useful for: solo demos, \"does this widget feel right\", or showing teammates.\n\nTo view the local feedback from any browser without re-mounting React,\nserve `node_modules/react-visual-feedback/dist/viewer.html` (or copy it\nto your `public/` folder). It live-reads `localStorage`, supports\nstatus changes + deletion, and needs no build / server / install.\n\n### Wiring to your own backend (`dataSource`)\n\nFor team setups, point the provider at your API:\n\n```jsx\n<FeedbackProvider\n  dashboard\n  dataSource={{\n    load:      () => fetch('/api/feedback').then(r => r.json()),\n    save:      (item) => fetch('/api/feedback', { method: 'POST', body: JSON.stringify(item) }),\n    remove:    (id) => fetch(`/api/feedback/${id}`, { method: 'DELETE' }),\n    subscribe: (cb) => { /* optional: SSE / WebSocket */ return () => {}; },\n  }}\n/>\n```\n\n`dataSource` and destinations work together — destinations fan-out at\nsubmit-time, `dataSource` keeps the dashboard's list in sync.\n\n## Wiring a single destination by hand (advanced)\n\nWhen you don't want the catch-all router and would rather mount one\ndestination handler at one path, use `withSecureDefaults` + the specific\nfactory directly:\n\n```js\n// Server (Next.js App Router: app/api/feedback/jira/route.js)\nimport {\n  withSecureDefaults,\n  createJiraHandler,\n  FeedbackAuthError,\n} from 'react-visual-feedback/server';\nimport { getServerSession } from '@/lib/auth';\n\nexport const POST = withSecureDefaults({\n  authorize: async (req) => {\n    const session = await getServerSession(req);\n    if (!session) throw new FeedbackAuthError();\n    return { userId: session.userId, projectId: session.projectId };\n  },\n})(createJiraHandler({ projectKey: 'BUG' }));\n```\n\n`withSecureDefaults` enforces origin allowlist, CSRF check, rate limit,\nyour `authorize` callback, validation, redaction of sensitive headers/keys,\nand opaque error normalization — all in a fixed order with sane defaults.\nRead the **[Production Security Checklist](docs/production-security-checklist.md)** before deploying.\n\nExamples: [Next.js (secure session + anonymous capture)](example-nextjs/), [minimal Express](example-express/).\n\n## UI primitives (v2.3+)\n\nPhase B1 ships a shared design-token system and ten primitives you can\nuse to build dashboards on top of the captured feedback data without\nrelying on the bundled overlay UI. Single import:\n\n```js\nimport {\n  Button, IconButton, Field, Select, Chip, Surface, Stack,\n  Tooltip, Spinner, Avatar, AvatarStack,\n} from 'react-visual-feedback/ui';\n```\n\nWrap your app in `<UIThemeProvider mode=\"light\">` (or `mode=\"dark\"`)\nfrom `react-visual-feedback/ui` to apply the warm-stone / warm-charcoal\npalette. The widget's existing dashboard, modal, and dots automatically\ninherit the same palette via the legacy `theme.js` keys, so no other\ncode change is required.\n\n## Command Center (v2.3+)\n\nPhase B2 ships the Command Center: a wider three-pane workspace\n(Triage list · Evidence Stack · Workflow Panel) that replaces the\ninternals of `FeedbackDashboard`. Existing consumers don't need any\ncode change — `<FeedbackProvider dashboard={true}>` continues to\nwork and now opens the Command Center.\n\nDirect import:\n\n```js\nimport { FeedbackCommandCenter } from 'react-visual-feedback/dashboard';\n```\n\nThe Command Center accepts the same prop shape as\n`FeedbackDashboard` plus optional Phase A fields:\n`onSeverityChange`, `onOwnerChange`, `onCustomerValueChange`,\n`onIntegrationRetry`, `onDelete`, and an async `dataSource={{ load,\nsave, remove, subscribe }}` for hosts that want server-driven data\ninstead of localStorage.\n\nKeyboard: `Esc` close · `/` focus search · `j` / `k` next-prev item.\n\n## Features\n\n### Feedback Collection\n- **Visual Element Selection** - Click any element with hover highlighting\n- **Screenshot Capture** - Automatic pixel-perfect screenshot with CSS rendering\n- **Screen Recording** - Record screen with audio and capture console/network logs\n- **Manual Feedback** - `Alt+A` to open form directly without selection\n- **File Attachments** - Drag & drop support for Images, Videos, PDFs, and other files\n- **Canvas Drawing** - Annotate screenshots with drawings and highlights\n- **React Component Detection** - Automatically detects React component names and source files\n- **Keyboard Shortcuts** - `Alt+Q` (Selection), `Alt+A` (Manual), `Alt+W` (Record), `Esc` (Cancel)\n\n### Session Replay\n- **Video Playback** - Watch recorded user sessions with fullscreen support\n- **Console Logs** - See console.log, errors, warnings synced with video timeline\n- **Network Requests** - Track API calls and responses\n- **Video Mode** - Fullscreen playback with synced logs panel (scrollable even when paused)\n- **Expandable Logs Panel** - Slide-out panel on the right side (customizable)\n\n### Screen Recording\n- **Draggable Indicator** - Recording overlay can be moved around the screen\n- **Audio Capture** - Record microphone and system audio (mixed)\n- **IndexedDB Storage** - Large videos stored locally to prevent quota errors\n- **Download Videos** - Export recordings as WebM files\n\n### Dashboard\n- **Professional UI** - Clean 700px slide-out panel\n- **Developer Mode** - Full technical details (source file, component stack, viewport)\n- **User Mode** - Simplified view for end users\n- **8 Status Options** - New, Open, In Progress, Under Review, On Hold, Resolved, Closed, Won't Fix\n- **Status Callbacks** - Sync with your database on status changes\n- **Search** - Search through feedback by title, description, or user\n\n### Updates Modal\n- **What's New** - Display product updates, bug fixes, and new features to users\n- **Filter Tabs** - Filter by Fixed or New Feature\n- **Smooth Animations** - Beautiful fade-in animations with staggered item entry\n- **Mobile Responsive** - Works as a centered popup on all screen sizes\n- **Dark/Light Mode** - Full theme support\n\n### Feedback Dots (In-Context Overlay)\n- **Visual Dots** - Show feedback markers directly on the page at the exact position where feedback was submitted\n- **Avatar Markers** - User profile pictures or initial fallbacks with type-colored pips\n- **Mini Card on Hover** - Rich preview card with avatar, name, time, type, and feedback preview\n- **Detail Popover on Click** - Full feedback details with component info, source file, StatusBadge, and screenshot\n- **Dot Clustering** - Nearby dots collapse into a count badge, hover to fan out\n- **Filter Toolbar** - Filter dots by type (Bug/Feature/Improvement) and status (Open/Resolved)\n- **Element Highlighting** - Hovering a dot highlights the original element with a pulsing border\n- **Smart Positioning** - Popovers auto-flip to avoid viewport edges\n- **Keyboard Navigation** - Tab through dots, Enter to open, Escape to close\n- **Responsive** - Dot positions stored as percentages (0-1) relative to the element, works across screen sizes\n- **Backend Data Support** - Pass feedback data from your API via props, auto-normalizes DB field formats\n- **Dynamic Updates** - Data arriving late (e.g., from async API calls) updates dots in real-time\n\n### Theming\n- **Light/Dark Mode** - Full theme support\n- **styled-components** - No external CSS required\n\n## Installation\n\n```bash\nnpm install react-visual-feedback\n```\n\n**Peer Dependencies:**\n```bash\nnpm install react react-dom styled-components\n```\n\n## Quick Start\n\n### Basic Usage\n\n```jsx\nimport React from 'react';\nimport { FeedbackProvider } from 'react-visual-feedback';\n\nfunction App() {\n  const handleFeedbackSubmit = async (feedbackData) => {\n    console.log('Feedback received:', feedbackData);\n    // feedbackData.attachment contains any manually uploaded file\n    await fetch('/api/feedback', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(feedbackData)\n    });\n  };\n\n  return (\n    <FeedbackProvider onSubmit={handleFeedbackSubmit}>\n      <YourApp />\n    </FeedbackProvider>\n  );\n}\n```\n\n### With Dashboard & Screen Recording\n\n```jsx\nimport React from 'react';\nimport { FeedbackProvider, useFeedback } from 'react-visual-feedback';\n\nfunction FeedbackButtons() {\n  const { isActive, setIsActive, setIsDashboardOpen, startRecording } = useFeedback();\n\n  return (\n    <div style={{ position: 'fixed', bottom: 20, right: 20, display: 'flex', gap: 10 }}>\n      <button onClick={() => setIsDashboardOpen(true)}>Dashboard</button>\n      <button onClick={startRecording}>Record Screen</button>\n      <button onClick={() => setIsActive(!isActive)}>\n        {isActive ? 'Cancel' : 'Report Issue'}\n      </button>\n    </div>\n  );\n}\n\nfunction App() {\n  const handleFeedbackSubmit = async (feedbackData) => {\n    // feedbackData contains: feedback, screenshot, video, attachment, eventLogs, elementInfo, etc.\n    await fetch('/api/feedback', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify(feedbackData)\n    });\n  };\n\n  const handleStatusChange = async ({ id, status, comment }) => {\n    await fetch(`/api/feedback/${id}/status`, {\n      method: 'PATCH',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ status, comment })\n    });\n  };\n\n  return (\n    <FeedbackProvider\n      onSubmit={handleFeedbackSubmit}\n      onStatusChange={handleStatusChange}\n      dashboard={true}\n      isDeveloper={true}\n      userName=\"John Doe\"\n      userEmail=\"john@example.com\"\n      mode=\"light\"\n      defaultOpen={false} // Set to true to open feedback form on mount\n    >\n      <YourApp />\n      <FeedbackButtons />\n    </FeedbackProvider>\n  );\n}\n```\n\n### With Feedback Dots (In-Context Overlay)\n\nShow feedback markers directly on the page at the exact positions where feedback was submitted.\n\n```jsx\nimport React, { useState, useEffect } from 'react';\nimport { FeedbackProvider } from 'react-visual-feedback';\n\nfunction App() {\n  const [feedback, setFeedback] = useState([]);\n\n  // Fetch feedback from your backend (data can arrive late)\n  useEffect(() => {\n    fetch('/api/feedback')\n      .then(res => res.json())\n      .then(data => setFeedback(data));\n  }, []);\n\n  return (\n    <FeedbackProvider\n      onSubmit={handleSubmit}\n      dashboard={true}\n      userName=\"Alice\"\n      userEmail=\"alice@example.com\"\n      userAvatar=\"https://example.com/avatar.jpg\"\n      showFeedbackDots={true}\n      feedbackDotsData={feedback}\n    >\n      <YourApp />\n    </FeedbackProvider>\n  );\n}\n```\n\n**How it works:**\n1. User presses `Alt+Q`, clicks an element, submits feedback\n2. The exact click position is captured as percentages (0-1) relative to the element\n3. User presses `Alt+D` (or `showFeedbackDots={true}`) to see dots on the page\n4. Dots appear at the exact positions with avatars, type indicators, and hover cards\n\n**Backend data format — both formats are auto-normalized:**\n\n```js\n// Widget format (camelCase)\n{ dotPosition: { relativeX: 0.43, relativeY: 0.67 }, elementInfo: { selector: \"...\" } }\n\n// DB format (snake_case) — also works\n{ dot_position_x: 0.43, dot_position_y: 0.67, elementinfo: \"{\\\"selector\\\":\\\"...\\\"}\" }\n```\n\n**Role-based visibility:**\n```jsx\n<FeedbackProvider\n  showFeedbackDots={user.role === 'developer'}\n  feedbackDotsData={user.role === 'developer' ? feedback : undefined}\n>\n```\n\n## API Reference\n\n### FeedbackProvider Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `onSubmit` | `(data) => Promise` | required | Callback when feedback is submitted |\n| `onStatusChange` | `({id, status, comment}) => void` | - | Callback when status changes |\n| `dashboard` | `boolean` | `false` | Enable dashboard feature |\n| `dashboardData` | `Array` | - | Custom data (uses localStorage if undefined) |\n| `isDeveloper` | `boolean` | `false` | Enable developer mode |\n| `isUser` | `boolean` | `true` | Enable user mode |\n| `userName` | `string` | `'Anonymous'` | User name |\n| `userEmail` | `string` | `null` | User email |\n| `userAvatar` | `string` | `null` | User profile picture URL |\n| `mode` | `'light' \\| 'dark'` | `'light'` | Theme mode |\n| `isActive` | `boolean` | - | Controlled active state |\n| `onActiveChange` | `(active) => void` | - | Callback for controlled mode |\n| `defaultOpen` | `boolean` | `false` | Open manual feedback form immediately on mount |\n| `showFeedbackDots` | `boolean` | `false` | Show/hide feedback dot markers on the page |\n| `feedbackDotsData` | `Array` | `null` | Feedback data from your backend (auto-normalizes DB formats) |\n\n### FeedbackDashboard Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `isOpen` | `boolean` | required | Control dashboard visibility |\n| `onClose` | `() => void` | required | Callback when dashboard closes |\n| `data` | `Array` | - | Feedback data (uses localStorage if undefined) |\n| `isDeveloper` | `boolean` | `false` | Enable developer mode with delete |\n| `isUser` | `boolean` | `true` | Enable user mode |\n| `onStatusChange` | `({id, status, comment}) => void` | - | Callback when status changes |\n| `mode` | `'light' \\| 'dark'` | `'light'` | Theme mode |\n| `isLoading` | `boolean` | `false` | Show loading state |\n| `onRefresh` | `() => void` | - | Callback for refresh button |\n| `title` | `string` | `'Feedback'` | Dashboard title |\n| `statuses` | `object` | `DEFAULT_STATUSES` | Status configurations (label, color, icon) |\n| `acceptableStatuses` | `string[]` | - | Array of status keys to show (e.g., `['open', 'resolved']`) |\n| `showAllStatuses` | `boolean` | `true` | Show all statuses in filter |\n| `error` | `string` | `null` | Error message to display |\n\n### useFeedback Hook\n\n```jsx\nconst {\n  isActive,           // boolean - feedback mode active\n  setIsActive,        // (active: boolean) => void\n  setIsDashboardOpen, // (open: boolean) => void\n  startRecording,     // () => void - start screen recording\n  showFeedbackDots,   // boolean - feedback dots visible\n  toggleFeedbackDots  // () => void - toggle feedback dots on/off\n} = useFeedback();\n```\n\n### SessionReplay Props (for custom implementations)\n\n```jsx\nimport { SessionReplay } from 'react-visual-feedback';\n\n<SessionReplay\n  videoSrc={videoDataUrl}      // Video source (data URL, blob URL, or http URL)\n  eventLogs={logs}             // Array of log objects with timestamp\n  mode=\"light\"                 // Theme mode\n  showLogsButton={true}        // Show/hide logs toggle button\n  logsPanelWidth=\"320px\"       // Width of logs panel\n  defaultLogsOpen={false}      // Start with logs panel open\n/>\n```\n\n### UpdatesModal Props\n\nDisplay product updates, bug fixes, and new features to your users with a beautiful modal.\n\n```jsx\nimport { UpdatesModal } from 'react-visual-feedback';\n\nconst updates = [\n  {\n    id: '1',\n    type: 'solved',           // 'solved' | 'new_feature'\n    title: 'Fixed login page performance issues',\n    description: 'Optimized the authentication flow, reducing load time by 40%',\n    date: '2024-11-30',\n    version: '2.1.0',\n    category: 'Performance'\n  },\n  {\n    id: '2',\n    type: 'new_feature',\n    title: 'Dark mode support added',\n    description: 'Full dark mode support across all components with smooth transitions',\n    date: '2024-11-28',\n    version: '2.1.0',\n    category: 'Feature'\n  }\n];\n\n<UpdatesModal\n  isOpen={showUpdates}         // Control visibility\n  onClose={() => setShowUpdates(false)}\n  updates={updates}            // Array of update objects\n  title=\"What's New\"           // Modal title (default: \"What's New\")\n  mode=\"light\"                 // Theme mode: 'light' | 'dark'\n/>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `isOpen` | `boolean` | required | Control modal visibility |\n| `onClose` | `() => void` | required | Callback when modal closes |\n| `updates` | `Update[]` | `[]` | Array of update objects |\n| `title` | `string` | `\"What's New\"` | Modal header title |\n| `mode` | `'light' \\| 'dark'` | `'light'` | Theme mode |\n\n#### Update Object Structure\n\n```typescript\ninterface Update {\n  id: string;                  // Unique identifier\n  type: 'solved' | 'new_feature';  // Update type\n  title: string;               // Update title\n  description?: string;        // Optional description\n  date?: string;               // Date string (displayed as \"Mon DD\")\n  version?: string;            // Version number (displayed as \"vX.X.X\")\n  category?: string;           // Category tag\n}\n```\n\n## Data Structures\n\n### Feedback Data (submitted via onSubmit)\n\n```typescript\ninterface FeedbackData {\n  id: string;                    // UUID\n  feedback: string;              // User's feedback text\n  type: 'bug' | 'feature' | 'improvement' | 'question' | 'other';\n  userName: string;\n  userEmail: string | null;\n  status: string;                // 'new', 'open', 'inProgress', etc.\n  timestamp: string;             // ISO 8601\n  url: string;                   // Page URL\n  userAgent: string;\n  viewport: {\n    width: number;\n    height: number;\n  };\n\n  // User\n  userAvatar?: string;           // Profile picture URL\n\n  // Dot position (for feedback dots overlay)\n  dotPosition?: {\n    relativeX: number;           // 0-1 click position within element (horizontal)\n    relativeY: number;           // 0-1 click position within element (vertical)\n  };\n\n  // Attachments\n  screenshot?: string;           // Base64 PNG data URL (Automatic)\n  video?: string;                // Base64 webm data URL (Recording)\n  attachment?: File;             // Generic file (Manual Upload)\n\n  eventLogs?: EventLog[];        // Console/network logs\n\n  // Element info (for element selection)\n  elementInfo?: {\n    tagName: string;\n    id: string;\n    className: string;\n    selector: string;\n    text: string;\n    position: { x: number; y: number; width: number; height: number };\n    styles: { backgroundColor: string; color: string; fontSize: string };\n    sourceFile?: string;         // React source file path\n    lineNumber?: number;\n    columnNumber?: number;\n    componentStack?: string[];   // React component hierarchy\n  };\n}\n\ninterface EventLog {\n  timestamp: number;             // Milliseconds from recording start\n  type: 'log' | 'warn' | 'error' | 'info' | 'network';\n  message: string;\n  data?: any;\n}\n```\n\n## Database Schema (SQL)\n\n### PostgreSQL\n\n```sql\n-- Enable UUID extension\nCREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";\n\n-- Main feedback table\nCREATE TABLE feedback (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback TEXT NOT NULL,\n    type VARCHAR(20) DEFAULT 'bug' CHECK (type IN ('bug', 'feature', 'improvement', 'question', 'other')),\n    status VARCHAR(20) DEFAULT 'new' CHECK (status IN ('new', 'open', 'inProgress', 'underReview', 'onHold', 'resolved', 'closed', 'wontFix')),\n\n    -- User info\n    user_name VARCHAR(255) DEFAULT 'Anonymous',\n    user_email VARCHAR(255),\n\n    -- Page context\n    url TEXT,\n    user_agent TEXT,\n    viewport_width INTEGER,\n    viewport_height INTEGER,\n\n    -- Timestamps\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Screenshots table (separate for large data)\nCREATE TABLE feedback_screenshots (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback_id UUID NOT NULL REFERENCES feedback(id) ON DELETE CASCADE,\n    screenshot TEXT NOT NULL,  -- Base64 encoded PNG\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Videos table (for screen recordings)\nCREATE TABLE feedback_videos (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback_id UUID NOT NULL REFERENCES feedback(id) ON DELETE CASCADE,\n    video_data TEXT,           -- Base64 encoded webm (for small videos)\n    video_url TEXT,            -- URL to cloud storage (for large videos)\n    duration_ms INTEGER,\n    file_size_bytes BIGINT,\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Generic attachments table\nCREATE TABLE feedback_attachments (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback_id UUID NOT NULL REFERENCES feedback(id) ON DELETE CASCADE,\n    file_name VARCHAR(255),\n    file_type VARCHAR(100),\n    file_size_bytes BIGINT,\n    file_data TEXT,            -- Base64 or URL\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Event logs table (console logs, network requests)\nCREATE TABLE feedback_event_logs (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback_id UUID NOT NULL REFERENCES feedback(id) ON DELETE CASCADE,\n    timestamp_ms INTEGER NOT NULL,  -- Milliseconds from recording start\n    log_type VARCHAR(20) NOT NULL CHECK (log_type IN ('log', 'warn', 'error', 'info', 'network')),\n    message TEXT NOT NULL,\n    data JSONB,                     -- Additional log data\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Element info table (for element selection feedback)\nCREATE TABLE feedback_element_info (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback_id UUID NOT NULL REFERENCES feedback(id) ON DELETE CASCADE,\n    tag_name VARCHAR(50),\n    element_id VARCHAR(255),\n    class_name TEXT,\n    css_selector TEXT,\n    inner_text TEXT,\n    position_x INTEGER,\n    position_y INTEGER,\n    width INTEGER,\n    height INTEGER,\n    background_color VARCHAR(50),\n    color VARCHAR(50),\n    font_size VARCHAR(20),\n\n    -- React component info\n    source_file TEXT,\n    line_number INTEGER,\n    column_number INTEGER,\n    component_stack TEXT[],\n\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Status history table (track status changes)\nCREATE TABLE feedback_status_history (\n    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),\n    feedback_id UUID NOT NULL REFERENCES feedback(id) ON DELETE CASCADE,\n    old_status VARCHAR(20),\n    new_status VARCHAR(20) NOT NULL,\n    comment TEXT,\n    changed_by VARCHAR(255),\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP\n);\n\n-- Indexes for performance\nCREATE INDEX idx_feedback_status ON feedback(status);\nCREATE INDEX idx_feedback_user_email ON feedback(user_email);\nCREATE INDEX idx_feedback_created_at ON feedback(created_at DESC);\nCREATE INDEX idx_feedback_type ON feedback(type);\nCREATE INDEX idx_event_logs_feedback_id ON feedback_event_logs(feedback_id);\nCREATE INDEX idx_event_logs_timestamp ON feedback_event_logs(timestamp_ms);\nCREATE INDEX idx_status_history_feedback_id ON feedback_status_history(feedback_id);\n\n-- Update timestamp trigger\nCREATE OR REPLACE FUNCTION update_updated_at_column()\nRETURNS TRIGGER AS $$\nBEGIN\n    NEW.updated_at = CURRENT_TIMESTAMP;\n    RETURN NEW;\nEND;\n$$ language 'plpgsql';\n\nCREATE TRIGGER update_feedback_updated_at\n    BEFORE UPDATE ON feedback\n    FOR EACH ROW\n    EXECUTE FUNCTION update_updated_at_column();\n```\n\n### MySQL\n\n```sql\n-- Main feedback table\nCREATE TABLE feedback (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback TEXT NOT NULL,\n    type ENUM('bug', 'feature', 'improvement', 'question', 'other') DEFAULT 'bug',\n    status ENUM('new', 'open', 'inProgress', 'underReview', 'onHold', 'resolved', 'closed', 'wontFix') DEFAULT 'new',\n\n    -- User info\n    user_name VARCHAR(255) DEFAULT 'Anonymous',\n    user_email VARCHAR(255),\n\n    -- Page context\n    url TEXT,\n    user_agent TEXT,\n    viewport_width INT,\n    viewport_height INT,\n\n    -- Timestamps\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n\n    INDEX idx_status (status),\n    INDEX idx_user_email (user_email),\n    INDEX idx_created_at (created_at DESC),\n    INDEX idx_type (type)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- Screenshots table\nCREATE TABLE feedback_screenshots (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback_id CHAR(36) NOT NULL,\n    screenshot LONGTEXT NOT NULL,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\n    FOREIGN KEY (feedback_id) REFERENCES feedback(id) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- Videos table\nCREATE TABLE feedback_videos (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback_id CHAR(36) NOT NULL,\n    video_data LONGTEXT,\n    video_url TEXT,\n    duration_ms INT,\n    file_size_bytes BIGINT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\n    FOREIGN KEY (feedback_id) REFERENCES feedback(id) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- Attachments table\nCREATE TABLE feedback_attachments (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback_id CHAR(36) NOT NULL,\n    file_name VARCHAR(255),\n    file_type VARCHAR(100),\n    file_size_bytes BIGINT,\n    file_data LONGTEXT,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\n    FOREIGN KEY (feedback_id) REFERENCES feedback(id) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- Event logs table\nCREATE TABLE feedback_event_logs (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback_id CHAR(36) NOT NULL,\n    timestamp_ms INT NOT NULL,\n    log_type ENUM('log', 'warn', 'error', 'info', 'network') NOT NULL,\n    message TEXT NOT NULL,\n    data JSON,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\n    FOREIGN KEY (feedback_id) REFERENCES feedback(id) ON DELETE CASCADE,\n    INDEX idx_feedback_id (feedback_id),\n    INDEX idx_timestamp (timestamp_ms)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- Element info table\nCREATE TABLE feedback_element_info (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback_id CHAR(36) NOT NULL,\n    tag_name VARCHAR(50),\n    element_id VARCHAR(255),\n    class_name TEXT,\n    css_selector TEXT,\n    inner_text TEXT,\n    position_x INT,\n    position_y INT,\n    width INT,\n    height INT,\n    background_color VARCHAR(50),\n    color VARCHAR(50),\n    font_size VARCHAR(20),\n    source_file TEXT,\n    line_number INT,\n    column_number INT,\n    component_stack JSON,\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\n    FOREIGN KEY (feedback_id) REFERENCES feedback(id) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n-- Status history table\nCREATE TABLE feedback_status_history (\n    id CHAR(36) PRIMARY KEY DEFAULT (UUID()),\n    feedback_id CHAR(36) NOT NULL,\n    old_status VARCHAR(20),\n    new_status VARCHAR(20) NOT NULL,\n    comment TEXT,\n    changed_by VARCHAR(255),\n    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n\n    FOREIGN KEY (feedback_id) REFERENCES feedback(id) ON DELETE CASCADE,\n    INDEX idx_feedback_id (feedback_id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n```\n\n### Example API Endpoints (Node.js/Express)\n\n```javascript\n// POST /api/feedback - Submit new feedback\napp.post('/api/feedback', async (req, res) => {\n  const { feedback, type, userName, userEmail, url, userAgent,\n          viewport, screenshot, video, attachment, eventLogs, elementInfo } = req.body;\n\n  // Start transaction\n  const client = await pool.connect();\n  try {\n    await client.query('BEGIN');\n\n    // Insert main feedback\n    const feedbackResult = await client.query(`\n      INSERT INTO feedback (feedback, type, user_name, user_email, url, user_agent, viewport_width, viewport_height)\n      VALUES ($1, $2, $3, $4, $5, $6, $7, $8)\n      RETURNING id\n    `, [feedback, type, userName, userEmail, url, userAgent, viewport?.width, viewport?.height]);\n\n    const feedbackId = feedbackResult.rows[0].id;\n\n    // Insert screenshot if exists\n    if (screenshot) {\n      await client.query(`\n        INSERT INTO feedback_screenshots (feedback_id, screenshot)\n        VALUES ($1, $2)\n      `, [feedbackId, screenshot]);\n    }\n\n    // Insert video if exists\n    if (video) {\n      await client.query(`\n        INSERT INTO feedback_videos (feedback_id, video_data)\n        VALUES ($1, $2)\n      `, [feedbackId, video]);\n    }\n    \n    // Insert manual attachment (generic file)\n    if (attachment) {\n       // Note: 'attachment' here is assumed to be pre-processed/uploaded file metadata + content\n       // In a real app, you might handle file upload separately (multipart/form-data)\n       await client.query(`\n        INSERT INTO feedback_attachments (feedback_id, file_name, file_data)\n        VALUES ($1, $2, $3)\n      `, [feedbackId, attachment.name, attachment.data]);\n    }\n\n    // Insert event logs if exist\n    if (eventLogs?.length) {\n      for (const log of eventLogs) {\n        await client.query(`\n          INSERT INTO feedback_event_logs (feedback_id, timestamp_ms, log_type, message, data)\n          VALUES ($1, $2, $3, $4, $5)\n        `, [feedbackId, log.timestamp, log.type, log.message, JSON.stringify(log.data)]);\n      }\n    }\n\n    // Insert element info if exists\n    if (elementInfo) {\n      await client.query(`\n        INSERT INTO feedback_element_info\n        (feedback_id, tag_name, element_id, class_name, css_selector, inner_text,\n         position_x, position_y, width, height, source_file, line_number, column_number, component_stack)\n        VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)\n      `, [feedbackId, elementInfo.tagName, elementInfo.id, elementInfo.className,\n          elementInfo.selector, elementInfo.text, elementInfo.position?.x, elementInfo.position?.y,\n          elementInfo.position?.width, elementInfo.position?.height, elementInfo.sourceFile,\n          elementInfo.lineNumber, elementInfo.columnNumber, elementInfo.componentStack]);\n    }\n\n    await client.query('COMMIT');\n    res.json({ success: true, id: feedbackId });\n  } catch (error) {\n    await client.query('ROLLBACK');\n    res.status(500).json({ error: error.message });\n  } finally {\n    client.release();\n  }\n});\n\n// PATCH /api/feedback/:id/status - Update status\napp.patch('/api/feedback/:id/status', async (req, res) => {\n  const { id } = req.params;\n  const { status, comment, changedBy } = req.body;\n\n  const client = await pool.connect();\n  try {\n    await client.query('BEGIN');\n\n    // Get current status\n    const current = await client.query('SELECT status FROM feedback WHERE id = $1', [id]);\n    const oldStatus = current.rows[0]?.status;\n\n    // Update status\n    await client.query('UPDATE feedback SET status = $1 WHERE id = $2', [status, id]);\n\n    // Record history\n    await client.query(`\n      INSERT INTO feedback_status_history (feedback_id, old_status, new_status, comment, changed_by)\n      VALUES ($1, $2, $3, $4, $5)\n    `, [id, oldStatus, status, comment, changedBy]);\n\n    await client.query('COMMIT');\n    res.json({ success: true });\n  } catch (error) {\n    await client.query('ROLLBACK');\n    res.status(500).json({ error: error.message });\n  } finally {\n    client.release();\n  }\n});\n```\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `Alt+Q` | Activate feedback mode (element selection) |\n| `Alt+A` | Open Manual Feedback form |\n| `Alt+W` | Start screen recording |\n| `Alt+D` | Toggle feedback dots overlay |\n| `Alt+Shift+Q` | Open dashboard |\n| `Esc` | Cancel/close |\n\n## Status System\n\n### Default Statuses\n\n| Key | Label | Color | Icon |\n|-----|-------|-------|------|\n| `new` | New | Purple (#8b5cf6) | Inbox |\n| `open` | Open | Amber (#f59e0b) | AlertCircle |\n| `inProgress` | In Progress | Blue (#3b82f6) | Play |\n| `underReview` | Under Review | Cyan (#06b6d4) | Eye |\n| `onHold` | On Hold | Gray (#6b7280) | PauseCircle |\n| `resolved` | Resolved | Green (#10b981) | CheckCircle |\n| `closed` | Closed | Slate (#64748b) | Archive |\n| `wontFix` | Won't Fix | Red (#ef4444) | Ban |\n\n### Custom Statuses\n\nYou control which statuses are available. Pass your own `statuses` object and optionally `acceptableStatuses` array to control what's shown:\n\n```jsx\nimport { FeedbackDashboard } from 'react-visual-feedback';\n\n// Define your status configurations\nconst myStatuses = {\n  open: {\n    label: 'Open',\n    color: '#f59e0b',\n    bgColor: '#fef3c7',\n    textColor: '#92400e',\n    icon: 'AlertCircle'  // Optional - defaults to AlertCircle if not provided\n  },\n  in_progress: {\n    label: 'In Progress',\n    color: '#3b82f6',\n    bgColor: '#dbeafe',\n    textColor: '#1e40af',\n    icon: 'Play'\n  },\n  resolved: {\n    label: 'Resolved',\n    color: '#10b981',\n    bgColor: '#d1fae5',\n    textColor: '#065f46',\n    icon: 'CheckCircle'\n  }\n};\n\n// Option 1: Show all statuses defined in myStatuses\n<FeedbackDashboard\n  isOpen={true}\n  statuses={myStatuses}\n  // ... other props\n/>\n\n// Option 2: Use acceptableStatuses to show only specific statuses\n<FeedbackDashboard\n  isOpen={true}\n  statuses={myStatuses}\n  acceptableStatuses={['open', 'resolved']}  // Only show these 2\n  // ... other props\n/>\n```\n\n#### Extending Default Statuses\n\nIf you want to keep the defaults and add more:\n\n```jsx\nimport { DEFAULT_STATUSES } from 'react-visual-feedback';\n\nconst extendedStatuses = {\n  ...DEFAULT_STATUSES,\n  // Add new status\n  testing: {\n    key: 'testing',\n    label: 'In Testing',\n    color: '#8b5cf6',\n    bgColor: '#ede9fe',\n    textColor: '#6d28d9',\n    icon: 'Bug'\n  },\n  // Override existing\n  resolved: {\n    ...DEFAULT_STATUSES.resolved,\n    label: 'Fixed & Deployed'\n  }\n};\n```\n\n### Status Object Structure\n\n```typescript\ninterface StatusConfig {\n  key: string;        // Unique identifier\n  label: string;      // Display name in UI\n  color: string;      // Border and icon color (hex)\n  bgColor: string;    // Background color (hex)\n  textColor: string;  // Text color (hex)\n  icon: string;       // Icon name from available icons\n}\n```\n\n### Available Icons\n\nThe following icons from Lucide React are available for custom statuses:\n\n| Icon Name | Description |\n|-----------|-------------|\n| `Inbox` | New items |\n| `AlertCircle` | Warnings/alerts |\n| `Play` | In progress |\n| `Eye` | Under review |\n| `PauseCircle` | Paused/on hold |\n| `CheckCircle` | Completed/resolved |\n| `Archive` | Archived/closed |\n| `Ban` | Rejected/won't fix |\n| `XCircle` | Cancelled |\n| `HelpCircle` | Questions |\n| `Lightbulb` | Ideas/features |\n| `Bug` | Bug reports |\n| `Zap` | Quick actions |\n| `MessageSquare` | Comments |\n\n### Status Utility Functions\n\n```jsx\nimport {\n  getStatusData,       // Get status config with safe defaults\n  getIconComponent,    // Get icon component from name\n  normalizeStatusKey,  // Normalize status key to available options\n  StatusBadge,         // Status badge component\n  StatusDropdown       // Status dropdown component\n} from 'react-visual-feedback';\n\n// Get status data with fallbacks for missing properties\nconst statusData = getStatusData('inProgress', customStatuses);\n// Returns: { key, label, color, bgColor, textColor, icon }\n\n// Get icon component from string name\nconst Icon = getIconComponent('CheckCircle');\n// Returns: Lucide React component\n\n// Normalize various status formats to valid keys\nconst key = normalizeStatusKey('in_progress', customStatuses);\n// Returns: 'inProgress'\n```\n\n### Status Key Normalization\n\nThe widget automatically normalizes various status key formats:\n\n| Input | Normalized To |\n|-------|---------------|\n| `reported`, `submitted`, `pending` | `new` |\n| `doing`, `in_progress` | `inProgress` |\n| `review`, `under_review` | `underReview` |\n| `hold`, `on_hold`, `paused` | `onHold` |\n| `done`, `fixed`, `completed` | `resolved` |\n| `archived` | `closed` |\n| `rejected`, `wont_fix`, `cancelled` | `wontFix` |\n\n## Next.js Usage\n\nThis package uses browser-only APIs and requires client-side rendering. Use dynamic import with `ssr: false`:\n\n```tsx\n// providers/FeedbackProviderClient.tsx\n'use client';\n\nimport dynamic from 'next/dynamic';\n\nconst FeedbackProvider = dynamic(\n  () => import('react-visual-feedback').then((mod) => mod.FeedbackProvider),\n  { ssr: false }\n);\n\nexport default function FeedbackProviderClient({\n  children,\n  ...props\n}: {\n  children: React.ReactNode;\n  [key: string]: any;\n}) {\n  return (\n    <FeedbackProvider {...props}>\n      {children}\n    </FeedbackProvider>\n  );\n}\n```\n\nThen use in your layout:\n\n```tsx\n// app/layout.tsx\nimport FeedbackProviderClient from './providers/FeedbackProviderClient';\n\nexport default function RootLayout({ children }) {\n  return (\n    <html>\n      <body>\n        <FeedbackProviderClient\n          onSubmit={async (data) => {\n            await fetch('/api/feedback', {\n              method: 'POST',\n              body: JSON.stringify(data)\n            });\n          }}\n          dashboard={true}\n          mode=\"light\"\n        >\n          {children}\n        </FeedbackProviderClient>\n      </body>\n    </html>\n  );\n}\n```\n\n## Browser Support\n\n- Chrome/Edge (recommended for screen recording)\n- Firefox\n- Safari\n- Opera\n\n## All Exports\n\n```jsx\nimport {\n  // Core components\n  FeedbackProvider,\n  FeedbackModal,\n  FeedbackDashboard,\n  FeedbackTrigger,\n  FeedbackDots,          // In-context feedback dot markers\n  CanvasOverlay,\n  UpdatesModal,          // What's New modal for updates\n\n  // Hooks\n  useFeedback,\n\n  // Status components\n  StatusBadge,\n  StatusDropdown,\n\n  // Status utilities\n  getStatusData,\n  getIconComponent,\n  normalizeStatusKey,\n  DEFAULT_STATUSES,\n\n  // Storage utilities\n  saveFeedbackToLocalStorage,\n\n  // Theme utilities\n  getTheme,\n  lightTheme,\n  darkTheme,\n\n  // General utilities\n  getElementInfo,\n  captureElementScreenshot,\n  getReactComponentInfo,\n  formatPath\n} from 'react-visual-feedback';\n```\n\n## Changelog\n\n### v2.2.10\n- **Added**: Feedback Dots — in-context overlay that shows feedback markers directly on the page\n- **Added**: `showFeedbackDots` prop and `Alt+D` keyboard shortcut to toggle dots\n- **Added**: `feedbackDotsData` prop to pass feedback from backend APIs (auto-normalizes DB formats)\n- **Added**: `userAvatar` prop for user profile pictures on dots and feedback data\n- **Added**: `dotPosition` field auto-captured on element click (relative position 0-1, responsive across screen sizes)\n- **Added**: Mini card on dot hover — avatar, name, time, type pill, 2-line preview, component chip\n- **Added**: Premium popover on dot click — header with avatar/name/email, hero text, component/file chips, StatusBadge, screenshot with zoom\n- **Added**: Dot clustering — nearby dots collapse into count badges, hover to fan out\n- **Added**: Filter toolbar — fixed bottom-center bar with type and status filters\n- **Added**: Element highlighting on dot hover — pulsing colored border around the original element\n- **Added**: Keyboard navigation — Tab through dots, Enter/Space to open, Escape to close\n- **Added**: Smart viewport-aware positioning for popovers and mini cards\n- **Added**: Console diagnostics for debugging data format issues\n- **Added**: `FeedbackDots` standalone component export\n- **Added**: `toggleFeedbackDots` and `showFeedbackDots` in `useFeedback()` hook\n- **Improved**: Dots always mounted (data loads in background), reactive to late-arriving prop data\n\n### v2.2.0\n- **Added**: `UpdatesModal` component - Display product updates, bug fixes, and new features\n- **Added**: Draggable recording indicator - Move the recording overlay anywhere on screen\n- **Added**: Video Mode with fullscreen playback and synced logs panel\n- **Added**: Search functionality in feedback dashboard\n- **Added**: IndexedDB storage for large video recordings (prevents quota errors)\n- **Added**: Video download/export functionality\n- **Improved**: Logs panel now scrollable when video is paused\n- **Improved**: Audio mixing for microphone and system audio in recordings\n- **Fixed**: Mobile responsive UpdatesModal - displays as centered popup\n\n### v2.1.0\n- **Added**: Manual feedback mode (`Alt+A`) - open form without selecting an element\n- **Added**: `defaultOpen` prop to automatically open form on mount\n- **Added**: Drag & Drop file upload support\n- **Added**: Support for generic file attachments (PDF, etc.)\n- **Improved**: Dark mode colors for better contrast and readability\n- **Improved**: Dashboard status badges now have solid backgrounds for better visibility\n- **Improved**: Screenshot preview in dashboard with zoom overlay\n\n### v1.4.2\n- **Fixed**: Modal state not resetting after submission (was showing \"Sending...\" on reopen)\n- **Added**: `Alt+W` keyboard shortcut for video recording\n- **Improved**: Custom status documentation - clarified that users control which statuses appear\n- **Fixed**: Prevented double submission by checking `isSubmitting` state\n\n### v1.4.1\n- **Fixed**: `Cannot read properties of undefined (reading 'icon')` error when status data is malformed\n- **Added**: `getStatusData()` utility function for safe status access with defaults\n- **Improved**: Defensive null checks in StatusBadge, StatusDropdown, and FeedbackDashboard\n- **Added**: Export of status utility functions for custom implementations\n\n### v1.4.0\n- **Added**: Screen recording with session replay\n- **Added**: Console and network log capture during recording\n- **Added**: Session replay component with expandable logs panel\n- **Improved**: Dashboard UI with video playback support\n\n### v1.3.0\n- **Added**: Canvas drawing and annotation support\n- **Added**: Download all feedback as ZIP\n\n### v1.2.0\n- **Added**: Custom status configurations\n- **Added**: Status normalization for various formats\n\n### v1.1.0\n- **Added**: Dark mode support\n- **Added**: Developer/User mode views\n\n### v1.0.0\n- Initial release with element selection and screenshot capture\n\n## License\n\nMIT\n\n## Author\n\n**Murali Vvrsn Gurajapu**\nEmail: murali.g@hyperverge.co\n\n---\n\nMade with care for better user feedback collection\n","readmeFilename":"README.md"}