{"_id":"@adesin-fr/inertiajs-tables-laravel-query-builder","_rev":"28-ce3a77ef320a7f173ca93f214538af5d","name":"@adesin-fr/inertiajs-tables-laravel-query-builder","dist-tags":{"latest":"4.0.4"},"versions":{"3.0.8":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.0.8","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"AdesinFr@gmail.com"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.0.8","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/AdesinFr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/AdesinFr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"458b21e03787f1b12c4b4f137835a16784c262bd","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.0.8.tgz","fileCount":5,"integrity":"sha512-IPxNr63npClJIbj2P1nylFO8jLwr294Sjbw2MMtKAVzRj1kLrV3XFTJVM/Na3cItNLGdWEYnYl1y/5k/HHbIbg==","signatures":[{"sig":"MEUCIQCgXBJ8hFlRsDNxRqwZYjqU0fLsFcZdPfYUm3iiz+MLQAIgDCFSu7Xio05CugCLao0PU3S0S429mJgUuY1GeXxlEEM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":210598},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"88eade9618148590bf992d688d77a3f09ae022c4","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/AdesinFr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.5.1","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.0.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.0.8_1718358777521_0.4745502563636892","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.1.1","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.1.1","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"28e788f148ded8f01d2c0cf5e0c94f56100db3a7","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.1.1.tgz","fileCount":5,"integrity":"sha512-15fmHJq4a2oLiuo1mQox/VB4mVPKORrFq0mg5ALdoYPhOjrNEunYFT/WMkr5gTJrq29dyjQEaOGribPsav/snQ==","signatures":[{"sig":"MEUCIApcf3fywv2inZGQXBjup0NYEFgzcNTN+NmdT1ZZyYUAAiEA4EXKMoWh9+z/fD+nD1uIh1LyxxDJGYpLEnq5MOW7M18=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":216900},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"a0851275e9e3e739decef3406f4c61946b9fe16d","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.5.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.1.1_1727161116289_0.22316992956379034","host":"s3://npm-registry-packages"}},"3.1.2":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.1.2","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.1.2","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"7cfaeea73f3a9caef58635da4c91596ef3102151","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.1.2.tgz","fileCount":5,"integrity":"sha512-K/OA/qW9iQTAxTZ35PF2uIZ6ok4qPyAaNvmmRCz5UYobA2YhEk9N7S0E9hGnjVPRblyaIErV/OEC4n+yMbLdCQ==","signatures":[{"sig":"MEQCICEfFEOz7B3IZKDI/lsAPUL+eJ3k7T2hiMnWWy33kdFmAiBD7dB+SNplusalYymo7MvEwiqxebbYjl4I9Qy2uhkrfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":216912},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"d6becb4cc2cdadfd02cf32392b6cdecedcdf6461","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.8.2","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.5.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.1.2_1727161618481_0.6561324027206052","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.2.1","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.2.1","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"23c9037857b67b0b51434690061fc801f04653af","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.2.1.tgz","fileCount":5,"integrity":"sha512-dNQkq6OpXaSMIi2oW/mdUSotJ7bxGQy+/P2xsdgE6wAAr9PbuZMmNiVT+qu/TgmK9gfgmg+FaTzJZULpipQVAA==","signatures":[{"sig":"MEUCIQDF7kKfsZrr62CRT+Tzry/7RNd2dEwG11Cz/LVS7L2C7QIgEApvhpN3ZMA4a3BVAXr5do9U07qdRgppr7UdmCMG/F8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217897},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"3649e11b2c6804f35bb7ecee9f854858f7835488","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","actor":{"name":"adesin-fr","type":"user","email":"ludovic@adesin.fr"},"email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.2","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.17.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.2.1_1751465367794_0.18483492745812669","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.2.3","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.2.3","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"459da1446bc1baf0e4bb67b67b760cf78d5f3e9a","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.2.3.tgz","fileCount":5,"integrity":"sha512-dItGP+foXnaSmYAEgt3E+LXROLid+KzJYNT1uxgOKn5i81BSX0KyYGQpcBzMZ6PB5jh9BPS5DtmGYwym43/XtA==","signatures":[{"sig":"MEYCIQD4MRQkHkaIfe45XpS0fDfiGXY8ghLVmIjLasBERFqaiwIhANXW3g58RqaOvVVQ0YkMh+zaRBbLehLDb3CAlxND1yYy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218050},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"752b8512a40f3bd4f514b59942ba6ca9633f61c3","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","actor":{"name":"adesin-fr","type":"user","email":"ludovic@adesin.fr"},"email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.2","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.17.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.2.3_1751879804493_0.6335990678112646","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.0","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.0","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"bc86a64d281071276e783e0e67a0d552c2eca31c","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.0.tgz","fileCount":6,"integrity":"sha512-ETBxS3Jqh8E5vKqRGmku7R91B10wYJXF8dmaSJEcfNkgZ1Kk1FCMa+Fjz18FPXBLop1cb0xGvVyTBKXtK6Es8A==","signatures":[{"sig":"MEUCIQCW/JZsXcxf+qhFA2nQ0csYgKp9tVukOaZec9YzvnozXAIgY5nYgS+Abe11B2DQVcmn/UnxeqViIuvcOeFmSNUg1Fs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320961},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"bb33c275b8179faff8d9f98c269ac95cc5f025d5","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.18.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.0_1756106230036_0.14077963802966909","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.1","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.1","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"7adf891f110f8bc75e0a0fb2cd3716455f0d2298","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.1.tgz","fileCount":6,"integrity":"sha512-0BvLFFxHD7rSIIbju0l0/zHrM1sWOti5QAkDcDKfK9CdeKma/JI4hdhvhG4NNqy7NHig/R7jkOfL9ph3ka5DmQ==","signatures":[{"sig":"MEUCIBiDCSmuCIunUFdD02ZVVh1lqrB5Zqi6hkxPlf28oSLRAiEA0O/CoXvWhuuQLCcwn5KRm0eGu4smJKgd+jM6YHzImuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320945},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"62a11396396faf8abb65aef7f17feb5bd120f6b0","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.18.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.1_1756116557532_0.7713675987984694","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.2","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.2","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"780768faca56bd7855b698f1bcf116a3a6370a74","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.2.tgz","fileCount":6,"integrity":"sha512-N3ux9BOZmrcSaed6UHE2qsg8xT8jJzXCEX8XsVlR2dil6IyepZuDrGtn8WqVLlXaY6OIGe8aEul0QKSjdFjNTA==","signatures":[{"sig":"MEUCIQDw7qrzeWU/rWRjiWPeWH7XQlzbS4tjlE6PPCdHSbvyHQIgKqG7xArZScQqXWDVs3KPeDMNP3alIPjaxJGE9hx0Qls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323313},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"a7c02bd37e8b39df0c38f32995af06c70f12a3e6","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.18.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.2_1756137747802_0.7738417485376947","host":"s3://npm-registry-packages-npm-production"}},"3.3.3":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.3","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.3","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"042407b97742fe89162b2469297b528e8318143a","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.3.tgz","fileCount":6,"integrity":"sha512-iQlWRAzqNZQ8fSmWIqGE4VptXkECsIr32HpsNVrx9Vj1eMwKq4d67p465XNcbcNObh03cdpE+zbijY7hlydEVQ==","signatures":[{"sig":"MEUCIQDGtNlMnSEbeMYQO8VGr8MbDDMVTIaS4NFWjJMN9MtPBgIgQ6ro/y1PigIpZvmLDqPQxLOfxcVUmWO7ODpN4+lMz2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326177},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"d62983e26d4f3001418c2008553af5a27cbf9730","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.18.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.3_1756276872530_0.15191023472454357","host":"s3://npm-registry-packages-npm-production"}},"3.3.4":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.4","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.4","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"a002da56da8cc5e896a755c389742c75a8dc4ee0","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.4.tgz","fileCount":6,"integrity":"sha512-7MzBMJfnayCfPdP8rtc2ZZcCbC1tZ038I++1xOpWyFS1b3QmTpHFFtQaN6GPLOMRE63hxuV0fTdKwycIj21XLQ==","signatures":[{"sig":"MEYCIQDKv0yG2cJvN7myIjVITQhxGQgerDwcIe7TfhjXpMA/DgIhAIQ9oqr7KE8iFu4IUEdvcVCMUOzq27VfDraTMZFLmNsd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":587411},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"9452392c5e9873f861d25048b2c9981a477c62a5","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.18.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","vuedraggable":"^4.1.0","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.4_1756458490176_0.32715363429226674","host":"s3://npm-registry-packages-npm-production"}},"3.3.5":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.5","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.5","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"aa96e431d700ad38330906054cd920c1c514474a","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.5.tgz","fileCount":6,"integrity":"sha512-sDl42q0HedBjWi/BXZlso7KNBa3ihnItQ7PkSENLrGSgBzoBkHUEiqEqW9+TpqaKb6+s2IRBeKffJD7REfcC/w==","signatures":[{"sig":"MEUCIQCatIeuu0hsKOxPfpvZI0xWU2zLsWQg4v+git4aZ0t5CQIgUIUag2iDfY+apdOEnSOeLP62Z/N1x7CzLWQBdzFbxVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":593123},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"39486f91d0a2c31492374bcfe04ba55de174c854","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.19.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","vuedraggable":"^4.1.0","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.5_1756660264748_0.7375377649476293","host":"s3://npm-registry-packages-npm-production"}},"3.3.6":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.6","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.6","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"025140efa845440457173c6a5061f5fc0c427e4a","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.6.tgz","fileCount":6,"integrity":"sha512-ZPFB/7eCKJDoMhUbiMdDKhhr1XtxH73kRZm4SziaHlzlIWV5h9AvI+T06FSn0NWfgqOYZBDSJuEZn6GP3MIlkQ==","signatures":[{"sig":"MEUCIQCEUYbKTZ/fjUCkImrY10RLSyNkj/VTLdSm7IhbacXvNAIgeKGvcXFiZgBkmyuIgPAYrtCAu8wn8NWAofOgFRuOHH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346562},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"6b5aad459552dfdc38e2e4534ca70a64d15d7f68","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.19.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.6_1756661385497_0.7113947804968908","host":"s3://npm-registry-packages-npm-production"}},"3.3.7":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.7","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.7","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"2620d79cd4437a9982016bc32c09efa3cccdc93e","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.7.tgz","fileCount":6,"integrity":"sha512-TVoX1FWGN9JIG7mXMGSxooj0U+hXD2ngb+2BWDvnXyxZRPJFgUAHekOHWtSzDIS4MYz0msQEJH+v+fWYBbgblA==","signatures":[{"sig":"MEUCIQD2EqdIeGQYgVTSNznql9pT+D3t9aC0g1nbpw6CYw1mTAIgNcNMJ35Paqetnb4wnUMBKTIhNZKlSGmlZVNv6KI+y48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346755},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"26e43cd6d0b75163fc5a5d98780d6ca805800484","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.19.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.7_1756794457827_0.6207899656672531","host":"s3://npm-registry-packages-npm-production"}},"3.3.8":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.8","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.8","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"a43d1e359a989b28c4825ef1dfefef57fb266895","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.8.tgz","fileCount":6,"integrity":"sha512-TK2/HI/GrMoQijcVLhXcHXlOdHvBAT/zL6TqJFXbUinXB24J+6uZHl9kjStNU3Z+cWOtHgSSgyAn//7B4aTvyA==","signatures":[{"sig":"MEUCIF0J3WILTnhoLw5T9OFK2pxu/1PnEKPcQBjTXFPsP4HEAiEA0urCFAVcFrMF0xqk2Yis0qS8L1LzixBqBRHZ/4kL1gE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356302},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"d06aa41b58fd2f584f4070d7cbe9cc603289a5a8","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.3","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.19.0","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.8_1761561201034_0.41113406388058005","host":"s3://npm-registry-packages-npm-production"}},"3.3.9":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.3.9","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.3.9","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"f6231a04f577b19c7a83ebaa33d7607bec7cb488","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.3.9.tgz","fileCount":6,"integrity":"sha512-FRmHcptcbVdoVmG7Gg7fM8L9ZbIzj/8MpTQxzlfyU+pys4eLJ+EmQu4j/SaEPvbaOZJufEPv6qqlHAbg5rfIow==","signatures":[{"sig":"MEYCIQCrJ4MdRQkdDuCTM9H6oKrv5LdvYKZkWGV+W9dthNR2ZQIhAPHiYi9ALkxndMJwr3CGqIMPSnIgJuLTBZV8DgiYBpK7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356437},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"8699343d3a4ee0a6f8bbb790c970e751c14d2fc1","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"^2.2.0","@inertiajs/vue3":"^1.0.16"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.3.9_1765959370513_0.8114027819525598","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.4.0","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.4.0","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"01cbd246beecaab260ece9e15849685c24b98fa4","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.4.0.tgz","fileCount":6,"integrity":"sha512-p7KNLU18PtivQefw09VQJwiozIYHfcxLia/xa7KmxGu/fNiWi3l2Ixh9/dQZDmFjJpW/VJOowSzfllCIF9X5jQ==","signatures":[{"sig":"MEUCIFggo2rxg9M+zL5GVoRfePkKDL12dr3SoHb7Xf8DEbn1AiEA8PIfHb26OJMjt++PJ8uT+s2YfQO3+9jipIkc8768ggg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369909},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"7b412065cd4c7117b9fcae9aff375f73c7d89616","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"*","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.4.0_1766057534976_0.8222100147519968","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.5.0","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.5.0","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"d43465c17e31bbe701c536424c627918fc36e08c","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.5.0.tgz","fileCount":6,"integrity":"sha512-DN0aQBwFlT8JruznDb49lf85qiOXyt4HsUDAbJvilDKDbS+zlDkHKH27rI/YpmH6Pva11okk998CaTXnmyy3Kg==","signatures":[{"sig":"MEQCIBQe/wwwBYUD8i+0/IQhNDC88lflucDzInZ+FIpLfoooAiAzf7+Ysc5j5CchqtLUA3nNfYGTjr6dOg3WcOGGce9ttg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374561},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"f896ee8961c6fe460234a97370827b858f0ed106","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"*","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.5.0_1766506430299_0.20037176294190995","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.6.0","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.6.0","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"a47804fa94a1450d849883883ede7d5a07621df5","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.6.0.tgz","fileCount":6,"integrity":"sha512-/7YK0duJaodYcw71/QQUITpOpEIkwGxXpvue8kVSJb0f7Br7RqL/Cn8iNqUeoI6GWuMpZjbvXBXmJA0AFVfjMg==","signatures":[{"sig":"MEYCIQCoRsW4Hgpt2egKL1BwLtiXSNDBjFvfzXkWPm52nwzMOwIhAOwcxruWXSeVM0VVl0y/84/NCbammR6GlXy6YM1QJV0G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376738},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"1ef383012328aa90e9bdf0c7e932ccd43d318320","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"*","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.6.0_1767603038990_0.03668352652442319","host":"s3://npm-registry-packages-npm-production"}},"3.6.1":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"3.6.1","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@3.6.1","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"2976a68f95d01e56dfa9f96ba8de28efa83fcff9","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-3.6.1.tgz","fileCount":6,"integrity":"sha512-SFN5fLUO7bfvQ8YApxTYZ5XnXWl916mjSkcrPWadcDQXEHjzSUs7/owpRD4PNdDFfntUQM0iaDtgwlQwT72APQ==","signatures":[{"sig":"MEQCIFX0IrIxBPCbtxew6ocq0hquWc/iPhk6YdSgc36MReGNAiA3s6kHTWAD8GrqAXhz6TzVc+wIbBmsEyTCaHQQOd21Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377391},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"}},"gitHead":"1becbe0893f45f154c083a3f477c222da4bf8991","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","tailwind-merge":"*","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_3.6.1_1767604454047_0.8173309666910018","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"4.0.0","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@4.0.0","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"fcaac1aea3bbe7ec545163be4163fefcddffd75f","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-4.0.0.tgz","fileCount":7,"integrity":"sha512-+6aI/WRIzg1yxxGwbG95NbHI7gEoilLZsBDnZJDhWbade/ypCSJVBJ8mcvM9DJDHbY6zV5+xPJP69GTx+hNfQg==","signatures":[{"sig":"MEQCIDVhfjOLjzeGrh5VS+wXgYCMhyoW8kWGnopI6L511HTEAiA1BC79+V8Vpqfd6REsgkqiOt7QKcnXWfjgBMm+rxhc7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345880},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"},"./dist/style.css":"./dist/style.css","./styles/default.css":"./js/styles/default.css"},"gitHead":"49a69f06c93fa65c22e10c4651990aa32ae20cca","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_4.0.0_1769780184834_0.7108320767352154","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"4.0.1","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@4.0.1","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"a073f6e0811880936ba205d73aca2b0b3efcbea2","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-4.0.1.tgz","fileCount":7,"integrity":"sha512-aLXOIKxK9L3JgHjtc7W/xdLO/UIMrnEpdjLoQIfZfBIXwFBPupYAoZ12oRa1E0pIPz88sibWv7WhYMMGp7BxFA==","signatures":[{"sig":"MEYCIQD5qgdOOicybEX/phGNla5bImBbdSB/0MCUE1spU2RKhwIhAMayMHnRt0BqQamBPSfsoDcinNIfC80D8FwXrnAEat4q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347538},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"},"./dist/style.css":"./dist/style.css","./styles/default.css":"./js/styles/default.css"},"gitHead":"3357c498903c825104538b526247e7b8dbac7b41","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_4.0.1_1776722351231_0.7340761527366118","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"4.0.2","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@4.0.2","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"613343fd5b39b0c10f617e416898d465ccd71e22","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-4.0.2.tgz","fileCount":7,"integrity":"sha512-3mo391gw8wXryFJ57WPA2F6qSPObEvbfZJWQhptdu+ia6T2PvmKcl75xGMW3eXrXFtepXna+rOBVc/ZlqzJ1mQ==","signatures":[{"sig":"MEQCIFihbNAn82qmKYNoMG4h4QdNHs+IaQ8mT7DsXJrHHsebAiBTYt0nujeMAExI99rdVNkBRavdQSO0V59gIhs3HCDncA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347538},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"},"./dist/style.css":"./dist/style.css","./styles/default.css":"./js/styles/default.css"},"gitHead":"bbdf3732514ac60f9caa5c6dd611712e43751ace","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_4.0.2_1776722604442_0.7325824482768715","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"4.0.3","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@4.0.3","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"517d551149af7cefb3c1437529a960c3df0205b6","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-4.0.3.tgz","fileCount":7,"integrity":"sha512-FXtgtqSgRCMTTejnTeCkRosScREf/QEYl2SatDemQbl4Mx12R9vN4GgOnhwar62sMhGijCNzfh74sr1ymsEa3g==","signatures":[{"sig":"MEUCIQCAZraJfJwTwNByMflNna9gVoQZfgt7as2OuEMdHjHIqwIgSZNYdTcWRBhbZFTJSedrUB51mouCMydZOM9EgZ/zTvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348388},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"},"./dist/style.css":"./dist/style.css","./styles/default.css":"./js/styles/default.css"},"gitHead":"98d2c4cf703022401a36023402f031a90552cbe6","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.4","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.21.1","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_4.0.3_1776850531342_0.7155492759503266","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"@adesin-fr/inertiajs-tables-laravel-query-builder","version":"4.0.4","keywords":["inertiajs-tables-laravel-query-builder"],"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","_id":"@adesin-fr/inertiajs-tables-laravel-query-builder@4.0.4","maintainers":[{"name":"adesin-fr","email":"ludovic@adesin.fr"}],"homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"dist":{"shasum":"c9aef245caf676cbb1ec285093db00816c0a5b3e","tarball":"https://registry.npmjs.org/@adesin-fr/inertiajs-tables-laravel-query-builder/-/inertiajs-tables-laravel-query-builder-4.0.4.tgz","fileCount":7,"integrity":"sha512-1ais6eJmXofuxipVgGVf6qQdymrJ4QllhBqdIg0Go8WHs5Bw/WqOYFOx8/UFVh4IJQFKx4OeTdvuiakP7upYQw==","signatures":[{"sig":"MEUCIEQuNk+WjICu8S6cNaYenxPIHK/G+tGjHn5nNXjHskx1AiEAjsLu0+f3wRcKH9nT3TLhZnxBtvLLvnvpYAzg9vTBRZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHkFGHl6YlcGeEvWVu76GWFzxWkS/XmJ5LItKbhF2lPCAiEAq/y7pMwtpgPDLRq2iiT+l/7AJz4j+MyNVUoxiWR92QM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348497},"main":"./dist/inertiajs-tables-laravel-query-builder.umd.js","type":"module","module":"./dist/inertiajs-tables-laravel-query-builder.es.js","exports":{".":{"import":"./dist/inertiajs-tables-laravel-query-builder.es.js","require":"./dist/inertiajs-tables-laravel-query-builder.umd.js"},"./dist/style.css":"./dist/style.css","./styles/default.css":"./js/styles/default.css"},"gitHead":"6e94109294ee921e0331c54c3d0aeac1929e3967","private":false,"scripts":{"dev":"vite build --watch","build":"vite build","eslint":"eslint app/resources/js/ js/ --ext .js,.vue --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"adesin-fr","email":"ludovic@adesin.fr"},"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"_npmVersion":"10.9.8","description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","directories":{},"_nodeVersion":"22.23.2","dependencies":{"qs":"^6.10.5","lodash-es":"^4.17.21","@popperjs/core":"^2.11.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^3.0","eslint":"^8.18.0","eslint-plugin-vue":"^9.1.1","@vitejs/plugin-vue":"^3.0"},"peerDependencies":{"vue":"^3.4.27","vuedraggable":"^4.1.0","@inertiajs/vue3":"*"},"_npmOperationalInternal":{"tmp":"tmp/inertiajs-tables-laravel-query-builder_4.0.4_1791040092224_0.48942536170266115","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2024-06-14T09:52:57.446Z","modified":"2026-10-05T13:28:39.234Z","3.0.8":"2024-06-14T09:52:57.674Z","3.1.1":"2024-09-24T06:58:36.499Z","3.1.2":"2024-09-24T07:06:58.656Z","3.2.1":"2025-07-02T14:09:27.983Z","3.2.2":"2025-07-07T09:12:15.492Z","3.2.3":"2025-07-07T09:16:44.658Z","3.3.0":"2025-08-25T07:17:10.216Z","3.3.1":"2025-08-25T10:09:17.773Z","3.3.2":"2025-08-25T16:02:27.982Z","3.3.3":"2025-08-27T06:41:12.714Z","3.3.4":"2025-08-29T09:08:10.400Z","3.3.5":"2025-08-31T17:11:05.009Z","3.3.6":"2025-08-31T17:29:45.700Z","3.3.7":"2025-09-02T06:27:38.002Z","3.3.8":"2025-10-27T10:33:21.211Z","3.3.9":"2025-12-17T08:16:10.714Z","3.4.0":"2025-12-18T11:32:15.154Z","3.5.0":"2025-12-23T16:13:50.460Z","3.6.0":"2026-01-05T08:50:39.139Z","3.6.1":"2026-01-05T09:14:14.188Z","4.0.0":"2026-01-30T13:36:25.023Z","4.0.1":"2026-04-20T21:59:11.381Z","4.0.2":"2026-04-20T22:03:24.641Z","4.0.3":"2026-04-22T09:35:31.481Z","4.0.4":"2026-10-03T15:08:12.313Z"},"bugs":{"url":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder/issues"},"author":{"name":"AdesinFr","email":"ludovic@adesin.fr"},"license":"MIT","homepage":"https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder#readme","keywords":["inertiajs-tables-laravel-query-builder"],"repository":{"url":"git+https://github.com/Adesin-Fr/inertiajs-tables-laravel-query-builder.git","type":"git"},"description":"Inertia.js Front-end Components for Spatie's Laravel Query Builder","maintainers":[{"email":"arthur@adesin.fr","name":"arthur-gosset"},{"email":"ludovic@adesin.fr","name":"ludovic-lemarinel"}],"readme":"# Inertia.js Tables for Laravel Query Builder\n\n[![Latest Version on NPM](https://img.shields.io/npm/v/@adesin-fr/inertiajs-tables-laravel-query-builder.svg?style=flat-square)](https://npmjs.com/package/@adesin-fr/inertiajs-tables-laravel-query-builder)\n[![npm](https://img.shields.io/npm/dt/@adesin-fr/inertiajs-tables-laravel-query-builder.svg?style=flat-square)](https://www.npmjs.com/package/@adesin-fr/inertiajs-tables-laravel-query-builder)\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/adesin-fr/inertiajs-tables-laravel-query-builder.svg?style=flat-square)](https://packagist.org/packages/adesin-fr/inertiajs-tables-laravel-query-builder)\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)\n\nThis package provides a _DataTables-like_ experience for [Inertia.js](https://inertiajs.com/) with support for searching, filtering, sorting, toggling columns, column reordering, column pinning, and pagination. It generates URLs that can be consumed by Spatie's excellent [Laravel Query Builder](https://github.com/spatie/laravel-query-builder) package, with no additional logic needed. The components are styled with [Tailwind CSS 3.0](https://tailwindcss.com/), but it's fully customizable with slots. The data refresh logic is based on Inertia's [Ping CRM demo](https://github.com/inertiajs/pingcrm).\n\nThis package is a fork of [protonemedia/inertiajs-tables-laravel-query-builder], Since it has been abandonned in favor of a commercial project.\n\n![Inertia.js Table for Laravel Query Builder](https://user-images.githubusercontent.com/8403149/177773377-86c32d69-8f86-47e4-8063-ea227e480d10.mp4)\n\n## Features\n\n-   **Fluent API**: New intuitive API for single and multiple tables ✅ **NEW!**\n-   **Infinite Scrolling**: Automatic infinite scrolling with seamless data loading ✅ **NEW!**\n-   **CSV Export**: Automatic CSV export with all filtered data ✅ **NEW!**\n-   **Number Filters**: Advanced number filtering with multiple comparison operators ✅ **NEW!**\n-   **Multiple Tables**: Support for multiple independent tables in a single view ✅ **NEW!**\n-   Auto-fill: auto generates `thead` and `tbody` with support for custom cells\n-   Global Search\n-   Search per field\n-   Select filters\n-   **Column Filters**: Add filter icons directly in column headers for intuitive filtering\n-   Toggle columns\n-   Sort columns\n-   **Column Reordering**: Drag and drop columns to reorder them with persistent state ✅ **NEW!**\n-   **Column Pinning**: Pin important columns to prevent them from being hidden ✅ **NEW!**\n-   Pagination (support for Eloquent/API Resource/Simple/Cursor)\n-   Automatically updates the query string (by using [Inertia's replace](https://inertiajs.com/manual-visits#browser-history) feature)\n-   Customizable header and body cells classes\n-   **Custom row styling**: Apply conditional CSS classes to table rows based on data\n-   Resizeable columns ✅\n\n## Compatibility\n\n-   [Vue 3](https://v3.vuejs.org/guide/installation.html)\n-   [Laravel 11](https://laravel.com/)\n-   [Inertia.js](https://inertiajs.com/)\n-   [Tailwind CSS v3](https://tailwindcss.com/) + [Forms plugin](https://github.com/tailwindlabs/tailwindcss-forms)\n-   PHP 8.2+\n\n## Installation\n\nYou need to install both the server-side package and the client-side package. Note that this package is only compatible with Laravel 10, Vue 3.0, and requires the Tailwind Forms plugin.\n\n### Server-side installation (Laravel)\n\nYou can install the package via composer:\n\n```bash\ncomposer require adesin-fr/inertiajs-tables-laravel-query-builder\n```\n\n## Fluent API ✨ **NEW!**\n\nThe package now provides a modern fluent API that makes table configuration more intuitive and powerful.\n\n### Single Table\n\nFor single table views, use the `InertiaTable::make()` method with a fluent syntax:\n\n```php\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\nuse Spatie\\QueryBuilder\\AllowedFilter;\nuse Spatie\\QueryBuilder\\QueryBuilder;\n\n// Method 1: Direct QueryBuilder with callback\nreturn InertiaTable::make()\n    ->withQueryBuilder(\n        QueryBuilder::for(User::class)\n            ->allowedFilters([\n                AllowedFilter::partial('name'),\n                AllowedFilter::exact('status'),\n                NumberFilter::getQueryBuilderFilter('age'),\n            ])\n            ->allowedSorts(['name', 'email', 'created_at'])\n            ->defaultSort('name')\n    )\n    ->column('name', 'Name', sortable: true, searchable: true)\n    ->column('email', 'Email', sortable: true, searchable: true)\n    ->column('status', 'Status')\n    ->column('age', 'Age', sortable: true)\n    ->withGlobalSearch()\n    ->selectFilter('status', [\n        'active' => 'Active',\n        'inactive' => 'Inactive',\n    ])\n    ->numberFilter('age', 'Age')\n    ->render('Users/Index');\n\n// Method 2: QueryBuilder callback (useful for multi-table setups)\nreturn InertiaTable::make()\n    ->withQueryBuilderCallback(function () {\n        return QueryBuilder::for(User::class)\n            ->allowedFilters([\n                AllowedFilter::partial('name'),\n                AllowedFilter::exact('status'),\n                NumberFilter::getQueryBuilderFilter('age'),\n            ])\n            ->allowedSorts(['name', 'email', 'created_at'])\n            ->defaultSort('name');\n    })\n    ->column('name', 'Name', sortable: true, searchable: true)\n    ->column('email', 'Email', sortable: true, searchable: true)\n    ->withResource(\\App\\Http\\Resources\\UserResource::class) // Optional resource transformation\n    ->render('Users/Index');\n```\n\n### Multiple Tables\n\nFor views with multiple tables, use the `InertiaTable::view()` method:\n\n```php\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\n\nreturn InertiaTable::view('Dashboard/Index')\n    ->table('users', function (InertiaTable $table) {\n        $table->withQueryBuilderCallback(function () {\n            // Configure query parameters for this table\n            InertiaTable::updateQueryBuilderParameters('users');\n\n            return QueryBuilder::for(User::class)\n                ->allowedFilters([AllowedFilter::partial('name')])\n                ->allowedSorts(['name', 'email'])\n                ->defaultSort('name');\n        })\n        ->column('name', 'Name', sortable: true, searchable: true)\n        ->column('email', 'Email', sortable: true)\n        ->withGlobalSearch()\n        ->paginateMethod('paginate');\n    })\n    ->table('products', function (InertiaTable $table) {\n        $table->withQueryBuilderCallback(function () {\n            // Configure query parameters for this table\n            InertiaTable::updateQueryBuilderParameters('products');\n\n            return QueryBuilder::for(Product::class)\n                ->allowedFilters([\n                    AllowedFilter::partial('title'),\n                    NumberFilter::getQueryBuilderFilter('price')\n                ])\n                ->allowedSorts(['title', 'price'])\n                ->defaultSort('title');\n        })\n        ->column('title', 'Title', sortable: true, searchable: true)\n        ->column('price', 'Price', sortable: true)\n        ->numberFilter('price', 'Price')\n        ->paginateMethod('simplePaginate');\n    })\n    ->with(['customData' => 'Additional data for the view'])\n    ->render();\n```\n\n### Additional Fluent API Methods\n\nThe fluent API provides many configuration options:\n\n```php\nreturn InertiaTable::make()\n    ->name('custom-table')              // Table name for multi-table setups\n    ->pageName('customPage')            // Custom pagination parameter name\n    ->perPageOptions([10, 25, 50])     // Available per-page options\n    ->defaultSort('created_at')         // Default sorting column\n    ->handleExport(true)                // Enable/disable CSV export (default: true)\n    ->paginateMethod('simplePaginate')  // Pagination method\n    ->withResource(\\App\\Http\\Resources\\UserResource::class) // Resource transformation\n    ->with(['additional' => 'data'])    // Additional data for the view\n    ->render('Users/Index');\n```\n\n## Traditional API (Legacy)\n\nYou can still use the traditional callbackF-based API if needed:\n\n```php\nreturn Inertia::render('Users/Index')->table(function (InertiaTable $table) {\n    $table->searchInput('name');\n    $table->selectFilter('status', ['active' => 'Active']);\n});\n```\n\n## Configuration\n\nThe package will automatically register the Service Provider which provides a `table` method you can use on an Interia Response.\n\n### Getting started with Traditional API\n\nBy default, the package will search for the `routes/web.php` file and check for a route with the \"search\" name. If you have different setup, you can define the route in your configuration file.\n\nAs described above, the package will detect if you use [Spatie's Query Builder](https://github.com/spatie/laravel-query-builder). This usually means the root you're using looks somewhat like this:\n\n```php\n$users = QueryBuilder::for(User::class)->paginate($request->perPage ?: 10);\n\nreturn Inertia::render('Users/Index', [\n    'users' => $users\n]);\n```\n\n#### Search fields\n\nWith the `searchInput` method, you can specify which attributes are searchable. Search queries are passed to the URL query as a `filter`. This integrates seamlessly with the [filtering feature](https://spatie.be/docs/laravel-query-builder/v5/features/filtering) of the Laravel Query Builder package.\n\nThough it's enough to pass in the column key, you may specify a custom label and default value.\n\n```php\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\n\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->searchInput('name');\n\n\t$table->searchInput(\n\t\tkey: 'framework',\n\t\tlabel: 'Find your framework',\n\t\tdefaultValue: 'Laravel'\n\t);\n});\n```\n\n#### Select Filters\n\nSelect Filters are similar to search fields but use a `select` element instead of an `input` element. This way, you can present the user a predefined set of options. Under the hood, this uses the same filtering feature of the Laravel Query Builder package.\n\nThe `selectFilter` method requires two arguments: the key, and a key-value array with the options.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->selectFilter('language_code', [\n\t\t'en' => 'Engels',\n\t\t'nl' => 'Nederlands',\n\t]);\n});\n```\n\nThe `selectFilter` will, by default, add a _no filter_ option to the array. You may disable this or specify a custom label for it.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->selectFilter(\n\t\tkey: 'language_code',\n\t\toptions: $languages,\n\t\tlabel: 'Language',\n\t\tdefaultValue: 'nl',\n\t\tnoFilterOption: true,\n\t\tnoFilterOptionLabel: 'All languages'\n\t);\n});\n```\n\n#### Boolean Filters\n\nThis way, you can present the user a toggle. Under the hood, this uses the same filtering feature of the Laravel Query Builder package.\n\nThe `toggleFilter` method requires one argument: the key.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->toggleFilter('is_verified');\n});\n```\n\nYou can specify a custom label for it and a default value.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->toggleFilter(\n\t\tkey: 'is_verified',\n\t\tlabel: 'Is email verified',\n\t\tdefaultValue: true,\n\t);\n});\n```\n\n#### Number range Filters\n\nThis way, you can present the user a toggle. Under the hood, this uses the same filtering feature of the Laravel Query Builder package.\n\nThe `numberRangeFilter` method requires two arguments: the key and the max value.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->numberRangeFilter('invoice_recall_count', 5);\n});\n```\n\nYou can specify a some other params.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->numberRangeFilter(\n\t\tkey: 'invoice_recall_count',\n\t\tmax: 5,\n\t\tmin: 0,\n\t\tprefix: '',\n\t\tsuffix: '',\n\t\tstep: 1,\n\t\tlabel: 'Invoice recall count',\n\t\tdefaultValue: [1,4],\n\t);\n});\n```\n\nYou need to use a custom allowed filter for this filter.\n\n```php\n$users = QueryBuilder::for(/*...*/)\n\t\t\t->allowedFilters([NumberRangeFilter::getQueryBuilderFilter('invoice_recall_count')]);\n```\n\n#### Number Filters ✨ **NEW!**\n\nThe `numberFilter` provides advanced comparison operations similar to date filters. You can filter by exact match, greater than, less than, between ranges, and more.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->numberFilter('age');\n});\n```\n\nThe Number Filter supports 6 different comparison operations:\n\n-   **Exact**: Find records with exact value\n-   **Greater than**: Find records greater than specified value\n-   **Greater than or equal**: Find records greater than or equal to specified value\n-   **Less than**: Find records less than specified value\n-   **Less than or equal**: Find records less than or equal to specified value\n-   **Between**: Find records within a specified range\n\nYou can customize the filter with additional parameters:\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->numberFilter(\n\t\tkey: 'age',\n\t\tlabel: 'Filter by age',\n\t\tdefaultOperation: 'greater_than',\n\t\tdefaultValue: 18,\n\t\tcolumn_key: 'age' // Associate with a specific column\n\t);\n});\n```\n\nYou need to use the custom NumberFilter for this filter:\n\n```php\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\Filters\\NumberFilter;\n\n$users = QueryBuilder::for(User::class)\n\t\t->allowedFilters([\n\t\t\tNumberFilter::getQueryBuilderFilter('age')\n\t\t]);\n```\n\n```php\n$users = QueryBuilder::for(/*...*/)\n\t\t\t->allowedFilters([NumberRangeFilter::getQueryBuilderFilter('invoice_recall_count')]);\n```\n\n#### Column Filters ✨ **NEW!**\n\nYou can now place filter icons directly in column headers for a more intuitive user experience. Each filter can be associated with a specific column using the `column_key` parameter.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->column('name', 'Name')\n\t\t  ->column('status', 'Status')\n\t\t  ->column('email', 'Email')\n\t\t  ->column('created_at', 'Created');\n\n\t// Associate a select filter with the 'status' column\n\t$table->selectFilter(\n\t\tkey: 'status',\n\t\toptions: [\n\t\t\t'active' => 'Active',\n\t\t\t'inactive' => 'Inactive',\n\t\t\t'pending' => 'Pending'\n\t\t],\n\t\tlabel: 'Status',\n\t\tcolumn_key: 'status' // 🎯 Associates the filter with the status column\n\t);\n\n\t// Associate a toggle filter with the 'email' column\n\t$table->toggleFilter(\n\t\tkey: 'email_verified',\n\t\tlabel: 'Email Verified',\n\t\tcolumn_key: 'email'\n\t);\n\n\t// Associate a number range filter with the 'created_at' column\n\t$table->numberRangeFilter(\n\t\tkey: 'days_since_creation',\n\t\tmax: 365,\n\t\tmin: 0,\n\t\tlabel: 'Days Since Creation',\n\t\tcolumn_key: 'created_at'\n\t);\n});\n```\n\n**Features:**\n\n-   🎯 **Visual Association**: Filter icons appear directly in column headers\n-   🎨 **Active State Indicator**: Icons change color when filters are applied\n-   📱 **Responsive Dropdown**: Clean dropdown interface for filter options\n-   🔄 **Backward Compatible**: Existing filters without `column_key` still work in the global filter bar\n\n**Benefits:**\n\n-   More intuitive user experience\n-   Better visual organization\n-   Space-efficient interface\n-   Clear association between filters and data columns\n\nFor detailed examples and usage, see [COLUMN_FILTERS.md](COLUMN_FILTERS.md).\n\n#### Columns\n\nWith the `column` method, you can specify which columns you want to be toggleable, sortable, and searchable. You must pass in at least a key or label for each column.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->column('name', 'User Name');\n\n\t$table->column(\n\t\tkey: 'name',\n\t\tlabel: 'User Name',\n\t\tcanBeHidden: true,\n\t\thidden: false,\n\t\tsortable: true,\n\t\tsearchable: true\n\t\theaderClass: 'hidden md:table-cell', // This cell will be hidden on small screens\n\t\tbodyClass: 'hidden md:table-cell', // This cell will be hidden on small screens\n\t);\n});\n```\n\nThe `searchable` option is a shortcut to the `searchInput` method. The example below will essentially call `$table->searchInput('name', 'User Name')`.\n\n#### Global Search\n\nYou may enable Global Search with the `withGlobalSearch` method, and optionally specify a placeholder.\n\n```php\nInertia::render('Page/Index')->table(function (InertiaTable $table) {\n\t$table->withGlobalSearch();\n\n\t$table->withGlobalSearch('Search through the data...');\n});\n```\n\nIf you want to enable Global Search for every table by default, you may use the static `defaultGlobalSearch` method, for example, in the `AppServiceProvider` class:\n\n```php\nInertiaTable::defaultGlobalSearch();\nInertiaTable::defaultGlobalSearch('Default custom placeholder');\nInertiaTable::defaultGlobalSearch(false); // disable\n```\n\n#### Example controller\n\nHere are examples using both the new fluent API and the traditional API:\n\n#### Fluent API Example (Recommended)\n\n```php\n<?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Models\\User;\nuse App\\Http\\Resources\\UserResource;\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\Filters\\NumberFilter;\nuse Spatie\\QueryBuilder\\AllowedFilter;\nuse Spatie\\QueryBuilder\\QueryBuilder;\n\nclass UserIndexController\n{\n    public function __invoke()\n    {\n        $globalSearch = AllowedFilter::callback('global', function ($query, $value) {\n            $query->where(function ($query) use ($value) {\n                Collection::wrap($value)->each(function ($value) use ($query) {\n                    $query\n                        ->orWhere('name', 'LIKE', \"%{$value}%\")\n                        ->orWhere('email', 'LIKE', \"%{$value}%\");\n                });\n            });\n        });\n\n        return InertiaTable::make()\n            ->withQueryBuilder(\n                QueryBuilder::for(User::class)\n                    ->defaultSort('name')\n                    ->allowedSorts(['name', 'email', 'created_at'])\n                    ->allowedFilters([\n                        'name',\n                        'email',\n                        'status',\n                        NumberFilter::getQueryBuilderFilter('age'),\n                        $globalSearch\n                    ])\n            )\n            ->withGlobalSearch()\n            ->defaultSort('name')\n            ->column('name', 'User Name', canBeHidden: false, sortable: true, searchable: true)\n            ->column('email', 'Email Address', sortable: true, searchable: true)\n            ->column('status', 'Status')\n            ->column('age', 'Age', sortable: true)\n            ->column('created_at', 'Created', sortable: true)\n            ->column('actions', 'Actions', canBeHidden: false, sortable: false)\n            ->selectFilter('status', [\n                'active' => 'Active',\n                'inactive' => 'Inactive',\n                'pending' => 'Pending'\n            ])\n            ->numberFilter('age', 'Filter by Age')\n            ->withResource(UserResource::class)\n            ->handleExport(true)\n            ->render('Users/Index');\n    }\n}\n```\n\n#### Traditional API Example (Legacy)\n\n```php\n<?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Models\\User;\nuse Illuminate\\Support\\Collection;\nuse Inertia\\Inertia;\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\nuse Spatie\\QueryBuilder\\AllowedFilter;\nuse Spatie\\QueryBuilder\\QueryBuilder;\n\nclass UserIndexController\n{\n\tpublic function __invoke()\n\t{\n\t\t$globalSearch = AllowedFilter::callback('global', function ($query, $value) {\n\t\t\t$query->where(function ($query) use ($value) {\n\t\t\t\tCollection::wrap($value)->each(function ($value) use ($query) {\n\t\t\t\t\t$query\n\t\t\t\t\t\t->orWhere('name', 'LIKE', \"%{$value}%\")\n\t\t\t\t\t\t->orWhere('email', 'LIKE', \"%{$value}%\");\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\t$users = QueryBuilder::for(User::class)\n\t\t\t->defaultSort('name')\n\t\t\t->allowedSorts(['name', 'email', 'language_code'])\n\t\t\t->allowedFilters(['name', 'email', 'language_code', $globalSearch])\n\t\t\t->paginate()\n\t\t\t->withQueryString();\n\n\t\treturn Inertia::render('Users/Index', [\n\t\t\t'users' => $users,\n\t\t])->table(function (InertiaTable $table) {\n\t\t\t$table\n\t\t\t  ->withGlobalSearch()\n\t\t\t  ->defaultSort('name')\n\t\t\t  ->column(key: 'name', searchable: true, sortable: true, canBeHidden: false)\n\t\t\t  ->column(key: 'email', searchable: true, sortable: true)\n\t\t\t  ->column(key: 'language_code', label: 'Language')\n\t\t\t  ->column(label: 'Actions')\n\t\t\t  ->selectFilter(key: 'language_code', label: 'Language', options: [\n\t\t\t\t  'en' => 'English',\n\t\t\t\t  'nl' => 'Dutch',\n\t\t\t  ]);\n\t\t});\n\t}\n}\n```\n\n#### Column Reordering and Pinning ✨ **NEW!**\n\nThe table supports drag-and-drop column reordering with persistent state management. Users can reorder columns by dragging the column in the column list, and the new order is automatically saved and restored on future visits (persisted in brower's local storage)\n\n##### Column Reordering\n\nColumns can be reordered by dragging and dropping the column headers. The new column order is automatically persisted in the browser's local storage for each named table.\n\n```php\n// With the Fluent API\nreturn InertiaTable::make()\n    ->name('users-table') // Table name is required for persistent column ordering\n    ->column('name', 'User Name', sortable: true)\n    ->column('email', 'Email', sortable: true)\n    ->column('status', 'Status')\n    ->render('Users/Index');\n\n// With the Traditional API\nreturn Inertia::render('Users/Index')->table(function (InertiaTable $table) {\n    $table->column('name', 'User Name', sortable: true);\n    $table->column('email', 'Email', sortable: true);\n    $table->column('status', 'Status');\n});\n```\n\nThe column order is automatically saved per table name. If no table name is provided, the current route name is used as a fallback.\n\n##### Column Pinning\n\nColumns can be pinned (marked as non-hideable) to prevent users from accidentally hiding important columns. Pinned columns are marked with a \"Fixed\" label in the column toggle interface.\n\n```php\n// With the Fluent API\nreturn InertiaTable::make()\n    ->column('id', 'ID', canBeHidden: false) // This column is pinned and cannot be hidden\n    ->column('name', 'User Name', canBeHidden: true, sortable: true)\n    ->column('email', 'Email', canBeHidden: true, sortable: true)\n    ->column('actions', 'Actions', canBeHidden: false) // Actions column is also pinned\n    ->render('Users/Index');\n\n// With the Traditional API\nreturn Inertia::render('Users/Index')->table(function (InertiaTable $table) {\n    $table->column(key: 'id', label: 'ID', canBeHidden: false);\n    $table->column(key: 'name', label: 'User Name', canBeHidden: true, sortable: true);\n    $table->column(key: 'email', label: 'Email', canBeHidden: true, sortable: true);\n    $table->column(key: 'actions', label: 'Actions', canBeHidden: false);\n});\n```\n\n##### Features of Column Management\n\n-   **Persistent State**: Column order and visibility are automatically saved in the browser's local storage\n-   **Per-Table Configuration**: Each named table maintains its own column configuration\n-   **Drag & Drop Interface**: Intuitive drag-and-drop interface for reordering columns\n-   **Visual Feedback**: Clear visual indicators during drag operations\n-   **Reset Functionality**: Users can reset columns to their default order and visibility\n-   **Pinned Column Protection**: Pinned columns cannot be hidden and are clearly marked in the UI\n\n##### Frontend Usage\n\nThe column reordering and pinning features work automatically once you configure your columns on the backend. Users can:\n\n1. **Reorder Columns**: Drag column headers to reorder them\n2. **Toggle Column Visibility**: Use the column toggle button to show/hide columns\n3. **Reset Columns**: Reset all columns to their default state\n4. **Pin Important Columns**: Columns can be pinned. They will be always visible at left of the table !\n\nThe column state is automatically synchronized between the frontend and backend through the query string and local storage.\n\n#### localStorage Persistence ✨ **NEW!**\n\nThe table component stores all customizations (column visibility, order, pinned state, and column widths) in the browser's localStorage. By default, the storage key is based on the table name, but you can customize it using the `localStorageName` prop.\n\n##### Default Behavior\n\nWithout specifying `localStorageName`, the table uses `table-{name}` as the storage key:\n\n```vue\n<template>\n    <!-- Storage keys: \"table-users-columns\" and \"table-users-columnWidths\" -->\n    <Table :resource=\"users\" name=\"users\" />\n</template>\n```\n\n##### Custom Storage Key\n\nUse `localStorageName` to specify a custom key for localStorage:\n\n```vue\n<template>\n    <!-- Storage keys: \"admin-dashboard-users-columns\" and \"admin-dashboard-users-columnWidths\" -->\n    <Table\n        :resource=\"users\"\n        name=\"users\"\n        local-storage-name=\"admin-dashboard-users\"\n    />\n</template>\n```\n\n##### Use Cases\n\n-   **Multiple Instances**: When using the same table component on different pages with different configurations\n-   **User-Specific Settings**: Combine with user ID for per-user preferences (e.g., `user-123-products-table`)\n-   **Environment Separation**: Separate settings between development and production\n-   **Feature Flags**: Different configurations for different feature variants\n\n##### Storage Structure\n\nThe table stores two separate entries in localStorage:\n\n| Key                            | Content                                          |\n| ------------------------------ | ------------------------------------------------ |\n| `{localStorageName}-columns`   | Column visibility, order, and pinned state       |\n| `{localStorageName}-columnWidths` | Column width preferences (when resizing is enabled) |\n\n##### Reset Behavior\n\nWhen the user clicks the \"Reset\" button, all customizations stored in localStorage for that table are cleared, and columns return to their default state.\n\n### Client-side installation (Inertia)\n\nYou can install the package via either `npm` or `yarn`:\n\n```bash\nnpm install @adesin-fr/inertiajs-tables-laravel-query-builder --save\n\nyarn add @adesin-fr/inertiajs-tables-laravel-query-builder\n```\n\nAdd the repository path to the `content` array of your [Tailwind configuration file](https://tailwindcss.com/docs/content-configuration). This ensures that the styling also works on production builds.\n\n```js\nmodule.exports = {\n    content: [\n        \"./node_modules/@adesin-fr/inertiajs-tables-laravel-query-builder/**/*.{js,vue}\",\n    ],\n};\n```\n\n#### Default Stylesheet\n\nThe package now includes a default stylesheet that is **automatically imported** when you use the components. This provides a fully styled table out of the box without requiring Tailwind CSS classes.\n\nThe default styles use CSS variables, making it easy to customize the appearance of your tables.\n\n##### Customizing the Default Styles\n\nThere are three ways to customize the default styles:\n\n**1. Override CSS Variables**\n\nThe easiest way to customize the table appearance is by overriding CSS variables in your own CSS file:\n\n```css\n:root {\n    /* Change primary color to blue */\n    --ijt-color-primary: #3b82f6;\n    --ijt-color-primary-hover: #2563eb;\n    --ijt-color-primary-light: #dbeafe;\n\n    /* Change border radius */\n    --ijt-radius-md: 0.5rem;\n    --ijt-radius-lg: 0.75rem;\n\n    /* Change spacing */\n    --ijt-spacing-md: 1.25rem;\n}\n```\n\n**Available CSS Variables:**\n\n| Variable                       | Description                | Default Value       |\n| ------------------------------ | -------------------------- | ------------------- |\n| `--ijt-color-primary`          | Primary accent color       | `#4f46e5` (indigo)  |\n| `--ijt-color-primary-hover`    | Primary hover state        | `#4338ca`           |\n| `--ijt-color-primary-light`    | Light primary background   | `#e0e7ff`           |\n| `--ijt-color-success`          | Success color              | `#22c55e`           |\n| `--ijt-color-danger`           | Danger/error color         | `#ef4444`           |\n| `--ijt-color-text`             | Main text color            | `#374151`           |\n| `--ijt-color-text-light`       | Secondary text color       | `#6b7280`           |\n| `--ijt-color-text-muted`       | Muted text color           | `#9ca3af`           |\n| `--ijt-color-bg`               | Background color           | `#ffffff`           |\n| `--ijt-color-bg-secondary`     | Secondary background       | `#f9fafb`           |\n| `--ijt-color-bg-hover`         | Hover background           | `#f3f4f6`           |\n| `--ijt-color-border`           | Border color               | `#e5e7eb`           |\n| `--ijt-color-border-dark`      | Darker border color        | `#d1d5db`           |\n| `--ijt-radius-sm`              | Small border radius        | `0.25rem`           |\n| `--ijt-radius-md`              | Medium border radius       | `0.375rem`          |\n| `--ijt-radius-lg`              | Large border radius        | `0.5rem`            |\n| `--ijt-spacing-xs`             | Extra small spacing        | `0.25rem`           |\n| `--ijt-spacing-sm`             | Small spacing              | `0.5rem`            |\n| `--ijt-spacing-md`             | Medium spacing             | `1rem`              |\n| `--ijt-spacing-lg`             | Large spacing              | `1.5rem`            |\n| `--ijt-shadow-sm`              | Small shadow               | `0 1px 2px ...`     |\n| `--ijt-shadow-md`              | Medium shadow              | `0 4px 6px ...`     |\n| `--ijt-font-size-sm`           | Small font size            | `0.875rem`          |\n| `--ijt-font-size-base`         | Base font size             | `1rem`              |\n\n**2. Override Specific Classes**\n\nYou can override specific `.ijt-*` classes in your CSS:\n\n```css\n/* Custom table header styling */\n.ijt-table__th {\n    background-color: #1e3a5f;\n    color: white;\n}\n\n/* Custom button styling */\n.ijt-button {\n    background: linear-gradient(to right, #4f46e5, #7c3aed);\n    color: white;\n    border: none;\n}\n\n/* Custom pagination styling */\n.ijt-pagination__button--active {\n    background-color: #4f46e5;\n    color: white;\n}\n```\n\n**3. Create Your Own Theme**\n\nFor complete control, you can create your own theme file from scratch. Simply don't import the default styles and write your own CSS targeting the `.ijt-*` classes used by the components.\n\n```js\n// In your main.js, import components without the default styles\nimport {\n    Table,\n    Pagination,\n    // ... other components\n} from \"@adesin-fr/inertiajs-tables-laravel-query-builder\";\n\n// Then import your custom stylesheet\nimport \"./styles/my-custom-table-theme.css\";\n```\n\n##### Disabling Default Styles\n\nIf you prefer to use only Tailwind classes or your own styling system, you can prevent the default styles from being loaded by importing components individually without the main entry point, or by overriding the styles with higher specificity CSS rules.\n\n#### Table component\n\nTo use the `Table` component and all its related features, you must import the `Table` component and pass the `users` data to the component.\n\n```vue\n<script setup>\nimport { Table } from \"@adesin-fr/inertiajs-tables-laravel-query-builder\";\n\ndefineProps([\"users\"]);\n</script>\n\n<template>\n    <Table :resource=\"users\" />\n</template>\n```\n\nThe `resource` property automatically detects the data and additional pagination meta data. You may also pass this manually to the component with the `data` and `meta` properties:\n\n```vue\n<template>\n    <Table :data=\"users.data\" :meta=\"users.meta\" />\n</template>\n```\n\nIf you want to manually render the table, like in v1 of this package, you may use the `head` and `body` slot. Additionally, you can still use the `meta` property to render the paginator.\n\n```vue\n<template>\n    <Table :meta=\"users\">\n        <template #head>\n            <tr>\n                <th>User</th>\n            </tr>\n        </template>\n\n        <template #body>\n            <tr v-for=\"(user, key) in users.data\" :key=\"key\">\n                <td>{{ user.name }}</td>\n            </tr>\n        </template>\n    </Table>\n</template>\n```\n\nThe `Table` has some additional properties to tweak its front-end behaviour.\n\n```vue\n<template>\n    <Table\n        :striped=\"true\"\n        :prevent-overlapping-requests=\"false\"\n        :input-debounce-ms=\"1000\"\n        :preserve-scroll=\"true\"\n    />\n</template>\n```\n\n| Property                   | Description                                                                                                                                                                                               | Default |\n| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |\n| striped                    | Adds a _striped_ layout to the table.                                                                                                                                                                     | `false` |\n| preventOverlappingRequests | Cancels a previous visit on new user input to prevent an inconsistent state.                                                                                                                              | `true`  |\n| inputDebounceMs            | Number of ms to wait before refreshing the table on user input.                                                                                                                                           | 350     |\n| preserveScroll             | Configures the [Scroll preservation](https://inertiajs.com/scroll-management#scroll-preservation) behavior. You may also pass `table-top` to this property to scroll to the top of the table on new data. | false   |\n| hasCheckboxes              | Enables row selection with checkboxes. Adds a checkbox column on the left side of the table with a \"select all\" checkbox in the header. Selected items are tracked via the `__itSelected` property.       | `false` |\n| rowClass                   | A function that receives the row item as parameter and returns a CSS class string to apply to the table row. Useful for conditional row styling.                                                          | `null`  |\n| paginationClickCallback    | A function that receives the pagination URL as parameter and handles custom pagination logic instead of the default Inertia navigation.                                                                   | `null`  |\n| localStorageName           | Custom key for storing table customizations (column visibility, order, pinned state, and widths) in localStorage. If not provided, falls back to `table-{name}`.                                          | `null`  |\n\n#### Custom Pagination Callback ✨ **NEW!**\n\nYou can now provide a custom callback function to handle pagination clicks instead of the default Inertia navigation. This is useful when you want to implement custom data loading logic, API calls, or state management for pagination.\n\n```vue\n<template>\n    <Table\n        :resource=\"users\"\n        :pagination-click-callback=\"handleCustomPagination\"\n    />\n</template>\n\n<script setup>\nimport { ref } from \"vue\";\n\nconst users = ref(props.users);\nconst isLoading = ref(false);\n\nconst handleCustomPagination = async (url) => {\n    console.log(\"Custom pagination triggered for:\", url);\n\n    isLoading.value = true;\n\n    try {\n        // Custom logic for fetching data\n        const response = await fetch(url, {\n            headers: {\n                Accept: \"application/json\",\n                \"X-Inertia\": \"true\",\n            },\n        });\n\n        const data = await response.json();\n\n        // Update your component's data\n        users.value = data.users;\n\n        // You can also update other parts of your application state\n        // emit events, update stores, etc.\n    } catch (error) {\n        console.error(\"Pagination error:\", error);\n        // Handle error (show notification, fallback, etc.)\n    } finally {\n        isLoading.value = false;\n    }\n};\n</script>\n```\n\n**Key Features:**\n\n-   **Full Control**: Complete control over pagination behavior\n-   **Async Support**: Handle async operations like API calls\n-   **Error Handling**: Implement custom error handling and loading states\n-   **State Management**: Integrate with your preferred state management solution\n-   **Backward Compatible**: When not provided, falls back to default Inertia navigation\n-   **URL Preservation**: Receives the complete pagination URL with all filters and parameters\n\n**Use Cases:**\n\n-   **SPA Behavior**: Implement single-page application pagination without page reloads\n-   **API Integration**: Fetch data from external APIs instead of server-side rendering\n-   **Custom Loading States**: Show custom loading indicators and animations\n-   **State Persistence**: Maintain complex application state during pagination\n-   **Analytics Tracking**: Track pagination interactions for analytics\n-   **Performance Optimization**: Implement custom caching or data optimization strategies\n\nFor a complete example, see [examples/PaginationCallbackExample.vue](examples/PaginationCallbackExample.vue).\n\n#### Row Selection with Checkboxes\n\nThe `hasCheckboxes` property enables row selection with checkboxes. When enabled, a checkbox column is added on the left side of the table with a \"select all\" checkbox in the header.\n\n```vue\n<template>\n    <Table\n        :resource=\"users\"\n        :has-checkboxes=\"true\"\n        @selection-changed=\"handleSelectionChange\"\n    />\n</template>\n\n<script setup>\nimport { ref } from \"vue\";\n\nconst selectedUsers = ref([]);\n\nconst handleSelectionChange = (selectedItems) => {\n    selectedUsers.value = selectedItems;\n    console.log(\"Selected users:\", selectedItems);\n};\n</script>\n```\n\n**Features:**\n\n-   **Select All**: The header checkbox allows selecting/deselecting all visible rows at once\n-   **Individual Selection**: Each row has its own checkbox for individual selection\n-   **Selection Tracking**: Selected items are tracked via the `__itSelected` property on each item\n-   **Selection Event**: The `selectionChanged` event is emitted whenever the selection changes, providing the array of selected items\n-   **Selection Counter**: A label displays the number of selected lines (e.g., \"3 line(s) selected\")\n\n**Use Cases:**\n\n-   Bulk operations (delete, export, status change)\n-   Multi-select for batch processing\n-   Comparison between multiple items\n\nThe `Table` has some events that you can use\n\n-   rowClicked: this event is fired when the user click on the row. The event give you this informations: event, item, key.\n    Be careful if you use this event with a clickable element inside the row like an action button.\n    Don't forget to use `event.stopPropagation()` for all other clickable elements.\n    If you want to disable rowClicked events on your \"actions\" column, you can use the key argument to filter out the event when the key corresponds to your action column key.\n\n#### Custom row styling\n\nYou can apply custom CSS classes to table rows based on the row data using the `rowClass` property. This function receives the row item as a parameter and should return a CSS class string.\n\n```vue\n<template>\n    <Table :resource=\"users\" :row-class=\"getRowClass\"> </Table>\n</template>\n\n<script setup>\nimport { defineProps } from \"vue\";\n\ndefineProps([\"users\"]);\n\nconst getRowClass = (user) => {\n    if (user.status === \"inactive\") {\n        return \"opacity-50 bg-red-50\";\n    }\n    if (user.role === \"admin\") {\n        return \"bg-blue-50 border-l-4 border-blue-500\";\n    }\n    if (\n        user.created_at &&\n        new Date(user.created_at) >\n            new Date(Date.now() - 7 * 24 * 60 * 60 * 1000)\n    ) {\n        return \"bg-green-50\";\n    }\n    return null; // No custom class\n};\n</script>\n```\n\nFor more advanced examples of custom row styling, see [examples/RowClassExamples.vue](examples/RowClassExamples.vue).\n\n#### Custom column cells\n\nWhen using _auto-fill_, you may want to transform the presented data for a specific column while leaving the other columns untouched. For this, you may use a cell template. This example is taken from the [Example Controller](#example-controller) above.\n\n```vue\n<template>\n    <Table :resource=\"users\">\n        <template #cell(actions)=\"{ item: user }\">\n            <a :href=\"`/users/${user.id}/edit`\"> Edit </a>\n        </template>\n    </Table>\n</template>\n```\n\n#### Custom header cells\n\nWhen using _auto-fill_, you may want to transform the presented data for a specific header while leaving the other columns untouched. For this, you may use a header template. This example is taken from the [Example Controller](#example-controller) above.\n\n```vue\n<template>\n    <Table :resource=\"users\">\n        <template #header(email)=\"{ label: label, column: column }\">\n            <span class=\"lowercase\">{{ label }}</span>\n        </template>\n    </Table>\n</template>\n```\n\n#### Multiple tables per page\n\nYou may want to use more than one table component per page. The new fluent API makes this much easier with the `InertiaTable::view()` method.\n\n#### Using the New Fluent API (Recommended)\n\n```php\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\nuse Spatie\\QueryBuilder\\AllowedFilter;\nuse Spatie\\QueryBuilder\\QueryBuilder;\n\nreturn InertiaTable::view('TwoTables')\n    ->table('companies', function (InertiaTable $table) {\n        $table->withQueryBuilderCallback(function () {\n            // Update query parameters for this table\n            InertiaTable::updateQueryBuilderParameters('companies');\n\n            return QueryBuilder::for(Company::class)\n                ->defaultSort('name')\n                ->allowedSorts(['name', 'email'])\n                ->allowedFilters(['name', 'email']);\n        })\n        ->pageName('companiesPage')\n        ->column('name', 'Company Name', searchable: true, sortable: true)\n        ->column('email', 'Contact Email', searchable: true, sortable: true)\n        ->column('address', 'Address', searchable: true)\n        ->withGlobalSearch()\n        ->defaultSort('name');\n    })\n    ->table('users', function (InertiaTable $table) {\n        $table->withQueryBuilderCallback(function () {\n            // Update query parameters for this table\n            InertiaTable::updateQueryBuilderParameters('users');\n\n            return QueryBuilder::for(User::class)\n                ->defaultSort('name')\n                ->allowedSorts(['name', 'email'])\n                ->allowedFilters(['name', 'email']);\n        })\n        ->pageName('usersPage')\n        ->column('name', 'User Name', searchable: true, sortable: true)\n        ->column('email', 'User Email', searchable: true, sortable: true)\n        ->withGlobalSearch()\n        ->defaultSort('name');\n    })\n    ->render();\n```\n\n#### Using the Traditional API (Legacy)\n\nYou may want to use more than one table component per page. Displaying the data is easy, but using features like filtering, sorting, and pagination requires a slightly different setup. For example, by default, the `page` query key is used for paginating the data set, but now you want two different keys for each table. Luckily, this package takes care of that and even provides a helper method to support Spatie's query package. To get this to work, you need to _name_ your tables.\n\nLet's take a look at Spatie's `QueryBuilder`. In this example, there's a table for the companies and a table for the users. We name the tables accordingly. So first, call the static `updateQueryBuilderParameters` method to tell the package to use a different set of query parameters. Now, `filter` becomes `companies_filter`, `column` becomes `companies_column`, and so forth. Secondly, change the `pageName` of the database paginator.\n\n```php\nInertiaTable::updateQueryBuilderParameters('companies');\n\n$companies = QueryBuilder::for(Company::query())\n\t->defaultSort('name')\n\t->allowedSorts(['name', 'email'])\n\t->allowedFilters(['name', 'email'])\n\t->paginate(pageName: 'companiesPage')\n\t->withQueryString();\n\nInertiaTable::updateQueryBuilderParameters('users');\n\n$users = QueryBuilder::for(User::query())\n\t->defaultSort('name')\n\t->allowedSorts(['name', 'email'])\n\t->allowedFilters(['name', 'email'])\n\t->paginate(pageName: 'usersPage')\n\t->withQueryString();\n```\n\nThen, we need to apply these two changes to the `InertiaTable` class. There's a `name` and `pageName` method to do so.\n\n```php\nreturn Inertia::render('TwoTables', [\n\t'companies' => $companies,\n\t'users'     => $users,\n])->table(function (InertiaTable $inertiaTable) {\n\t$inertiaTable\n\t\t->name('users')\n\t\t->pageName('usersPage')\n\t\t->defaultSort('name')\n\t\t->column(key: 'name', searchable: true)\n\t\t->column(key: 'email', searchable: true);\n})->table(function (InertiaTable $inertiaTable) {\n\t$inertiaTable\n\t\t->name('companies')\n\t\t->pageName('companiesPage')\n\t\t->defaultSort('name')\n\t\t->column(key: 'name', searchable: true)\n\t\t->column(key: 'address', searchable: true);\n});\n```\n\nLastly, pass the correct `name` property to each table in the Vue template. Optionally, you may set the `preserve-scroll` property to `table-top`. This makes sure to scroll to the top of the table on new data. For example, when changing the page of the _second_ table, you want to scroll to the top of the table, instead of the top of the page.\n\n```vue\n<script setup>\nimport { Table } from \"@adesin-fr/inertiajs-tables-laravel-query-builder\";\n\ndefineProps([\"companies\", \"users\"]);\n</script>\n\n<template>\n    <Table :resource=\"companies\" name=\"companies\" preserve-scroll=\"table-top\" />\n\n    <Table :resource=\"users\" name=\"users\" preserve-scroll=\"table-top\" />\n</template>\n```\n\n#### Pagination translations\n\nYou can override the default pagination translations with the `setTranslations` method. You can do this in your main JavaScript file:\n\n```js\nimport { setTranslations } from \"@adesin-fr/inertiajs-tables-laravel-query-builder\";\n\nsetTranslations({\n    // Pagination translations\n    next: \"Next\",\n    no_results_found: \"No results found\",\n    of: \"of\",\n    per_page: \"per page\",\n    previous: \"Previous\",\n    results: \"results\",\n    to: \"to\",\n\n    // General UI translations\n    reset: \"Reset\",\n    search: \"Search...\",\n    noLineSelected: \"No line selected\",\n    lineSelected: \"line(s) selected\",\n\n    // Date filter translations\n    filter_type: \"Filter type\",\n    no_filter: \"No filter\",\n    exact_date: \"Exact date\",\n    before_date: \"Before\",\n    after_date: \"After\",\n    date_range: \"Date range\",\n    start_date: \"Start date\",\n    end_date: \"End date\",\n    reset_filter: \"Reset filter\",\n\n    // Number filter translations\n    exact_number: \"Exact value\",\n    less_than: \"Less than\",\n    greater_than: \"Greater than\",\n    less_than_or_equal: \"Less than or equal\",\n    greater_than_or_equal: \"Greater than or equal\",\n    number_range: \"Between\",\n    start_number: \"Start value\",\n    end_number: \"End value\",\n\n    // Export and menu translations\n    export_csv: \"Export CSV\",\n    add_search_fields: \"Add search field\",\n    show_hide_columns: \"Show / Hide columns\",\n    grouped_reset: \"Reset\",\n});\n```\n\n**Available Translation Keys:**\n\n| Key                     | Description                          | Default Value           |\n| ----------------------- | ------------------------------------ | ----------------------- |\n| `next`                  | Next button in pagination            | \"Next\"                  |\n| `previous`              | Previous button in pagination        | \"Previous\"              |\n| `no_results_found`      | Message when no data                 | \"No results found\"      |\n| `of`                    | Pagination separator (X of Y)        | \"of\"                    |\n| `per_page`              | Per page selector suffix             | \"per page\"              |\n| `results`               | Results count label                  | \"results\"               |\n| `to`                    | Range separator (X to Y)             | \"to\"                    |\n| `reset`                 | Reset button label                   | \"Reset\"                 |\n| `search`                | Search input placeholder             | \"Search...\"             |\n| `noLineSelected`        | Bulk action message                  | \"No line selected\"      |\n| `lineSelected`          | Bulk action message                  | \"line(s) selected\"      |\n| `filter_type`           | Filter type dropdown label           | \"Filter type\"           |\n| `no_filter`             | No filter option                     | \"No filter\"             |\n| `exact_date`            | Date filter: exact match             | \"Exact date\"            |\n| `before_date`           | Date filter: before date             | \"Before\"                |\n| `after_date`            | Date filter: after date              | \"After\"                 |\n| `date_range`            | Date filter: date range              | \"Date range\"            |\n| `start_date`            | Date filter: start date              | \"Start date\"            |\n| `end_date`              | Date filter: end date                | \"End date\"              |\n| `reset_filter`          | Reset filter button                  | \"Reset filter\"          |\n| `exact_number`          | Number filter: exact value           | \"Exact value\"           |\n| `less_than`             | Number filter: less than             | \"Less than\"             |\n| `greater_than`          | Number filter: greater than          | \"Greater than\"          |\n| `less_than_or_equal`    | Number filter: less than or equal    | \"Less than or equal\"    |\n| `greater_than_or_equal` | Number filter: greater than or equal | \"Greater than or equal\" |\n| `number_range`          | Number filter: between range         | \"Between\"               |\n| `start_number`          | Number filter: start value           | \"Start value\"           |\n| `end_number`            | Number filter: end value             | \"End value\"             |\n| `export_csv`            | CSV export button                    | \"Export CSV\"            |\n| `add_search_fields`     | Add search field button              | \"Add search field\"      |\n| `show_hide_columns`     | Column visibility button             | \"Show / Hide columns\"   |\n| `grouped_reset`         | Grouped actions reset                | \"Reset\"                 |\n\n#### Table.vue slots\n\nThe `Table.vue` has several slots that you can use to inject your own implementations.\n\n| Slot              | Description                                                                            |\n| ----------------- | -------------------------------------------------------------------------------------- |\n| table             | The actual table element.                                                              |\n| tableColumns      | The location of the button + dropdown to toggle columns.                               |\n| tableFilter       | The location of the button + dropdown to select filters.                               |\n| tableGlobalSearch | The location of the input element that handles the global search.                      |\n| tableReset        | The location of the button that resets the table.                                      |\n| tableAddSearchRow | The location of the button + dropdown to add additional search rows.                   |\n| tableSearchRows   | The location of the input elements that handle the additional search rows.             |\n| tableWrapper      | The component that _wraps_ the table element, handling overflow, shadow, padding, etc. |\n| head              | The location of the table header.                                                      |\n| body              | The location of the table body.                                                        |\n| exportButton      | The CSV export button. Provides `exportUrl` and `translations` as slot props.          |\n| with-grouped-menu | Use the grouped menu instead of multiple buttons                                       |\n| pagination        | The location of the paginator.                                                         |\n| tableSummary      | A slot below the table for totals/summary. Provides `data`, `meta`, and `selectedItems` as slot props. Works with lazy-loaded data. |\n| color             | The style of the table                                                                 |\n\nEach slot is provided with props to interact with the parent `Table` component.\n\n```vue\n<template>\n    <Table>\n        <template v-slot:tableGlobalSearch=\"slotProps\">\n            <input\n                placeholder=\"Custom Global Search Component...\"\n                @input=\"slotProps.onChange($event.target.value)\"\n            />\n        </template>\n    </Table>\n</template>\n```\n\n#### Table Summary Slot\n\nThe `tableSummary` slot allows you to add a summary section below the table (e.g., totals, averages, or any aggregated data). This slot receives all loaded data, including items loaded via infinite scrolling (lazy loading).\n\n```vue\n<template>\n    <Table :resource=\"invoices\" :has-checkboxes=\"true\">\n        <!-- Custom cell templates -->\n        <template #cell(amount)=\"{ item }\">\n            {{ formatCurrency(item.amount) }}\n        </template>\n\n        <!-- Summary section with totals -->\n        <template #tableSummary=\"{ data, meta, selectedItems }\">\n            <div class=\"bg-gray-50 border-t border-gray-200 px-4 py-3\">\n                <div class=\"flex justify-between items-center\">\n                    <div class=\"text-sm text-gray-600\">\n                        <span class=\"font-medium\">{{ data.length }}</span> items loaded\n                        <span v-if=\"meta.total\"> of {{ meta.total }} total</span>\n                    </div>\n                    <div class=\"text-right\">\n                        <div class=\"text-sm text-gray-600\">\n                            Total: <span class=\"font-bold text-gray-900\">{{ calculateTotal(data) }}</span>\n                        </div>\n                        <div v-if=\"selectedItems.length > 0\" class=\"text-sm text-blue-600\">\n                            Selected total: <span class=\"font-bold\">{{ calculateTotal(selectedItems) }}</span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </template>\n    </Table>\n</template>\n\n<script setup>\nconst formatCurrency = (value) => {\n    return new Intl.NumberFormat('en-US', {\n        style: 'currency',\n        currency: 'USD'\n    }).format(value);\n};\n\nconst calculateTotal = (items) => {\n    const total = items.reduce((sum, item) => sum + (item.amount || 0), 0);\n    return formatCurrency(total);\n};\n</script>\n```\n\n**Slot Props:**\n\n| Prop           | Type   | Description                                                                                      |\n| -------------- | ------ | ------------------------------------------------------------------------------------------------ |\n| data           | Array  | All currently loaded table data (includes lazy-loaded items when using infinite scrolling)       |\n| meta           | Object | Pagination metadata (total, current_page, per_page, etc.)                                        |\n| selectedItems  | Array  | Array of currently selected items (when `hasCheckboxes` is enabled)                              |\n\n**Use Cases:**\n\n-   **Totals Row**: Display sum of numeric columns (amounts, quantities, etc.)\n-   **Averages**: Show average values across all loaded data\n-   **Selection Summary**: Display aggregated info about selected rows\n-   **Statistics**: Show min/max values, counts, or other statistics\n-   **Infinite Scrolling Support**: Works seamlessly with lazy-loaded data, updating as more items are loaded\n\n#### Customizing the Export Button\n\nThe `exportButton` slot allows you to customize the CSV export functionality with your own button design and behavior:\n\n```vue\n<template>\n    <Table :resource=\"users\" :show-export-button=\"true\">\n        <!-- Custom export button with different styling -->\n        <template #exportButton=\"{ exportUrl, translations }\">\n            <button\n                @click=\"customExportFunction(exportUrl)\"\n                class=\"px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600\"\n            >\n                <svg\n                    class=\"h-4 w-4 mr-2\"\n                    fill=\"currentColor\"\n                    viewBox=\"0 0 20 20\"\n                >\n                    <path\n                        d=\"M3 17a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM6.293 6.707a1 1 0 010-1.414l3-3a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414L11 5.414V13a1 1 0 11-2 0V5.414L7.707 6.707a1 1 0 01-1.414 0z\"\n                    />\n                </svg>\n                {{ translations.export_csv }}\n            </button>\n        </template>\n    </Table>\n</template>\n\n<script setup>\nconst customExportFunction = (exportUrl) => {\n    // Add custom logic before export\n    console.log(\"Starting export...\");\n\n    // Perform the actual export\n    window.location.href = exportUrl;\n\n    // Add custom logic after export\n    // e.g., analytics tracking, notifications, etc.\n};\n</script>\n```\n\nYou can also create more complex export options:\n\n```vue\n<template>\n    <Table :resource=\"users\" :show-export-button=\"true\">\n        <!-- Export dropdown with multiple options -->\n        <template #exportButton=\"{ exportUrl, translations }\">\n            <div class=\"relative\">\n                <button\n                    @click=\"toggleExportMenu\"\n                    class=\"px-4 py-2 border rounded-md bg-white hover:bg-gray-50\"\n                >\n                    Export Options\n                    <svg\n                        class=\"h-4 w-4 ml-2 inline\"\n                        fill=\"currentColor\"\n                        viewBox=\"0 0 20 20\"\n                    >\n                        <path\n                            d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"\n                        />\n                    </svg>\n                </button>\n                <div\n                    v-if=\"showMenu\"\n                    class=\"absolute mt-2 w-48 bg-white rounded-md shadow-lg border\"\n                >\n                    <a\n                        :href=\"exportUrl\"\n                        class=\"block px-4 py-2 hover:bg-gray-100\"\n                    >\n                        Export as CSV\n                    </a>\n                    <button\n                        @click=\"exportAsExcel\"\n                        class=\"block w-full text-left px-4 py-2 hover:bg-gray-100\"\n                    >\n                        Export as Excel\n                    </button>\n                    <button\n                        @click=\"exportAsPDF\"\n                        class=\"block w-full text-left px-4 py-2 hover:bg-gray-100\"\n                    >\n                        Export as PDF\n                    </button>\n                </div>\n            </div>\n        </template>\n    </Table>\n</template>\n```\n\n### Customizations available\n\nYou can customize some parts of the table.\n\nProvide an object with the desired customizations in `app.js` file like this:\n\n```javascript\nconst themeVariables = {\n    inertia_table: {\n        per_page_selector: {\n            select: {\n                primary: \"your classes\",\n            },\n        },\n    },\n};\n\ncreateInertiaApp({\n    progress: {\n        color: \"#4B5563\",\n    },\n    title: (title) => `${title} - ${appName}`,\n    resolve: (name) =>\n        resolvePageComponent(\n            `./Pages/${name}.vue`,\n            import.meta.glob(\"./Pages/**/*.vue\"),\n        ),\n    setup({ el, App, props, plugin }) {\n        return (\n            createApp({ render: () => h(App, props) })\n                // ...\n                .provide(\"themeVariables\", themeVariables)\n                // ...\n                .mount(el)\n        );\n    },\n});\n```\n\nYou can customize the default style by overiding the default style like that:\n\n```javascript\nconst themeVariables = {\n    inertia_table: {\n        per_page_selector: {\n            select: {\n                base: \"block min-w-max shadow-sm text-sm rounded-md\",\n                color: {\n                    primary:\n                        \"border-gray-300 focus:ring-yellow-500 focus:border-yellow-500\",\n                },\n            },\n        },\n    },\n};\n```\n\nOr you can create a new style and using the `color` prop on the `Table.vue`\n\n```javascript\nconst themeVariables = {\n    inertia_table: {\n        select: {\n            base: \"block min-w-max shadow-sm text-sm rounded-md\",\n            color: {\n                red_style:\n                    \"border-gray-300 focus:ring-red-500 focus:border-red-500\",\n            },\n        },\n    },\n};\n```\n\n```vue\n<template>\n    <Table color=\"red_style\" />\n</template>\n```\n\nAvailable customizations\n\n```javascript\nconst themeVariables = {\n\tinertia_table: {\n\t\tbutton_with_dropdown: {\n\t\t\tbutton: {\n\t\t\t\t base: \"w-full border rounded-md shadow-sm px-4 py-2 inline-flex justify-center text-sm font-medium focus:outline-none focus:ring-2 focus:ring-offset-2\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"bg-white text-gray-700 hover:bg-gray-50 border-gray-300 focus:ring-indigo-500\",\n\t\t\t\t\tdootix: \"bg-white text-gray-700 hover:bg-gray-50 border-gray-300 focus:ring-cyan-500\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tper_page_selector: {\n\t\t\tselect: {\n\t\t\t\tbase: \"block min-w-max shadow-sm text-sm rounded-md\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"border-gray-300 focus:ring-indigo-500 focus:border-indigo-500\",\n\t\t\t\t\tdootix: \"border-gray-300 focus:ring-cyan-500 focus:border-blue-500\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\ttable_filter: {\n\t\t   select_filter: {\n\t\t\t\tselect: {\n\t\t\t\t\tbase: \"block w-full shadow-sm text-sm rounded-md\",\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"border-gray-300 focus:ring-indigo-500 focus:border-indigo-500\",\n\t\t\t\t\t\tdootix: \"border-gray-300 focus:ring-cyan-500 focus:border-blue-500\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t},\n\t\ttoggle_filter: {\n\t\t\ttoggle: {\n\t\t\t\tbase: \"w-11 h-6 rounded-full after:border after:rounded-full after:h-5 after:w-5\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"after:bg-white after:border-white peer-checked:bg-indigo-500 bg-red-500\",\n\t\t\t\t\tdootix: \"after:bg-white after:border-white peer-checked:bg-gradient-to-r peer-checked:from-cyan-500 peer-checked:to-blue-600 bg-red-500\",\n\t\t\t\t\tdisabled: \"after:bg-white after:border-white bg-gray-200\",\n\t\t\t\t}\n\t\t\t},\n\t\t\treset_button: {\n\t\t\t\tbase: \"rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"text-gray-400 hover:text-gray-500 focus:ring-indigo-500\",\n\t\t\t\t\tdootix: \"text-gray-400 hover:text-gray-500 focus:ring-cyan-500\",\n\t\t\t\t},\n\t\t},\n\t\t   number_range_filter: {\n\t\t\t\tmain_bar: {\n\t\t\t\t\tbase: \"h-2 rounded-full\",\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"bg-gray-200\",\n\t\t\t\t\t\tdootix: \"bg-gray-200\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tselected_bar: {\n\t\t\t\t\tbase: \"h-2 rounded-full\",\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"bg-indigo-600\",\n\t\t\t\t\t\tdootix: \"bg-gradient-to-r from-cyan-500 to-blue-600\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tbutton: {\n\t\t\t\t\tbase: \"h-4 w-4 rounded-full shadow border\",\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"bg-white border-gray-300\",\n\t\t\t\t\t\tdootix: \"bg-white border-gray-300\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpopover: {\n\t\t\t\t\tbase: \"truncate text-xs rounded py-1 px-4\",\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"bg-gray-600 text-white\",\n\t\t\t\t\t\tdootix: \"bg-gray-600 text-white\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpopover_arrow: {\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"text-gray-600\",\n\t\t\t\t\t\tdootix: \"text-gray-600\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttext: {\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tprimary: \"text-gray-700\",\n\t\t\t\t\t\tdootix: \"text-gray-700\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\tglobal_search: {\n\t\t\t base: \"block w-full pl-9 text-sm rounded-md shadow-sm\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"focus:ring-indigo-500 focus:border-indigo-500 border-gray-300\",\n\t\t\t\t\tdootix: \"focus:ring-cyan-500 focus:border-blue-500 border-gray-300\",\n\t\t\t\t},\n\t\t},\n\t\treset_button: {\n\t\t\t base: \"w-full border rounded-md shadow-sm px-4 py-2 inline-flex justify-center text-sm font-medium focus:outline-none focus:ring-2 focus:ring-offset-2\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"bg-white text-gray-700 hover:bg-gray-50 border-gray-300 focus:ring-indigo-500\",\n\t\t\t\t\tdootix: \"bg-white text-gray-700 hover:bg-gray-50 border-gray-300 focus:ring-cyan-500\",\n\t\t\t\t},\n\t\t},\n\t\ttable_search_rows: {\n\t\t\tinput: {\n\t\t\t\tbase: \"flex-1 min-w-0 block w-full px-3 py-2 rounded-none rounded-r-md text-sm\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"border-gray-300 focus:ring-indigo-500 focus:border-indigo-500\",\n\t\t\t\t\tdootix: \"border-gray-300 focus:ring-cyan-500 focus:border-blue-500\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tremove_button: {\n\t\t\t\tbase: \"rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2\",\n\t\t\t\tcolor: {\n\t\t\t\t\tprimary: \"text-gray-400 hover:text-gray-500 focus:ring-indigo-500\",\n\t\t\t\t\tdootix: \"text-gray-400 hover:text-gray-500 focus:ring-cyan-500\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n```\n\n## Infinite Scrolling ✨ **NEW!**\n\nThe package now supports infinite scrolling, allowing you to load data progressively as the user scrolls down the table. This provides a seamless experience for large datasets without traditional pagination.\n\n### How to Enable Infinite Scrolling\n\nSimply call `->withInfiniteScrolling()` before `->render()`:\n\n```php\nuse AdesinFr\\LaravelQueryBuilderInertiaJs\\InertiaTable;\nuse Spatie\\QueryBuilder\\QueryBuilder;\n\nreturn InertiaTable::make()\n    ->name('users')\n    ->column('id', 'ID', sortable: true)\n    ->column('name', 'Name', sortable: true, searchable: true)\n    ->column('email', 'Email', sortable: true, searchable: true)\n    ->column('created_at', 'Created At', sortable: true)\n    ->withGlobalSearch('Search users...')\n    ->defaultSort('-created_at')\n    ->perPageOptions([15, 30, 50, 100])\n    ->withQueryBuilder(\n        QueryBuilder::for(User::class)\n            ->allowedFilters(['name', 'email'])\n            ->allowedSorts(['name', 'email', 'created_at'])\n      ","readmeFilename":"README.md"}