{"_id":"@david-xpn/llm-ui-feedback","_rev":"16-2be7c0d898a6a8eabee70b66239dd2d6","name":"@david-xpn/llm-ui-feedback","dist-tags":{"latest":"0.1.16"},"versions":{"0.1.0":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.0","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.0","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/david-xpn/llm-ui-feedback#readme","bugs":{"url":"https://github.com/david-xpn/llm-ui-feedback/issues"},"dist":{"shasum":"3de6f17b7fb531f75b96637ac13423ded12263c0","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.0.tgz","fileCount":9,"integrity":"sha512-eUb+Fp98B52NcwRtKhV9SPxLbzwNqz7X3jI2hG0qLBaSuJDhYyRo1KPEd2LdxeoY7qbo3yha5wYaNTcGLXqVAg==","signatures":[{"sig":"MEUCIQDAEahVn3ut9w9ji4Syyqu1hdFgOnqWLChK6rMV5JGCDQIgK3MN0EE5Hc57dbHZTN8F/vRue1Zv0Upw7BFcUdCZ/zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188551},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c247b800879542ac35da9ec3904d500cf16e1b0a","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-xpn","email":"david@xpn.ai"},"repository":{"url":"git+https://github.com/david-xpn/llm-ui-feedback.git","type":"git"},"_npmVersion":"8.19.4","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"16.20.2","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.0_1772301385124_0.527308411150256","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.1","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.1","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/david-xpn/llm-ui-feedback#readme","bugs":{"url":"https://github.com/david-xpn/llm-ui-feedback/issues"},"dist":{"shasum":"d1751de1a5f8f8d90ef02725ba9fd7226911b921","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.1.tgz","fileCount":9,"integrity":"sha512-b2yqsV7Y5V42sDPX5QKXScYC+kkcEJDCcEkdueaL75a2QBzVaxk3plVBlc6mpy92bTfDFXm5S3OU/PhcDpqiPQ==","signatures":[{"sig":"MEUCIHofCvhMqqQmdw0lL8CYQUquCAaeblkNy1jjc68bGxFAAiEAvc82+S6O5vX04NEf4KovyIK6+4aY1PGpjWvsUKUTNcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284896},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"422557104f519340e78a4a9deb2bc826b85eb15a","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-xpn","email":"david@xpn.ai"},"repository":{"url":"git+https://github.com/david-xpn/llm-ui-feedback.git","type":"git"},"_npmVersion":"8.19.4","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"16.20.2","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.1_1774276845829_0.9286666328506674","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.2","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.2","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/david-xpn/llm-ui-feedback#readme","bugs":{"url":"https://github.com/david-xpn/llm-ui-feedback/issues"},"dist":{"shasum":"a3ff5233e781d93a511d129f1ebf63a68704f4a9","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.2.tgz","fileCount":9,"integrity":"sha512-Cdd/AyGbJhrJNT3TUpH938AZ6H3OgksSYWUS+n6v6+hMsSALPnLvVnGl0sYM+XOBwroV7PhefKHET5xHASWm5Q==","signatures":[{"sig":"MEUCIAcSgzWbYyxaqjp2O2gYSPOVBEhJSFS6SNwAnAaAQLy7AiEAxm7bCrN9HRZ+SSqs1DdB/UarLnLz+98TIDI3lyd/uac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298705},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b782ae822732b3cdba0b35d42cd81d23e438509b","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-xpn","email":"david@xpn.ai"},"repository":{"url":"git+https://github.com/david-xpn/llm-ui-feedback.git","type":"git"},"_npmVersion":"8.19.4","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"16.20.2","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.2_1774371342246_0.07248695056499899","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.3","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.3","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/david-xpn/llm-ui-feedback#readme","bugs":{"url":"https://github.com/david-xpn/llm-ui-feedback/issues"},"dist":{"shasum":"af5b0bc5161173a36c4095d96e356e78e68adc98","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.3.tgz","fileCount":9,"integrity":"sha512-AhUnK6Wy4zTqsxzZp4q1HBzQBi6P747ayhN8XxGlUqetu29whpf3K2qeZ73/RChz1A1I75NxhSQh3GKfZBvPUw==","signatures":[{"sig":"MEYCIQDq+y/aN25pJSi2+jdtlTzQnro9bT8d67RittxSM1xd7AIhAOk1NhcIwLMLEXNwGDe/PHerTw9AMoP9krt04H9CBk7k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298412},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"36a840767b3fe94d8301867194ea3f36b9744610","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-xpn","email":"david@xpn.ai"},"repository":{"url":"git+https://github.com/david-xpn/llm-ui-feedback.git","type":"git"},"_npmVersion":"8.19.4","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"16.20.2","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.3_1774371542655_0.40207570904290435","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.4","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.4","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/david-xpn/llm-ui-feedback#readme","bugs":{"url":"https://github.com/david-xpn/llm-ui-feedback/issues"},"dist":{"shasum":"89b25f332208f06dfce0570211b85e9b9cc8a088","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.4.tgz","fileCount":9,"integrity":"sha512-q+WtaLVy0vGZ7MKfx9w3g7WSL9lPpIhpiX227/JhLo0ENzR9nAigKdY4q69fg/YLAIO8Qy8ncaDSGsqvTPKc9w==","signatures":[{"sig":"MEUCIAqUltoILnYINDzAS+z9um+7PqWlfQflEqYiSr/4cuQIAiEAwcIQ359rhX1xHBJ0UQ66kYSCOz1C1dbc7Sc1sVAvETk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297608},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"578bbc9ac0e025b0258a094700595c0966ad18c0","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-xpn","email":"david@xpn.ai"},"repository":{"url":"git+https://github.com/david-xpn/llm-ui-feedback.git","type":"git"},"_npmVersion":"8.19.4","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"16.20.2","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.4_1774432996499_0.1376281380161284","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.5","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.5","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/david-xpn/llm-ui-feedback#readme","bugs":{"url":"https://github.com/david-xpn/llm-ui-feedback/issues"},"dist":{"shasum":"fa6fa4c61358528299c2a4e5e6e4568fba529142","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.5.tgz","fileCount":9,"integrity":"sha512-bibRpcDEkX8TB562Uf4JM0J5pG2qj8Stz9I44nOebjYl4PK9+SN97lXBNZRedjXtssn1ScKJhQQ/DlG3XZCWTw==","signatures":[{"sig":"MEUCIQCX8W/yY4QqNdiifTi2+tjC1getxy52kwOva7eho0b9FQIge6AAwUHGFuQ8xX7sSPDDPwW+wibBuQ2Ez7a+uxKY7sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315440},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8ffb5fb28b06773544c9210c7d184ae43f4a913a","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"david-xpn","email":"david@xpn.ai"},"repository":{"url":"git+https://github.com/david-xpn/llm-ui-feedback.git","type":"git"},"_npmVersion":"8.19.4","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"16.20.2","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.5_1774434183667_0.7539023770673401","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.7","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.7","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"8cc31fd470c241a9305a95cdf74a6c2d49c8524b","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.7.tgz","fileCount":9,"integrity":"sha512-Tzeu9hmT+HpL5bFTVr+ZX4tqHueAKtObKZ3u33agK6Q2PzCg5EGNsf+IPio6Ciz4q7Lchs3AeM09LfZKc08EYQ==","signatures":[{"sig":"MEYCIQDQV/xq3o8TyDvWEL6XrPt862i37OAbsnjHiDfDe1ryOgIhAMqy/C3XzcmIM0XqMnak1dpT+4Q+qZTjcuDBDBikHQp3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315445},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"19c4bd975d670013dda30d89dfcad3874edbe9b1","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.9.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.0","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.7_1774958596100_0.8764544105865848","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.8","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.8","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"177c87ff67cf68d9fd0e9013158fb810cf563ecd","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.8.tgz","fileCount":9,"integrity":"sha512-BmrFzv4pAyS6hBVUHwX26qzs6xLKo8MxnEZNYvyg2zvV3y0EXdubtxqJ4QxUmzb/2tdpgZlgKKNj32XCxzUL6Q==","signatures":[{"sig":"MEUCIQCdNm6kxoK4Jm83CTmIdsDy/2W8IdfwqPM5iWSbOec/1gIgBVxD7lj9o5NGYtVi75NtDPMfkzfzyIkjWnEI3ztLT4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338048},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"681efe31abefdf2376ef64d886b52d5817624189","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.9.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.0","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.8_1774959387716_0.6265332999477218","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.9","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.9","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"9eb2ff3c3f21bbafa649179bebcbffa55fed0a76","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.9.tgz","fileCount":9,"integrity":"sha512-Ib0l6dhl8+mhMAOBQ+SNVui6ANWuCMoknLS+8M/7gKTpE3UUR4DA4B7HTGNkQPRsHwTrXX/4yQQhKPn28nOnzA==","signatures":[{"sig":"MEYCIQCRTmnR5EpGiWO0DKwIQm02sFXZMWs0CuVLNUYtk0PcNwIhAKLlx/Elyl2FAVp9uBLmM8KctRH5skIGCVjFkfjcn7VX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341511},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5e778becdc9ffa1fe4bb40eb3b44a95aea40d763","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.9_1775976936142_0.9919284680633309","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.10","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.10","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"f5b6e579eed836015bbc10dbb2d4fcd7a8aeabf5","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.10.tgz","fileCount":9,"integrity":"sha512-X2BsifQ0vMedBf+63SC1I87jdtpBDwwzWqSgKbZsVIv2VSNLhrWoNOhxydu2Zjjn8i+ilQWQJfXldIre78XvAQ==","signatures":[{"sig":"MEQCIDRu1FoI3MOnOiqsAZe/qyVGBKLyiRiFb8syRwF2BvvBAiA55tFzRrXkM/GlcbkAgx4D12RPdkA93bsd/O4j+HH4ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341512},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d77fe6ca1444996bffbf7e470b4ee3b8a0536b74","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.10_1775989404445_0.33661966324739945","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.11","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.11","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"5386ee8a470a1824f6a03a869b788197b2329e69","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.11.tgz","fileCount":9,"integrity":"sha512-xNFue8h4HJVedOAcxRbXltAz472M3OgW9qJFAU0WeKorJQESPNtBu80wx29794cdNFdPPoT0Qj7Uzwf64ai4/Q==","signatures":[{"sig":"MEQCIFqW3WcyyR8MZpwasmgwU8CCW/+EyczIkS0YPnsxDLYcAiAEgVBvm95Pmu3ErMZYFBpBYw336WPil17UjrRcbm5t9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342578},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9706b1845c65ebbfd3df4b064bb78a19e4712791","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.11_1775989975087_0.48248466936541545","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.12","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.12","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"4cd2c7a60db9449957f6d02046ffd6f6b460b63e","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.12.tgz","fileCount":9,"integrity":"sha512-BKbm/OYKw4y8ZkysSx8qRtFCG2pMeWB2d3yMSpU012yyVNUjzAjMsMGyJN3n50kHyGHnmrJzm45UAPuetdaLtQ==","signatures":[{"sig":"MEYCIQDmtvfa7PzOC+JM7G6e3lNXRpRsWkVbDiGN8nziYqSEKQIhANYgpNc1fImcKmmSckRknqFy6/NA4vlPKMM2/IKfFCin","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343670},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"312fc1f1284475fd588cf60e21133a612e712213","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.12_1776005346551_0.1330156292164113","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.13","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.13","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"54bc3cc387dc9d178c5d204b695f9941cad07f40","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.13.tgz","fileCount":9,"integrity":"sha512-X6xHHEo9f9rZ7EghpK4j8R8iwtRzpS6qzu2LwyAleCDgwgN4wIsh95vYuvXZ788k+JotsOqoI2pM+3+s4YVSIA==","signatures":[{"sig":"MEUCIDrMFXIP4VYJuq484ke7UWyO9thntDMh/8FK2z+8x0trAiEAhfKZ9GpMVo0ZSey5oLw3ohjqyQYntyt+o5UoPM3DQtU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343670},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bffbb7987cc15816b86ea7bca12c7335f43b74b9","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.13_1776078748017_0.9374630640363195","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.14","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.14","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"2ad600b643effa7bc04765794933e8ebd9e3ee5b","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.14.tgz","fileCount":9,"integrity":"sha512-/oUZJ0fZzm/pb0lwVoATqm6Gk9ij9hbxffvQq9xlOEaKlJo2p2fdCoHwLNBsuZOTN5/yP6nfX+cxiZlkCGHMZw==","signatures":[{"sig":"MEYCIQCaJ0GX16/EkC7mbvJRFjx9lOaFwYUhlSJQNO4S3eGdbwIhAO2k7QucNSo/0oH2gW41KNg2rOMAu+miQaLIE0rUblgk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":389415},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b5930eef414b27cdb71c506f0544773a15487c68","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.14_1776082676707_0.39201619317966396","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.15","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"author":{"name":"david-xpn"},"license":"MIT","_id":"@david-xpn/llm-ui-feedback@0.1.15","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"dist":{"shasum":"668757dcaf3ed9406f8b692ea2ec494501aecfb0","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.15.tgz","fileCount":9,"integrity":"sha512-CvjlZTDFfkeyw0HcwtUI9o+W7VvP4R96ZOsNSxmTKX4hHtHoEUZpRSEJ7RnH/6ZLoyMl0DGxwa7UViJ+7DIAdg==","signatures":[{"sig":"MEYCIQC/dJdAZdL3pYamaEPgNzZBglWZD028fej+bau95L+NBQIhAIRQU/Y2J7MyzSfkzwjUrIcrM+mSW7oLWAp1aaHhkyGY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390075},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7f3f6c573d716bd4471dd35acd2e4841faf9c573","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"repository":{"url":"git+https://github.com/xpninc/llm-ui-feedback.git","type":"git"},"_npmVersion":"11.11.0","description":"Drop-in React feedback widget that captures component context for LLM consumption","directories":{},"_nodeVersion":"24.14.1","dependencies":{"html2canvas-pro":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","react-dom":"^18.2.0","typescript":"^5.3.0","@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/llm-ui-feedback_0.1.15_1776150394827_0.8525939559467728","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@david-xpn/llm-ui-feedback","version":"0.1.16","description":"Drop-in React feedback widget that captures component context for LLM consumption","license":"MIT","author":{"name":"david-xpn"},"repository":{"type":"git","url":"git+https://github.com/xpninc/llm-ui-feedback.git"},"keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"devDependencies":{"@types/node":"^25.3.3","@types/react":"^18.2.0","@types/react-dom":"^18.2.0","react":"^18.2.0","react-dom":"^18.2.0","tsup":"^8.0.0","typescript":"^5.3.0"},"dependencies":{"html2canvas-pro":"^2.0.1"},"gitHead":"ee2a11247ba99dfc8e632a25be166659d1904d3f","_id":"@david-xpn/llm-ui-feedback@0.1.16","bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"homepage":"https://github.com/xpninc/llm-ui-feedback#readme","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-XMpv5NLy3Q2sXu3ThwBJq9pI544Gk8sjLGoahAx0GGm2H5TDRlanOxv3AIZGeIM7QgVrr2QEyQfeVLhwsgfHvw==","shasum":"21cfa8be1196497d87dc0d6c392d9d0e5824e81b","tarball":"https://registry.npmjs.org/@david-xpn/llm-ui-feedback/-/llm-ui-feedback-0.1.16.tgz","fileCount":9,"unpackedSize":408421,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmVWBmoFUvzrxM1VthwopHFAAtTLLKab0dMVmLwrx1QQIhAKJPB/jWXmmdgvEc3vAXzWmvr+afiU5OHWr5vVSp5VRW"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:406d1053-fce3-4f2c-9bff-8206434bdcb3"}},"directories":{},"maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/llm-ui-feedback_0.1.16_1779697478560_0.37204254245183654"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-28T17:56:24.987Z","modified":"2026-05-25T08:24:38.850Z","0.1.0":"2026-02-28T17:56:25.262Z","0.1.1":"2026-03-23T14:40:45.977Z","0.1.2":"2026-03-24T16:55:42.398Z","0.1.3":"2026-03-24T16:59:02.818Z","0.1.4":"2026-03-25T10:03:16.643Z","0.1.5":"2026-03-25T10:23:03.794Z","0.1.7":"2026-03-31T12:03:16.345Z","0.1.8":"2026-03-31T12:16:27.878Z","0.1.9":"2026-04-12T06:55:36.292Z","0.1.10":"2026-04-12T10:23:24.597Z","0.1.11":"2026-04-12T10:32:55.250Z","0.1.12":"2026-04-12T14:49:06.739Z","0.1.13":"2026-04-13T11:12:28.158Z","0.1.14":"2026-04-13T12:17:56.872Z","0.1.15":"2026-04-14T07:06:34.972Z","0.1.16":"2026-05-25T08:24:38.742Z"},"bugs":{"url":"https://github.com/xpninc/llm-ui-feedback/issues"},"author":{"name":"david-xpn"},"license":"MIT","homepage":"https://github.com/xpninc/llm-ui-feedback#readme","keywords":["react","feedback","llm","widget","ui","component","screenshot","prompt","ai"],"repository":{"type":"git","url":"git+https://github.com/xpninc/llm-ui-feedback.git"},"description":"Drop-in React feedback widget that captures component context for LLM consumption","maintainers":[{"name":"david-xpn","email":"david@xpn.ai"}],"readme":"# @david-xpn/llm-ui-feedback\n\nDrop-in React feedback widget that captures component context for LLM consumption.\n\nUsers click on any element in your app, leave a comment, and the widget captures a rich context bundle — React component tree, props, screenshot with marker, and a pre-formatted LLM prompt — ready to paste into Claude, ChatGPT, or any LLM chat.\n\n## Features\n\n- **One-line integration** — add `<FeedbackWidget />` to your root, done\n- **React component tree capture** — walks the fiber tree to extract component names and props\n- **Screenshot with X marker** — captures the viewport and marks the clicked element\n- **LLM-ready prompt** — generates a structured prompt with page URL, component path, props, element text, and user comment\n- **Copy & download** — copy the prompt to clipboard and download the screenshot\n- **localStorage persistence** — no backend needed, all data stays client-side\n- **Feedback list panel** — view, copy, and manage all saved feedback entries\n- **Configurable** — position, color, and keyboard shortcut\n\n## Install\n\n```bash\nnpm install @david-xpn/llm-ui-feedback\n```\n\n## Quick Start\n\n```tsx\nimport { FeedbackWidget } from '@david-xpn/llm-ui-feedback';\n\nfunction App() {\n  return (\n    <>\n      <YourApp />\n      <FeedbackWidget />\n    </>\n  );\n}\n```\n\nThat's it. A floating `+` button appears in the bottom-right corner. Click it to enter pick mode, click any element, leave a comment, and get an LLM-ready prompt.\n\n## Props\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `position` | `'bottom-right' \\| 'bottom-left' \\| 'top-right' \\| 'top-left'` | `'bottom-right'` | Corner position for the floating button |\n| `buttonColor` | `string` | `'#3b82f6'` | Hex color for the FAB button |\n| `hotkey` | `string` | `undefined` | Keyboard shortcut to toggle pick mode (e.g. `'Alt+F'`) |\n| `enabled` | `boolean` | `true` | Whether the widget is rendered. Use to conditionally show the widget. |\n\n### Example with all props\n\n```tsx\n<FeedbackWidget\n  position=\"bottom-left\"\n  buttonColor=\"#10b981\"\n  hotkey=\"Alt+F\"\n/>\n```\n\n### Conditional rendering\n\nUse the `enabled` prop to control when the widget is visible:\n\n```tsx\n// Only on localhost\n<FeedbackWidget enabled={location.hostname === 'localhost'} />\n\n// Only for admins\n<FeedbackWidget enabled={user.isSuperAdmin} />\n\n// Only in dev/staging\n<FeedbackWidget enabled={process.env.NODE_ENV !== 'production'} />\n```\n\n## How It Works\n\n1. User clicks the `+` floating button to enter **pick mode**\n2. User clicks any element on the page\n3. The widget captures:\n   - **Component path** — React fiber tree walk (e.g. `App > Layout > Dashboard > MetricCard`)\n   - **Props** — scalar props (strings, numbers, booleans) from each component\n   - **Element text** — innerText of the clicked element (truncated to 100 chars)\n   - **Page URL** — current `window.location.href`\n   - **Screenshot** — viewport capture via `html2canvas-pro` with a red X at the click position\n4. User types a comment and saves\n5. The entry is stored in `localStorage` with a pre-formatted LLM prompt\n6. User can **copy the prompt** and **download the screenshot** to paste into any LLM\n\n### Example prompt output\n\n```\nPage: https://myapp.com/dashboard/metrics\nComponent: App > Layout > Dashboard > MetricCard\nProps:\n  MetricCard: {\"metricId\":\"revenue\",\"period\":\"Q4\"}\nElement text: \"Revenue: $1.2M\"\n\nUser feedback: \"This number looks wrong, should be $1.4M\"\n\nScreenshot attached with red X marking the clicked element.\n```\n\n## Exported API\n\n```ts\n// Components\nimport { FeedbackWidget } from '@david-xpn/llm-ui-feedback';\n\n// Types\nimport type {\n  FeedbackWidgetProps,\n  FeedbackEntry,\n  CapturedContext,\n  ComponentInfo,\n  WidgetPosition,\n} from '@david-xpn/llm-ui-feedback';\n\n// Storage utilities (for programmatic access)\nimport {\n  loadEntries,\n  deleteEntry,\n  clearEntries,\n} from '@david-xpn/llm-ui-feedback';\n```\n\n### Storage utilities\n\n| Function | Description |\n| --- | --- |\n| `loadEntries()` | Returns all saved `FeedbackEntry[]` from localStorage |\n| `deleteEntry(id)` | Deletes a single entry by ID |\n| `clearEntries()` | Removes all feedback entries |\n\n## Production Setup\n\nIn production builds, minifiers rename component functions (`MetricCard` becomes `t`), which makes the component path useless. Configure your bundler to preserve function names:\n\n### Vite\n\n```ts\n// vite.config.ts\nexport default defineConfig({\n  esbuild: {\n    keepNames: true,\n  },\n});\n```\n\n### webpack (Terser)\n\n```js\n// webpack.config.js\nmodule.exports = {\n  optimization: {\n    minimizer: [\n      new TerserPlugin({\n        terserOptions: { keep_fnames: true },\n      }),\n    ],\n  },\n};\n```\n\n### Next.js\n\n```js\n// next.config.js\nmodule.exports = {\n  webpack: (config) => {\n    const terser = config.optimization?.minimizer?.find(\n      (p) => p.constructor.name === 'TerserPlugin'\n    );\n    if (terser) {\n      terser.options.terserOptions = {\n        ...terser.options.terserOptions,\n        keep_fnames: true,\n      };\n    }\n    return config;\n  },\n};\n```\n\nSee [docs/production-setup.md](docs/production-setup.md) for more bundler configurations.\n\n## Requirements\n\n- React 18+\n- Browser environment (uses `localStorage`, `document`, `html2canvas-pro`)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}