{"_id":"@alloqui/dialer","name":"@alloqui/dialer","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@alloqui/dialer","version":"1.0.0","description":"Drop-in React dialer component for any telephony provider. Firebase for Voice.","license":"MIT","type":"module","main":"./dist/alloqui-react.cjs","module":"./dist/alloqui-react.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/alloqui-react.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/alloqui-react.cjs"}}},"sideEffects":false,"keywords":["react","dialer","voip","twilio","plivo","alloqui","webrtc","telephony","voice"],"repository":{"type":"git","url":"git+https://github.com/gamgee-ai/alloqui-dialer.git"},"publishConfig":{"access":"public","provenance":true},"scripts":{"dev":"vite","build":"vite build --config vite.config.lib.ts && cp dist/index.d.ts dist/index.d.cts","build:app":"tsc -b && vite build","prepublishOnly":"npm run build","lint":"eslint .","preview":"vite preview"},"peerDependencies":{"@twilio/voice-sdk":"^2.0.0","lucide-react":"^1.0.0","plivo-browser-sdk":"^2.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","sonner":"^2.0.0"},"peerDependenciesMeta":{"@twilio/voice-sdk":{"optional":true},"plivo-browser-sdk":{"optional":true}},"pnpm":{"overrides":{"axios":">=1.18.0","tar":">=7.5.21","fast-uri":">=3.1.5","postcss":">=8.5.23","form-data":">=4.0.6","js-yaml":">=4.3.1","nanoid":">=3.3.17","@babel/core":">=7.29.6","brace-expansion@1":">=1.1.18 <2","brace-expansion@2":">=2.1.4 <3","brace-expansion@5":">=5.0.9","uuid":">=11.1.1"}},"devDependencies":{"@eslint/js":"^9.39.5","@twilio/voice-sdk":"^2.18.3","@types/node":"^24.13.3","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.0.5","eslint":"^9.39.5","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3","globals":"^17.9.0","lucide-react":"^1.30.0","plivo-browser-sdk":"^2.2.21","react":"^19.2.8","react-dom":"^19.2.8","sonner":"^2.0.7","typescript":"~6.0.3","typescript-eslint":"^8.66.0","vite":"^8.2.1","vite-plugin-dts":"^4.5.4"},"gitHead":"375eda8342681997d7d99164492039a909776d91","_id":"@alloqui/dialer@1.0.0","bugs":{"url":"https://github.com/gamgee-ai/alloqui-dialer/issues"},"homepage":"https://github.com/gamgee-ai/alloqui-dialer#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-PcOI/rlMqtS6h/VsZZQtEMSEFa0GyW2M+CwVKZSiyM9a+jrhzJn6iw4Cxud552fvo6CPpzI2YuoYgnOT68uadA==","shasum":"36b53fe2dd31b56a576c40770a7b672a4f33e762","tarball":"https://registry.npmjs.org/@alloqui/dialer/-/dialer-1.0.0.tgz","fileCount":38,"unpackedSize":198685,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alloqui%2fdialer@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCm32GLI2IJl2QdAo4EmR80TNHey9CmTyYWf8o4/La5EQIgI5DE52FsY9nt1KIWphTKV1lMc44tW3+3myPvNBtkyPY="}]},"_npmUser":{"name":"aadarshm","email":"aadarsh@gamgee.ai"},"directories":{},"maintainers":[{"name":"aadarshm","email":"aadarsh@gamgee.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dialer_1.0.0_1786198922108_0.21224480900306908"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T14:22:01.920Z","1.0.0":"2026-08-08T14:22:02.251Z","modified":"2026-08-08T14:22:02.763Z"},"maintainers":[{"name":"aadarshm","email":"aadarsh@gamgee.ai"}],"description":"Drop-in React dialer component for any telephony provider. Firebase for Voice.","homepage":"https://github.com/gamgee-ai/alloqui-dialer#readme","keywords":["react","dialer","voip","twilio","plivo","alloqui","webrtc","telephony","voice"],"repository":{"type":"git","url":"git+https://github.com/gamgee-ai/alloqui-dialer.git"},"bugs":{"url":"https://github.com/gamgee-ai/alloqui-dialer/issues"},"license":"MIT","readme":"# @alloqui/dialer\n\nDrop-in React dialer component for any telephony provider. Enter your Twilio or Plivo keys on [alloqui.dev](https://alloqui.dev), get a project key, and make calls from your app.\n\n## Install\n\n```bash\nnpm install @alloqui/dialer\n\n# Install your telephony provider SDK (pick one):\nnpm install @twilio/voice-sdk    # for Twilio\nnpm install plivo-browser-sdk    # for Plivo\n```\n\n## Usage\n\n```tsx\nimport { Dialer } from '@alloqui/dialer';\n\n\nfunction App() {\n  return (\n    <Dialer\n      projectKey=\"al_live_abc123\"\n      mode=\"float\"\n      position=\"bottom-right\"\n    />\n  );\n}\n```\n\n### Next.js\n\nThis component uses browser APIs (WebRTC, WebSocket). In Next.js App Router, wrap it in a client component:\n\n```tsx\n\"use client\";\n\nimport { Dialer } from '@alloqui/dialer';\n\n\nexport function AlloquiDialer() {\n  return <Dialer projectKey=\"al_live_abc123\" />;\n}\n```\n\n## Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `projectKey` | `string` | required | Your Alloqui project API key |\n| `apiBaseUrl` | `string` | `https://api.alloqui.dev` | API endpoint |\n| `mode` | `'float' \\| 'panel'` | `'float'` | Display mode |\n| `position` | `FloatPosition` | `'bottom-right'` | Float bubble position |\n| `theme` | `DialerTheme` | `'auto'` | Color theme |\n| `contacts` | `Record<string, string>` | — | Name-to-number map |\n| `onCallStart` | `(call) => void` | — | Fires when call connects |\n| `onCallEnd` | `(call) => void` | — | Fires when call ends |\n| `onError` | `(error) => void` | — | Fires on error |\n\n## Headless Usage\n\nUse the engine directly without UI:\n\n```tsx\nimport { AlloquiDialer } from '@alloqui/dialer';\n\nconst dialer = new AlloquiDialer({\n  projectKey: 'al_live_abc123',\n  apiBaseUrl: 'https://api.alloqui.dev',\n});\n\ndialer.on('dialer.ready', () => {\n  dialer.call('+14155551234');\n});\n\ndialer.on('call.ended', () => {\n  dialer.destroy();\n});\n```\n\n## Hook\n\n```tsx\nimport { useDialer } from '@alloqui/dialer';\n\n\nfunction MyDialer() {\n  const { state, makeCall, hangup, toggleMute, toggleHold, sendDTMF } = useDialer({\n    projectKey: 'al_live_abc123',\n  });\n\n  return (\n    <div>\n      <p>Status: {state.callState}</p>\n      <button onClick={() => makeCall('+14155551234')}>Call</button>\n      <button onClick={hangup}>Hang up</button>\n    </div>\n  );\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-5901fcfc9487cc25661f9364c3875922"}