{"_id":"@ai-chat-ui-kit/components","_rev":"10-9dd60b4f88718d26626609c7228c3d2a","name":"@ai-chat-ui-kit/components","dist-tags":{"latest":"0.2.5"},"versions":{"0.1.0":{"name":"@ai-chat-ui-kit/components","version":"0.1.0","_id":"@ai-chat-ui-kit/components@0.1.0","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"6e5c34e9329ba6f570aeb2841bc8c32330e62545","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.1.0.tgz","fileCount":85,"integrity":"sha512-1wS7wg6XCWaCG3B+30pUbavyv6S285sAS4n04kj2IZY74WOKn4OWf/eKi9aluwpjmxcTjg3y7wfF8MGbn9SFXw==","signatures":[{"sig":"MEYCIQCf2CeeZssgkwex1aQUe/jkVjv0oUBm0zE505y3IxnHqAIhAI6RFrMUn6jqKuE99VyG6pftb22BzhizPlb2ddeIE2xu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181671},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"5ae682446fef02e6c0af919228fe3b3f218809f0","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.1.0_1778672475232_0.41528053491692907","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ai-chat-ui-kit/components","version":"0.1.1","_id":"@ai-chat-ui-kit/components@0.1.1","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"ae6f524e667fbf86029cc29aa76191c28fafeb2e","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.1.1.tgz","fileCount":86,"integrity":"sha512-BIlY1kH4wPdXhnulAhuhY5fhjAX3jx7zOlS8xPdv/sh6gPaHGmON3kZtb7FZ4nqEpfaG1nbjko5sGaWyVYQY2A==","signatures":[{"sig":"MEYCIQCj9MV5V2GGUKr4uBTTOs7t9QJl6FM54W0dtcpcRAvQfAIhAPNAk/caOXldqppK7mN8ep/0rEKcyB/isrlnhsbkB+Pq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187839},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"8af973f1f5af5167ed21ab181672168a433acf7e","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.1.1_1778673000459_0.21398332879770843","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ai-chat-ui-kit/components","version":"0.2.0","_id":"@ai-chat-ui-kit/components@0.2.0","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"62e0ea21ed0b6bebc33d800f56cbeabce2ff9816","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.0.tgz","fileCount":87,"integrity":"sha512-7sBwpC+HJJCHwAOtPG+N1V9gspr4KatSU0kUJft7JB4bBA9PlENPHyk+TTT8CQXbst1A0z6hiAyjlgHnAIb3WQ==","signatures":[{"sig":"MEQCIH/XS4jNtvMiBLQzwjJlP/upLpdIL/e84b24dWh0/BOvAiA7es11JozO4nDFzQDyUYa95R+ZN4Nhc4XB3uc7fN8VLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230906},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./package.json":"./package.json"},"gitHead":"34391b5461995cfb54e4f241a596a63a869135f1","scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.0_1778807996126_0.33748734504937716","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@ai-chat-ui-kit/components","version":"0.2.1","_id":"@ai-chat-ui-kit/components@0.2.1","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"02b1c9f851a75aa8ad18e5c1858f8924193ae06c","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.1.tgz","fileCount":87,"integrity":"sha512-2eJqXS25U6KuTU6e9i62QWQzkw7ynoLjZPwqS2Ws+R0FKv6GybtIO0xpJQhDo2JdWUiYofpYrrTNeevJg5KnWQ==","signatures":[{"sig":"MEQCIGd8Y423lBcgr3SDRn1CxClCfGZD52jbHaw+tKiZmD+1AiBXe0XxC8DnGQS0g3A95e9poQp6GyPFEBc+pLrB8xO34Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233769},"main":"dist/index.cjs","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./style":"./dist/index.css","./style.css":"./dist/index.css","./package.json":"./package.json","./dist/index.css":"./dist/index.css"},"gitHead":"86104b59e78bdbfb39c38f235192c5cafa4fb5e5","scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.1_1778808970201_0.8334746780776505","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@ai-chat-ui-kit/components","version":"0.2.2","_id":"@ai-chat-ui-kit/components@0.2.2","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"78ca702bc00aa0b61da67c428728b4cf7ffb7eaf","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.2.tgz","fileCount":87,"integrity":"sha512-xfwpgtU92/Yuq+ya2BVxggvW+HfdS6yItAr3Ptyhal+JycQQ1UxZS49xZGJyEAXI+sgb3vtY4e6+FdOzfUNSlA==","signatures":[{"sig":"MEYCIQCOFdNU/0ct2LqfUQK7rP4YKKNNs4gIFieVlsuexxi+QAIhAOzOWNrSef4zGUxcdc+CC3Vx2Hh/5IqU59ZHxwboZObu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234260},"main":"dist/index.cjs","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./style":"./dist/index.css","./style.css":"./dist/index.css","./package.json":"./package.json","./dist/index.css":"./dist/index.css"},"gitHead":"2acf7c1b05f7051eb569af3dbc13f011a78a6191","scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.2_1778809651627_0.6890099362422355","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@ai-chat-ui-kit/components","version":"0.2.3","_id":"@ai-chat-ui-kit/components@0.2.3","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"5b13d13693ad4acee19701175acab3876aa6f280","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.3.tgz","fileCount":87,"integrity":"sha512-jt3Swje0NQQwD64ZCMipoDPgLSARUc3qzyxMrRwqYqIyApFncEM6v0RCyWR6Z2IKCUltEziLPVaUx13zUyRQqg==","signatures":[{"sig":"MEUCIQCLxCIRWBv5uejCyMKIPWHdBs23AZl1YHfaodhROSv74AIgFRj9obQj6+FvQspVmsqLDmilbQPKp0rT+xs9rAGCCUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250567},"main":"dist/index.cjs","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./style":"./dist/index.css","./style.css":"./dist/index.css","./package.json":"./package.json","./dist/index.css":"./dist/index.css"},"gitHead":"2acf7c1b05f7051eb569af3dbc13f011a78a6191","scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.3_1778811353983_0.3918152240891666","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@ai-chat-ui-kit/components","version":"0.2.4","license":"MIT","_id":"@ai-chat-ui-kit/components@0.2.4","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"e68d31f7c10ddf44c2e79e64d94334828c55fb2c","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.4.tgz","fileCount":88,"integrity":"sha512-kah5fDacAmTWF8Iar3ceIbpuTV9WbHcG/FzhlEHqJFi7mLBb1JX1jE8sjlr5xFoBZ89mMWum4S1nx/NzFiKXqw==","signatures":[{"sig":"MEUCIQCtTsLDoPDVG5ehbG6AeH8E5qMr8LBd9HF7zJTAEjB7hgIgc/QK+I3lmgr+NRGWQAPhqxxBiMF/kfv24wpJ+wn6XoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251693},"main":"dist/index.cjs","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./style":"./dist/index.css","./style.css":"./dist/index.css","./package.json":"./package.json","./dist/index.css":"./dist/index.css"},"gitHead":"812d8a9533bb74ad15c109119653a27c8f92abe9","scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.9.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"_nodeVersion":"22.14.0","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.4_1778811861598_0.32033417914573814","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@ai-chat-ui-kit/components","version":"0.2.6","license":"MIT","_id":"@ai-chat-ui-kit/components@0.2.6","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"f852dacef4bf8e413f39d7a967117db645b8e2a5","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.6.tgz","fileCount":87,"integrity":"sha512-mW1jJjdZJ+9bzNTxT9SljRSGFHNq9v5yIC8ymladx3HGJzOpYllHgd0KjWzq5oesfKmDAT01/MIueL1ScmBOeQ==","signatures":[{"sig":"MEUCIQDYuuBA9q3dlk+Q13XC/zQr1ppfqtgFYcFpOrxz7EWM2QIgOJyTdpSY9D4b0umb5lJR1NXJIVmezmxsBeKytca2TVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271844},"main":"dist/index.cjs","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./style":"./dist/index.css","./style.css":"./dist/index.css","./package.json":"./package.json","./dist/index.css":"./dist/index.css"},"gitHead":"14465aa6073826b233f0decb6efdb9a3478f6101","scripts":{"dev":"tsup --watch","build":"tsup && node scripts/bundle-css.cjs && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.8.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"_nodeVersion":"24.14.1","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.6_1778820931674_0.9328174835878833","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@ai-chat-ui-kit/components","version":"0.2.7","license":"MIT","_id":"@ai-chat-ui-kit/components@0.2.7","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"dist":{"shasum":"3db68abc3b2819782006a73723a33b312be44cfd","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.7.tgz","fileCount":87,"integrity":"sha512-k1ZrRp90jQTR1+o3ujD+TlW/Di95AVCma17ux5X4tON/ByxdRaBLYVey3tygswBLCEvbbPDFbwnkgfz1+sSLyw==","signatures":[{"sig":"MEUCIQDSLTYjLhjaLnYAERCcu/o54r0GitsdklJ51/eK0b6eXwIgQM/2pvc2WM/ByKP4mN/6asWoC2WEjRoa2WuETCCP0Hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273019},"main":"dist/index.cjs","type":"module","style":"dist/index.css","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts"},"./style":"./dist/index.css","./style.css":"./dist/index.css","./package.json":"./package.json","./dist/index.css":"./dist/index.css"},"gitHead":"8f71c67f4c6dbf1a590fdb50503b107ad3bdf34b","scripts":{"dev":"tsup --watch","build":"tsup && node scripts/bundle-css.cjs && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"repository":{"url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","type":"git","directory":"packages/components"},"_npmVersion":"10.8.2","description":"Web Components for AI Chat UI Kit (Lit)","directories":{},"sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"_nodeVersion":"24.14.1","dependencies":{"lit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/components_0.2.7_1778821679845_0.37208897882769665","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@ai-chat-ui-kit/components","version":"0.2.5","description":"Web Components for AI Chat UI Kit (Lit)","type":"module","license":"MIT","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","style":"dist/index.css","sideEffects":["**/*.css","./dist/index.js","./dist/index.cjs"],"repository":{"type":"git","url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","directory":"packages/components"},"homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./style.css":"./dist/index.css","./style":"./dist/index.css","./dist/index.css":"./dist/index.css","./react":{"types":"./dist/react.d.ts"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","build":"tsup && node -e \"require('fs').copyFileSync('src/react.d.ts', 'dist/react.d.ts')\""},"dependencies":{"lit":"^3.0.0"},"devDependencies":{"tsup":"^7.0.0","typescript":"^5.0.0"},"peerDependenciesMeta":{"@ai-chat/core":{"optional":true}},"_id":"@ai-chat-ui-kit/components@0.2.5","gitHead":"af057022ce9fcca43e128b8b8bda75ca5e7db9fa","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-/FxY9ydtGwKr01lI6SDsVOzEiS958RcKY1OacdflcZh81aJC/CJNfukjlMJVb12ybWECQorpFny6N/ZuCEz6bA==","shasum":"5cf67d625b1dd5840a460bc4c8e4844f44338296","tarball":"https://registry.npmjs.org/@ai-chat-ui-kit/components/-/components-0.2.5.tgz","fileCount":88,"unpackedSize":247246,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA9mj2H3imLQ/RvHU+Wff5KRtqxHSUdvtWyqr8YcuN9XAiEAqjk556ggVmILBxGLpno4K50HgBXXvg/o1a4U9nsngo4="}]},"_npmUser":{"name":"eden_zxpzhang","email":"1405051717@qq.com"},"directories":{},"maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/components_0.2.5_1778895828890_0.17321968339818783"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T11:41:15.150Z","modified":"2026-05-16T01:43:49.168Z","0.1.0":"2026-05-13T11:41:15.394Z","0.1.1":"2026-05-13T11:50:00.754Z","0.2.0":"2026-05-15T01:19:56.272Z","0.2.1":"2026-05-15T01:36:10.463Z","0.2.2":"2026-05-15T01:47:31.790Z","0.2.3":"2026-05-15T02:15:54.184Z","0.2.4":"2026-05-15T02:24:21.720Z","0.2.6":"2026-05-15T04:55:31.822Z","0.2.7":"2026-05-15T05:08:00.007Z","0.2.5":"2026-05-16T01:43:49.046Z"},"bugs":{"url":"https://github.com/edenxpzhang/ai-chat-ui-kit/issues"},"license":"MIT","homepage":"https://edenxpzhang.github.io/ai-chat-ui-kit/","repository":{"type":"git","url":"git+https://github.com/edenxpzhang/ai-chat-ui-kit.git","directory":"packages/components"},"description":"Web Components for AI Chat UI Kit (Lit)","maintainers":[{"name":"eden_zxpzhang","email":"1405051717@qq.com"}],"readme":"# @ai-chat-ui-kit/components\r\n\r\nWeb Components for AI Chat UI Kit - Built with Lit, framework-agnostic.\r\n\r\n![Version](https://img.shields.io/npm/v/@ai-chat-ui-kit/components.svg)\r\n![License](https://img.shields.io/npm/l/@ai-chat-ui-kit/components.svg)\r\n![Lit](https://img.shields.io/badge/Lit-3.0-orange.svg)\r\n\r\n## ✨ Features\r\n\r\n- 🚀 **Web Components** - 原生组件，跨框架兼容（React / Vue / 原生 HTML）\r\n- 🎛 **受控模式（v0.2+）** - `controlled` + `ai-chat-send` 事件，React 无缝集成\r\n- 🪟 **富交互 Slot（v0.2+）** - `<ai-message>` 支持 `actions` / `footer` / `content-extra` slot，HITL 场景刚需\r\n- 🌊 **流式 Markdown（v0.2+）** - `<ai-markdown>` 提供 `appendContent(chunk)` 增量追加 API\r\n- ⚛️ **React TS 友好（v0.2+）** - 提供 `@ai-chat-ui-kit/components/react` JSX 类型声明\r\n- 🎨 **6 Built-in Themes** - 配合 `@ai-chat-ui-kit/themes` 使用\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\npnpm add @ai-chat-ui-kit/components @ai-chat-ui-kit/themes\r\n```\r\n\r\n## 🎨 引入样式（必读）\r\n\r\n`<ai-chat>` 等组件默认走 light DOM（`headless = true`），因此**需要把组件的 light DOM 兜底样式注入到页面**。任选一种方式：\r\n\r\n```ts\r\n// 推荐：通过 ./style.css 子路径（与 antd / element-plus 风格一致）\r\nimport '@ai-chat-ui-kit/components/style.css';\r\n\r\n// 或：直接指定 dist 路径（向后兼容）\r\nimport '@ai-chat-ui-kit/components/dist/index.css';\r\n```\r\n\r\n> **v0.2.1+**：包 `sideEffects` 已声明 `**/*.css`，构建工具会自动保留 css 副作用。\r\n> **headless 模式**：若你完全自己写样式，可设 `<ai-chat headless>` 但不引入 style.css（详见下方）。\r\n\r\n## 🚀 Quick Start\r\n\r\n### React + 受控模式（推荐）\r\n\r\n```tsx\r\nimport React, { useState } from 'react';\r\nimport '@ai-chat-ui-kit/components';\r\nimport '@ai-chat-ui-kit/components/react'; // JSX 类型声明\r\nimport { applyTheme } from '@ai-chat-ui-kit/themes';\r\n\r\napplyTheme('minimal');\r\n\r\nfunction ChatApp() {\r\n  const [messages, setMessages] = useState<Message[]>([]);\r\n\r\n  const handleSend = (e: CustomEvent<{ content: string; id: string }>) => {\r\n    // 1. 追加用户消息\r\n    setMessages(prev => [...prev, {\r\n      id: e.detail.id,\r\n      role: 'user',\r\n      content: e.detail.content,\r\n      timestamp: Date.now(),\r\n    }]);\r\n\r\n    // 2. 调用后端，把回复贴回去\r\n    fetch('/api/chat', { method: 'POST', body: JSON.stringify({ msg: e.detail.content }) })\r\n      .then(r => r.json())\r\n      .then(data => {\r\n        setMessages(prev => [...prev, {\r\n          id: data.id,\r\n          role: 'assistant',\r\n          content: data.content,\r\n          timestamp: Date.now(),\r\n        }]);\r\n      });\r\n  };\r\n\r\n  return (\r\n    <ai-chat\r\n      controlled\r\n      messages={messages}\r\n      onAiChatSend={handleSend}\r\n    />\r\n  );\r\n}\r\n```\r\n\r\n### HITL 富交互（按钮组 / 选项卡）\r\n\r\n```tsx\r\nfunction HITLMessage({ message }) {\r\n  return (\r\n    <ai-message message={message}>\r\n      <div slot=\"actions\">\r\n        <button data-action=\"continue\">继续</button>\r\n        <button data-action=\"modify\" data-step=\"2\">修改</button>\r\n        <button data-action=\"abort\">终止</button>\r\n      </div>\r\n      <div slot=\"footer\">\r\n        由 PlannerAgent · {new Date().toLocaleTimeString()} 提供\r\n      </div>\r\n    </ai-message>\r\n  );\r\n}\r\n\r\n// 监听按钮点击（事件冒泡到 <ai-chat>）\r\n<ai-chat\r\n  controlled\r\n  messages={messages}\r\n  onAiChatAction={(e) => {\r\n    // e.detail = { actionId, messageId, payload: { step?: '2' } }\r\n    if (e.detail.actionId === 'continue') resumeAgent();\r\n    if (e.detail.actionId === 'abort') stopAgent();\r\n  }}\r\n/>\r\n```\r\n\r\n### 流式 Markdown（chunk 增量追加）\r\n\r\n```ts\r\nconst md = document.querySelector('ai-markdown')!;\r\nmd.streaming = true;\r\n\r\nconst stream = await fetch('/api/chat/stream').then(r => r.body!.getReader());\r\nconst decoder = new TextDecoder();\r\n\r\nwhile (true) {\r\n  const { done, value } = await stream.read();\r\n  if (done) break;\r\n  md.appendContent(decoder.decode(value));\r\n}\r\n\r\nmd.streaming = false;\r\n```\r\n\r\n### 原生 HTML（Vanilla）\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n  <script type=\"module\">\r\n    import '@ai-chat-ui-kit/components';\r\n    import { applyTheme } from '@ai-chat-ui-kit/themes';\r\n    applyTheme('minimal');\r\n  </script>\r\n</head>\r\n<body>\r\n  <ai-chat></ai-chat>\r\n</body>\r\n</html>\r\n```\r\n\r\n### Vue 3\r\n\r\n```vue\r\n<template>\r\n  <ai-chat\r\n    :controlled=\"true\"\r\n    :messages.prop=\"messages\"\r\n    @ai-chat-send=\"handleSend\"\r\n  />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport '@ai-chat-ui-kit/components';\r\nconst messages = ref([]);\r\nfunction handleSend(e: CustomEvent) { /* ... */ }\r\n</script>\r\n```\r\n\r\n## 📖 Components API\r\n\r\n### `<ai-chat>` — 聊天容器\r\n\r\n**Properties:**\r\n\r\n| 属性 | 类型 | 默认 | 说明 |\r\n| --- | --- | --- | --- |\r\n| `controlled` | `boolean` | `false` | 受控模式：组件不维护内部状态，由 `messages` 决定渲染 |\r\n| `messages` | `Message[]` | `[]` | 受控模式下的消息数组 |\r\n| `theme` | `string` | `'default'` | 主题名 |\r\n| `headless` | `boolean` | `true` | 是否使用 light DOM（默认 true，让主题 CSS 能命中） |\r\n| `header-title` | `string` | `'AI Assistant'` | 标题 |\r\n| `header-subtitle` | `string` | `'在线 · 随时为您服务'` | 副标题 |\r\n| `header-avatar` | `string` | `'🤖'` | 头像 emoji / 字符 |\r\n| `hide-header` | `boolean` | `false` | 是否隐藏 header |\r\n| `input-placeholder` | `string` | `'输入消息...'` | 透传给内部 `<ai-input>` 的占位符（v0.2.3+） |\r\n| `send-text` | `string` | `'发送'` | 透传给内部 `<ai-input>` 的发送按钮文案（v0.2.3+） |\r\n\r\n**Events:**\r\n\r\n| 事件名 | detail | 说明 |\r\n| --- | --- | --- |\r\n| `ai-chat-send` | `{ content, id }` | 用户提交输入时派发（始终触发） |\r\n| `ai-chat-action` | `{ actionId, messageId, payload }` | 子消息中带 `data-action` 的元素被点击时派发 |\r\n| `ai-chat-ready` | `void` | 组件首次渲染完成时派发（v0.2.3+），可在该事件后再写入 `.messages` 以避免 SSR / 懒挂载场景的赋值竞态 |\r\n| `message-sent` | `{ message }` | 非受控模式：用户消息追加后派发 |\r\n| `message-received` | `{ message }` | 非受控模式：模拟 AI 回复后派发 |\r\n| `input-change` | `{ value }` | 输入框内容变化 |\r\n\r\n**Methods（仅非受控模式生效）:**\r\n\r\n| 方法 | 签名 | 说明 |\r\n| --- | --- | --- |\r\n| `addMessage` | `(msg: Partial<Message>) => void` | 追加预设消息 |\r\n| `setLoading` | `(loading: boolean) => void` | 切换 loading 状态（打字指示器） |\r\n| `clearMessages` | `() => void` | 清空消息 |\r\n| `exportSession` | `() => string` | 导出 JSON |\r\n| `importSession` | `(data: string) => void` | 导入 JSON |\r\n\r\n**Slots:**\r\n\r\n- `header` 整体替换 header\r\n- `header-actions` header 右侧操作区\r\n- `empty` 空态自定义内容\r\n- `input` 替换内部输入区（v0.2.3+），用于宿主接入上传 / 录音 / @提及等扩展输入控件\r\n- `footer` 输入框下方追加内容\r\n\r\n> **布局约束**：`<ai-chat>` 的父容器必须具有确定的高度（`height` 或 `display:flex; min-height:0` 的 flex 基线），否则 `.ai-chat__messages` 的 `flex:1` 拿不到剩余空间，输入框将无法沉底。在受限宽度的 flex 容器（如 antd `Drawer` / 侧边栏）内，输入区 / 输入框已内置 `flex-shrink:0` + `min-width:0` 兜底（v0.2.3+）。\r\n\r\n### `<ai-message>` — 消息组件\r\n\r\n**Properties:**\r\n\r\n| 属性 | 类型 | 说明 |\r\n| --- | --- | --- |\r\n| `message` | `Message` | 消息对象 |\r\n| `theme` | `string` | 主题名 |\r\n| `headless` | `boolean` | 是否 light DOM（默认 true） |\r\n\r\n**Slots（v0.2 新增）:**\r\n\r\n- `content-extra` 内容下方插入扩展元素（如代码块卡片）\r\n- `actions` 操作按钮区，按钮加 `data-action=\"xxx\"` 会触发 `ai-message-action` 事件\r\n- `footer` 底部签名 / 元信息\r\n\r\n**Events:**\r\n\r\n| 事件名 | detail | 说明 |\r\n| --- | --- | --- |\r\n| `ai-message-action` | `{ actionId, messageId, payload }` | slot 内带 `data-action` 的元素被点击时派发；会冒泡到 `<ai-chat>` 转化为 `ai-chat-action` |\r\n\r\n### `<ai-input>` — 输入组件\r\n\r\n| 属性 | 类型 | 默认 | 说明 |\r\n| --- | --- | --- | --- |\r\n| `disabled` | `boolean` | `false` | 禁用 |\r\n| `placeholder` | `string` | `'输入消息...'` | 占位符 |\r\n| `send-text` | `string` | `'发送'` | 发送按钮文案 |\r\n\r\n**Events:**\r\n- `send: { content }`\r\n- `input-change: { value }`\r\n\r\n**CSS 变量（v0.2.3+，禁用态主题化）:**\r\n\r\n| 变量 | 默认值 | 说明 |\r\n| --- | --- | --- |\r\n| `--ai-input-send-bg` | `#1677ff` | 发送按钮启用态背景色 |\r\n| `--ai-input-send-color` | `#fff` | 发送按钮启用态文字色 |\r\n| `--ai-input-send-bg-disabled` | `#d9d9d9` | 发送按钮禁用态背景色 |\r\n| `--ai-input-send-color-disabled` | `rgba(0, 0, 0, 0.25)` | 发送按钮禁用态文字色 |\r\n\r\n### `<ai-markdown>` — Markdown 渲染（v0.2 增强）\r\n\r\n**Properties:**\r\n\r\n| 属性 | 类型 | 默认 | 说明 |\r\n| --- | --- | --- | --- |\r\n| `content` | `string` | `''` | Markdown 字符串 |\r\n| `plugins` | `string[]` | `[]` | 启用的插件（`mermaid` / `latex`） |\r\n| `streaming` | `boolean` | `false` | 流式模式标记 |\r\n\r\n**Methods（v0.2 新增）:**\r\n\r\n| 方法 | 签名 | 说明 |\r\n| --- | --- | --- |\r\n| `appendContent` | `(chunk: string) => void` | 流式追加 chunk |\r\n| `resetContent` | `() => void` | 重置内容 |\r\n\r\n**Events:**\r\n\r\n| 事件名 | detail | 说明 |\r\n| --- | --- | --- |\r\n| `ai-markdown-rendered` | `{ contentLength, streaming }` | 每次渲染完成时派发（可用于自动滚动到底） |\r\n\r\n### `<ai-tool-call>` — 工具调用展示\r\n\r\n```html\r\n<ai-tool-call .toolCall=${{\r\n  id: 't1', name: 'get_weather', status: 'running',\r\n  parameters: { location: 'Beijing' }\r\n}}></ai-tool-call>\r\n```\r\n\r\n## ⚛️ React TypeScript 类型\r\n\r\n通过 `@ai-chat-ui-kit/components/react` 引入 JSX 类型扩展：\r\n\r\n### 方式 1：tsconfig（推荐）\r\n\r\n```json\r\n{\r\n  \"compilerOptions\": {\r\n    \"types\": [\"@ai-chat-ui-kit/components/react\"]\r\n  }\r\n}\r\n```\r\n\r\n### 方式 2：triple-slash directive\r\n\r\n```ts\r\n/// <reference types=\"@ai-chat-ui-kit/components/react\" />\r\n```\r\n\r\n### 方式 3：副作用 import\r\n\r\n```ts\r\nimport '@ai-chat-ui-kit/components/react';\r\n```\r\n\r\n任意一种方式后，`<ai-chat>` `<ai-message>` 等标签即可直接在 JSX 中使用，类型完整。\r\n\r\n### React 集成常见坑（必读）\r\n\r\n`<ai-chat>` 是 LitElement Web Component，与 React 集成时有几个一定要避开的细节：\r\n\r\n1. **布尔属性**（`controlled` / `hide-header`）必须裸名书写或写 `=\"\"`，**不能驼峰**：\r\n\r\n   ```tsx\r\n   // ✅ OK\r\n   <ai-chat controlled hide-header />\r\n   <ai-chat controlled=\"\" hide-header=\"\" />\r\n\r\n   // ❌ NO（不会被识别为 attribute）\r\n   <ai-chat hideHeader />\r\n   ```\r\n\r\n2. **复杂属性 `messages` 必须通过 `ref` 用 property 赋值**，因为它是 Lit `@property({ attribute: false })`：\r\n\r\n   ```tsx\r\n   const chatRef = useRef<HTMLElement>(null);\r\n\r\n   useEffect(() => {\r\n     if (chatRef.current) {\r\n       (chatRef.current as any).messages = messages;\r\n     }\r\n   }, [messages]);\r\n\r\n   return <ai-chat ref={chatRef} controlled />;\r\n   ```\r\n\r\n   或者使用 `@ai-chat-ui-kit/components/react` 提供的 JSX 类型后直接用 `messages={messages}`，由内部统一处理为 property。\r\n\r\n3. **自定义事件需要 `addEventListener`**（React 不支持 kebab-case 事件 prop）：\r\n\r\n   ```tsx\r\n   useEffect(() => {\r\n     const el = chatRef.current;\r\n     if (!el) return;\r\n     const onSend = (e: Event) => handleSend(e as CustomEvent);\r\n     const onAction = (e: Event) => handleAction(e as CustomEvent);\r\n     el.addEventListener('ai-chat-send', onSend);\r\n     el.addEventListener('ai-chat-action', onAction);\r\n     return () => {\r\n       el.removeEventListener('ai-chat-send', onSend);\r\n       el.removeEventListener('ai-chat-action', onAction);\r\n     };\r\n   }, []);\r\n   ```\r\n\r\n   引入 `@ai-chat-ui-kit/components/react` 后亦支持 `onAiChatSend` / `onAiChatAction` 形式（已在 JSX 类型中声明）。\r\n\r\n4. **`React.StrictMode` 双触发去重**：开发期 `useEffect` 会执行两次，若你在 effect 中向 `<ai-chat>` 推消息，应使用消息 `id` 做幂等检查，避免重复追加：\r\n\r\n   ```tsx\r\n   const seenIds = useRef(new Set<string>());\r\n   const append = (msg: Message) => {\r\n     if (seenIds.current.has(msg.id)) return;\r\n     seenIds.current.add(msg.id);\r\n     setMessages(prev => [...prev, msg]);\r\n   };\r\n   ```\r\n\r\n5. **首屏赋值时机**（v0.2.3+）：在 `Drawer destroyOnClose=false` / 懒挂载 / HMR 等场景下，建议监听 `ai-chat-ready` 后再做首次 `messages` 赋值：\r\n\r\n   ```tsx\r\n   useEffect(() => {\r\n     const el = chatRef.current;\r\n     if (!el) return;\r\n     const onReady = () => {\r\n       (el as any).messages = initialMessages;\r\n     };\r\n     el.addEventListener('ai-chat-ready', onReady);\r\n     return () => el.removeEventListener('ai-chat-ready', onReady);\r\n   }, []);\r\n   ```\r\n\r\n6. **`messages` 始终传新引用**：受控模式下请使用 `[...messages, newOne]` 或 `messages.concat(newOne)`，**不要原地 `arr.push()`**。组件内部已在 `hasChanged` 中加了长度比对兜底，但仍建议遵循\"新引用\"惯例以兼容更深的引用相等比较场景。\r\n\r\n\r\n\r\n## 🎨 配合 Themes 使用\r\n\r\n```ts\r\nimport { applyTheme } from '@ai-chat-ui-kit/themes';\r\n\r\n// 全局换肤\r\napplyTheme('glass');\r\n\r\n// 局部换肤（弹窗内独立主题）\r\napplyTheme('glass', modalContainer);\r\n```\r\n\r\n详细 API 见 [`@ai-chat-ui-kit/themes`](../themes/README.md)。\r\n\r\n## 🧱 Headless 模式\r\n\r\n所有组件都暴露了 `headless` 属性，**默认 `true`**。其含义如下：\r\n\r\n| `headless` | 渲染策略 | 适用场景 |\r\n| --- | --- | --- |\r\n| `true`（默认） | 走 **light DOM**：组件 DOM 出现在外部树中，可被全局 CSS / 主题包样式命中 | 99% 的业务场景，配合 `@ai-chat-ui-kit/themes` 使用 |\r\n| `false` | 走 **Shadow DOM**：组件样式与外部完全隔离 | 嵌入到样式复杂的第三方页面、需要 100% 样式隔离时 |\r\n\r\n```html\r\n<!-- 默认：light DOM + 引入 style.css + 主题 -->\r\n<ai-chat></ai-chat>\r\n\r\n<!-- Shadow DOM：完全样式隔离，外部 CSS 进不去，需自带样式 -->\r\n<ai-chat headless=\"false\"></ai-chat>\r\n```\r\n\r\n⚠️ **headless=false 时不要引入 `./style.css`**：light DOM 样式无法穿透 Shadow DOM；同时 `applyTheme(theme, target)` 的局部模式对 Shadow DOM 内部不生效（因为 CSS Variables 不会自动透传到 closed shadow root）。如需 Shadow DOM 内换肤，可在 `headless=false` 模式下：\r\n\r\n```ts\r\n// 拿到 shadowRoot 后手动注入\r\nconst chatEl = document.querySelector('ai-chat')!;\r\nconst shadow = (chatEl as any).renderRoot as ShadowRoot;\r\napplyTheme('glass', shadow.host as HTMLElement); // 仍走 light DOM API\r\n```\r\n\r\n\r\n\r\n## 📜 Changelog\r\n\r\n### 0.2.3 (2026-05-15)\r\n\r\n集中修复在受控（HITL）模式 + 受限宽/高容器场景下的若干问题：\r\n\r\n- 🔴 **P0** 修复 `<ai-input>` 在受限宽度 flex 容器（antd `Drawer` / 侧边栏 / 网格分栏）中被压扁、按钮飞出\r\n  - `ai-input` 增加 `width:100%` / `flex-shrink:0` / `box-sizing:border-box`\r\n  - `.ai-input__wrapper` / `.ai-input` 显式 `width:100%`\r\n  - `.ai-input__textarea` 增加 `min-width:0`，修掉 flex 经典坑（默认 `min-width:auto` 撑爆父容器）\r\n- 🔴 **P0** 修复 `<ai-chat>` 输入区不沉底\r\n  - 对内部 `<ai-input>` 与 `slot[name=\"footer\"]` 增加 `flex:0 0 auto` 兜底，避免父高度紧张时被压缩到 0\r\n  - README 增加宿主\"父容器需有确定高度\"的布局约束说明\r\n- 🟡 **P1** 修复发送按钮禁用态视觉对比度过弱\r\n  - 禁用态改用 `#d9d9d9` 背景 + `rgba(0,0,0,0.25)` 文字，`opacity:1`\r\n  - 暴露 `--ai-input-send-bg(-disabled)` / `--ai-input-send-color(-disabled)` 四个 CSS 变量供主题覆盖\r\n- 🟡 **P1** `<ai-chat>` 新增 `input-placeholder` / `send-text` 属性，透传给内部 `<ai-input>`\r\n- 🟡 **P1** `<ai-chat>` 新增 `ai-chat-ready` 生命周期事件（`firstUpdated` 派发），便于宿主在懒挂载 / SSR / StrictMode 场景规避 `.messages` 赋值竞态\r\n- 🟢 **P2** `<ai-chat>` 新增 `<slot name=\"input\">`，宿主可整体替换输入区（上传 / 录音 / @提及 / 富文本输入等）\r\n- 🟢 **P2** `messages` 属性增加 `hasChanged`：除引用变更外，长度变化也视为变更，原地 `push` 也能触发重渲染（仍推荐\"新引用\"写法）\r\n- 📝 README 新增\"React 集成常见坑（必读）\"章节，覆盖布尔属性命名、property 赋值、自定义事件监听、StrictMode 去重、`ai-chat-ready` 用法、`messages` 引用规范\r\n\r\n### 0.2.2 (2026-05-15)\r\n\r\n- 🔴 **关键修复**：`tsconfig.json` 中 `useDefineForClassFields: true` 与 Lit `@property` 装饰器冲突，导致编译后 class fields 用 `Object.defineProperty` 覆盖了装饰器注册的 getter/setter；受控模式下 `el.messages = [...]` 不触发重渲染\r\n- ✅ 修复：将 `packages/components/tsconfig.json` 的 `useDefineForClassFields` 改为 `false`，一行修复 11 个属性\r\n- 影响范围：所有使用受控模式 / property binding 的场景；浏览器控制台不再抛 `class-field-shadowing` 错误\r\n- 参考：https://lit.dev/msg/class-field-shadowing\r\n\r\n### 0.2.1 (2026-05-15)\r\n\r\n- 🔴 修复 `package.json#exports` 缺少 css 导出（导致 Vite/Node 严格模式下 `import '@ai-chat-ui-kit/components/dist/index.css'` 失败）\r\n- 🎉 新增 `./style.css` / `./style` 子路径导出（与 antd / element-plus 风格一致）\r\n- 🎉 保留 `./dist/index.css` 路径以向后兼容已有用法\r\n- 🎉 新增顶层 `style` 字段（兼容 webpack mainFields）\r\n- 🎉 声明 `sideEffects: [\"**/*.css\", \"./dist/index.js\", \"./dist/index.cjs\"]`，确保构建工具保留 CSS 副作用\r\n- 📝 README 增加「引入样式（必读）」一节\r\n- 📝 README 增加「Headless 模式」一节文档\r\n\r\n### 0.2.0 (2026-05-15)\r\n\r\n- 🎉 `<ai-chat>` 新增 `controlled` 属性 + `ai-chat-send` / `ai-chat-action` 事件\r\n- 🎉 `<ai-chat>` 新增 `setLoading()` 方法\r\n- 🎉 `<ai-message>` 新增 `actions` / `footer` / `content-extra` 三个 slot\r\n- 🎉 `<ai-message>` 新增 `ai-message-action` 事件（自动派发带 `data-action` 元素的点击）\r\n- 🎉 `<ai-markdown>` 新增 `appendContent()` / `resetContent()` 方法 + `streaming` 属性\r\n- 🎉 `<ai-markdown>` 新增 `ai-markdown-rendered` 事件\r\n- 🎉 新增 `./react` 子路径导出（React JSX 类型声明）\r\n- ✅ 完全向后兼容：旧的 `addMessage` / `message-sent` / `message-received` 保留\r\n\r\n### 0.1.1\r\n\r\n- 5 个 Web Components 首版：`<ai-chat>` `<ai-message>` `<ai-input>` `<ai-tool-call>` `<ai-markdown>`\r\n\r\n## 📦 Dependencies\r\n\r\n- `lit ^3.0.0`\r\n\r\n## 📄 License\r\n\r\n[MIT License](https://github.com/edenxpzhang/ai-chat-ui-kit/blob/master/LICENSE)\r\n\r\n## 🔗 Links\r\n\r\n- [GitHub Repository](https://github.com/edenxpzhang/ai-chat-ui-kit)\r\n- [Documentation](https://edenxpzhang.github.io/ai-chat-ui-kit/)\r\n- [Issues](https://github.com/edenxpzhang/ai-chat-ui-kit/issues)\r\n","readmeFilename":"README.md"}