{"_id":"@cognipeer/chat-ui","_rev":"8-d08cfbbb689dc5347433ddefb4f2c1f9","name":"@cognipeer/chat-ui","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@cognipeer/chat-ui","version":"0.1.0","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","_id":"@cognipeer/chat-ui@0.1.0","maintainers":[{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"homepage":"https://github.com/Cognipeer/chat-ui#readme","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"dist":{"shasum":"1f1ea0f4170e82ff87c0ac6c7b6fd3f5737d0b8f","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.1.0.tgz","fileCount":6,"integrity":"sha512-81AWC8VV1QKgtjFQS0ZAqL2m1bmac1TtWo4Ed4nUDmwL9Sg8kyNrhuT+9FuUxDY4eitUcZ0L0hVThU8pWF6n3w==","signatures":[{"sig":"MEUCIQCyWNDbNOtywTjzZxHT40QsHpFWsx7dW1E6VZjUsYbboQIgfNIdWKT6iC2AYaY0G9SCJz2/GxqygnKu6TzsJhsiGrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606014},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"gitHead":"a18d6beeabeda58657f13d9a4dd674df3bae35dc","scripts":{"dev":"tsup --watch","lint":"eslint src/","build":"tsup && npm run build:css","docs:dev":"vitepress dev docs","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","build-storybook":"storybook build"},"_npmUser":{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"},"repository":{"url":"git+https://github.com/Cognipeer/chat-ui.git","type":"git"},"_npmVersion":"11.6.1","description":"A customizable React chat UI component for AI agents","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"clsx":"^2.1.0","remark-gfm":"^4.0.0","lucide-react":"^0.312.0","react-markdown":"^9.0.1","tailwind-merge":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","react":"^18.2.0","postcss":"^8.4.33","react-dom":"^18.2.0","vitepress":"^1.0.0","typescript":"^5.3.3","tailwindcss":"^3.4.1","@types/react":"^18.2.48","autoprefixer":"^10.4.17","@types/react-dom":"^18.2.18"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-ui_0.1.0_1770922211151_0.3252962328749074","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cognipeer/chat-ui","version":"0.1.1","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","_id":"@cognipeer/chat-ui@0.1.1","maintainers":[{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"homepage":"https://github.com/Cognipeer/chat-ui#readme","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"dist":{"shasum":"4d4737713d1eb6eacb1d23d84717b8784fda159c","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.1.1.tgz","fileCount":9,"integrity":"sha512-Z4wJaRMIpW1x2h8sTeNhxoqz5wp9kHz6OzY06qwh61b/Vmk0OpOO+uKUOBRlLI9qWIpPkjySQU++J2TPMNYp7w==","signatures":[{"sig":"MEYCIQCi4uN/m082n52tdsmd2W30B7h94QHmGPYAymSW4ok7IQIhALYuHwMNeAwAMeOb48CoUJvhsJ7BiBxMBnkqG2kNtnWj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":680205},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"gitHead":"a18d6beeabeda58657f13d9a4dd674df3bae35dc","scripts":{"dev":"tsup --watch","lint":"eslint src/","build":"npm run clean && tsup && npm run build:css","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build && npm run verify:dist","docs:dev":"vitepress dev docs","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","verify:dist":"node scripts/verify-dist.js","docs:preview":"vitepress preview docs","prepublishOnly":"npm run prepack","build-storybook":"storybook build"},"_npmUser":{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"},"repository":{"url":"git+https://github.com/Cognipeer/chat-ui.git","type":"git"},"_npmVersion":"11.6.1","description":"A customizable React chat UI component for AI agents","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"clsx":"^2.1.0","remark-gfm":"^4.0.0","lucide-react":"^0.312.0","react-markdown":"^9.0.1","tailwind-merge":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","react":"^18.2.0","postcss":"^8.4.33","react-dom":"^18.2.0","vitepress":"^1.0.0","typescript":"^5.3.3","tailwindcss":"^3.4.1","@types/react":"^18.2.48","autoprefixer":"^10.4.17","@types/react-dom":"^18.2.18"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-ui_0.1.1_1770975096998_0.26609295029273095","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cognipeer/chat-ui","version":"0.1.2","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","_id":"@cognipeer/chat-ui@0.1.2","maintainers":[{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"homepage":"https://github.com/Cognipeer/chat-ui#readme","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"dist":{"shasum":"c9aa04ded8ed1528579b98f04d43fe7e1112d0e4","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.1.2.tgz","fileCount":9,"integrity":"sha512-ek/72M+w/mhZtXWAxQjcSMPLN9wQ0u7qm9zwxTeAUV70/0ZtU34LeY/hAdKIjWos/MDwBVPsl+e6qIWI8Vn7VA==","signatures":[{"sig":"MEUCIQD4H8+i9Ga5Zj9nhb8zztfMdtZHZD0QmGOcqVAcHACDmgIgIxMjBuzd1ihUi60rtqPYkytWsy4ofBk7UKD3W0aeO8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":769002},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"gitHead":"4ca71595ea6270520e1cd224e12276714335e787","scripts":{"dev":"tsup --watch","lint":"eslint src/","build":"npm run clean && tsup && npm run build:css","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build && npm run verify:dist","docs:dev":"vitepress dev docs","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","verify:dist":"node scripts/verify-dist.js","docs:preview":"vitepress preview docs","prepublishOnly":"npm run prepack","build-storybook":"storybook build"},"_npmUser":{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"},"repository":{"url":"git+https://github.com/Cognipeer/chat-ui.git","type":"git"},"_npmVersion":"11.6.1","description":"A customizable React chat UI component for AI agents","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"clsx":"^2.1.0","react-intl":"^6.6.0","remark-gfm":"^4.0.0","lucide-react":"^0.312.0","@formatjs/intl":"^2.10.0","react-markdown":"^9.0.1","tailwind-merge":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","react":"^18.2.0","postcss":"^8.4.33","react-dom":"^18.2.0","vitepress":"^1.0.0","typescript":"^5.3.3","tailwindcss":"^3.4.1","@types/react":"^18.2.48","autoprefixer":"^10.4.17","@types/react-dom":"^18.2.18"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-ui_0.1.2_1771252808951_0.7907022799175973","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cognipeer/chat-ui","version":"0.1.3","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","_id":"@cognipeer/chat-ui@0.1.3","maintainers":[{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"homepage":"https://github.com/Cognipeer/chat-ui#readme","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"dist":{"shasum":"92eaa134e737ebc2d99a9c49c4d7071d708cac8d","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.1.3.tgz","fileCount":9,"integrity":"sha512-cXgZm9ojYRH1vOUtqfmCbNlJxntYFu7cbciyn7/lI91oi5C+rv8A48uQuQ3FOYuiqE+Abva4OTbsIEfCAmntTw==","signatures":[{"sig":"MEUCIQDOg8UH1tf4LOVTDzKrxBHk3tAsmT/xHVvr4FNuIh9EBwIgJsGDyGrKggfMsW3FNrALA1dTS61qvwyvANxI4Yz4P8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800095},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"gitHead":"8cf89318f63b1099b8f5e6a7000a39b89ee36eea","scripts":{"dev":"tsup --watch","lint":"eslint src/","build":"npm run clean && tsup && npm run build:css","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build && npm run verify:dist","docs:dev":"vitepress dev docs","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","verify:dist":"node scripts/verify-dist.js","docs:preview":"vitepress preview docs","prepublishOnly":"npm run prepack","build-storybook":"storybook build"},"_npmUser":{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},"repository":{"url":"git+https://github.com/Cognipeer/chat-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A customizable React chat UI component for AI agents","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.7.0","dependencies":{"clsx":"^2.1.0","react-intl":"^6.6.0","remark-gfm":"^4.0.0","lucide-react":"^0.312.0","@formatjs/intl":"^2.10.0","react-markdown":"^9.0.1","tailwind-merge":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","react":"^18.2.0","postcss":"^8.4.33","react-dom":"^18.2.0","vitepress":"^1.0.0","typescript":"^5.3.3","tailwindcss":"^3.4.1","@types/react":"^18.2.48","autoprefixer":"^10.4.17","@types/react-dom":"^18.2.18"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-ui_0.1.3_1772810096945_0.08808506385113324","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cognipeer/chat-ui","version":"0.1.4","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","_id":"@cognipeer/chat-ui@0.1.4","maintainers":[{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"homepage":"https://github.com/Cognipeer/chat-ui#readme","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"dist":{"shasum":"60ee633b9977f4e68591c1095e6e3d683c2ad13b","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.1.4.tgz","fileCount":9,"integrity":"sha512-kb057batRtEF74/lGuULjGq8M1A3PVdSyYcuPaRZyMPt98zpCMc4Qn804McDYlXDF3oERiRgup/tYFM3ex0fjg==","signatures":[{"sig":"MEUCIQClPELv+J6uOTQiuEAPGWzVjso8q/pyB8cOP88EdN2zxgIgAs3eEsM2d37XAul1TQumBc+yXZ1GFxXKsNH4MPzEmqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":804894},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"gitHead":"eeae57efedf57a342e84d0e9f2f6132125219a71","scripts":{"dev":"tsup --watch","lint":"eslint src/","build":"npm run clean && tsup && npm run build:css","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build && npm run verify:dist","docs:dev":"vitepress dev docs","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","verify:dist":"node scripts/verify-dist.js","docs:preview":"vitepress preview docs","prepublishOnly":"npm run prepack","build-storybook":"storybook build"},"_npmUser":{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},"repository":{"url":"git+https://github.com/Cognipeer/chat-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A customizable React chat UI component for AI agents","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.7.0","dependencies":{"clsx":"^2.1.0","react-intl":"^6.6.0","remark-gfm":"^4.0.0","lucide-react":"^0.312.0","@formatjs/intl":"^2.10.0","react-markdown":"^9.0.1","tailwind-merge":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","react":"^18.2.0","postcss":"^8.4.33","react-dom":"^18.2.0","vitepress":"^1.0.0","typescript":"^5.3.3","tailwindcss":"^3.4.1","@types/react":"^18.2.48","autoprefixer":"^10.4.17","@types/react-dom":"^18.2.18"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-ui_0.1.4_1783666732567_0.30663004091979595","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@cognipeer/chat-ui","version":"0.1.5","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","_id":"@cognipeer/chat-ui@0.1.5","maintainers":[{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"homepage":"https://github.com/Cognipeer/chat-ui#readme","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"dist":{"shasum":"d7b0b7dfa3da6430cf07dcd07d151757375a8d11","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.1.5.tgz","fileCount":9,"integrity":"sha512-Aj9ySUToJ3yBSHCqJplO3PxvTPkAHO3FBLdqNr/0KAlOz4Efu+RFGxjrVATN6JAp8YBhsqgulyN9sZEKN76TVQ==","signatures":[{"sig":"MEYCIQDTQG2j/qpTyxwx6+6OYoVg7KmAhJp+r22vRLc8UploAAIhAMZNPJx9EXO1X9H2JsuW/HJaXUhZdEwwDRj+CvOd4jO+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":846766},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"gitHead":"6dd8d95e88a4e68fd015b2b655cb17a2707bef71","scripts":{"dev":"tsup --watch","lint":"eslint src/","build":"npm run clean && tsup && npm run build:css","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepack":"npm run build && npm run verify:dist","docs:dev":"vitepress dev docs","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","storybook":"storybook dev -p 6006","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","verify:dist":"node scripts/verify-dist.js","docs:preview":"vitepress preview docs","prepublishOnly":"npm run prepack","build-storybook":"storybook build"},"_npmUser":{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},"repository":{"url":"git+https://github.com/Cognipeer/chat-ui.git","type":"git"},"_npmVersion":"11.5.1","description":"A customizable React chat UI component for AI agents","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.7.0","dependencies":{"clsx":"^2.1.0","react-intl":"^6.6.0","remark-gfm":"^4.0.0","lucide-react":"^0.312.0","@formatjs/intl":"^2.10.0","react-markdown":"^9.0.1","tailwind-merge":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","react":"^18.2.0","postcss":"^8.4.33","react-dom":"^18.2.0","vitepress":"^1.0.0","typescript":"^5.3.3","tailwindcss":"^3.4.1","@types/react":"^18.2.48","autoprefixer":"^10.4.17","@types/react-dom":"^18.2.18"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/chat-ui_0.1.5_1787669785980_0.8751071881451717","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cognipeer/chat-ui","version":"0.2.0","description":"A customizable React chat UI component for AI agents","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"sideEffects":["**/*.css"],"scripts":{"dev":"tsup --watch","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && tsup && npm run build:css","build:css":"tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --minify","verify:dist":"node scripts/verify-dist.js","prepack":"npm run build && npm run verify:dist","prepublishOnly":"npm run prepack","lint":"eslint src/","typecheck":"tsc --noEmit","storybook":"storybook dev -p 6006","build-storybook":"storybook build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"dependencies":{"@formatjs/intl":"^2.10.0","clsx":"^2.1.0","lucide-react":"^0.312.0","react-intl":"^6.6.0","react-markdown":"^9.0.1","remark-gfm":"^4.0.0","tailwind-merge":"^2.2.0"},"devDependencies":{"@types/react":"^18.2.48","@types/react-dom":"^18.2.18","autoprefixer":"^10.4.17","postcss":"^8.4.33","react":"^18.2.0","react-dom":"^18.2.0","tailwindcss":"^3.4.1","tsup":"^8.0.1","typescript":"^5.3.3","vitepress":"^1.0.0"},"keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"author":{"name":"Cognipeer"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Cognipeer/chat-ui.git"},"gitHead":"4af2a39bd2e0632b55ec967fb2d10f1ac622c6af","_id":"@cognipeer/chat-ui@0.2.0","bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"homepage":"https://github.com/Cognipeer/chat-ui#readme","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-7WNjuMQ1zUNkE0o2Ymf1/IN4DVplcO6r1KcrK3fZ+v1aAOcsWFe/2C++QDWL4QG6i2CKG0N0ujEWQwxh1LsZQg==","shasum":"6f634b06b097e81b9644804e05c55afe891deb31","tarball":"https://registry.npmjs.org/@cognipeer/chat-ui/-/chat-ui-0.2.0.tgz","fileCount":9,"unpackedSize":846766,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cognipeer%2fchat-ui@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCRADjBD9mOS2/bhsEg5OTpsSjbmVsNRWH//ZArUaDKQgIgdODx4O1ldw5+u5PA34kRfHBCW3s9WXm38EExM9LTO5s="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:560a0c6b-537e-45fd-b44c-03dde7c50527"}},"directories":{},"maintainers":[{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat-ui_0.2.0_1787813479021_0.8487334824046497"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-12T18:50:11.087Z","modified":"2026-08-27T06:51:19.610Z","0.1.0":"2026-02-12T18:50:11.299Z","0.1.1":"2026-02-13T09:31:37.199Z","0.1.2":"2026-02-16T14:40:09.103Z","0.1.3":"2026-03-06T15:14:57.142Z","0.1.4":"2026-07-10T06:58:52.773Z","0.1.5":"2026-08-25T14:56:26.137Z","0.2.0":"2026-08-27T06:51:19.175Z"},"bugs":{"url":"https://github.com/Cognipeer/chat-ui/issues"},"author":{"name":"Cognipeer"},"license":"MIT","homepage":"https://github.com/Cognipeer/chat-ui#readme","keywords":["react","chat","ui","ai","agent","chatgpt","streaming","sse"],"repository":{"type":"git","url":"git+https://github.com/Cognipeer/chat-ui.git"},"description":"A customizable React chat UI component for AI agents","maintainers":[{"name":"cihanalagoz","email":"cihanalagoz@hotmail.com"},{"name":"cognipeer-dev","email":"dev@cognipeer.com"},{"name":"sercanuste","email":"sercanuste@hotmail.com"},{"name":"aguleroglu","email":"anil.guleroglu@gmail.com"}],"readme":"# @cognipeer/chat-ui\n\nA customizable React chat UI component library for AI agents. Features a ChatGPT-like dark theme, streaming support, file uploads, tool call visualization, and seamless integration with `@cognipeer/agent-server`.\n\n\nDocumentation: <https://docs.cognipeer.com/chat-ui/guide/getting-started>\n## Features\n\n- 🎨 **Customizable Theme** - Dark/light modes with full color customization\n- 📡 **Streaming Support** - Real-time SSE streaming with text updates\n- 📁 **File Uploads** - Built-in file attachment support\n- 🔧 **Tool Call UI** - Expandable tool call visualization\n- 💬 **Chat History** - Sidebar with conversation history\n- 🎯 **Customizable Actions** - Add feedback buttons or custom actions to messages\n- 🌍 **Internationalization** - Built-in i18n with English and Turkish support\n- ⚛️ **React 18+** - Modern React with hooks\n- 🎨 **Tailwind CSS** - Utility-first styling\n\n## Installation\n\n```bash\nnpm install @cognipeer/chat-ui\n```\n\n## Quick Start\n\n### Basic Usage with Agent Server\n\n```tsx\nimport { Chat } from \"@cognipeer/chat-ui\";\nimport \"@cognipeer/chat-ui/styles.css\";\n\nfunction App() {\n  return (\n    <div className=\"h-screen\">\n      <Chat\n        baseUrl=\"http://localhost:3000/api\"\n        agentId=\"my-agent\"\n        theme=\"dark\"\n      />\n    </div>\n  );\n}\n```\n\n### With Authentication\n\n```tsx\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n  authorization=\"Bearer your-token-here\"\n  theme=\"dark\"\n/>\n```\n\n### Without History Sidebar\n\n```tsx\nimport { ChatMinimal } from \"@cognipeer/chat-ui\";\n\n<ChatMinimal\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n/>\n```\n\n## Custom Theme\n\n### Using Theme Provider\n\n```tsx\nimport { Chat } from \"@cognipeer/chat-ui\";\n\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n  theme=\"dark\"\n  themeColors={{\n    bgPrimary: \"#1a1a2e\",\n    bgSecondary: \"#16213e\",\n    bgTertiary: \"#0f3460\",\n    textPrimary: \"#eaeaea\",\n    textSecondary: \"#a0a0a0\",\n    accentPrimary: \"#e94560\",\n  }}\n/>\n```\n\n### Direct Theme Provider Usage\n\n```tsx\nimport { ChatThemeProvider, useChatTheme } from \"@cognipeer/chat-ui\";\n\nfunction MyChat() {\n  const { theme, setTheme } = useChatTheme();\n  \n  return (\n    <button onClick={() => setTheme({ mode: theme.mode === \"dark\" ? \"light\" : \"dark\" })}>\n      Toggle Theme\n    </button>\n  );\n}\n\nfunction App() {\n  return (\n    <ChatThemeProvider defaultMode=\"dark\">\n      <MyChat />\n    </ChatThemeProvider>\n  );\n}\n```\n\n## Internationalization (i18n)\n\nThe library includes built-in internationalization support with English and Turkish translations. Language is detected from the URL query parameter (`?lang=en` or `?lang=tr`). If no query parameter is provided, it defaults to English (or the specified `defaultLocale`).\n\n### Auto-detect from URL Query Parameter\n\n```tsx\n// URL: https://example.com/chat?lang=tr\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n/>\n// Will automatically use Turkish\n\n// URL: https://example.com/chat (no query parameter)\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n/>\n// Will use English (default)\n```\n\n### Set Default Locale\n\n```tsx\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n  defaultLocale=\"tr\"\n/>\n```\n\n### Controlled Locale\n\n```tsx\nimport { useState } from \"react\";\nimport { Chat, type SupportedLocale } from \"@cognipeer/chat-ui\";\n\nfunction App() {\n  const [locale, setLocale] = useState<SupportedLocale>(\"en\");\n  \n  return (\n    <>\n      <button onClick={() => setLocale(locale === \"en\" ? \"tr\" : \"en\")}>\n        Switch Language\n      </button>\n      <Chat\n        baseUrl=\"http://localhost:3000/api\"\n        agentId=\"my-agent\"\n        locale={locale}\n        onLocaleChange={setLocale}\n      />\n    </>\n  );\n}\n```\n\n### Using i18n Hook\n\n```tsx\nimport { useI18n } from \"@cognipeer/chat-ui\";\n\nfunction MyComponent() {\n  const { t, locale, setLocale } = useI18n();\n  \n  return (\n    <div>\n      <p>{t(\"chat.input.placeholder\")}</p>\n      <p>Current language: {locale}</p>\n      <button onClick={() => setLocale(locale === \"en\" ? \"tr\" : \"en\")}>\n        {locale === \"en\" ? \"Türkçe\" : \"English\"}\n      </button>\n    </div>\n  );\n}\n```\n\n### Custom Messages\n\nYou can provide custom translations:\n\n```tsx\nimport { ChatI18nProvider } from \"@cognipeer/chat-ui\";\n\n<ChatI18nProvider\n  defaultLocale=\"en\"\n  customMessages={{\n    en: {\n      \"chat.input.placeholder\": \"Write your message here...\",\n    },\n    tr: {\n      \"chat.input.placeholder\": \"Mesajınızı buraya yazın...\",\n    },\n  }}\n>\n  <Chat baseUrl=\"...\" agentId=\"...\" />\n</ChatI18nProvider>\n```\n\n### Supported Locales\n\n- `en` - English (default)\n- `tr` - Turkish\n\n**Language Detection:**\n1. URL query parameter (`?lang=en` or `?lang=tr`)\n2. Falls back to `defaultLocale` prop (default: `en`)\n\nAll UI strings are automatically translated including:\n- Input placeholders\n- Button labels\n- Messages\n- Tooltips\n- Error messages\n\n## Custom Message Actions (Feedback)\n\n```tsx\nimport { Chat, ThumbsUpIcon, ThumbsDownIcon } from \"@cognipeer/chat-ui\";\n\nfunction MessageActions({ message, isStreaming }) {\n  if (isStreaming) return null;\n  \n  const handleFeedback = (type: \"up\" | \"down\") => {\n    console.log(`Feedback ${type} for message:`, message.id);\n    // Send feedback to your API\n  };\n  \n  return (\n    <div className=\"flex gap-2\">\n      <button\n        onClick={() => handleFeedback(\"up\")}\n        className=\"p-1 hover:bg-gray-700 rounded\"\n      >\n        <ThumbsUpIcon className=\"w-4 h-4\" />\n      </button>\n      <button\n        onClick={() => handleFeedback(\"down\")}\n        className=\"p-1 hover:bg-gray-700 rounded\"\n      >\n        <ThumbsDownIcon className=\"w-4 h-4\" />\n      </button>\n    </div>\n  );\n}\n\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n  renderMessageActions={(props) => <MessageActions {...props} />}\n/>\n```\n\n## Using Hooks Directly\n\nFor more control, use the hooks directly:\n\n```tsx\nimport { useChat, ChatMessageList, ChatInput } from \"@cognipeer/chat-ui\";\n\nfunction CustomChat() {\n  const chat = useChat({\n    baseUrl: \"http://localhost:3000/api\",\n    agentId: \"my-agent\",\n   locale` | `\"en\" \\| \"tr\"` | - | Override locale (auto-detect if not set) |\n| `defaultLocale` | `\"en\" \\| \"tr\"` | `\"en\"` | Default locale |\n| `onLocaleChange` | `function` | - | Callback when locale changes |\n| ` streaming: true,\n    onMessageReceived: (message) => {\n      console.log(\"New message:\", message);\n    },\n  });\n\n  return (\n    <div className=\"flex flex-col h-full\">\n      <ChatMessageList\n        messages={chat.messages}\n        isStreaming={chat.isLoading}\n        streamingText={chat.streamingText}\n      />\n      <ChatInput\n        onSend={chat.sendMessage}\n        onStop={chat.stop}\n        isLoading={chat.isLoading}\n      />\n    </div>\n  );\n}\n```\n\n## File Uploads\n\n```tsx\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n  enableFileUpload={true}\n  allowedFileTypes={[\"image/*\", \".pdf\", \".txt\"]}\n  maxFileSize={10 * 1024 * 1024} // 10MB\n  maxFiles={5}\n/>\n```\n\n## Custom Callbacks\n\n```tsx\n<Chat\n  baseUrl=\"http://localhost:3000/api\"\n  agentId=\"my-agent\"\n  onMessageSent={(message) => {\n    console.log(\"User sent:\", message);\n  }}\n  onMessageReceived={(message) => {\n    console.log(\"Agent replied:\", message);\n  }}\n  onStreamText={(chunk, fullText) => {\n    console.log(\"Streaming:\", chunk);\n  }}\n  onToolCall={(toolName, args) => {\n    console.log(\"Tool called:\", toolName, args);\n  }}\n  onToolResult={(toolName, result) => {\n    console.log(\"Tool result:\", toolName, result);\n  }}\n  onError={(error) => {\n    console.error(\"Chat error:\", error);\n  }}\n  onConversationCreated={(conversation) => {\n    console.log(\"New conversation:\", conversation);\n  }}\n  onConversationSelected={(conversation) => {\n    console.log(\"Selected conversation:\", conversation);\n  }}\n/>\n```\n\n## Custom API Integration\n\nFor non-agent-server backends, use the API client or hooks with custom implementations:\n\n```tsx\nimport { useChat, AgentServerClient } from \"@cognipeer/chat-ui\";\n\n// Create a custom client if needed\nconst customClient = new AgentServerClient({\n  baseUrl: \"https://your-api.com\",\n  agentId: \"agent\",\n  headers: {\n    \"X-Custom-Header\": \"value\",\n  },\n});\n\n// Or extend the client class for fully custom implementations\n```\n\n## Components API\n\n### `<Chat>`\n\nMain chat component with all features.\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `baseUrl` | `string` | required | Base URL for the API |\n| `agentId` | `string` | required | Agent ID to use |\n| `authorization` | `string` | - | Authorization header value |\n| `headers` | `object` | - | Custom headers |\n| `streaming` | `boolean` | `true` | Enable streaming |\n| `showHistory` | `boolean` | `true` | Show history sidebar |\n| `theme` | `\"light\" \\| \"dark\"` | `\"dark\"` | Theme mode |\n| `themeColors` | `object` | - | Custom colors |\n| `enableFileUpload` | `boolean` | `true` | Enable file uploads |\n| `renderMessageActions` | `function` | - | Custom message actions |\n| `renderAvatar` | `function` | - | Custom avatar |\n| `renderEmptyState` | `function` | - | Custom empty state |\n| `renderHeader` | `function` | - | Custom header |\n\n### `<ChatMinimal>`\n\nSimplified chat without history sidebar.\n\n### `<ChatMessage>`\n\nIndividual message component.\n\n### `<ChatMessageList>`\n\nList of messages with auto-scroll.\n\n### `<ChatInput>`\n\nInput component with file upload support.\n\n### `<ChatHistory>`\n\nHistory sidebar component.\n\n### `<ToolCall>` / `<ToolCalls>`\n\nTool call visualization components.\n\n## Hooks\n\n### `useChat(options)`\n\nMain chat state management hook.\n\nReturns:\n- `messages` - Current messages\n- `conversation` - Current conversation\n- `isLoading` - Loading state\n- `streamingText` - Current streaming text\n- `error` - Current error\n- `pendingFiles` - Files pending upload\n- `activeToolCalls` - Active tool calls\n- `sendMessage(content)` - Send a message\n- `addFiles(files)` - Add files\n- `removeFile(id)` - Remove a file\n- `clearMessages()` - Clear messages\n- `loadConversation(id)` - Load a conversation\n- `createConversation(title?)` - Create new conversation\n- `retry()` - Retry last message\n- `stop()` - Stop generation\n\n### `useChatHistory(options)`\n\nHistory management hook.\n\nReturns:\n- `conversations` - Conversation list\n- `isLoading` - Loading state\n- `hasMore` - Has more items\n- `load()` - Load conversations\n\n### `useI18n()`\n\nInternationalization hook.\n\nReturns:\n- `t(key, values?)` - Translate a key\n- `locale` - Current locale (`\"en\"` or `\"tr\"`)\n- `setLocale(locale)` - Change locale (also updates URL query param)\n- `formatNumber(value, options?)` - Format a number\n- `formatDate(value, options?)` - Format a date\n- `formatRelativeTime(value, unit)` - Format relative time\n- `loadMore()` - Load more\n- `refresh()` - Refresh list\n- `deleteConversation(id)` - Delete conversation\n\n## Styling with Tailwind\n\nThe library uses CSS variables for theming. You can override them:\n\n```css\n:root {\n  --chat-bg-primary: #212121;\n  --chat-bg-secondary: #171717;\n  --chat-bg-tertiary: #2f2f2f;\n  --chat-bg-hover: #3f3f3f;\n  --chat-text-primary: #ececec;\n  --chat-text-secondary: #b4b4b4;\n  --chat-text-tertiary: #8e8e8e;\n  --chat-text-inverse: #171717;\n  --chat-border-primary: #3f3f3f;\n  --chat-border-secondary: #2f2f2f;\n  --chat-accent-primary: #10a37f;\n  --chat-accent-secondary: #1a7f64;\n}\n```\n\n## Next.js Integration\n\n```tsx\n// app/chat/page.tsx\n\"use client\";\n\nimport { Chat } from \"@cognipeer/chat-ui\";\nimport \"@cognipeer/chat-ui/styles.css\";\n\nexport default function ChatPage() {\n  return (\n    <div className=\"h-screen\">\n      <Chat\n        baseUrl=\"/api/agents\"\n        agentId=\"my-agent\"\n      />\n    </div>\n  );\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}