{"_id":"@atik9157/aiui-react-sdk","_rev":"22-69deb411ffb52d90c56662cdd0017ecf","name":"@atik9157/aiui-react-sdk","dist-tags":{"latest":"1.0.21"},"versions":{"1.0.0":{"name":"@atik9157/aiui-react-sdk","version":"1.0.0","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.0","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"f20975f161b4d60a4f8a77f0c7816581bb48502e","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.0.tgz","fileCount":13,"integrity":"sha512-UaPMGaULdF9yAldjWIcFi+iwreJ1azkUPEvw1DNGETnSyuHXnmzCgFfswQdC2UmwecQhmw0uhBYfaFLX7+6NZQ==","signatures":[{"sig":"MEUCIELSes2klGI+RRWqEsv6szSGPlV0Jvh/eAe06LL2z8UtAiEAvyS84gQGEr+b5z9v075AfwLrlczLg8758/C67OXrA18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128391},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8998c309c0cd10b44288629b1f5fbabcef232d72","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"10.9.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.0_1763535467049_0.8836906383521292","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@atik9157/aiui-react-sdk","version":"1.0.1","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.1","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"e84166cca065dc50b93ca8b9dfc2077ce500488f","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.1.tgz","fileCount":13,"integrity":"sha512-GtCZfX7labGuJgva9B4H9axUhhXfJ8jsoQqZmQA0Kj6RakZubglB+R8Nk91vqpjj+GQeW+HQT6v4NJD/hIfOJw==","signatures":[{"sig":"MEQCICWljSOEcRmGffVous/uBFqOU3bJpFckMFjbZdKs/MOfAiBh3vZsKOsfC/mT0rTU1nPtkoX3lWt9KygegUOseKSUQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141145},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8998c309c0cd10b44288629b1f5fbabcef232d72","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"10.9.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.1_1763535975629_0.3843055643432336","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@atik9157/aiui-react-sdk","version":"1.0.2","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.2","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"55f31968bd3a3ef999a81e59d2a88c57fabac3c5","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.2.tgz","fileCount":13,"integrity":"sha512-FnP9O0Rw7VmnmdWDENqWoNl181YhGQgUSv5gzY1QHEp93PMaFZHApdIXF2s2RsiUSPbjoN0Y0MLE8QylwXVFlA==","signatures":[{"sig":"MEYCIQC1LkhAWTTrN2+6mojWbK5sG0zFlta04AQChrUxRJT6igIhAMYf+FOW/zpmZmTzE15T3vmegCL1NGmURQIvHvtfY6Op","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":994861},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"9948c4a44d1bbd33d3ef0dbd1e00a75878a83111","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","dependencies":{"react-router-dom":"^7.9.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.2_1764074547986_0.042167855544383626","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@atik9157/aiui-react-sdk","version":"1.0.3","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.3","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"4b2b3ccfa65ca98a4ad80ab239b049f3443f107e","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.3.tgz","fileCount":13,"integrity":"sha512-Ltyc3H89Oc1lJ0Ex0DGCJhODufE9rTou3h4oW/69Eb3pvH6dSiQTMeEqUhOPNGPF+7ef5gbFFg/dBrnkp/GKXw==","signatures":[{"sig":"MEYCIQCRlLpjSzJ2GfwVXI6KdKFUmSHRcGy2EEI9W/z93w/kHQIhAKDDxPclhokf9jF4SBNW52aFNZKdwK7oiQ4LVmXM7u1+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142726},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"9948c4a44d1bbd33d3ef0dbd1e00a75878a83111","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.3_1764092809101_0.5478750912025001","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@atik9157/aiui-react-sdk","version":"1.0.4","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.4","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"2035d0d1871d797ad3d1b0d0e7d7a3a1cbc25170","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.4.tgz","fileCount":13,"integrity":"sha512-+HQLlIruAV9Xh0ML85LoZX2aWpXwhYTesAoQPjBlpJyeEblAv1pB20d22nC1M9vRCqt2xbpot2m+z+kOVQyQZg==","signatures":[{"sig":"MEYCIQDk10x9rYRjIwvdVveumYhCqIgmv7JBCDVmeogt4gVZyQIhALUDNOshIfx6aNJfMn7ouYqzNJ9+FH6YOmJHojQRq30c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148404},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"ed8a89849f098c927222d6a4258df23f22fec8be","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.4_1764322620036_0.8592356350359658","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@atik9157/aiui-react-sdk","version":"1.0.5","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.5","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"3753529baf4d1122bca10f0395dda651a895b9ad","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.5.tgz","fileCount":13,"integrity":"sha512-KDkiUzwJIzKVWmkcAzbw6gyOHvZG47SiDoVg/6uh5MtV/vcwG+QkIOzfby9rxuIgFzOxVGMTsobYqQk0uWpKFg==","signatures":[{"sig":"MEQCIDWlhCeC7TdsQ8OYITmm7OCRhnjPSNaDl683TeoAB0znAiB5dba3WeBZLgLft/SYjoOpqKH0YKrPlNILZFRSyvSaGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161008},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"ed8a89849f098c927222d6a4258df23f22fec8be","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.5_1764420718073_0.04981099351341034","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@atik9157/aiui-react-sdk","version":"1.0.6","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.6","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"cd12dd37acfba66159cadf7c377c80a7dc12cef8","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.6.tgz","fileCount":13,"integrity":"sha512-tGfFTUr785b1orZB4Qjk/Ktmg+8VcJMeOas4ARPDjMaDxCG8sBZkF+9aoQDel27P+VFEbhKW3XkvPMljt9Nj2w==","signatures":[{"sig":"MEQCIDNIg/rPltb7tbOcuLCH7g773Y//pyaHxVbrPRnAo96XAiAhCa4MxIuTx38GQwwTd8ThlwRtPbwh5grhAt+L602GuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167308},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"6409b5a25096a9e97f088013478abf737ab1df28","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.6_1764523760297_0.34225169826770596","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@atik9157/aiui-react-sdk","version":"1.0.7","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.7","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"90cf17c77cefabf94ed86acddaca9f5e424b0b95","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.7.tgz","fileCount":13,"integrity":"sha512-Wvo5qXdbwODAipS9gyJp3XxfINYltjQMy2Ks53abId5FfvNAwkvdxxUl1cn2RuEWjMINF0Wpso64ezIsvMxm8g==","signatures":[{"sig":"MEYCIQDEuT8J57Q/89h3iMVVOmStD3E40AUywVXcegUN+08AWwIhAK/9HiBv95V2gnKqXHISchyyiAU8agW0NtiH00HcmP93","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"6409b5a25096a9e97f088013478abf737ab1df28","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.7_1764568116587_0.9812691778894864","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@atik9157/aiui-react-sdk","version":"1.0.8","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.8","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"2ad291f086e11dedc3b7ea2163ee3deac9ff4ce5","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.8.tgz","fileCount":13,"integrity":"sha512-xxkUJpJw0wPAFLw63Nn5972/rAUMURQONpQirF2MUDYJ+byJNTKN/FTHkfvEo2e5Q6A8tNrP0xfySSor+Iw1Cw==","signatures":[{"sig":"MEQCIFG0HlRP6Ie2xdiMv2kgSOZKhQDsf5rXHYxn/GlPsKleAiAxkaz4/NL9qqU0cLeCwa2gxPdVPKZWyz618cswerwvIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172390},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.8_1765389061767_0.9495023129744369","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@atik9157/aiui-react-sdk","version":"1.0.9","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.9","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"06424f7c346e1210f93296030f4bd61504aa5a8d","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.9.tgz","fileCount":13,"integrity":"sha512-wGc4hMtxT6LI83wSiaxrFU5ULKHnxzct8vSG8YEUML0xrK49LItz3vE0v04SZWzCsetP1FiSqeVjO2v8xuk/LA==","signatures":[{"sig":"MEUCIB6y4LxCWQY8we7NOHIeubhKxTWS0wOkghzgXcvPIKTHAiEAm3zVrUnPZ+/xbaiIrehoy2Q1L85Lu47X5guYwRMDesg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.9_1765390691578_0.8307189855210475","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@atik9157/aiui-react-sdk","version":"1.0.10","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.10","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"d6b558617b5f4ceb154d95b9d1d5a76657c05011","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.10.tgz","fileCount":13,"integrity":"sha512-waHu6c3g/RTbDVCBwmelSr424TzyOoLIFqGSjCCSXj6SyKQeMKR85CJV+yNp8hZNKxnQMuzKU0DtfJFKOWKHqg==","signatures":[{"sig":"MEYCIQCzQPb/WupKuflsiX+FgzwbNdgzeY5j51/EfxapkVe4WQIhAOxaAjiiRNGIuxqNdzXa//PtTsRokN83qzt+6uDLbyI9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169488},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.10_1765390940164_0.6418951557698909","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@atik9157/aiui-react-sdk","version":"1.0.11","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.11","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"763a13a85b4fd2e562990343cabda99384ed36fa","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.11.tgz","fileCount":13,"integrity":"sha512-ECFPlhfHIJDl31nFCZDncin+kxlEjPUouK6i8K2EDaw6jzKU0+RhiLJ8DJ0++lq2xpIhRjAytBnaaondToohZg==","signatures":[{"sig":"MEUCIH9kX5bo7Xmrq+0/JrBNLw+H18zDmzsYpaxp+GufLvsWAiEAgxfZGMhVuLzofdRuxrrkeWbfW8mL8uqO8bBLe5aoANM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.11_1765391781591_0.5604981850332771","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@atik9157/aiui-react-sdk","version":"1.0.12","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.12","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"56d5ede33def62a87629ce518540a209224d8d40","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.12.tgz","fileCount":13,"integrity":"sha512-CYeIYNL4PfrqIEZvOZ/yw5eIaCUvuaozIWVZZcEu6/XuC2nyy8MY70CGAL46vwQU4BpfYFmdPT6M0pK+ZDWgew==","signatures":[{"sig":"MEQCIE0xGwKMQpBeFMIROzJJkit0KV410zDXizLXPHYbv4YEAiAzmINe3mQlYPaI2ngZroDCFulHMATbl5HydtrbDXB++Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170946},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.12_1765392225446_0.4046680220889587","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@atik9157/aiui-react-sdk","version":"1.0.13","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.13","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"7e88a52036c212fcf3731be5fc1b93dce7f23f3e","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.13.tgz","fileCount":13,"integrity":"sha512-QzLjXgur8zURZyaZz6pn2T4s5PCEj4eJsDPMXIzd2i3URBWY1pBonp2GI7wV2pvRYs+M+jJ7MGsz2LflFBXFxg==","signatures":[{"sig":"MEUCIQDDDp1p+weup+zEBTr6AEO28SMgrhBai+lEgeWhN3s1dgIgLqqLAMl7sIzheoh9xG8IeaykUV7bXfTROm2TMvsFEZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169633},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.13_1765393301871_0.7402737990839126","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@atik9157/aiui-react-sdk","version":"1.0.14","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.14","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"a62beec055d8142be895ebbac332a2f91b076197","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.14.tgz","fileCount":13,"integrity":"sha512-6ZldDxsJNeUELawIRUza6AcGR3ClNVT0dpbav0+Gijm0yfXyX0pPjBWPT+E4Zx9EOA1vgMQLblHRnqyMMWX4bQ==","signatures":[{"sig":"MEUCIQDDV898OeRQJO0caNeyAbrnVdpjhOA6TIc3Usb8anBOMAIgOPFKBtSMZ91BxP5b9UmTH9ZcH8Q+4ixhC9dNGXY0cWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172211},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"8bc36f7379df7111dd115216701f1f22b8b452b5","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.14_1765666399358_0.7951241165679444","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@atik9157/aiui-react-sdk","version":"1.0.15","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.15","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"08f8c501565dc59521af4bada15084402130f1bf","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.15.tgz","fileCount":13,"integrity":"sha512-8BA9cNZuSv5l1Quw5jPVw5K9TkObcVIGoqJ9NFrocFhUItqddRmFI3PRnNukq8fJf/2pUZxzOxRcV12+33cICQ==","signatures":[{"sig":"MEUCIQCYIXSalu2r/qu8qH5pW8cXB+euFbHUE1aQvjfF01Z3BAIgeghaYg9czc22XbnUYantVJm30RJDAit7V3dLaDJT7Yk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174939},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.15_1765865455655_0.46890474049954567","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@atik9157/aiui-react-sdk","version":"1.0.16","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.16","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"73e67f2b91b60833166e9fa301a34981f91e078b","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.16.tgz","fileCount":13,"integrity":"sha512-siHEoHFlIEvwHVHpTIRE744hYo8z+JOjdshpuKzH+BVYEVoO/Xi9sw+RDbyX4GlIQV9zm0UtUCLmmbifEqc6Qw==","signatures":[{"sig":"MEQCIAQ3O/NQqbtao9oZ8dwBV1pNCIWkkt4WLizCSP8x/RAbAiAJHlHmpOZgJm5KnOPQ3+DOWfVWpSNR3OyOxh7t9oKM6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183437},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.16_1765951265655_0.080855269173985","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@atik9157/aiui-react-sdk","version":"1.0.17","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.17","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"ba5087faa1802d04965cccffd6fa2e6c1da4ce15","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.17.tgz","fileCount":13,"integrity":"sha512-ckUreik8YcyHp2UfPnXfsf6wnCRFUUjqZEX1skPrkBD7APnhhaI1fm0LqW5u8Q2R6idqvyfWEyUz/4QcBV9CtQ==","signatures":[{"sig":"MEUCIQDILnaBAXICpalUuXebKWVIfBQA34yykObYP40d/pLlTgIgOtx8tJmBi1W74fgZNcS8ygJISBqLBG+gS5V0pTkat8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187613},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.17_1768138713845_0.21605460796898757","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@atik9157/aiui-react-sdk","version":"1.0.18","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.18","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"f8bffaf03bf04b7c7c5daf13e3a14de65d854435","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.18.tgz","fileCount":13,"integrity":"sha512-/ax5cyYUp3FrVPLcOOtlqQ1E1G9jeLk/bylV0GIOfbWoTI0b1mfYl/q64+5Q33jMQk9/weUos95zaPb9YEjQNw==","signatures":[{"sig":"MEYCIQCdEIDxTAnFH8xR/VnVmO0g433tza+tt1t6WlAuoN/V8gIhAKEMORE5w72A8yrYudihb4OXhofU2yd6BWWEclzZPNQx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187811},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.18_1768139653817_0.3330142883941756","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@atik9157/aiui-react-sdk","version":"1.0.19","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.19","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"6ad3b758605dd8630d031d5bc4fc668c79b34ee7","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.19.tgz","fileCount":13,"integrity":"sha512-1UbMsbrF8AYqXpMo26Rsw0zb8a9MjjGMAGqHE2+W041mNau5EgG345jUHZzyYRzBZvUSkhjHHddBtlEUs6HcUw==","signatures":[{"sig":"MEYCIQDq5qyIZjOEtug4BBVvuZVxfwrv8h9HeekCXCpo12h3yAIhAMsDEBJUbLXZwkwycYggQxTlzKVWvbGPleIrG5nqtio3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192623},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.19_1769276378498_0.8688304408118446","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@atik9157/aiui-react-sdk","version":"1.0.20","keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","_id":"@atik9157/aiui-react-sdk@1.0.20","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"dist":{"shasum":"f9fee6df5c645c29c1efc2ada5a5d1fc0db2839c","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.20.tgz","fileCount":15,"integrity":"sha512-1YCoNm7ZQMHyfLDSO/iBTy83Ye6kbEHGlQZhYa2IvikHCPPmMdTXc0IaKo99nibMon4aLnKyO1faRzA26wnTJw==","signatures":[{"sig":"MEYCIQD1vCqwae4fgMb1NsCs5py/f0SXxXxBL3Xu4j6VEKgSfAIhAK/vpd7eTmFA2kgTqh2O7Q/vliscltG5X/TaHAQIe3nD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196834},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","scripts":{"dev":"rollup -c -w","build":"rollup -c","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean","typecheck":"tsc --noEmit"},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"_npmVersion":"11.6.2","description":"Transform any React app into a voice-controllable interface","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","tslib":"^2.8.1","rollup":"^4.9.0","react-dom":"^18.2.0","typescript":"^5.3.3","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","@rollup/plugin-url":"^8.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-node-resolve":"^15.2.3","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/aiui-react-sdk_1.0.20_1769318891766_0.7031637881452941","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@atik9157/aiui-react-sdk","version":"1.0.21","type":"module","description":"Transform any React app into a voice-controllable interface","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"build":"rollup -c","dev":"rollup -c -w","typecheck":"tsc --noEmit","clean":"rmdir /s /q dist 2>nul || echo Clean","prebuild":"npm run clean"},"keywords":["react","voice-control","ai","accessibility"],"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"devDependencies":{"@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.5","@rollup/plugin-url":"^8.0.2","@types/node":"^24.9.2","@types/react":"^18.2.43","@types/react-dom":"^18.2.17","react":"^18.2.0","react-dom":"^18.2.0","rollup":"^4.9.0","rollup-plugin-peer-deps-external":"^2.2.4","tslib":"^2.8.1","typescript":"^5.3.3"},"gitHead":"951e32b57f6ac5a801dba34834d63f149fe41417","_id":"@atik9157/aiui-react-sdk@1.0.21","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-fSkVpAVArQs0tQC2wuXwV0lF8flXwuRdssam7lOOAV6+f3L4gfnOhdIaBIEhQFD5VP80EoQK+Fsc483I1NPt7w==","shasum":"82602a891e995cf36b8305bf2c8a0db12842585d","tarball":"https://registry.npmjs.org/@atik9157/aiui-react-sdk/-/aiui-react-sdk-1.0.21.tgz","fileCount":15,"unpackedSize":197100,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD71/RYvDqp9V3ltPdC3VSGUTevOQboaQEHs1GwzdmAlwIhAODREHqhHt1bnD7wQUxuhm8YryJSWZWTHjydVJS8jxCH"}]},"_npmUser":{"name":"atik9157","email":"atikdrmc1207@gmail.com"},"directories":{},"maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aiui-react-sdk_1.0.21_1769323550825_0.6817647663322399"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-19T06:57:46.961Z","modified":"2026-01-25T06:45:51.129Z","1.0.0":"2025-11-19T06:57:47.247Z","1.0.1":"2025-11-19T07:06:15.798Z","1.0.2":"2025-11-25T12:42:28.200Z","1.0.3":"2025-11-25T17:46:49.310Z","1.0.4":"2025-11-28T09:37:00.227Z","1.0.5":"2025-11-29T12:51:58.261Z","1.0.6":"2025-11-30T17:29:20.546Z","1.0.7":"2025-12-01T05:48:36.792Z","1.0.8":"2025-12-10T17:51:01.960Z","1.0.9":"2025-12-10T18:18:11.761Z","1.0.10":"2025-12-10T18:22:20.346Z","1.0.11":"2025-12-10T18:36:21.738Z","1.0.12":"2025-12-10T18:43:45.620Z","1.0.13":"2025-12-10T19:01:42.040Z","1.0.14":"2025-12-13T22:53:19.532Z","1.0.15":"2025-12-16T06:10:55.812Z","1.0.16":"2025-12-17T06:01:05.820Z","1.0.17":"2026-01-11T13:38:34.002Z","1.0.18":"2026-01-11T13:54:13.981Z","1.0.19":"2026-01-24T17:39:38.655Z","1.0.20":"2026-01-25T05:28:11.947Z","1.0.21":"2026-01-25T06:45:51.012Z"},"author":{"name":"Md Mahabube Alahi Atik","email":"atikdrmc1207@gmail.com"},"license":"MIT","keywords":["react","voice-control","ai","accessibility"],"description":"Transform any React app into a voice-controllable interface","maintainers":[{"name":"atik9157","email":"atikdrmc1207@gmail.com"}],"readme":"# @atik9157/aiui-react-sdk\r\n\r\n[![npm version](https://badge.fury.io/js/@atik9157%2Faiui-react-sdk.svg)](https://www.npmjs.com/package/@atik9157/aiui-react-sdk)\r\n[![npm downloads](https://img.shields.io/npm/dm/@atik9157/aiui-react-sdk.svg)](https://www.npmjs.com/package/@atik9157/aiui-react-sdk)\r\n[![license](https://img.shields.io/npm/l/@atik9157/aiui-react-sdk.svg)](https://github.com/atik9157/aiui-react-sdk/blob/main/LICENSE)\r\n\r\nTransform any React application into a **voice-controllable interface** with AI-powered context awareness. This SDK automatically discovers your UI elements and enables natural voice interactions.\r\n\r\n## ✨ Features\r\n\r\n- 🎤 **Voice Control** - Natural voice commands to interact with your UI\r\n- 🧠 **Smart Context Detection** - Automatically discovers and tracks interactive elements\r\n- 🔄 **Real-time Updates** - Efficient DOM change detection with incremental context updates\r\n- 🎯 **Semantic Actions** - Interact with elements using natural language descriptions\r\n- 🔒 **Privacy-First** - Built-in data filtering and redaction for sensitive information\r\n- 📱 **Multi-Select Support** - Handle complex dropdown and multi-select interactions\r\n- ⚡ **Optimized Performance** - Smart debouncing and efficient WebSocket communication\r\n- 🎨 **AI-Agnostic Backend** - Works with OpenAI, Claude, local models, or any AI\r\n- 📦 **TypeScript Support** - Full type definitions included\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\nnpm install @atik9157/aiui-react-sdk\r\n```\r\n\r\n### Required Audio Worklet Files\r\n\r\n**Important:** You must add two audio worklet processor files to your `public` folder for voice functionality:\r\n\r\n#### 1. Create `public/player-processor.js`:\r\n\r\n```javascript\r\n/*  Audio playback worklet  */\r\nclass PlayerProcessor extends AudioWorkletProcessor {\r\n  constructor() {\r\n    super();\r\n    this.queue  = [];\r\n    this.offset = 0;\r\n    this.port.onmessage = e => this.queue.push(e.data);\r\n  }\r\n\r\n  process(_, outputs) {\r\n    const out = outputs[0][0];\r\n    let idx   = 0;\r\n\r\n    while (idx < out.length) {\r\n      if (!this.queue.length) {\r\n        out.fill(0, idx);\r\n        break;\r\n      }\r\n      const buf  = this.queue[0];\r\n      const copy = Math.min(buf.length - this.offset, out.length - idx);\r\n      out.set(buf.subarray(this.offset, this.offset + copy), idx);\r\n\r\n      idx        += copy;\r\n      this.offset += copy;\r\n\r\n      if (this.offset >= buf.length) {\r\n        this.queue.shift();\r\n        this.offset = 0;\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n}\r\n\r\nregisterProcessor('player-processor', PlayerProcessor);\r\n```\r\n\r\n#### 2. Create `public/worklet-processor.js`:\r\n\r\n```javascript\r\n/* Microphone worklet - captures and downsamples to 16kHz */\r\nclass MicProcessor extends AudioWorkletProcessor {\r\n  constructor () {\r\n    super();\r\n    this.dstRate   = 16_000;\r\n    this.frameMs   = 20;\r\n    this.srcRate   = sampleRate;\r\n    this.ratio     = this.srcRate / this.dstRate;\r\n    this.samplesPerPacket = Math.round(this.dstRate * this.frameMs / 1_000);\r\n    this.packet    = new Int16Array(this.samplesPerPacket);\r\n    this.pIndex    = 0;\r\n    this.acc       = 0;\r\n    this.seq       = 0;\r\n  }\r\n\r\n  process (inputs) {\r\n    const input = inputs[0];\r\n    if (!input || !input[0]?.length) return true;\r\n\r\n    const ch = input[0];\r\n    for (let i = 0; i < ch.length; i++) {\r\n      this.acc += 1;\r\n      if (this.acc >= this.ratio) {\r\n        const s = Math.max(-1, Math.min(1, ch[i]));\r\n        this.packet[this.pIndex++] = s < 0 ? s * 32768 : s * 32767;\r\n        this.acc -= this.ratio;\r\n\r\n        if (this.pIndex === this.packet.length) {\r\n          this.port.postMessage(this.packet.buffer, [this.packet.buffer]);\r\n          this.packet = new Int16Array(this.samplesPerPacket);\r\n          this.pIndex = 0;\r\n          this.seq++;\r\n        }\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n}\r\n\r\nregisterProcessor(\"mic-processor\", MicProcessor);\r\n```\r\n\r\n**Your project structure should look like:**\r\n```\r\nyour-app/\r\n├── public/\r\n│   ├── player-processor.js    ← Required for audio playback\r\n│   ├── worklet-processor.js   ← Required for microphone input\r\n│   └── index.html\r\n├── src/\r\n│   └── App.tsx\r\n└── package.json\r\n```\r\n\r\n> ⚠️ **Note:** These worklet files must be in the `public` folder and served at `/player-processor.js` and `/worklet-processor.js` URLs. The SDK loads them at runtime for audio processing.\r\n\r\n## 🚀 Quick Start\r\n\r\n### 1. Wrap your app with AIUIProvider\r\n\r\n```tsx\r\nimport { AIUIProvider } from '@atik9157/aiui-react-sdk';\r\nimport type { AIUIConfig } from '@atik9157/aiui-react-sdk';\r\n\r\nconst config: AIUIConfig = {\r\n  applicationId: 'my-awesome-app',\r\n  serverUrl: 'wss://your-aiui-server.com',\r\n  apiKey: 'your-api-key', // Optional\r\n  pages: [\r\n    {\r\n      route: '/',\r\n      title: 'Home',\r\n      safeActions: ['click', 'set_value'],\r\n    },\r\n    {\r\n      route: '/dashboard',\r\n      title: 'Dashboard',\r\n    }\r\n  ]\r\n};\r\n\r\nfunction App() {\r\n  return (\r\n    <AIUIProvider config={config}>\r\n      <YourApp />\r\n    </AIUIProvider>\r\n  );\r\n}\r\n```\r\n\r\n### 2. Add voice control button\r\n\r\n```tsx\r\nimport { useAIUI } from '@atik9157/aiui-react-sdk';\r\n\r\nfunction VoiceControlButton() {\r\n  const { isConnected, isListening, startListening, stopListening } = useAIUI();\r\n\r\n  return (\r\n    <div>\r\n      <p>Status: {isConnected ? '🟢 Connected' : '🔴 Disconnected'}</p>\r\n      <button onClick={isListening ? stopListening : startListening}>\r\n        {isListening ? '🎤 Listening...' : '🔇 Start Voice Control'}\r\n      </button>\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n### 3. That's it! Your app is now voice-controllable 🎉\r\n\r\nUsers can now say things like:\r\n- *\"Click the submit button\"*\r\n- *\"Fill in the email field with john@example.com\"*\r\n- *\"Navigate to the dashboard page\"*\r\n- *\"Select Marketing and Sales from the categories dropdown\"*\r\n\r\n## 📚 Configuration\r\n\r\n### AIUIConfig\r\n\r\n| Property | Type | Required | Description |\r\n|----------|------|----------|-------------|\r\n| `applicationId` | `string` | ✅ | Unique identifier for your application |\r\n| `serverUrl` | `string` | ✅ | WebSocket URL of your AIUI server |\r\n| `apiKey` | `string` | ❌ | Authentication key for your server |\r\n| `pages` | `MinimalPageConfig[]` | ✅ | Array of page configurations |\r\n| `safetyRules` | `SafetyRules` | ❌ | Security and safety configurations |\r\n| `privacy` | `PrivacyConfig` | ❌ | Privacy and data filtering rules |\r\n\r\n### Page Configuration\r\n\r\n```tsx\r\ninterface MinimalPageConfig {\r\n  route: string;              // Page route (e.g., '/dashboard')\r\n  title?: string;             // Page title for context\r\n  safeActions?: string[];     // Allowed actions on this page\r\n  dangerousActions?: string[]; // Actions requiring confirmation\r\n}\r\n```\r\n\r\n### Safety Rules\r\n\r\nProtect your users by restricting dangerous actions and sensitive areas:\r\n\r\n```tsx\r\nsafetyRules: {\r\n  requireConfirmation: ['delete', 'submit_payment', 'purchase'],\r\n  blockedSelectors: ['.admin-only', '[data-sensitive]'],\r\n  allowedDomains: ['yourapp.com', 'api.yourapp.com']\r\n}\r\n```\r\n\r\n### Privacy Configuration\r\n\r\nAutomatically redact sensitive information from context:\r\n\r\n```tsx\r\nprivacy: {\r\n  exposePasswords: false,\r\n  exposeCreditCards: false,\r\n  redactPatterns: ['ssn', 'social-security', 'credit-card']\r\n}\r\n```\r\n\r\n## 🎯 Supported Actions\r\n\r\nThe SDK automatically detects and enables these actions on interactive elements:\r\n\r\n| Action | Description | Example Voice Command |\r\n|--------|-------------|----------------------|\r\n| `click` | Click buttons, links, and interactive elements | *\"Click the submit button\"* |\r\n| `set_value` | Set input/textarea values | *\"Set email to john@example.com\"* |\r\n| `select_from_dropdown` | Select options from dropdowns | *\"Select Design and Marketing\"* |\r\n| `toggle` | Toggle checkboxes | *\"Toggle the remember me checkbox\"* |\r\n| `navigate` | Navigate between routes | *\"Navigate to dashboard\"* |\r\n\r\n## 🔧 Advanced Usage\r\n\r\n### Programmatic Action Execution\r\n\r\nExecute actions programmatically without voice:\r\n\r\n```tsx\r\nimport { useAIUI } from '@atik9157/aiui-react-sdk';\r\n\r\nfunction MyComponent() {\r\n  const { executeAction } = useAIUI();\r\n\r\n  const handleCustomAction = async () => {\r\n    try {\r\n      const result = await executeAction('click', { \r\n        semantic: 'submit button' \r\n      });\r\n      \r\n      if (result.success) {\r\n        console.log('Action executed successfully!');\r\n      }\r\n    } catch (error) {\r\n      console.error('Action failed:', error);\r\n    }\r\n  };\r\n\r\n  return <button onClick={handleCustomAction}>Execute Action</button>;\r\n}\r\n```\r\n\r\n### Index-Aware Element Selection\r\n\r\nWhen multiple identical elements exist (e.g., multiple \"Delete\" buttons), use index notation:\r\n\r\n```tsx\r\n// Using number notation\r\nawait executeAction('click', { semantic: 'Delete button #3' });\r\n\r\n// Using ordinal words\r\nawait executeAction('click', { semantic: 'second delete button' });\r\n```\r\n\r\nVoice commands work the same way:\r\n- *\"Click the third delete button\"*\r\n- *\"Click delete button number 2\"*\r\n\r\n### Enhanced Multi-Select Dropdowns\r\n\r\nFor React Select or custom dropdowns, add semantic attributes to enable voice selection:\r\n\r\n```tsx\r\n<input\r\n  data-select-field=\"project-categories\"\r\n  data-select-options=\"Design|||Development|||Marketing|||Sales\"\r\n  placeholder=\"Select categories\"\r\n/>\r\n```\r\n\r\nThen users can say:\r\n- *\"Select Design and Marketing from project categories\"*\r\n- *\"Choose Development and Sales\"*\r\n\r\n### Getting Component Values\r\n\r\nRead values from discovered elements:\r\n\r\n```tsx\r\nconst { getComponentValue } = useAIUI();\r\n\r\nconst emailValue = getComponentValue('#email-input');\r\nconsole.log('Email:', emailValue);\r\n```\r\n\r\n### Monitoring Context Changes\r\n\r\nTrack when the UI context changes:\r\n\r\n```tsx\r\nconst { currentPage } = useAIUI();\r\n\r\nuseEffect(() => {\r\n  console.log('Current page:', currentPage);\r\n}, [currentPage]);\r\n```\r\n\r\n## 🎨 TypeScript Support\r\n\r\nFull TypeScript definitions are included:\r\n\r\n```tsx\r\nimport type {\r\n  AIUIConfig,\r\n  MinimalPageConfig,\r\n  SafetyRules,\r\n  PrivacyConfig,\r\n  ActionType,\r\n  ActionParams,\r\n  ActionResult,\r\n  ContextUpdate,\r\n  DiscoveredElementState\r\n} from '@atik9157/aiui-react-sdk';\r\n```\r\n\r\n## 🖥️ Development Mode\r\n\r\nThe SDK includes a development overlay showing real-time connection status:\r\n\r\n```tsx\r\n// Automatically shown when NODE_ENV === 'development'\r\n// Displays:\r\n// - AIUI connection status (🟢/🔴)\r\n// - Microphone status (🎤/🔇)\r\n// - Current page route\r\n```\r\n\r\nThe overlay appears in the bottom-right corner and helps you debug connectivity issues during development.\r\n\r\n## 📖 Examples\r\n\r\n### Basic E-commerce Store\r\n\r\n```tsx\r\nimport { AIUIProvider, useAIUI } from '@atik9157/aiui-react-sdk';\r\n\r\nconst config = {\r\n  applicationId: 'ecommerce-store',\r\n  serverUrl: 'wss://aiui.mystore.com',\r\n  pages: [\r\n    { route: '/', title: 'Home' },\r\n    { route: '/products', title: 'Products' },\r\n    { route: '/cart', title: 'Shopping Cart' },\r\n    { route: '/checkout', title: 'Checkout' }\r\n  ],\r\n  safetyRules: {\r\n    requireConfirmation: ['place_order', 'delete_account'],\r\n    blockedSelectors: ['.admin-panel']\r\n  },\r\n  privacy: {\r\n    exposePasswords: false,\r\n    exposeCreditCards: false\r\n  }\r\n};\r\n\r\nfunction App() {\r\n  return (\r\n    <AIUIProvider config={config}>\r\n      <Store />\r\n    </AIUIProvider>\r\n  );\r\n}\r\n```\r\n\r\nVoice commands your users can use:\r\n- *\"Add the blue shirt to cart\"*\r\n- *\"Navigate to checkout\"*\r\n- *\"Fill shipping address with 123 Main St\"*\r\n- *\"Select express shipping\"*\r\n\r\n### Dashboard with Filters\r\n\r\n```tsx\r\n<div className=\"filters\">\r\n  <label>Project Categories</label>\r\n  <input\r\n    data-select-field=\"categories\"\r\n    data-select-options=\"Frontend|||Backend|||DevOps|||Design|||Marketing\"\r\n    placeholder=\"Select categories...\"\r\n  />\r\n  \r\n  <label>Status</label>\r\n  <input\r\n    data-select-field=\"status\"\r\n    data-select-options=\"Active|||Pending|||Completed|||Archived\"\r\n    placeholder=\"Select status...\"\r\n  />\r\n</div>\r\n```\r\n\r\nVoice commands:\r\n- *\"Select Frontend and Backend from categories\"*\r\n- *\"Choose Active from status\"*\r\n- *\"Select Design, Marketing and DevOps\"*\r\n\r\n### Form Filling\r\n\r\n```tsx\r\n<form>\r\n  <input \r\n    type=\"text\" \r\n    name=\"name\" \r\n    placeholder=\"Full Name\"\r\n    aria-label=\"Full Name Input\"\r\n  />\r\n  <input \r\n    type=\"email\" \r\n    name=\"email\" \r\n    placeholder=\"Email Address\"\r\n    aria-label=\"Email Input\"\r\n  />\r\n  <textarea \r\n    name=\"message\" \r\n    placeholder=\"Your message\"\r\n    aria-label=\"Message Input\"\r\n  />\r\n  <button type=\"submit\">Submit Form</button>\r\n</form>\r\n```\r\n\r\nVoice commands:\r\n- *\"Set full name to John Smith\"*\r\n- *\"Fill email with john@example.com\"*\r\n- *\"Set message to I would like more information\"*\r\n- *\"Click submit form\"*\r\n\r\n## 🏗️ Architecture Overview\r\n\r\nThe SDK is the **browser-side component** that communicates with your backend server:\r\n\r\n```\r\n┌─────────────────────────────────────────────────────┐\r\n│         Your React Application (Client)              │\r\n│          (@atik9157/aiui-react-sdk)                 │\r\n│                                                      │\r\n│  ✓ Discovers interactive elements automatically    │\r\n│  ✓ Streams UI context to your server                │\r\n│  ✓ Executes actions from server commands            │\r\n│  ✓ Handles voice audio I/O                          │\r\n└──────────────────┬──────────────────────────────────┘\r\n                   │\r\n                   │ AIUI Protocol (WebSocket)\r\n                   │ • Real-time context updates\r\n                   │ • Action commands\r\n                   │ • Bidirectional audio\r\n                   │\r\n                   ▼\r\n┌─────────────────────────────────────────────────────┐\r\n│              Your AIUI Server (Backend)              │\r\n│         (You need to implement this)                 │\r\n│                                                      │\r\n│  ✓ Receives UI context from SDK                     │\r\n│  ✓ Processes voice with STT (Speech-to-Text)        │\r\n│  ✓ Uses AI to understand commands and context       │\r\n│  ✓ Sends action commands back to SDK                │\r\n│  ✓ Generates voice responses with TTS               │\r\n│                                                      │\r\n│  Works with: OpenAI, Claude, Gemini, Ollama, etc.   │\r\n└─────────────────────────────────────────────────────┘\r\n```\r\n\r\n## 🔌 Backend Server Requirements\r\n\r\nYour backend server needs to implement the **AIUI Protocol** - a WebSocket-based protocol for real-time UI control. Here's what you need:\r\n\r\n### Required WebSocket Endpoints\r\n\r\n**1. `/context` endpoint** - For UI context and action commands\r\n- Receives UI state updates from the SDK\r\n- Sends action commands back to SDK\r\n- Query params: `applicationId` (required), `apiKey` (optional)\r\n\r\n**2. `/audio` endpoint** - For voice interaction\r\n- Receives microphone audio: 16kHz PCM Int16Array\r\n- Sends playback audio: 24kHz PCM Int16Array\r\n\r\n### Key Message Types Your Server Will Receive\r\n\r\n**context_update** - Complete UI state\r\n```javascript\r\n{\r\n  type: 'context_update',\r\n  page: { route: '/dashboard', title: 'Dashboard' },\r\n  elements: [\r\n    {\r\n      semantic: 'Submit button',\r\n      type: 'button',\r\n      actions: ['click'],\r\n      selector: 'button.submit:nth-of-type(1)'\r\n    }\r\n    // ... more elements\r\n  ],\r\n  viewport: { width: 1920, height: 1080 }\r\n}\r\n```\r\n\r\n**context_append** - New elements added (e.g., modal opened)\r\n```javascript\r\n{\r\n  type: 'context_append',\r\n  elements: [/* only new elements */]\r\n}\r\n```\r\n\r\n### Messages Your Server Sends to SDK\r\n\r\n**action** - Command SDK to perform action\r\n```javascript\r\n{\r\n  type: 'action',\r\n  action: 'click',\r\n  params: { semantic: 'submit button' }\r\n}\r\n```\r\n\r\n### Basic Server Implementation Example\r\n\r\n```javascript\r\nconst WebSocket = require('ws');\r\nconst wss = new WebSocket.Server({ port: 8080 });\r\n\r\nwss.on('connection', (ws, req) => {\r\n  const path = new URL(req.url, 'ws://localhost').pathname;\r\n  \r\n  if (path === '/context') {\r\n    ws.on('message', async (data) => {\r\n      const msg = JSON.parse(data);\r\n      \r\n      if (msg.type === 'context_update') {\r\n        // 1. Get UI context\r\n        const context = msg.context;\r\n        \r\n        // 2. Process with your AI (OpenAI, Claude, etc.)\r\n        const action = await processWithAI(context, userCommand);\r\n        \r\n        // 3. Send action back to SDK\r\n        ws.send(JSON.stringify({\r\n          type: 'action',\r\n          action: 'click',\r\n          params: { semantic: 'submit button' }\r\n        }));\r\n      }\r\n    });\r\n  }\r\n});\r\n```\r\n\r\nFor complete protocol documentation and server examples, see the [AIUI Protocol Specification](https://github.com/atik9157/aiui-react-sdk/blob/main/PROTOCOL.md).\r\n\r\n## 🌐 Browser Compatibility\r\n\r\n| Browser | Status | Notes |\r\n|---------|--------|-------|\r\n| Chrome/Edge | ✅ Full support | Recommended |\r\n| Firefox | ✅ Full support | |\r\n| Safari | ✅ Full support | Uses webkit prefix for AudioContext |\r\n| Mobile browsers | ✅ Supported | Microphone permissions required |\r\n\r\n**Minimum Requirements:**\r\n- Modern browser with WebSocket support\r\n- Web Audio API support\r\n- Microphone access (for voice features)\r\n\r\n## 🤝 Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n1. Fork the repository\r\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\r\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push to the branch (`git push origin feature/AmazingFeature`)\r\n5. Open a Pull Request\r\n\r\n## 📝 License\r\n\r\nMIT © [Md Mahabube Alahi Atik](mailto:atikdrmc1207@gmail.com)\r\n\r\n## 🐛 Issues & Support\r\n\r\nFound a bug or have a question?\r\n\r\n- 📧 Email: atikdrmc1207@gmail.com\r\n- 🐛 GitHub Issues: [Report a bug](https://github.com/atik9157/aiui-react-sdk/issues)\r\n- 📦 npm: [@atik9157/aiui-react-sdk](https://www.npmjs.com/package/@atik9157/aiui-react-sdk)\r\n\r\n## 🙏 Acknowledgments\r\n\r\nBuilt with:\r\n- React\r\n- TypeScript\r\n- Web Audio API\r\n- WebSocket Protocol\r\n\r\n---\r\n\r\n**Made with ❤️ by [Md Mahabube Alahi Atik](https://github.com/atik9157)**\r\n\r\n*Transform your React apps into voice-controllable interfaces today!* 🚀","readmeFilename":"README.md"}