{"_id":"@1houseglobal/chat-react","_rev":"7-4f623d96909ad7ae5d75aa733670503d","name":"@1houseglobal/chat-react","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@1houseglobal/chat-react","version":"1.0.0","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"url":"https://github.com/1house","name":"Younivision Development Group","email":"hello@younivision.chat"},"license":"MIT","_id":"@1houseglobal/chat-react@1.0.0","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"homepage":"https://github.com/1house/livechat#readme","bugs":{"url":"https://github.com/1house/livechat/issues"},"dist":{"shasum":"023cba3145d5436cf79cef284722b119e129f3d3","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-1.0.0.tgz","fileCount":59,"integrity":"sha512-xXb7puo1yaNOpsGaVD+Wdk+CZ0SoIwk5m1e2+7F/bC3X59047k4L83KC2yMj/G3w1kD59aDMQBfiDSwQh/zsiw==","signatures":[{"sig":"MEUCIEGZq4chQQdW/9oJuoeg4aNF60yIcz+LeHleuvgZDhIyAiEAi/1IA/JchbWPUFLPHGzJLub44PON+J2I1odCQEt+XGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4961670},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.umd.js"},"./fonts.css":"./dist/fonts.css","./style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","publish:dry":"npm publish --dry-run","publish:npm":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"repository":{"url":"git+https://github.com/1house/livechat.git","type":"git","directory":"1HOUSE_LIVECHAT_REACT"},"_npmVersion":"10.8.2","description":"React embeddable chat component for 1 HOUSE Global","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zustand":"^4.4.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.2","react":"^18.2.0","postcss":"^8.4.31","react-dom":"^18.2.0","typescript":"^5.2.2","tailwindcss":"^3.3.5","@types/react":"^18.2.37","autoprefixer":"^10.4.16","vite-plugin-dts":"^3.6.3","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-react_1.0.0_1760996482580_0.13944877007337553","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@1houseglobal/chat-react","version":"1.0.2","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"url":"https://github.com/1house","name":"Younivision Development Group","email":"hello@younivision.chat"},"license":"MIT","_id":"@1houseglobal/chat-react@1.0.2","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"dist":{"shasum":"6336816052f3a786c42a0c00c2a22bcd9c5449c1","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-1.0.2.tgz","fileCount":59,"integrity":"sha512-LBn/65PulRI608Uvp3Fn2k3kohK5utrkLT3iY8HdTdWtgW7ctyfGsH0ZQ91AnNK4I5lEGn3Tc+aav8V+ASRUhw==","signatures":[{"sig":"MEYCIQC4omgZhuyJap40ErWcjJUWVk9X4KR0FBBVomv5Daed+wIhAMC+KNNEL7zeE1d00kRUVmYcx51AHMACmesv8VzNI55I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4961694},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.umd.js"},"./fonts.css":"./dist/fonts.css","./style.css":"./dist/style.css"},"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","publish:dry":"npm publish --dry-run","publish:npm":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"repository":{"url":"git+https://github.com/younivision/1HOUSE_SDKS.git","type":"git","directory":"1HOUSE_LIVECHAT_REACT"},"_npmVersion":"10.8.2","description":"React embeddable chat component for 1 HOUSE Global","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zustand":"^4.4.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.2","react":"^18.2.0","postcss":"^8.4.31","react-dom":"^18.2.0","typescript":"^5.2.2","tailwindcss":"^3.3.5","@types/react":"^18.2.37","autoprefixer":"^10.4.16","vite-plugin-dts":"^3.6.3","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-react_1.0.2_1760996644746_0.582612312187095","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@1houseglobal/chat-react","version":"1.0.3","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"url":"https://github.com/1house","name":"Younivision Development Group","email":"hello@younivision.chat"},"license":"MIT","_id":"@1houseglobal/chat-react@1.0.3","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"dist":{"shasum":"45e93ffe199cdf7703d4cc2462f8ca9916c0ea69","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-1.0.3.tgz","fileCount":59,"integrity":"sha512-yjzeip6eJOQb5r6OSQaBCsXP/UAm3D7xObwhNNDSniOw9ZR+JxYWWHUK7GfbcxtK+lFMXNxHF3TdalPxOfG3xg==","signatures":[{"sig":"MEQCIBEzNmuE8sjGyAptI9OTccHZO5qq4Tu8RQoH1WhgBtJDAiBA3Z5GrJxDyb1tacwrKI+rczNBY0x+zat2ZFtqY4TIEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4961237},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.umd.js"},"./fonts.css":"./dist/fonts.css","./style.css":"./dist/style.css"},"gitHead":"46cd297275f29bd6b8a7e8138a203653cdc018d2","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","publish:dry":"npm publish --dry-run","publish:npm":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"repository":{"url":"git+https://github.com/younivision/1HOUSE_SDKS.git","type":"git","directory":"1HOUSE_LIVECHAT_REACT"},"_npmVersion":"10.8.2","description":"React embeddable chat component for 1 HOUSE Global","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zustand":"^4.4.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.2","react":"^18.2.0","postcss":"^8.4.31","react-dom":"^18.2.0","typescript":"^5.2.2","tailwindcss":"^3.3.5","@types/react":"^18.2.37","autoprefixer":"^10.4.16","vite-plugin-dts":"^3.6.3","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-react_1.0.3_1760997644694_0.10374815674790594","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@1houseglobal/chat-react","version":"1.0.4","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"url":"https://github.com/1house","name":"Younivision Development Group","email":"hello@younivision.chat"},"license":"MIT","_id":"@1houseglobal/chat-react@1.0.4","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"dist":{"shasum":"43297d3f3512ee099705a79883fa4e2c4cc21b76","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-1.0.4.tgz","fileCount":62,"integrity":"sha512-KEX/1OW44GNWEhnrrK3v3Kp5Vi/frU3hmFWrmNc1U27CxhuUQLYlBCD1/jCbYlE6BgVhtBWyGjx/KypvU1Lx/w==","signatures":[{"sig":"MEUCIQDh/A2ZXCgafZolJGKmqPlfhQYrvDTmkD3ViMOi6x36TAIgc4m6bhkqO6Cqn1vQMFA32coOcPfParidMwFS4hNw4N8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5005670},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.umd.js"},"./fonts.css":"./dist/fonts.css","./style.css":"./dist/style.css"},"gitHead":"0073941dc303870bbbded17d081f6e5b237c9c67","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","publish:dry":"npm publish --dry-run","publish:npm":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"repository":{"url":"git+https://github.com/younivision/1HOUSE_SDKS.git","type":"git","directory":"1HOUSE_LIVECHAT_REACT"},"_npmVersion":"10.8.2","description":"React embeddable chat component for 1 HOUSE Global","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zustand":"^4.4.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.2","react":"^18.2.0","postcss":"^8.4.31","react-dom":"^18.2.0","typescript":"^5.2.2","tailwindcss":"^3.3.5","@types/react":"^18.2.37","autoprefixer":"^10.4.16","vite-plugin-dts":"^3.6.3","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-react_1.0.4_1761272179225_0.21149401371465837","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@1houseglobal/chat-react","version":"1.0.5","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"url":"https://github.com/1house","name":"Younivision Development Group","email":"hello@younivision.chat"},"license":"MIT","_id":"@1houseglobal/chat-react@1.0.5","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"dist":{"shasum":"c66069be259b6bd8fb4058c9aa7424b5fe9861fa","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-1.0.5.tgz","fileCount":62,"integrity":"sha512-DsCyBxFDorcAuQxbp4CX4ZdZCn4oAVDtRRi6hBaiKbfglGDF/ZtxpiGeTztEKtMA2iRLVxs5vMLYyoEIEj4btg==","signatures":[{"sig":"MEYCIQDN54fHvz8iLggVpd6bpHydqVNRDTEcGjPessKh/6byIgIhAKfrfJTqhIzy26RsAcIoQeYjlx0pBfCPvTtPpxtXRS1D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5005535},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.umd.js"},"./fonts.css":"./dist/fonts.css","./style.css":"./dist/style.css"},"gitHead":"3277e2d72dd93cb276151d762af9eafd3e1e3d0a","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","publish:dry":"npm publish --dry-run","publish:npm":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"repository":{"url":"git+https://github.com/younivision/1HOUSE_SDKS.git","type":"git","directory":"1HOUSE_LIVECHAT_REACT"},"_npmVersion":"10.8.2","description":"React embeddable chat component for 1 HOUSE Global","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zustand":"^4.4.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.2","react":"^18.2.0","postcss":"^8.4.31","react-dom":"^18.2.0","typescript":"^5.2.2","tailwindcss":"^3.3.5","@types/react":"^18.2.37","autoprefixer":"^10.4.16","vite-plugin-dts":"^3.6.3","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-react_1.0.5_1761272740964_0.03221162315774406","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@1houseglobal/chat-react","version":"2.0.0","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"url":"https://github.com/1house","name":"Younivision Development Group","email":"hello@younivision.chat"},"license":"MIT","_id":"@1houseglobal/chat-react@2.0.0","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"dist":{"shasum":"a5d83fe4e6326585499b98f7eefc2e2de9e8be47","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-2.0.0.tgz","fileCount":62,"integrity":"sha512-PzZ81kBq3FW9HeRObBst01fXJQWHLYKy2EJxyVMUk2ASGHLYLxi9/U17ahEXRY1ahmFiSr3pmhTcTtEz0TOjwA==","signatures":[{"sig":"MEUCIQCYR0+L0WqgXOaQ9zJBPupWBa+5qCCm9XE4szfSxJeDiQIgR3p7gDYGpYE3jfUSG/821bV5o6T8khgQM50/PPBevyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5005545},"main":"dist/index.umd.js","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.umd.js"},"./fonts.css":"./dist/fonts.css","./style.css":"./dist/style.css"},"gitHead":"51c3060f5e80e041c539a2be41eef7c2f517ea97","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","publish:dry":"npm publish --dry-run","publish:npm":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"repository":{"url":"git+https://github.com/younivision/1HOUSE_SDKS.git","type":"git","directory":"1HOUSE_LIVECHAT_REACT"},"_npmVersion":"10.8.2","description":"React embeddable chat component for 1 HOUSE Global","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zustand":"^4.4.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.2","react":"^18.2.0","postcss":"^8.4.31","react-dom":"^18.2.0","typescript":"^5.2.2","tailwindcss":"^3.3.5","@types/react":"^18.2.37","autoprefixer":"^10.4.16","vite-plugin-dts":"^3.6.3","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-react_2.0.0_1761274553076_0.2349598566528901","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@1houseglobal/chat-react","version":"2.1.0","description":"React embeddable chat component for 1 HOUSE Global","main":"dist/index.umd.js","module":"dist/index.esm.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.umd.js","types":"./dist/index.d.ts"},"./style.css":"./dist/style.css","./fonts.css":"./dist/fonts.css"},"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","prepublishOnly":"npm run build","publish:npm":"npm publish --access public","publish:dry":"npm publish --dry-run"},"keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"author":{"name":"Younivision Development Group","email":"hello@younivision.chat","url":"https://github.com/1house"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/younivision/1HOUSE_SDKS.git","directory":"1HOUSE_LIVECHAT_REACT"},"bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"dependencies":{"zustand":"^4.4.6"},"devDependencies":{"@types/react":"^18.2.37","@types/react-dom":"^18.2.15","@vitejs/plugin-react":"^4.2.0","autoprefixer":"^10.4.16","postcss":"^8.4.31","react":"^18.2.0","react-dom":"^18.2.0","tailwindcss":"^3.3.5","typescript":"^5.2.2","vite":"^5.0.2","vite-plugin-dts":"^3.6.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_id":"@1houseglobal/chat-react@2.1.0","gitHead":"a1be7cd0e012456c82baab1481cd2c521ec725af","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TK0JX7pi2erDwhlEKciUbuf3LK9RnuYF6lP5nmKVCT7u66BWMf8iKlPUVZYjS2SvS7oQ6g0jgRAN9saQZkPoPQ==","shasum":"43c0468a0b0f7b749196099d376d36137853ac7e","tarball":"https://registry.npmjs.org/@1houseglobal/chat-react/-/chat-react-2.1.0.tgz","fileCount":66,"unpackedSize":5053380,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/uuffotAWvEWOL5prK8/HMLeC/a8VLRrmOfQbpK9SewIhAKqhnt6+9xLymzAenD06jNgKStbZc58QVSUqexsNHNGX"}]},"_npmUser":{"name":"dahmeyon1","email":"dahmeyon@younivision.com"},"directories":{},"maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat-react_2.1.0_1765999247128_0.12604969977413782"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-20T21:41:22.442Z","modified":"2025-12-17T19:20:47.584Z","1.0.0":"2025-10-20T21:41:22.780Z","1.0.2":"2025-10-20T21:44:04.950Z","1.0.3":"2025-10-20T22:00:44.967Z","1.0.4":"2025-10-24T02:16:19.424Z","1.0.5":"2025-10-24T02:25:41.219Z","2.0.0":"2025-10-24T02:55:53.296Z","2.1.0":"2025-12-17T19:20:47.351Z"},"bugs":{"url":"https://github.com/younivision/1HOUSE_SDKS/issues"},"author":{"name":"Younivision Development Group","email":"hello@younivision.chat","url":"https://github.com/1house"},"license":"MIT","homepage":"https://github.com/younivision/1HOUSE_SDKS#readme","keywords":["chat","react","websocket","embeddable","realtime","messaging","twitch","livechat","chat-component","react-component"],"repository":{"type":"git","url":"git+https://github.com/younivision/1HOUSE_SDKS.git","directory":"1HOUSE_LIVECHAT_REACT"},"description":"React embeddable chat component for 1 HOUSE Global","maintainers":[{"name":"dahmeyon1","email":"dahmeyon@younivision.com"}],"readme":"# @1house/chat-react\n\nReact embeddable chat component for 1HOUSE LiveChat with Twitch-style UI and image caching.\n\n## Features\n\n- 🎨 Twitch-style chat interface\n- 📺 **NEW: TwitchStream component** - Complete streaming interface with video/iframe support\n- 🌓 Dark & Light themes\n- 🖼️ Automatic image caching\n- 💬 Real-time messaging\n- 👥 User list with avatars\n- ⌨️ Typing indicators\n- 📱 Responsive design\n- 🎯 TypeScript support\n\n## Installation\n\n```bash\nnpm install @1house/chat-react\n```\n\n## Usage\n\n### TwitchStream Component (NEW!)\n\nThe `TwitchStream` component provides a complete Twitch-style streaming interface with integrated chat:\n\n```jsx\nimport { TwitchStream } from '@1house/chat-react';\n\nfunction App() {\n  return (\n    <TwitchStream\n      // LiveChat props\n      apiKey=\"your-api-key\"\n      serverUrl=\"ws://localhost:8080\"\n      userId=\"user123\"\n      username=\"viewer\"\n      roomId=\"lobby\"\n      \n      // Stream info\n      streamTitle=\"Live Coding Session - Building a Chat App\"\n      streamerName=\"DeveloperName\"\n      viewerCount={150}\n      isLive={true}\n      \n      // Video content\n      videoSrc=\"https://example.com/stream.mp4\"\n      autoPlay={true}\n      muted={true}\n      \n      // Customization\n      streamerAvatar=\"https://example.com/avatar.jpg\"\n      chatWidth=\"24rem\"\n      headerColor=\"#171719\"\n    />\n  );\n}\n```\n\n### Basic LiveChat Implementation\n\n```jsx\nimport { LiveChat } from '@1house/chat-react';\n\nfunction App() {\n  return (\n    <LiveChat\n      serverUrl=\"ws://localhost:8080\"\n      userId=\"user123\"\n      username=\"JohnDoe\"\n    />\n  );\n}\n```\n\n### With All Options\n\n```jsx\nimport { LiveChat } from '@1house/chat-react';\n\nfunction App() {\n  return (\n    <LiveChat\n      serverUrl=\"ws://localhost:8080\"\n      userId=\"user123\"\n      username=\"JohnDoe\"\n      roomId=\"gaming\"\n      avatar=\"https://example.com/avatar.jpg\"\n      theme=\"dark\"\n      maxHeight=\"600px\"\n      onConnect={() => console.log('Connected!')}\n      onDisconnect={() => console.log('Disconnected')}\n      onMessage={(message) => console.log('New message:', message)}\n      onError={(error) => console.error('Error:', error)}\n    />\n  );\n}\n```\n\n### Embedded in a Layout\n\n```jsx\n<div style={{ display: 'flex', height: '100vh' }}>\n  <main style={{ flex: 1 }}>\n    {/* Your main content */}\n  </main>\n  <aside style={{ width: '350px' }}>\n    <LiveChat\n      serverUrl=\"ws://localhost:8080\"\n      userId={currentUser.id}\n      username={currentUser.name}\n      avatar={currentUser.avatar}\n      theme=\"dark\"\n      maxHeight=\"100vh\"\n    />\n  </aside>\n</div>\n```\n\n## Props\n\n### TwitchStream Component Props\n\n| Prop | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n| **LiveChat Props** | | | | |\n| `apiKey` | string | ✅ | - | LiveChat API key |\n| `serverUrl` | string | ✅ | - | WebSocket server URL |\n| `userId` | string | ✅ | - | Unique user identifier |\n| `username` | string | ✅ | - | Display name |\n| `roomId` | string | ❌ | 'lobby' | Chat room ID |\n| `role` | 'user' \\| 'moderator' \\| 'admin' | ❌ | 'user' | User role |\n| `theme` | 'light' \\| 'dark' | ❌ | 'dark' | Chat theme |\n| `maxHeight` | string | ❌ | '100%' | Maximum chat height |\n| `onConnect` | () => void | ❌ | - | Connection callback |\n| `onDisconnect` | () => void | ❌ | - | Disconnection callback |\n| `onMessage` | (message) => void | ❌ | - | New message callback |\n| `onError` | (error) => void | ❌ | - | Error callback |\n| **Stream Props** | | | | |\n| `streamTitle` | string | ✅ | - | Main stream title |\n| `streamerName` | string | ✅ | - | Streamer's name |\n| `viewerCount` | number | ❌ | 0 | Current viewer count |\n| `isLive` | boolean | ❌ | true | Whether stream is live |\n| **Video/Content Props** | | | | |\n| `videoSrc` | string | ❌ | - | Video source URL |\n| `iframeSrc` | string | ❌ | - | Iframe source URL (alternative to video) |\n| `videoPoster` | string | ❌ | - | Video poster image |\n| `autoPlay` | boolean | ❌ | true | Auto-play video |\n| `muted` | boolean | ❌ | true | Mute video by default |\n| `loop` | boolean | ❌ | true | Loop video |\n| `controls` | boolean | ❌ | true | Show video controls |\n| `videoFit` | 'contain' \\| 'cover' \\| 'fill' \\| 'scale-down' \\| 'none' | ❌ | 'cover' | Video scaling behavior |\n| `hideControlsForEmbedded` | boolean | ❌ | false | Hide video controls for embedded use |\n| **Customization Props** | | | | |\n| `streamerAvatar` | string | ❌ | - | Streamer avatar image URL |\n| `showChatToggle` | boolean | ❌ | true | Show chat toggle button |\n| `chatWidth` | string | ❌ | '24rem' | Chat overlay width |\n| `headerColor` | string | ❌ | '#171719' | Header background color |\n| `className` | string | ❌ | - | Additional CSS classes |\n| **Fullscreen Props** | | | | |\n| `showFullscreenButton` | boolean | ❌ | true | Show fullscreen button |\n| `fullscreenButtonPosition` | 'top-right' \\| 'top-left' \\| 'bottom-right' \\| 'bottom-left' | ❌ | 'top-right' | Fullscreen button position |\n| **Typography Props** | | | | |\n| `titleFontSize` | string | ❌ | '1.125rem' | Stream title font size |\n| `detailsFontSize` | string | ❌ | '0.875rem' | Details text font size |\n| `streamerNameFontSize` | string | ❌ | '0.875rem' | Streamer name font size |\n| **Chat Props** | | | | |\n| `chatSize` | 'sm' \\| 'md' \\| 'lg' \\| 'xl' | ❌ | 'md' | Chat message size |\n| `chatAnimation` | boolean | ❌ | true | Enable chat slide animations |\n| **Resize and Container Props** | | | | |\n| `width` | string \\| number | ❌ | '100%' | Container width |\n| `height` | string \\| number | ❌ | '100vh' | Container height |\n| `minWidth` | string \\| number | ❌ | '320px' | Minimum container width |\n| `minHeight` | string \\| number | ❌ | '200px' | Minimum container height |\n| `maxWidth` | string \\| number | ❌ | 'none' | Maximum container width |\n| `maxHeight` | string \\| number | ❌ | 'none' | Maximum container height |\n| `resizable` | boolean | ❌ | false | Enable manual resizing |\n| `containerStyle` | React.CSSProperties | ❌ | - | Additional container styles |\n\n### LiveChat Component Props\n\n| Prop | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n| `serverUrl` | string | ✅ | - | WebSocket server URL |\n| `userId` | string | ✅ | - | Unique user identifier |\n| `username` | string | ✅ | - | Display name |\n| `roomId` | string | ❌ | 'default' | Chat room ID |\n| `avatar` | string | ❌ | - | User avatar URL |\n| `theme` | 'light' \\| 'dark' | ❌ | 'dark' | UI theme |\n| `maxHeight` | string | ❌ | '600px' | Maximum container height |\n| `onConnect` | () => void | ❌ | - | Connection callback |\n| `onDisconnect` | () => void | ❌ | - | Disconnection callback |\n| `onMessage` | (message) => void | ❌ | - | New message callback |\n| `onError` | (error) => void | ❌ | - | Error callback |\n\n## Advanced Usage\n\n### Using Hooks Directly\n\n```jsx\nimport { useWebSocket, useChatStore } from '@1house/chat-react';\n\nfunction CustomChat() {\n  const { sendMessage } = useWebSocket({\n    serverUrl: 'ws://localhost:8080',\n    userId: 'user123',\n    username: 'JohnDoe'\n  });\n\n  const { messages, users, isConnected } = useChatStore();\n\n  return (\n    <div>\n      <h3>Custom Chat UI</h3>\n      <div>Status: {isConnected ? 'Connected' : 'Disconnected'}</div>\n      <div>Users: {users.length}</div>\n      {messages.map(msg => (\n        <div key={msg.id}>{msg.username}: {msg.content}</div>\n      ))}\n    </div>\n  );\n}\n```\n\n### Image Caching\n\n```jsx\nimport { useImageCache } from '@1house/chat-react';\n\nfunction CustomAvatar({ imageUrl }) {\n  const { getCachedImage, preloadImage } = useImageCache();\n\n  // Preload image\n  useEffect(() => {\n    preloadImage(imageUrl);\n  }, [imageUrl]);\n\n  return <img src={getCachedImage(imageUrl)} alt=\"Avatar\" />;\n}\n```\n\n## Styling\n\nThe component comes with built-in styles. If you need to customize, you can override the CSS classes:\n\n```css\n.livechat-container {\n  /* Your custom styles */\n}\n\n.chat-message {\n  /* Custom message styles */\n}\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Development mode\nnpm run dev\n\n# Build\nnpm run build\n```\n\n## License\n\nMIT\n\n","readmeFilename":"README.md"}