{"_id":"@dixydo/roomkit-vue","name":"@dixydo/roomkit-vue","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@dixydo/roomkit-vue","version":"0.1.0","description":"Vue 3 composable + components for @dixydo/roomkit.","license":"MIT","author":{"name":"Yevhen Kushnir"},"homepage":"https://github.com/dixydo/roomkit/tree/main/sdk-vue","repository":{"type":"git","url":"git+https://github.com/dixydo/roomkit.git","directory":"sdk-vue"},"bugs":{"url":"https://github.com/dixydo/roomkit/issues"},"keywords":["roomkit","vue","vue3","video-call","webrtc"],"type":"module","main":"./dist/roomkit-vue.umd.cjs","module":"./dist/roomkit-vue.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/roomkit-vue.js","require":"./dist/roomkit-vue.umd.cjs"},"./dist/roomkit-vue.css":"./dist/roomkit-vue.css"},"scripts":{"build":"vite build && vue-tsc --emitDeclarationOnly --outDir dist","dev":"vite build --watch"},"peerDependencies":{"vue":"^3.0.0","@dixydo/roomkit":"^0.1.0"},"devDependencies":{"@vitejs/plugin-vue":"^6.0.0","vue":"^3.5.0","vue-tsc":"^2.1.0","@dixydo/roomkit":"file:../sdk","typescript":"^5.6.0","vite":"^7.0.0"},"gitHead":"25972cbc9007ae0fc842c3db9079f400e152f8e3","_id":"@dixydo/roomkit-vue@0.1.0","_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-n6U3VRK/Sd2edC/oOsW7LBRE+UD91XQ2fs//JRMv4XRC2Qr+ZNZiLi1ej/XNtdP6QcysJjdklHo+sa6tACtDDw==","shasum":"1ac48f9d8235f8186b0e59576ef3a87f6101f04f","tarball":"https://registry.npmjs.org/@dixydo/roomkit-vue/-/roomkit-vue-0.1.0.tgz","fileCount":19,"unpackedSize":77941,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICPYJdSaX8pCbyAMyC5/66o+Y7tjOa8zQ63cSqrcbKZkAiAX8wFSG/RWA3xHgG+ywI1hVfEUos6h6oYooGCQpiySaQ=="}]},"_npmUser":{"name":"dixydo","email":"yevhen.kushnir@gmail.com"},"directories":{},"maintainers":[{"name":"dixydo","email":"yevhen.kushnir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/roomkit-vue_0.1.0_1780222396373_0.22333717637748363"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-31T10:13:15.923Z","0.1.0":"2026-05-31T10:13:16.516Z","modified":"2026-05-31T10:13:16.697Z"},"maintainers":[{"name":"dixydo","email":"yevhen.kushnir@gmail.com"}],"description":"Vue 3 composable + components for @dixydo/roomkit.","homepage":"https://github.com/dixydo/roomkit/tree/main/sdk-vue","keywords":["roomkit","vue","vue3","video-call","webrtc"],"repository":{"type":"git","url":"git+https://github.com/dixydo/roomkit.git","directory":"sdk-vue"},"author":{"name":"Yevhen Kushnir"},"bugs":{"url":"https://github.com/dixydo/roomkit/issues"},"license":"MIT","readme":"# @dixydo/roomkit-vue\n\n[![npm](https://img.shields.io/npm/v/@dixydo/roomkit-vue?label=npm)](https://www.npmjs.com/package/@dixydo/roomkit-vue)\n[![License](https://img.shields.io/npm/l/@dixydo/roomkit-vue)](https://github.com/dixydo/roomkit/blob/main/LICENSE)\n\nVue 3 bindings for [`@dixydo/roomkit`](https://www.npmjs.com/package/@dixydo/roomkit).\n\n## Install\n\n```bash\nnpm install @dixydo/roomkit-vue @dixydo/roomkit vue\n```\n\n## Usage\n\n```vue\n<script setup lang=\"ts\">\nimport { useRoomkit, RoomkitVideo } from '@dixydo/roomkit-vue'\n\nconst {\n  status, error,\n  localStream, peers,\n  micEnabled, cameraEnabled, screenSharing, recording,\n  setMicEnabled, setCamEnabled, toggleScreenShare,\n  startRecording, stopRecording, leave,\n} = useRoomkit({\n  serverUrl: 'https://meet.example.com',\n  roomId: 'team-standup',\n  autoJoin: true,\n})\n</script>\n\n<template>\n  <div v-if=\"status === 'error'\">Error: {{ error?.message }}</div>\n  <div v-else-if=\"status !== 'joined'\">Joining…</div>\n\n  <div v-else>\n    <RoomkitVideo :stream=\"localStream\" muted />\n    <RoomkitVideo v-for=\"[id, p] in peers\" :key=\"id\" :stream=\"p.stream\" />\n\n    <button @click=\"setMicEnabled(!micEnabled)\">\n      {{ micEnabled ? 'Mute' : 'Unmute' }}\n    </button>\n    <button @click=\"setCamEnabled(!cameraEnabled)\">\n      {{ cameraEnabled ? 'Stop cam' : 'Start cam' }}\n    </button>\n    <button @click=\"toggleScreenShare\">\n      {{ screenSharing ? 'Stop sharing' : 'Share screen' }}\n    </button>\n\n    <template v-if=\"recording.state === 'recording'\">\n      <button @click=\"stopRecording\">Stop recording</button>\n    </template>\n    <template v-else>\n      <button @click=\"startRecording\">Record</button>\n    </template>\n    <a v-if=\"recording.state === 'ready'\" :href=\"recording.url\" target=\"_blank\">\n      Recording ready ↗\n    </a>\n\n    <button @click=\"leave\">Leave</button>\n  </div>\n</template>\n```\n\n## API\n\n### `useRoomkit(options)` → `UseRoomkitApi`\n\nSame shape as the React hook but all state values are `Ref`s and `peers`\nis a reactive `Map`.\n\n### `<RoomkitVideo :stream=\"...\" :muted=\"false\" />`\n\n`<video>` wrapper that handles `srcObject` assignment reactively.\n","readmeFilename":"README.md","_rev":"1-9999f7fc2a9d04d00b76f77afe4f062c"}