{"_id":"orb-ui","_rev":"16-c1d22e205c15463542016e718d18f346","name":"orb-ui","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.0":{"name":"orb-ui","version":"0.1.0","keywords":["voice","ai","react","animation","component","vapi","elevenlabs"],"license":"MIT","_id":"orb-ui@0.1.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://github.com/alexanderqchen/orb-ui#readme","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"1bb5595803be834bef612826368dbfbe3a4f4814","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.1.0.tgz","fileCount":6,"integrity":"sha512-9toh34Yoeexg7w0a5AOfCiNcsc95twdjRvYZQut/CrwVS3UOIPW2/tj+RanNTlcHfSUMw4JHUx2wwbe9NcBlVQ==","signatures":[{"sig":"MEUCIBenU09GtNNmzZoGB7s7QkjxFieqN8YLHCSAPEAHguBJAiEAq1Cl137fTz6ru/WIi1R63Ch+64HN/x2bND9LNViV/Ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28434},"type":"module","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js"}},"gitHead":"5b1cc310c012efbaa87e615562d70612ecde3387","scripts":{"dev":"vite build --watch","lint":"eslint src","test":"vitest","build":"tsc && vite build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"},"repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"The simplest voice AI UI component library for React. Works with Vapi and ElevenLabs.","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.3.0","eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/react":"^18.3.0","vite-plugin-dts":"^3.9.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.1.0_1772842212452_0.9802612071569197","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"orb-ui","version":"0.1.1","keywords":["voice","ai","react","animation","component","vapi","elevenlabs"],"license":"MIT","_id":"orb-ui@0.1.1","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://github.com/alexanderqchen/orb-ui#readme","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"0715a80d76ab231383b7b727ccb4a81fc19bdcc0","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.1.1.tgz","fileCount":6,"integrity":"sha512-4Mk4A9oYv4877JqVCufcwLPkmcHoxoy2NOZG+Q3V6od4erIDv1o2/NKvk91DwtI1pn8FDqKfvyiJkSAeLGhC1g==","signatures":[{"sig":"MEYCIQDG8j2ghKeEqbhLIlHK8vpM93dv+atFNPGsICI9olJInQIhAKIiXpVGdavV9NJxaUww6A2B9K1F+pHkOS0AxrOTpR2c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28433},"type":"module","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js"}},"gitHead":"e04079e21a26a99ad2d6b3e9d34c2055c7da3e59","scripts":{"dev":"vite build --watch","lint":"eslint src","test":"vitest","build":"tsc && vite build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"},"repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"The simplest voice AI UI component library for React. Works with Vapi and ElevenLabs.","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.3.0","eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/react":"^18.3.0","vite-plugin-dts":"^3.9.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.1.1_1772978093413_0.6390586571231216","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"orb-ui","version":"0.2.0","keywords":["voice","voice-ui","voice-agent","ai","react","animation","component","state-machine","vapi","elevenlabs"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.2.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui-demo.vercel.app","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"6a39162c89c058900433af0daefdc6d0e38f7a0d","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.2.0.tgz","fileCount":8,"integrity":"sha512-j4a4pGpsSmZxbDCPM/cRYyU4LO9jf64kgCxSmV559qVzwUiaRgmxGb2C8romHy5RSr8zMahXjBYsvadWlfnKKA==","signatures":[{"sig":"MEUCIQDfAiWnCCN9PoYx5eAeXIzwplip+PT/wwY4Jzymtk2FxQIgHfiubUMln1Tw8W9SwRnk0RJ1+u0daERyWa0me92ymHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47011},"main":"./dist/orb-ui.cjs","type":"module","types":"./dist/orb-ui.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/orb-ui.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"gitHead":"5fe6bcc92adddc2ee27966ab848c038c9f0b7df4","scripts":{"dev":"vite build --watch","lint":"eslint src","test":"vitest","build":"tsc && vite build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"},"repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"The simplest way to add voice UI to your React app. One install, one component, works with Vapi and ElevenLabs out of the box.","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"typesVersions":{"*":{"adapters":["./dist/adapters.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.3.0","eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/react":"^18.3.0","vite-plugin-dts":"^3.9.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.2.0_1773433383613_0.785771803361426","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"orb-ui","version":"0.2.1","keywords":["voice","voice-ui","voice-agent","ai","react","animation","component","state-machine","vapi","elevenlabs"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.2.1","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui-demo.vercel.app","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"13d645fd54bad430d5a957733447e0fe8d1c5794","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.2.1.tgz","fileCount":8,"integrity":"sha512-9e+itl3zyK83aEoYJHbvWHcXpanynePj3StIt8/X1aIZ7B+fCLkNkYAQwAqR6M0L2+/eRM206vRi9iTdzWH76A==","signatures":[{"sig":"MEQCIDtNqGFIPNJmaZV+M563jzayi+dP+gVm++bh9eKmJyp6AiAilvzbe7t/asn6m38UV+JBdS6KEeSSA9nHL/n3WwImcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46965},"main":"./dist/orb-ui.cjs","type":"module","types":"./dist/orb-ui.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/orb-ui.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"gitHead":"a6f0cc656c97051569521781dec24d90de81a07a","scripts":{"dev":"vite build --watch","lint":"eslint src","test":"vitest","build":"tsc && vite build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"},"repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"The simplest way to add voice UI to your React app. One install, one component, works with Vapi and ElevenLabs out of the box.","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"typesVersions":{"*":{"adapters":["./dist/adapters.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.3.0","eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/react":"^18.3.0","vite-plugin-dts":"^3.9.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.2.1_1773433560530_0.0727496752939194","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"orb-ui","version":"0.2.2","keywords":["voice","voice-ui","voice-agent","ai","react","animation","component","state-machine","vapi","elevenlabs"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.2.2","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"420045d442a2636de8c355a814d086cdeefbc892","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.2.2.tgz","fileCount":8,"integrity":"sha512-fyCrpgjyveoWKa61DwjLbxqHK/PHCdZWlg4rfUmOifJtlJTzOZtpsdVmQOlUat0sS+wTCLuvZhfX4hZamwPk9A==","signatures":[{"sig":"MEYCIQC7NLVoEo0hGkbz5RoLyJnj8dG/YM6nurgJV3lNeI4n9AIhAMKecV1AVzYG01+EBzczNAng4evKwXy92IEI0KzmxmRN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46929},"main":"./dist/orb-ui.cjs","type":"module","types":"./dist/orb-ui.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/orb-ui.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"gitHead":"660d3074938681155413e3df53ccd344adf4dc26","scripts":{"dev":"vite build --watch","lint":"eslint src","test":"vitest","build":"tsc && vite build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"},"repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"The simplest way to add voice UI to your React app. One install, one component, works with Vapi and ElevenLabs out of the box.","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"typesVersions":{"*":{"adapters":["./dist/adapters.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.3.0","eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/react":"^18.3.0","vite-plugin-dts":"^3.9.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.2.2_1773433591921_0.9457946692715273","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"orb-ui","version":"0.2.3","keywords":["voice","voice-ui","voice-agent","ai","react","animation","component","state-machine","vapi","elevenlabs"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.2.3","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"68b65754de48b0febae3e6f3d65d286edf9b9d10","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.2.3.tgz","fileCount":8,"integrity":"sha512-XWnn8yMLBJSCpO4fLNtZPdI0dinXdExwn6L+ZlUGIY8lUzVbanUMqT9PRRbxFBeBePblPf0Z6yD8efrBlCn3sA==","signatures":[{"sig":"MEUCIQDad4EBjAt0QaCORIXdv6RHrBQOT8mfI28wZ48esNw8pQIgNNTEMtpcu7m01puegA9fh1gVKM4vdBt83T5w6JAQiXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46912},"main":"./dist/orb-ui.cjs","type":"module","types":"./dist/orb-ui.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/orb-ui.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"gitHead":"9e74fe3816f3eae534ef00c2e1ec14df0d515112","scripts":{"dev":"vite build --watch","lint":"eslint src","test":"vitest","build":"tsc && vite build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"},"repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"10.9.4","description":"The simplest way to add voice UI to your React app. One install, one component, works with Vapi and ElevenLabs out of the box.","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"typesVersions":{"*":{"adapters":["./dist/adapters.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.3.0","eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/react":"^18.3.0","vite-plugin-dts":"^3.9.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.3.0","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.2.3_1773434054250_0.3589513152466608","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"orb-ui","version":"0.2.4","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.2.4","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"b1af0866e941381ee3d526ba972d8bd62205590f","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.2.4.tgz","fileCount":22,"integrity":"sha512-zz3uhHWYFmwA/frgqN/kG7U0iYGbOvekFobTiU3FK9WJ4F1trvJnPJ/VJ2XGCtxAVbXyiSJtVNkXqdNMkf2Mog==","signatures":[{"sig":"MEUCIDkzu6D5jBTWS3ORamVpRcCHgmZ3vBefQyEz+nV5+i5sAiEA1/V07OLrEez533IN/vxLFle8A0qgHdj+VcL4ITimC+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56012},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.2.4.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm build:demo","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/27245f42d39da515686ac155c55b8d6a/orb-ui-0.2.4.tgz","_integrity":"sha512-zz3uhHWYFmwA/frgqN/kG7U0iYGbOvekFobTiU3FK9WJ4F1trvJnPJ/VJ2XGCtxAVbXyiSJtVNkXqdNMkf2Mog==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.13.0","description":"React voice agent UI components with animated voice orbs, audio-reactive themes, and adapters for Vapi, ElevenLabs, and custom realtime voice AI apps.","directories":{},"_nodeVersion":"24.16.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.2.4_1780930567924_0.6289151380212799","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"orb-ui","version":"0.3.0","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.3.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"51d18fac017cd85afdbdc2dc4700aa7bd7688b40","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.3.0.tgz","fileCount":24,"integrity":"sha512-2i+wxIIaCWHxd8axywZtxqhj/QLO8EwPvs3Z2EhK/ftXWXhRXW2pnFrQviGKBAt3WJvtuJ1eBJmN2cEHUNjlfw==","signatures":[{"sig":"MEUCIQDQEwVYv/9RCH3uTyiN3nf08XUQDNWKAg0bM1wfuH3PqAIgRnZftpIZQfa1edSMKlOkW/KZT2OZjLlCJ9NfuteeQXw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78572},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/fd5bf0cc2c57cb3ec96f6f06f273aeaa/orb-ui-0.3.0.tgz","_integrity":"sha512-2i+wxIIaCWHxd8axywZtxqhj/QLO8EwPvs3Z2EhK/ftXWXhRXW2pnFrQviGKBAt3WJvtuJ1eBJmN2cEHUNjlfw==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"React voice agent UI components with animated voice orbs, audio-reactive themes, and adapters for Vapi, ElevenLabs, LiveKit, and custom realtime voice AI apps.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.3.0_1783701634528_0.1376584885306784","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"orb-ui","version":"0.4.0","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.4.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"82d060a0085f317f2e911303c6c62ceead6c86f3","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.4.0.tgz","fileCount":28,"integrity":"sha512-JrW95Wdl3xhsLphAFyXGzUlVIvBJ1k7QchDtK8MMBwj+3yezZ5DfB/EvetngtQVIU3py7M02JX4xEVhoTdSiRA==","signatures":[{"sig":"MEUCIQCG5SR2aV5MjVHK6RsTTJMascHEAtSmvJ/0XIEgNPx4WwIgU/DgDq1RszJNhUHWMCkydEQAuq9FhJh2oGn7tqKutVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120314},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/524bb7c9140c6724840c08f67445148d/orb-ui-0.4.0.tgz","_integrity":"sha512-JrW95Wdl3xhsLphAFyXGzUlVIvBJ1k7QchDtK8MMBwj+3yezZ5DfB/EvetngtQVIU3py7M02JX4xEVhoTdSiRA==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.4.0_1783726723825_0.6430434341547902","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"orb-ui","version":"0.5.0","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.5.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"18fd4cfcface6d9c0a363f0df4e81b458a81ee0c","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.5.0.tgz","fileCount":33,"integrity":"sha512-MNAEPQB7QwwL2OM3fJZc0sj5Q9D+P7nXLnS9JqN3WswoZ9efDG2Q1+BWTLJ2m3jNAvA2r5OvPNyVHNEsQfGN9g==","signatures":[{"sig":"MEUCIQCUQUNDmJLtQokvpiEAlaaRd3QIpIN2Hjn7R3xNOnZg5AIgbo9GkpssQ5do5SF1TQuHVj1RDHWi5s6M6jM0PXZ3bX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122998},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/ad9e343357860e9d0ba8407dff9ebfde/orb-ui-0.5.0.tgz","_integrity":"sha512-MNAEPQB7QwwL2OM3fJZc0sj5Q9D+P7nXLnS9JqN3WswoZ9efDG2Q1+BWTLJ2m3jNAvA2r5OvPNyVHNEsQfGN9g==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.5.0_1783766722480_0.5732383468051729","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"orb-ui","version":"0.6.0","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.6.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"2c8af09050acc830ec11559c6797228042ab86a9","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.6.0.tgz","fileCount":35,"integrity":"sha512-eX2M5Ou/Em80bKxh7itB0qrDCVUFArRMg6GQFKMlq6U6hPljUBD31bXyHQWQGGzqFJrEcUjEBHsGDfvnQm0knA==","signatures":[{"sig":"MEQCIDoppwMjPcBqZjCCeBNdEb43RsUeY8owhCDJ44fDP5MHAiBtjnRQw3crzmQLuabg+J4h6d0uMOQONTk9e3DGFzgtWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143014},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/7641382076e6aa88b609e64bbccc9d0a/orb-ui-0.6.0.tgz","_integrity":"sha512-eX2M5Ou/Em80bKxh7itB0qrDCVUFArRMg6GQFKMlq6U6hPljUBD31bXyHQWQGGzqFJrEcUjEBHsGDfvnQm0knA==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.6.0_1783958932921_0.27991947512971804","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"orb-ui","version":"0.6.1","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.6.1","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"4e353a5b50fc3954d262581ec55ee705820c3bde","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.6.1.tgz","fileCount":35,"integrity":"sha512-Ie/8YkuMr/peHdSMoix6kuni/u6R//so0Tn/yxn7+9BvYJvBtWEd3+lPifP3GaPSS5eetdO/lMyQaWh/n+epYQ==","signatures":[{"sig":"MEQCIBAMmQMsyf6hsrRee44thKAA6dQ52N7tecEYgYuoZw59AiBJ/1j4PEyT/Z09UuIun8NmmERDGdIyCCpwMT9UR6tUNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149592},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.6.1.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/9c299c2e64f4467ffd7d09efc3c9fbfa/orb-ui-0.6.1.tgz","_integrity":"sha512-Ie/8YkuMr/peHdSMoix6kuni/u6R//so0Tn/yxn7+9BvYJvBtWEd3+lPifP3GaPSS5eetdO/lMyQaWh/n+epYQ==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.6.1_1783964901572_0.7103618366125743","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"orb-ui","version":"0.7.0","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.7.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"8bef877d0e181d6781a672a9a090c57d117bbeda","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.7.0.tgz","fileCount":37,"integrity":"sha512-ipwMdpGO406RqHHky5O1gTz94gAUIapE+bYc50cALJrWejtbi7/HYK3TbY5YGbpQn9Re2lSiIuloi2Dm6Tucrg==","signatures":[{"sig":"MEYCIQCV9ov1bMNJCdY/8+UuhO3f+8ZlzXp9l0TOCMVz/52sRgIhAJKXz817Jh5oa5lQElfjOdyp44SqlxWgnyr/M+VP32ZP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171686},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/5234d15e702655db3514c3b2d186d19b/orb-ui-0.7.0.tgz","_integrity":"sha512-ipwMdpGO406RqHHky5O1gTz94gAUIapE+bYc50cALJrWejtbi7/HYK3TbY5YGbpQn9Re2lSiIuloi2Dm6Tucrg==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.16.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.18.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.5.2","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.7.0_1784131713561_0.5838629352742302","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"orb-ui","version":"0.8.0","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.8.0","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/alexanderqchen/orb-ui/issues"},"dist":{"shasum":"1654337279d355d63943fea1bc315a7300424663","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.8.0.tgz","fileCount":42,"integrity":"sha512-t/mkby+1aRQVv09/koBBDyChlu+lx+re4DC6h172o3KyBQejLwLnAyLdXucpUpOM9HGR/UhkE+eVYQbp1NcnCg==","signatures":[{"sig":"MEUCIGmglXZqfZ42WNHqjptSV6RhpTPSe5yCUvWTtoAyEw7ZAiEA4YgJ1RlwXYkIKN84z1we7hZaJGJhWEAdoRlsifD0BIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDIRXkEqKTNlwBMxoxxJNxd8V5KAdrG2tECJ4BZNOuX4AIhAOAvBGpC97fGuctkTcIbhSwJ66SPABk3eTGnHFfLpqiG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":240722},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","generate:og":"node scripts/generate-og-image.mjs","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0e4d7d3d-0776-4a76-a67e-2d1d60d6e959"}},"_resolved":"/tmp/598881fcdea1ca41603ae811ea505525/orb-ui-0.8.0.tgz","_integrity":"sha512-t/mkby+1aRQVv09/koBBDyChlu+lx+re4DC6h172o3KyBQejLwLnAyLdXucpUpOM9HGR/UhkE+eVYQbp1NcnCg==","repository":{"url":"git+https://github.com/alexanderqchen/orb-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.20.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.7.0","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.8.0_1788849061678_0.09689914111712405","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"orb-ui","version":"0.8.1","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-realtime","gemini-live"],"author":{"name":"Alexander Chen"},"license":"MIT","_id":"orb-ui@0.8.1","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"homepage":"https://orb-ui.com","bugs":{"url":"https://github.com/exprmntl/orb-ui/issues"},"dist":{"shasum":"29ffa56b6f4fe36f7b19d6b7c5cda25043c766b9","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.8.1.tgz","fileCount":42,"integrity":"sha512-tCaYefFywMA/WjDoGSwCDawhoHGlCdI8Vm2OaviG+ZrqemgTKOuW8GNWrCCI8h1L/tJgYvVgWcfSrIqVI9qO7A==","signatures":[{"sig":"MEYCIQD+smO5GlVTGG1bVvvFIhpVO8gErJ3wMcJKfM9gCqqtzAIhAOkJRY6JCvyhUxXVU23AhQewcl3t7XhwEYIcTIgikcq9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC+1u/qYMTVjGu0SPpwDy1wUbx0cgxaV/lXwgq4FOIbSAIhAMLfL3XHe2G4gcbHzX2eAjgIgv0mpwtjLM/z59KOmgIi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":240847},"main":"./dist/orb-ui.cjs","type":"module","_from":"file:orb-ui-0.8.1.tgz","types":"./dist/index.d.ts","module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","generate:og":"node scripts/generate-og-image.mjs","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d944acf-d6d0-4bb3-8c29-807922a70271"}},"_resolved":"/tmp/d930513fd6e7b6276b048c7cdaf5970e/orb-ui-0.8.1.tgz","_integrity":"sha512-tCaYefFywMA/WjDoGSwCDawhoHGlCdI8Vm2OaviG+ZrqemgTKOuW8GNWrCCI8h1L/tJgYvVgWcfSrIqVI9qO7A==","repository":{"url":"git+https://github.com/exprmntl/orb-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"_nodeVersion":"24.20.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.7.0","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/orb-ui_0.8.1_1789612417043_0.4157875463002634","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"orb-ui@0.9.0","bugs":{"url":"https://github.com/exprmntl/orb-ui/issues"},"dist":{"shasum":"80bddab5081269184faebb2b10e845741a3a0cf1","tarball":"https://registry.npmjs.org/orb-ui/-/orb-ui-0.9.0.tgz","fileCount":43,"integrity":"sha512-dtY6kbNcwWvqPdSJc1GqfnxgNgw9KvAUUNj8jXliINrdTWOfaK75WPV0cqTP5rdoF/3wrGjJm+Zsmv7zwwf+sQ==","signatures":[{"sig":"MEUCIB97VrtXSmnNCYYP4xg9D5un9g6XBVZ2bdSGnJlAx8WLAiEAgnf1i1KUBDlIFGsxt57CCHNF+X5ovBAQK1PIgT++3/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDHszIWuME+8CalR11ZfNBsWuFuWDm9mmJ0EIL6Y6JjEgIhAO2xsma32j8Ja5p1GTPREOPvwJjysfNbySmRZP4YPSIa"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/orb-ui@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":255899},"main":"./dist/orb-ui.cjs","name":"orb-ui","type":"module","_from":"file:orb-ui-0.9.0.tgz","types":"./dist/index.d.ts","author":{"name":"Alexander Chen"},"module":"./dist/orb-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/orb-ui.js","require":"./dist/orb-ui.cjs"},"./adapters":{"types":"./dist/adapters/index.d.ts","import":"./dist/adapters.js","require":"./dist/adapters.cjs"},"./adapters/livekit":{"types":"./dist/adapters/livekit/browser.d.ts","import":"./dist/livekit-adapter.js","require":"./dist/livekit-adapter.cjs"}},"license":"MIT","scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run --passWithNoTests","build":"tsc && vite build","check":"pnpm format:check && pnpm lint && pnpm typecheck && pnpm typecheck:examples && pnpm test && pnpm build && pnpm typecheck:package && pnpm typecheck:demo && pnpm build:demo && pnpm test:e2e:built","format":"prettier . --write","release":"pnpm build && changeset publish","dev:demo":"pnpm --filter orb-ui-demo dev","test:e2e":"pnpm build && pnpm test:e2e:built","changeset":"changeset","typecheck":"tsc --noEmit","build:demo":"pnpm --filter orb-ui-demo build","test:watch":"vitest","generate:og":"node scripts/generate-og-image.mjs","format:check":"prettier . --check","test:e2e:built":"tsc -p tests/e2e/tsconfig.json --noEmit && playwright test","typecheck:demo":"pnpm --filter orb-ui-demo typecheck","typecheck:package":"tsc -p tsconfig.package-types.json --noEmit","typecheck:examples":"tsc -p tsconfig.type-tests.json --noEmit"},"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d944acf-d6d0-4bb3-8c29-807922a70271"}},"homepage":"https://orb-ui.com","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-live","openai-realtime","gemini-live"],"_resolved":"/tmp/ee7c1db9d64167a446d47f1ba764566e/orb-ui-0.9.0.tgz","_integrity":"sha512-dtY6kbNcwWvqPdSJc1GqfnxgNgw9KvAUUNj8jXliINrdTWOfaK75WPV0cqTP5rdoF/3wrGjJm+Zsmv7zwwf+sQ==","repository":{"url":"git+https://github.com/exprmntl/orb-ui.git","type":"git"},"_npmVersion":"11.19.0","description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Live, OpenAI Realtime, Gemini Live, and custom voice AI apps.","directories":{},"maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"_nodeVersion":"24.20.0","typesVersions":{"*":{"adapters":["./dist/adapters/index.d.ts"],"adapters/livekit":["./dist/adapters/livekit/browser.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.14","react":"^18.3.1","eslint":"^10.4.0","vitest":"^4.1.7","globals":"^17.6.0","prettier":"^3.8.3","react-dom":"^18.3.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/react":"^18.3.29","@vapi-ai/web":"2.7.0","@google/genai":"2.11.0","livekit-client":"2.20.0","@changesets/cli":"^2.31.0","vite-plugin-dts":"^5.0.1","@playwright/test":"1.61.1","@types/react-dom":"^18.3.7","typescript-eslint":"^8.59.4","@elevenlabs/client":"1.9.0","@vitejs/plugin-react":"^6.0.2","@pipecat-ai/client-js":"1.12.0","@pipecat-ai/small-webrtc-transport":"1.10.5"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","livekit-client":">=2.20.0 <3"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/orb-ui_0.9.0_1789996677440_0.4017498114391309"}}},"time":{"created":"2026-03-07T00:10:12.364Z","modified":"2026-09-21T13:17:57.867Z","0.1.0":"2026-03-07T00:10:12.625Z","0.1.1":"2026-03-08T13:54:53.572Z","0.2.0":"2026-03-13T20:23:03.767Z","0.2.1":"2026-03-13T20:26:00.682Z","0.2.2":"2026-03-13T20:26:32.124Z","0.2.3":"2026-03-13T20:34:14.394Z","0.2.4":"2026-06-08T14:56:08.060Z","0.3.0":"2026-07-10T16:40:34.661Z","0.4.0":"2026-07-10T23:38:43.970Z","0.5.0":"2026-07-11T10:45:22.620Z","0.6.0":"2026-07-13T16:08:53.063Z","0.6.1":"2026-07-13T17:48:21.714Z","0.7.0":"2026-07-15T16:08:33.723Z","0.8.0":"2026-09-08T06:31:01.776Z","0.8.1":"2026-09-17T02:33:37.128Z","0.9.0":"2026-09-21T13:17:57.535Z"},"bugs":{"url":"https://github.com/exprmntl/orb-ui/issues"},"author":{"name":"Alexander Chen"},"license":"MIT","homepage":"https://orb-ui.com","keywords":["voice","voice-ui","voice-agent","voice-agent-ui","voice-ai-ui","react-voice-ai","react-voice-component","ai","react","animation","component","orb","voice-orb","realtime-voice","state-machine","vapi","elevenlabs","livekit","pipecat","openai-live","openai-realtime","gemini-live"],"repository":{"url":"git+https://github.com/exprmntl/orb-ui.git","type":"git"},"description":"React voice agent UI components with audio-reactive adapters for Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Live, OpenAI Realtime, Gemini Live, and custom voice AI apps.","maintainers":[{"name":"alexanderqchen","email":"alexander.qili.chen@gmail.com"}],"readme":"# orb-ui\n\n[![npm version](https://img.shields.io/npm/v/orb-ui.svg)](https://www.npmjs.com/package/orb-ui)\n\n**Voice agent UI that feels alive.**\n\nExpressive, accessible React components for realtime voice agents. Connect Vapi, ElevenLabs, LiveKit, Pipecat, OpenAI Live, OpenAI Realtime, Gemini Live, or your own voice stack through one consistent UI layer.\n\n<p align=\"center\">\n  <a href=\"https://orb-ui.com\">\n    <img src=\"demo/public/og-image-v3.png\" alt=\"orb-ui — Voice agent UI that feels alive\" width=\"900\" />\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://orb-ui.com\">Live demo</a> · <a href=\"https://orb-ui.com/docs\">Documentation</a> · <a href=\"https://orb-ui.com/playground\">Playground</a> · <a href=\"https://www.npmjs.com/package/orb-ui\">npm</a> · <a href=\"https://github.com/exprmntl/orb-ui\">Star on GitHub</a>\n</p>\n\n```jsx\nimport Vapi from '@vapi-ai/web'\nimport { Orb } from 'orb-ui'\nimport { createVapiAdapter } from 'orb-ui/adapters'\n\nconst vapi = new Vapi('your-public-key')\nconst adapter = createVapiAdapter(vapi, { assistantId: 'your-assistant-id' })\n\nexport function VoiceOrb() {\n  return <Orb adapter={adapter} theme=\"circle\" aria-label=\"Start voice assistant\" />\n}\n```\n\nVapi uses its existing microphone track for listening motion and its assistant audio events for\nspeaking motion. The adapter keeps microphone and output calibration separate.\n\n## Install\n\nInstall the [orb-ui package from npm](https://www.npmjs.com/package/orb-ui):\n\n```bash\nnpm install orb-ui\n```\n\nProvider adapters are lightweight wrappers around provider SDKs. Install the SDK for the provider you use:\n\n```bash\n# Vapi\nnpm install orb-ui @vapi-ai/web\n\n# ElevenLabs Conversational AI\nnpm install orb-ui @elevenlabs/client\n\n# LiveKit Agents\nnpm install orb-ui livekit-client\n\n# Pipecat (choose the transport used by your agent)\nnpm install orb-ui @pipecat-ai/client-js @pipecat-ai/small-webrtc-transport\n\n# OpenAI Live and Realtime use browser WebRTC and need no additional client SDK\nnpm install orb-ui\n\n# Gemini Live\nnpm install orb-ui @google/genai\n```\n\n> **Note:** Orb uses React hooks internally — in Next.js App Router, use it in a `'use client'` component.\n\n## How provider adapters are created\n\nEvery provider ends at the same React API:\n\n```jsx\n<Orb adapter={adapter} theme=\"circle\" aria-label=\"Start voice assistant\" />\n```\n\nThe only difference is how the adapter obtains a provider session:\n\n| Provider                                                                  | Required browser setup                                                   |\n| ------------------------------------------------------------------------- | ------------------------------------------------------------------------ |\n| [Vapi guide](https://orb-ui.com/docs/adapters/vapi)                       | Pass a configured Vapi client plus `assistantId`                         |\n| [ElevenLabs guide](https://orb-ui.com/docs/adapters/elevenlabs)           | Pass `Conversation` plus an `agentId`, signed URL, or conversation token |\n| [LiveKit guide](https://orb-ui.com/docs/adapters/livekit)                 | Provide a token endpoint and optional agent name                         |\n| [Pipecat guide](https://orb-ui.com/docs/adapters/pipecat)                 | Pass a configured `PipecatClient` plus its connect callback              |\n| [OpenAI Live guide](https://orb-ui.com/docs/adapters/openai-live)         | Exchange an SDP offer through your server with `createSession`           |\n| [OpenAI Realtime guide](https://orb-ui.com/docs/adapters/openai-realtime) | Return a fresh short-lived client secret from `getClientSecret`          |\n| [Gemini Live guide](https://orb-ui.com/docs/adapters/gemini-live)         | Open the official Google Live session in `connect`                       |\n\nThe adapter owns provider event mapping and emits one consistent `OrbSignal`. OpenAI and Gemini\nstandard API keys, and LiveKit participant-token signing, stay on your server. See the\n[adapter overview](https://orb-ui.com/docs/adapters/overview) for the responsibility boundary and\nadvanced setup shapes.\n\nFor an app-owned WebRTC, WebSocket, telephony, or speech runtime, follow the\n[custom integration guide](https://orb-ui.com/docs/adapters/custom).\n\n## Quick Start\n\nUse orb-ui as a React voice AI component when you need a first-party provider voice UI or a custom animated voice orb for another realtime voice agent stack.\n\n### With Vapi\n\n```jsx\nimport Vapi from '@vapi-ai/web'\nimport { Orb } from 'orb-ui'\nimport { createVapiAdapter } from 'orb-ui/adapters'\n\nconst vapi = new Vapi('your-public-key')\nconst adapter = createVapiAdapter(vapi, { assistantId: 'your-assistant-id' })\n\nfunction App() {\n  return <Orb adapter={adapter} theme=\"circle\" aria-label=\"Start Vapi assistant\" />\n}\n```\n\n### With ElevenLabs\n\n```jsx\nimport { Conversation } from '@elevenlabs/client'\nimport { Orb } from 'orb-ui'\nimport { createElevenLabsAdapter } from 'orb-ui/adapters'\n\nconst adapter = createElevenLabsAdapter(Conversation, { agentId: 'your-agent-id' })\n\nfunction App() {\n  return <Orb adapter={adapter} theme=\"circle\" aria-label=\"Start ElevenLabs assistant\" />\n}\n```\n\n### With LiveKit\n\n```jsx\nimport { Orb } from 'orb-ui'\nimport { createLiveKitAdapter } from 'orb-ui/adapters/livekit'\n\nconst adapter = createLiveKitAdapter({\n  tokenEndpoint: '/api/livekit-token',\n  agentName: 'your-agent-name',\n})\n\nfunction App() {\n  return <Orb adapter={adapter} theme=\"circle\" aria-label=\"Start LiveKit assistant\" />\n}\n```\n\nThe LiveKit entrypoint creates the room and token source, assigns a fresh room name, and meters both\nsides of the conversation with speech-oriented analyser and smoothing defaults. Existing-room and\ncustom-runtime modes remain available from the advanced `orb-ui/adapters` entrypoint.\n\n### With Pipecat\n\n```jsx\nimport { PipecatClient } from '@pipecat-ai/client-js'\nimport { SmallWebRTCTransport } from '@pipecat-ai/small-webrtc-transport'\nimport { Orb } from 'orb-ui'\nimport { createPipecatAdapter } from 'orb-ui/adapters'\n\nconst client = new PipecatClient({ transport: new SmallWebRTCTransport(), enableMic: true })\nconst adapter = createPipecatAdapter(client, {\n  connect: () => client.connect({ webrtcUrl: 'https://agent.example.com/api/offer' }),\n})\n\nfunction App() {\n  return <Orb adapter={adapter} theme=\"circle\" aria-label=\"Start Pipecat assistant\" />\n}\n```\n\nThe Pipecat adapter consumes the standard RTVI event surface and meters the client media tracks as\na browser fallback, so it works with Pipecat Cloud, Daily, SmallWebRTC, and transports that emit\nsparse audio-level events. See the [Pipecat guide](https://orb-ui.com/docs/adapters/pipecat).\n\n### With OpenAI GPT-Live\n\n```tsx\nimport { createOpenAILiveAdapter } from 'orb-ui/adapters'\n\nconst adapter = createOpenAILiveAdapter({\n  createSession: async (sdp, signal) => {\n    const response = await fetch('/api/openai-live-session', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ sdp }),\n      signal,\n    })\n    if (!response.ok) throw new Error('Could not create a Live session')\n    return response.json()\n  },\n})\n```\n\nYour server creates a `gpt-live-1` session through `/v1/live/sessions` and returns the session ID\nand SDP answer. Live handles listening and speaking concurrently; configure backend delegation\non your server. See the [OpenAI Live guide](https://orb-ui.com/docs/adapters/openai-live).\n\n### With OpenAI Realtime\n\n```jsx\nimport { Orb } from 'orb-ui'\nimport { createOpenAIRealtimeAdapter } from 'orb-ui/adapters'\n\nconst adapter = createOpenAIRealtimeAdapter({\n  getClientSecret: async () => {\n    const response = await fetch('/api/openai-realtime-token', { method: 'POST' })\n    return (await response.json()).value\n  },\n})\n```\n\nCreate client secrets with a standard OpenAI API key on your server. See the\n[OpenAI Realtime guide](https://orb-ui.com/docs/adapters/openai-realtime).\n\n### With Gemini Live\n\n```jsx\nimport { GoogleGenAI } from '@google/genai'\nimport { Orb } from 'orb-ui'\nimport { createGeminiLiveAdapter } from 'orb-ui/adapters'\n\nconst adapter = createGeminiLiveAdapter({\n  connect: async (callbacks) => {\n    const token = await fetch('/api/gemini-live-token', { method: 'POST' }).then((res) =>\n      res.json(),\n    )\n    const client = new GoogleGenAI({\n      apiKey: token.value,\n      httpOptions: { apiVersion: 'v1alpha' },\n    })\n    return client.live.connect({ model: token.model, config: token.config, callbacks })\n  },\n})\n```\n\nMint one-use Gemini Live tokens on your server. See the\n[Gemini Live guide](https://orb-ui.com/docs/adapters/gemini-live) for the matching server config that\ndisables automatic activity detection. The adapter handles client-side turn detection by default.\n\nThe examples above show the intended happy paths. Transport overrides, custom browser runtimes,\nexisting-session modes, and audio calibration hooks are optional and documented in the individual\nadapter guides.\n\n### Controlled mode (custom integration)\n\n```jsx\nimport { Orb } from 'orb-ui'\nimport { useState } from 'react'\n\nfunction App() {\n  const [state, setState] = useState('idle')\n  const [volume, setVolume] = useState(0)\n\n  return (\n    <Orb\n      signal={{\n        state,\n        inputVolume: state === 'listening' ? volume : 0,\n        outputVolume: state === 'speaking' ? volume : 0,\n      }}\n      theme=\"circle\"\n    />\n  )\n}\n```\n\nUse `signal` when your integration has separate input and output levels:\n\n```jsx\nimport { Orb } from 'orb-ui'\n\nfunction App() {\n  return <Orb signal={{ state: 'speaking', outputVolume: 0.7 }} theme=\"circle\" />\n}\n```\n\n### Theme presets and overrides\n\nTheme strings keep the current balanced behavior. Choose `calm` or `expressive`, then override only\nthe theme-specific values your product needs:\n\n```jsx\n<Orb\n  signal={signal}\n  theme={{\n    name: 'circle',\n    preset: 'calm',\n    appearance: { colors: { listening: '#8b9cff', speaking: '#f4f7ff' } },\n    motion: { responseExponent: 0.9, activityRiseMs: 80, activityFallMs: 180 },\n  }}\n/>\n```\n\nSee the [theme customization guide](https://orb-ui.com/docs/themes/customization) for every\ntheme-specific appearance, geometry, and motion field.\n\nFor application-wide defaults, stable internal slots, responsive CSS variables, or completely\ncustom artwork, use the advanced customization layer:\n\n```tsx\nimport { Orb, OrbThemeProvider } from 'orb-ui'\n;<OrbThemeProvider theme={{ name: 'circle', preset: 'calm' }}>\n  <Orb\n    adapter={adapter}\n    style={{ '--orb-ui-size': 'clamp(180px, 32vw, 320px)' }}\n    slotProps={{ surface: { className: 'brand-orb__surface' } }}\n  />\n</OrbThemeProvider>\n```\n\nPass `renderTheme` when your product needs entirely custom DOM, SVG, canvas, or WebGL artwork. Its\nrenderer receives normalized input/output activity plus accessible root/control props, while Orb\ncontinues to manage provider subscription and session start/stop behavior.\n\n### External session controls\n\nKeep the orb as a passive visual when start and stop controls belong elsewhere in your layout.\nProvider adapters already expose the matching lifecycle methods.\n\n```jsx\nfunction VoiceExperience({ adapter }) {\n  return (\n    <>\n      <Orb adapter={adapter} theme=\"cloud\" interactive={false} />\n      <button onClick={() => void adapter.start?.()}>Start conversation</button>\n      <button onClick={() => void adapter.stop?.()}>End conversation</button>\n    </>\n  )\n}\n```\n\n## Themes\n\n| Theme    | Description                                                                   |\n| -------- | ----------------------------------------------------------------------------- |\n| `radial` | Four-lobe radial field with input-reactive rim and output-reactive twisting.  |\n| `cloud`  | Atmospheric sphere with inverse listening scale and faster speaking motion.   |\n| `debug`  | State + volume display with start/stop. Use to verify your integration works. |\n| `circle` | Pulsing circle that reacts to volume.                                         |\n| `bars`   | Five bars that animate with voice.                                            |\n\nWhen an adapter or `onStart`/`onStop` handler is provided, visual themes include keyboard-accessible `<button type=\"button\">` controls. `radial` places its phone control below the artwork while the other clickable themes use the visual itself. Pass `interactive={false}` to keep the theme passive and call `adapter.start()` or `adapter.stop()` from external controls instead.\n\nThe radial phone control uses a small cutout that defaults to white. Match it to the surface behind\nthe orb with the typed style variable:\n\n```tsx\n<Orb adapter={adapter} theme=\"radial\" style={{ '--orb-ui-radial-control-surround': '#101010' }} />\n```\n\n## Props\n\n| Prop          | Type                                                   | Default   | Description                                             |\n| ------------- | ------------------------------------------------------ | --------- | ------------------------------------------------------- |\n| `theme`       | `'debug' \\| 'circle' \\| 'bars' \\| 'cloud' \\| 'radial'` | `'debug'` | Visual theme                                            |\n| `signal`      | `OrbSignal`                                            | —         | Controlled signal with state and directional volumes    |\n| `state`       | `OrbState`                                             | `'idle'`  | Conversation state (controlled mode)                    |\n| `adapter`     | `OrbAdapter`                                           | —         | Provider adapter (manages signal updates automatically) |\n| `size`        | `number`                                               | `200`     | Size in pixels                                          |\n| `className`   | `string`                                               | —         | Optional class name for the rendered theme              |\n| `style`       | `OrbStyle`                                             | —         | Inline styles, including radial control surround color  |\n| `disabled`    | `boolean`                                              | `false`   | Disables clickable themes and debug start/stop controls |\n| `interactive` | `boolean`                                              | `true`    | Allows the theme control to start and stop a session    |\n| `aria-label`  | `string`                                               | generated | Accessible label for clickable visual themes            |\n| `onStart`     | `() => void`                                           | —         | Custom start handler (overrides adapter.start())        |\n| `onStop`      | `() => void`                                           | —         | Custom stop handler (overrides adapter.stop())          |\n\n## States\n\n`idle` · `connecting` · `listening` · `thinking` · `speaking` · `error`\n\n## Supported Providers\n\n| Provider                                                                  | Adapter                                                             |\n| ------------------------------------------------------------------------- | ------------------------------------------------------------------- |\n| [Vapi](https://vapi.ai)                                                   | `createVapiAdapter` from `orb-ui/adapters`                          |\n| [ElevenLabs](https://elevenlabs.io/conversational-ai)                     | `createElevenLabsAdapter` from `orb-ui/adapters`                    |\n| [LiveKit](https://livekit.io)                                             | `createLiveKitAdapter` from `orb-ui/adapters`                       |\n| [Pipecat](https://pipecat.ai)                                             | `createPipecatAdapter` from `orb-ui/adapters`                       |\n| [OpenAI GPT-Live](https://developers.openai.com/api/docs/guides/live)     | `createOpenAILiveAdapter` from `orb-ui/adapters`                    |\n| [OpenAI Realtime](https://developers.openai.com/api/docs/guides/realtime) | `createOpenAIRealtimeAdapter` from `orb-ui/adapters`                |\n| [Gemini Live](https://ai.google.dev/gemini-api/docs/live-api)             | `createGeminiLiveAdapter` from `orb-ui/adapters`                    |\n| Custom                                                                    | Use controlled mode with a directional `signal` or build an adapter |\n\n## Development\n\n```bash\ngit clone https://github.com/exprmntl/orb-ui.git\ncd orb-ui\npnpm install\n\n# Build the library\npnpm build\n\n# Run demo locally\npnpm dev:demo\n```\n\nUseful maintenance commands:\n\n```bash\npnpm check        # format check, lint, typechecks, tests, library build, demo build\npnpm format       # format repo files\npnpm changeset    # add release notes for a user-facing package change\n```\n\nReleases are managed with Changesets. Merging a Changesets version PR publishes\n`orb-ui` to npm from GitHub Actions using npm trusted publishing.\n\n## License\n\nMIT © [Alexander Chen](https://github.com/alexanderqchen)\n","readmeFilename":"README.md"}