{"_id":"@thangdevalone/meeting-grid-layout-react","_rev":"14-56b08b66d07caec38635307317f127c5","name":"@thangdevalone/meeting-grid-layout-react","dist-tags":{"latest":"1.9.0"},"versions":{"1.4.1":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.4.1","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.4.1","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"891a5a9bf978d46204bc4cf2abf3c25f96f8b533","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.4.1.tgz","fileCount":8,"integrity":"sha512-tkesW5/X6Z9MNqXbPsbC63YuphFXGAq3MHzXOlzkZhJjKGBInsmh0jkwUYXqXy++ILAZ8w4wwcy0YGVAN/acnw==","signatures":[{"sig":"MEYCIQCwrU77wLtFz8avePG/HLJKPEbxxvCnndB9fdl1ozHbDwIhAMJYa3g2yJm9tYDHYjQ0GkNhsa+ooLnQ7tlQx6BUo2PT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76316},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/20e3387b57c98d1eb347a299d68bc6fa/thangdevalone-meeting-grid-layout-react-1.4.1.tgz","_integrity":"sha512-tkesW5/X6Z9MNqXbPsbC63YuphFXGAq3MHzXOlzkZhJjKGBInsmh0jkwUYXqXy++ILAZ8w4wwcy0YGVAN/acnw==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.4.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.4.1_1770718893443_0.933935550967153","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.0","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.0","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"5a286529ce6350b50fe06bb0c5666a005d4830fe","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.0.tgz","fileCount":8,"integrity":"sha512-OGeqxuEDUcyuoCcjLxar25FjfbIHD3CV3vo5TwOErrU8+6jcqgZFKFNlQeVd5HldGJjveogxOvftFOzSx9MTIQ==","signatures":[{"sig":"MEUCIQDWIqKkniHPID0vsa16BS++KgX/FUSjIcdX3/z8gjkaegIgNOs5d6HvqrhiOkybuPu5TKRQAN5wDHuT/dlznIxjFaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77170},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/51ee994ccb1773acc5bf8abd7d80bb33/thangdevalone-meeting-grid-layout-react-1.5.0.tgz","_integrity":"sha512-OGeqxuEDUcyuoCcjLxar25FjfbIHD3CV3vo5TwOErrU8+6jcqgZFKFNlQeVd5HldGJjveogxOvftFOzSx9MTIQ==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.0_1771992376375_0.3127600501897778","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.1","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.1","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"2eaf2f65ea26caad57392e30cdb92e390cb616d4","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.1.tgz","fileCount":8,"integrity":"sha512-d3LJEDsexkDCnrn7RoeFyauz53wgAIwI91SP+zSyBlgy47sV4So+s3h3O8GOTahfgA3/gcM6R94DgNZqj7Wp/A==","signatures":[{"sig":"MEUCIQDPW0nDCcK7DvjOS9AyTa9x54XowKDqgE7jB4i9j4UdcgIgVkS8UMPcrlyR+g94ynGYbxlSGbSx/bQyOhsHtnW//YQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77322},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/58da9f05a2a4a9602411234cdc53a7f9/thangdevalone-meeting-grid-layout-react-1.5.1.tgz","_integrity":"sha512-d3LJEDsexkDCnrn7RoeFyauz53wgAIwI91SP+zSyBlgy47sV4So+s3h3O8GOTahfgA3/gcM6R94DgNZqj7Wp/A==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.1_1771993664087_0.760545599897203","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.2","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.2","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"9ea07da4642490cd3315ebbf414cfbd9905e3a58","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.2.tgz","fileCount":8,"integrity":"sha512-y+0EGAmiG2zFs+X8UMk9Urcg9I076nLjw+lr1SU6n26oIkjBb3bThhAFQRaiAyv1MS6PC2+tL2fQ7jy7yQzMuw==","signatures":[{"sig":"MEUCIEnsfdQBtGVx+id7fBRBJyKgRfLbQ1EDIpb6xJwttYIJAiEApyj4QOv4g38SeUme+hFFRsdkWU6O8prC0VK8MR0UOIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77322},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/3aa6c07fd3feaad7538ae965434987af/thangdevalone-meeting-grid-layout-react-1.5.2.tgz","_integrity":"sha512-y+0EGAmiG2zFs+X8UMk9Urcg9I076nLjw+lr1SU6n26oIkjBb3bThhAFQRaiAyv1MS6PC2+tL2fQ7jy7yQzMuw==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.2_1771994288294_0.8974542309643991","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.3","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.3","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"0d420c2ca0db9b2dd305004b1b513488405f9f62","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.3.tgz","fileCount":8,"integrity":"sha512-4fCLR8Fj4kHfCuVEQLrAwdTvSobyV52JrtB4+drpkkTPqmQ0eOzg6tUECmnzrQpeKocTD6C7E04+LjSzZ1tH0A==","signatures":[{"sig":"MEYCIQCG70dZkQcnSLbZU1ke/0fmCM72TfhySww6+AWH7UilrwIhALPY+cg/f02hD1GWerbVvm3ZqxNyvs1VFa5ncuaGjAaC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79029},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/14d872903112c39346a98258dcb14985/thangdevalone-meeting-grid-layout-react-1.5.3.tgz","_integrity":"sha512-4fCLR8Fj4kHfCuVEQLrAwdTvSobyV52JrtB4+drpkkTPqmQ0eOzg6tUECmnzrQpeKocTD6C7E04+LjSzZ1tH0A==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.3_1772080286149_0.1827062556492658","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.4","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.4","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"411ea0e3a0b12865a56f78631b2ad683a87b14a8","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.4.tgz","fileCount":8,"integrity":"sha512-ti9aUmZ87p443lMgZRZC1jlKkhXb4weZ0J2sjr0mFdIi8uAzF4BV/UhCQwjKltqNXd2XtSNXiEOAGOhoSX7E5g==","signatures":[{"sig":"MEUCIQCaphsPaQKjTwNN1dSPJrfUCgHVwMziNPtF/Q8ew8lBPgIgSBuXBqYAcpQrzKu0Lwml3JXOTLyQhGOIgfpJ92U+i9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79043},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/40541d1ac3737c471f813be46b9c9784/thangdevalone-meeting-grid-layout-react-1.5.4.tgz","_integrity":"sha512-ti9aUmZ87p443lMgZRZC1jlKkhXb4weZ0J2sjr0mFdIi8uAzF4BV/UhCQwjKltqNXd2XtSNXiEOAGOhoSX7E5g==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.4_1772080765517_0.8045942448938475","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.5","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.5","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"25ea085b9eb93fa9cb3b6cba8d94e92517789e5b","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.5.tgz","fileCount":8,"integrity":"sha512-oNnuXx3GzYdqNKYcPpKcFWVcCCpvktNL7jXc98/UtXshKtrB8IMp2YBTP1F3Rn9i4sY6i8VXqDxvFrC/8ZH2AA==","signatures":[{"sig":"MEQCIHN2FmqKPklWp11qThdGFFoVXc+J2m85Hx1Ze2cQEin+AiBib4DoG6oEUAwKs7Ov+quu3QeQkTq+OeO5I0T2cNZs5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79281},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/95c090d03c6b0b90079c57472f7b6c37/thangdevalone-meeting-grid-layout-react-1.5.5.tgz","_integrity":"sha512-oNnuXx3GzYdqNKYcPpKcFWVcCCpvktNL7jXc98/UtXshKtrB8IMp2YBTP1F3Rn9i4sY6i8VXqDxvFrC/8ZH2AA==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.5_1772524418810_0.2696667734570328","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.6","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.6","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"507605267de4804878a775fd70f0db59f3c890ac","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.6.tgz","fileCount":8,"integrity":"sha512-qUXtbH3g9oHptcHeagV2005u7s9QfdwzcJtERerHAF0uvHIRBufC7Jm2q2s4rdHvpVIBOJqIT2n0gALL8UwdOw==","signatures":[{"sig":"MEYCIQCr+Su5HelRz2z/IG+HqEtpcLSDLAmx04jY78YVbeWLQAIhANrtotPa2u1EhejNGnDQ2MWzxfb80v9x2upXNIZ2sCzh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79281},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/cb879babfca22135e361ccd8ba3849d4/thangdevalone-meeting-grid-layout-react-1.5.6.tgz","_integrity":"sha512-qUXtbH3g9oHptcHeagV2005u7s9QfdwzcJtERerHAF0uvHIRBufC7Jm2q2s4rdHvpVIBOJqIT2n0gALL8UwdOw==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.6"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.6_1772525008465_0.7219259627692296","host":"s3://npm-registry-packages-npm-production"}},"1.5.7":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.7","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.7","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"8033e57d5cfe4aa1ef6ae134753fb739f144cbae","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.7.tgz","fileCount":8,"integrity":"sha512-jgJl8lqX3y11d1QSgEBj1aGBsPmHJsH1SRSr2BP6AgSYr5iVTYFekhRbGlWffFEhGxQCaAZUWvgmdAeh2WwSZQ==","signatures":[{"sig":"MEUCIQCB0SOq7rkXzAcUoQUqN8dJytoj9gzB/Er5mvEEqkbZ+QIgNUACn18tFt3mbg/Yb0n1LfuUDwMTQxZa0WyYxdW/l8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80320},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/9dad6922c8da35134c5646c9680ea975/thangdevalone-meeting-grid-layout-react-1.5.7.tgz","_integrity":"sha512-jgJl8lqX3y11d1QSgEBj1aGBsPmHJsH1SRSr2BP6AgSYr5iVTYFekhRbGlWffFEhGxQCaAZUWvgmdAeh2WwSZQ==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.7"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.7_1773379588910_0.7638993120840114","host":"s3://npm-registry-packages-npm-production"}},"1.5.8":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.8","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.8","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"22a3276171843af50d2ef643069f75e264c2b0d1","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.8.tgz","fileCount":8,"integrity":"sha512-r5kvE3t794GUHuXFNirZ5i3pDFcw4ZtzdnZzfvayLa0IZT3+zGdzwLWNatUIOewCHm0wIIntWIJYOIVxUkdrpQ==","signatures":[{"sig":"MEQCIDN7BYJk7T1OW9MkvoaL2RDtkG+ilCdoOO3fh2qX6OoGAiAbm+w3TkKtbLfwPxBWKZy/jdXJQ8BL5IMay2UgGvBiPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83097},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/906b84f503e6d87ef5f34a83aa1ba2f5/thangdevalone-meeting-grid-layout-react-1.5.8.tgz","_integrity":"sha512-r5kvE3t794GUHuXFNirZ5i3pDFcw4ZtzdnZzfvayLa0IZT3+zGdzwLWNatUIOewCHm0wIIntWIJYOIVxUkdrpQ==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.8"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.8_1773644066505_0.7324820248654487","host":"s3://npm-registry-packages-npm-production"}},"1.5.9":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.9","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.9","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"bec00d92451664334296c63d226b9bc78d74150b","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.9.tgz","fileCount":8,"integrity":"sha512-634BTC4NUWKvoL7BjtN1F9XgvApALEHBtOCCxHc0oDroZtqXAirEQ9/3jF7ufVFMqBPHgl9Q7MH1mhagQCJ5zg==","signatures":[{"sig":"MEYCIQCXues6xZfqhJqJp8hqMQQ7Cg3XPTnjUKnf4jEgr6svCgIhAKev+mYZZYuL8Sv0a4MVSzH86E2LTpuzl/V4vz3SaA0G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83595},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/24341be92ef3848bb82fbe065079977b/thangdevalone-meeting-grid-layout-react-1.5.9.tgz","_integrity":"sha512-634BTC4NUWKvoL7BjtN1F9XgvApALEHBtOCCxHc0oDroZtqXAirEQ9/3jF7ufVFMqBPHgl9Q7MH1mhagQCJ5zg==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.9"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.9_1773658429246_0.7203403860521178","host":"s3://npm-registry-packages-npm-production"}},"1.5.10":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.10","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.10","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"cca0b9e436a430eba3769abdd8531daa332983b2","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.10.tgz","fileCount":8,"integrity":"sha512-z2e4/LRSBxTrgTvv2gJCfrGYgAZoHoxiFd9P1G+jjU7qHFvfeSdAIDuNTFvcR5V7IfDMZV4S4broFzRtiVrtPg==","signatures":[{"sig":"MEYCIQDjqfSDEfffINgY6Jinyg0hKXqbDh6B5LHsq14ctyYqXAIhAICFm023qmN/U0ELKJj6x3CXHzPfrBH4nkdXtbKAir4A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83597},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/32eab8b432abedbc0063e7ee8c94f3d1/thangdevalone-meeting-grid-layout-react-1.5.10.tgz","_integrity":"sha512-z2e4/LRSBxTrgTvv2gJCfrGYgAZoHoxiFd9P1G+jjU7qHFvfeSdAIDuNTFvcR5V7IfDMZV4S4broFzRtiVrtPg==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.1","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.10"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.10_1774412726064_0.07315372406358933","host":"s3://npm-registry-packages-npm-production"}},"1.5.11":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.5.11","keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","_id":"@thangdevalone/meeting-grid-layout-react@1.5.11","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"dist":{"shasum":"b9789b726659bc46c35376504ee184bb0cd8d34b","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.5.11.tgz","fileCount":8,"integrity":"sha512-PK4W2O2G8jv8Oj5yOa9J3+Qk+EoCbr+8J2LkA0tx6CjedVTSrAIZBweTqBW2gyBtERYFf+Jt0GsHvnWHTvbNng==","signatures":[{"sig":"MEQCIFSem+1MCC2Q41yzhenFObv4gPv1ibGGpScTCddPxAxLAiAkCA8A5GjqFpM2ksAs6M2HYTDzGrl6d0mdokWq+Wzq8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83597},"main":"./dist/index.cjs","type":"module","_from":"file:thangdevalone-meeting-grid-layout-react-1.5.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"unbuild --watch","test":"vitest run","build":"unbuild","clean":"rimraf dist","test:watch":"vitest"},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"_resolved":"/tmp/bfef429d611a32eaabdf85a5b4a8948e/thangdevalone-meeting-grid-layout-react-1.5.11.tgz","_integrity":"sha512-PK4W2O2G8jv8Oj5yOa9J3+Qk+EoCbr+8J2LkA0tx6CjedVTSrAIZBweTqBW2gyBtERYFf+Jt0GsHvnWHTvbNng==","repository":{"url":"git+https://github.com/thangdevalone/meeting-grid-layout.git","type":"git"},"_npmVersion":"10.8.2","description":"React integration for meeting-grid-layout with Motion animations","directories":{},"_nodeVersion":"20.20.2","dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.5.11"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","rimraf":"^5.0.0","vitest":"^1.0.0","unbuild":"^2.0.0","react-dom":"^18.2.0","@types/react":"^18.2.0","@types/react-dom":"^18.2.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/meeting-grid-layout-react_1.5.11_1776851806665_0.8891923061541043","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@thangdevalone/meeting-grid-layout-react","version":"1.9.0","description":"React integration for meeting-grid-layout with Motion animations","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"keywords":["react","grid","meeting","video","motion","animation"],"author":{"name":"ThangDevAlone"},"license":"MIT","homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","repository":{"type":"git","url":"git+https://github.com/thangdevalone/meeting-grid-layout.git"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"dependencies":{"motion":"^11.15.0","@thangdevalone/meeting-grid-layout-core":"1.9.0"},"devDependencies":{"@types/react":"^18.2.0","@types/react-dom":"^18.2.0","react":"^18.2.0","react-dom":"^18.2.0","unbuild":"^2.0.0","vitest":"^1.0.0","rimraf":"^5.0.0"},"scripts":{"build":"unbuild","dev":"unbuild --watch","clean":"rimraf dist","test":"vitest run","test:watch":"vitest"},"_id":"@thangdevalone/meeting-grid-layout-react@1.9.0","bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"_integrity":"sha512-V5YXDZyC9RBlKl88ygXl8PvDpXxpQNIl+2tyXc479kK9u4IdvVdEcQWMogtrZiuQmbeoO6gm0jsvW0SLYXdaAA==","_resolved":"/tmp/fa791fc2838b8ada9e00ff3653cbc621/thangdevalone-meeting-grid-layout-react-1.9.0.tgz","_from":"file:thangdevalone-meeting-grid-layout-react-1.9.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-V5YXDZyC9RBlKl88ygXl8PvDpXxpQNIl+2tyXc479kK9u4IdvVdEcQWMogtrZiuQmbeoO6gm0jsvW0SLYXdaAA==","shasum":"8f7a49a03cdbcf2b218d61b0216342152502d586","tarball":"https://registry.npmjs.org/@thangdevalone/meeting-grid-layout-react/-/meeting-grid-layout-react-1.9.0.tgz","fileCount":8,"unpackedSize":81026,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC8pIvaDN693tCab+eMd2OIlxvEisRbSq5Vt6Nvy+lV5QIgH3nVXJOoA1d0lGkRSN2cHBZWRuCvxxWYoFfLehPPDPQ="}]},"_npmUser":{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"},"directories":{},"maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/meeting-grid-layout-react_1.9.0_1778188234875_0.5516291343829214"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-10T10:21:33.320Z","modified":"2026-05-07T21:10:35.136Z","1.4.1":"2026-02-10T10:21:33.566Z","1.5.0":"2026-02-25T04:06:16.525Z","1.5.1":"2026-02-25T04:27:44.275Z","1.5.2":"2026-02-25T04:38:08.448Z","1.5.3":"2026-02-26T04:31:26.334Z","1.5.4":"2026-02-26T04:39:25.682Z","1.5.5":"2026-03-03T07:53:38.962Z","1.5.6":"2026-03-03T08:03:28.602Z","1.5.7":"2026-03-13T05:26:29.055Z","1.5.8":"2026-03-16T06:54:26.658Z","1.5.9":"2026-03-16T10:53:49.393Z","1.5.10":"2026-03-25T04:25:26.212Z","1.5.11":"2026-04-22T09:56:46.817Z","1.9.0":"2026-05-07T21:10:35.034Z"},"bugs":{"url":"https://github.com/thangdevalone/meeting-grid-layout/issues"},"author":{"name":"ThangDevAlone"},"license":"MIT","homepage":"https://github.com/thangdevalone/meeting-grid-layout#readme","keywords":["react","grid","meeting","video","motion","animation"],"repository":{"type":"git","url":"git+https://github.com/thangdevalone/meeting-grid-layout.git"},"description":"React integration for meeting-grid-layout with Motion animations","maintainers":[{"name":"thangdevalone","email":"quangthangvtlg@gmail.com"}],"readme":"# @thangdevalone/meeting-grid-layout-react\n\nReact 18+ bindings for meeting-grid-layout with Motion animations.\n\n> For full documentation, layout modes, and API reference, see the [main README](https://github.com/thangdevalone/meeting-grid-layout#readme).\n\n## Installation\n\n```bash\nnpm install @thangdevalone/meeting-grid-layout-react\n```\n\n## Quick Start\n\n```tsx\nimport { GridContainer, GridItem } from '@thangdevalone/meeting-grid-layout-react'\n\nfunction MeetingGrid({ participants }) {\n  return (\n    <GridContainer aspectRatio=\"16:9\" gap={8} layoutMode=\"gallery\" count={participants.length}>\n      {participants.map((p, index) => (\n        <GridItem key={p.id} index={index}>\n          <VideoTile participant={p} />\n        </GridItem>\n      ))}\n    </GridContainer>\n  )\n}\n```\n\n## Components\n\n### `<GridContainer>`\n\nWraps the grid, computes layout, and provides context to children.\n\n| Prop                 | Type                                      | Default     | Description                                                          |\n| -------------------- | ----------------------------------------- | ----------- | -------------------------------------------------------------------- |\n| `aspectRatio`        | `string`                                  | `'16:9'`    | Default tile aspect ratio                                            |\n| `gap`                | `number`                                  | `8`         | Gap between tiles (px)                                               |\n| `count`              | `number`                                  | required    | Number of items                                                      |\n| `layoutMode`         | `LayoutMode`                              | `'gallery'` | `gallery` \\| `spotlight`                                             |\n| `pinnedIndex`        | `number`                                  | -           | Pinned participant index                                             |\n| `othersPosition`     | `'left' \\| 'right' \\| 'top' \\| 'bottom'` | `'right'`   | Thumbnail position in pin mode                                       |\n| `springPreset`       | `SpringPreset`                            | `'smooth'`  | Animation preset                                                     |\n| `maxItemsPerPage`    | `number`                                  | -           | Max items per page                                                   |\n| `currentPage`        | `number`                                  | `0`         | Current page                                                         |\n| `maxVisible`         | `number`                                  | -           | Max visible in others area                                           |\n| `currentVisiblePage` | `number`                                  | `0`         | Current page for visible items (when maxVisible > 0)                 |\n| `itemAspectRatios`   | `(ItemAspectRatio \\| undefined)[]`        | -           | Per-item aspect ratios                                               |\n| `floatSize`          | `FloatSize`                               | `'medium'`  | Responsive size for auto-float PiP: `'small' \\| 'medium' \\| 'large'` |\n| `pipIndex`           | `number`                                  | `1`         | Which participant (0 or 1) is the floating PiP in 2-person mode    |\n| `pinOnly`            | `boolean`                                 | `false`     | Mobile/tablet pin-only mode: page 0 = pinned full-screen, page 1+ = others gallery (≤1024px) |\n| `disableFloat`       | `boolean`                                 | `false`     | Disable Floating PiP in 2-person mode; shows standard gallery grid instead |\n| `disableAnimation`   | `boolean`                                 | `false`     | Disable all spring/transition animations globally; items snap instantly    |\n\n### `<GridItem>`\n\nSingle grid cell with Motion layout animation.\n\n| Prop               | Type              | Default  | Description                                     |\n| ------------------ | ----------------- | -------- | ----------------------------------------------- |\n| `index`            | `number`          | required | Item index                                      |\n| `disableAnimation` | `boolean`         | `false`  | Disable layout animation                        |\n| `itemAspectRatio`  | `ItemAspectRatio` | -        | Per-item aspect ratio (overrides container)      |\n| `transition`       | `Transition`      | -        | Custom Motion transition override                |\n| `className`        | `string`          | -        | Additional CSS class name                        |\n| `style`            | `CSSProperties`   | -        | Custom style (merged with animated styles)       |\n\nRender prop: `{({ contentDimensions, isLastVisibleOther, hiddenCount, isFloat }) => ...}`\n\n### `<FloatingGridItem>`\n\nDraggable Picture-in-Picture overlay with corner snapping.\n\n| Prop              | Type                                                          | Default                          | Description                                      |\n| ----------------- | ------------------------------------------------------------- | -------------------------------- | ------------------------------------------------ |\n| `children`        | `ReactNode`                                                   | required                         | Content to render inside the floating item       |\n| `size`            | `'small' \\| 'medium' \\| 'large'`                              | -                                | Responsive pre-defined sizes (see [Responsive PiP](#responsive-pip)) |\n| `aspectRatio`     | `string`                                                      | `'16:9'`                         | Aspect ratio of the floating PiP item            |\n| `initialPosition` | `{ x: number; y: number }`                                    | `{ x: 16, y: 16 }`              | Extra offset from anchor corner                  |\n| `anchor`          | `'top-left' \\| 'top-right' \\| 'bottom-left' \\| 'bottom-right'` | `'bottom-right'`               | Which corner to snap/anchor the item             |\n| `visible`         | `boolean`                                                     | `true`                           | Whether the floating item is visible             |\n| `edgePadding`     | `number`                                                      | `12`                             | Minimum padding from container edges (px)        |\n| `onAnchorChange`  | `(anchor) => void`                                            | -                                | Callback when anchor corner changes after drag   |\n| `transition`      | `Transition`                                                  | `spring (stiffness 400, damping 30)` | Custom Motion transition for snap animation  |\n| `borderRadius`    | `number`                                                      | `12`                             | Border radius of the floating item (px)          |\n| `boxShadow`       | `string`                                                      | `'0 4px 20px rgba(0,0,0,0.3)'`  | CSS box-shadow of the floating item              |\n| `className`       | `string`                                                      | -                                | Additional CSS class name                        |\n| `style`           | `CSSProperties`                                               | -                                | Custom style (merged with floating styles)       |\n\n### `<GridOverlay>`\n\nFull-grid overlay for screen sharing, whiteboard, etc.\n\n| Prop              | Type        | Default                | Description              |\n| ----------------- | ----------- | ---------------------- | ------------------------ |\n| `visible`         | `boolean`   | `true`                 | Show/hide the overlay    |\n| `backgroundColor` | `string`    | `'rgba(0,0,0,0.5)'`   | Overlay background color |\n| `children`        | `ReactNode` | -                      | Content inside overlay   |\n\n## Responsive PiP\n\nPiP auto-adjusts size based on container width via pre-defined sizes:\n\n```tsx\nimport { FloatingGridItem } from '@thangdevalone/meeting-grid-layout-react'\n\n// Standalone — auto-responsive\n<FloatingGridItem size=\"large\">\n  <VideoTile />\n</FloatingGridItem>\n\n// Auto-float in 2-person mode\n<GridContainer count={2} floatSize=\"large\">\n  {participants.map((p, i) => (\n    <GridItem key={p.id} index={i}><VideoTile participant={p} /></GridItem>\n  ))}\n</GridContainer>\n```\n\n> See the [main README](https://github.com/thangdevalone/meeting-grid-layout#floating-pip-picture-in-picture) for full documentation on `floatSize`.\n\n## Hooks\n\n| Hook                     | Description                               |\n| ------------------------ | ----------------------------------------- |\n| `useGridDimensions(ref)` | Track element size via ResizeObserver      |\n| `useMeetGrid(options)`   | Compute grid layout programmatically      |\n| `useGridContext()`       | Access grid context from child components |\n| `useGridAnimation()`     | Access animation config from context      |\n\n## Re-exported from Core\n\n| Export                      | Type       | Description                                      |\n| --------------------------- | ---------- | ------------------------------------------------ |\n| `createMeetGrid`            | function   | Create grid layout (Vanilla JS)                  |\n| `createGrid`                | function   | Low-level grid computation                       |\n| `resolveFloatWidth`         | function   | Resolve PiP width for a given container width     |\n| `getSpringConfig`           | function   | Get spring config from preset name               |\n| `springPresets`             | object     | All spring presets                                |\n| `getAspectRatio`            | function   | Parse aspect ratio string                        |\n| `FloatSize`                 | type       | Float size enum (`'small'`, `'medium'`, `'large'`) |\n| `PaginationInfo`            | type       | Pagination info type                             |\n| `ContentDimensions`         | type       | Content dimensions with offset                   |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}