{"_id":"@econneq/headless-crud","_rev":"17-3f343350756a08bb8409005a4663afe7","name":"@econneq/headless-crud","dist-tags":{"latest":"3.0.2"},"versions":{"1.0.1":{"name":"@econneq/headless-crud","version":"1.0.1","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.1","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"dd97a74383656020501695df7f7b752440e5f42f","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.1.tgz","fileCount":36,"integrity":"sha512-YbuiXOv/Y67zth8zG80n+LF7L67UXVEzvb7lnLDrlOYmfpLtazOEt5JoFZV7rY8uykJX5k4XTw4nGg8tDkXYiA==","signatures":[{"sig":"MEYCIQDJQYD9YBCotx5x5nbuUXZrTF8/brYiT30eiTNUOL0yXAIhANjZfe8VpSvFMLSO9nwbqmhLF0xF9IdlenXrMWbXnJlU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":524248},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\ee1fef704eed15687de23144870614c7\\econneq-headless-crud-1.0.1.tgz","_integrity":"sha512-YbuiXOv/Y67zth8zG80n+LF7L67UXVEzvb7lnLDrlOYmfpLtazOEt5JoFZV7rY8uykJX5k4XTw4nGg8tDkXYiA==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.1_1777517172598_0.4143724143995984","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@econneq/headless-crud","version":"1.0.2","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.2","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"733285416992ac808250253ca72a19ce0a9c1a87","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.2.tgz","fileCount":36,"integrity":"sha512-NXy4wN3jX+H5jJ1aKrbC21AM68C9OZ9FBwk5v+q04yStOBJtZjOYbo7+HBrQZGxFiwYk76xd3m+zuqMZmZl/tQ==","signatures":[{"sig":"MEUCIQDhtqXjrmqjxOU7TAEKtXZXPmo4+PWlv4TCWH5SMvmDSwIgNUy9QtE9pQAwI6I2ay2JMEjMkRt5UXKxk08uKSY/nTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":526312},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\8169441b49e1ec6479b18cec9b63d05a\\econneq-headless-crud-1.0.2.tgz","_integrity":"sha512-NXy4wN3jX+H5jJ1aKrbC21AM68C9OZ9FBwk5v+q04yStOBJtZjOYbo7+HBrQZGxFiwYk76xd3m+zuqMZmZl/tQ==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.2_1777519137683_0.36819543696637513","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@econneq/headless-crud","version":"1.0.3","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.3","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"b3cbfd05c681309ac15d5683e7bb3431fc5aa505","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.3.tgz","fileCount":36,"integrity":"sha512-VSEUo0PpPUa6PFgCmxsVtXr8uIyGnceiCrIYWTQ6RUifeVY5ACvbZXoUTipwB9dzvMts4yqLRKUlHe3RtjlLNg==","signatures":[{"sig":"MEUCIAd9g3F8FnWk6OSLytNZcEh1GHDD+inp9CYnOpsyzcfmAiEAuF+i+lI5veJ/jtmaFogqx1zYzGIlo4ZP6fMbMHjgcQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":526431},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\77194cb04c73113925b80ee57a7fe937\\econneq-headless-crud-1.0.3.tgz","_integrity":"sha512-VSEUo0PpPUa6PFgCmxsVtXr8uIyGnceiCrIYWTQ6RUifeVY5ACvbZXoUTipwB9dzvMts4yqLRKUlHe3RtjlLNg==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.3_1777520113933_0.0338642820763877","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@econneq/headless-crud","version":"1.0.4","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.4","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"e881944f47fb2edd58fc3294948d7bc65344a2a7","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.4.tgz","fileCount":36,"integrity":"sha512-jy0JZP/XM+Offhx125JgBuF59uZf78MxpvVSqq069LyW6IaW/gbyTxwU04aoCnknvA7D+elag0VKd03c2FQO3A==","signatures":[{"sig":"MEQCIAvT7S31dWhIAImu3rRwsJDwetstmLfG3eaXpB9e0V2mAiA2MTMBTER8nr5zflLdtZSEgvd/WkjvtPSXuAEGuChvTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":526748},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\09e51af8e7bbe10a9a2649586163fc39\\econneq-headless-crud-1.0.4.tgz","_integrity":"sha512-jy0JZP/XM+Offhx125JgBuF59uZf78MxpvVSqq069LyW6IaW/gbyTxwU04aoCnknvA7D+elag0VKd03c2FQO3A==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.4_1777541509381_0.1275407119053691","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@econneq/headless-crud","version":"1.0.6","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.6","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"6f525a023c58e4c350eda4dd9d24c2a414ccae5b","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.6.tgz","fileCount":36,"integrity":"sha512-ZxgFN+NjFyaOdAm4GOuxnEMDPNMmJp2QVSe0hftKEt2Dj2iggDpVKq0l6DiInLBxk+xbMt9xZslIoZ/89jcDow==","signatures":[{"sig":"MEQCICmKkcWu2n0AYa1GjyyH15s9qJO7SRwqOB/bHmG8XZBvAiBhTQyhCKMrwkiyMz2sY/hvdBgvC9P2XwaClLZv11q+Pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750308},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\d60a32fabb701a67da928d67b6dffa30\\econneq-headless-crud-1.0.6.tgz","_integrity":"sha512-ZxgFN+NjFyaOdAm4GOuxnEMDPNMmJp2QVSe0hftKEt2Dj2iggDpVKq0l6DiInLBxk+xbMt9xZslIoZ/89jcDow==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.6_1777546241823_0.048177907911208795","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@econneq/headless-crud","version":"1.0.8","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.8","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"0bdacb52866f7fbd22cc570df020275c43b268ac","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.8.tgz","fileCount":36,"integrity":"sha512-GDMXW5tcKX+61zRRvm6R4+lLArO/8DuhjhJu8TPEsDk1UeeEVZ+gKjD14bGGOXfgJBwJn2pQm3Li4Ur5LGemGg==","signatures":[{"sig":"MEUCIETdrymRdHZgNHtK6RCQuKBU2hvRSKXnHJ5S3fiZAq9FAiEAiBjg66Sad9lIX29cl3wY5gbj/agN7Xtxs3TUpqh4E+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750833},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\94f8ebe5715af3297149f936db407ead\\econneq-headless-crud-1.0.8.tgz","_integrity":"sha512-GDMXW5tcKX+61zRRvm6R4+lLArO/8DuhjhJu8TPEsDk1UeeEVZ+gKjD14bGGOXfgJBwJn2pQm3Li4Ur5LGemGg==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.8_1777650085326_0.416986025716934","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@econneq/headless-crud","version":"1.0.9","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.9","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"c5d0c3f9c0e0cbf32f44f5209767ab3a21644258","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.9.tgz","fileCount":36,"integrity":"sha512-5yx71DmjLVbI4KB7xWMWsoB0QwdensmkSsJtW9c13PEnZGnSQLQswlf5nMYv2TGU5tTjh1C5cysFcNFY00cKig==","signatures":[{"sig":"MEUCICH55oMrdR5ZPtHJIUc0V3VLIB+5+3+1h9ry8DQ7luumAiEAhJYjNexXTARmYDu1/ibBIAW/yXBiTcmU1UgPbuCtE2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750969},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\4d9840d01bfc38f61078853ee742a9df\\econneq-headless-crud-1.0.9.tgz","_integrity":"sha512-5yx71DmjLVbI4KB7xWMWsoB0QwdensmkSsJtW9c13PEnZGnSQLQswlf5nMYv2TGU5tTjh1C5cysFcNFY00cKig==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.9_1777651436772_0.6730990474236109","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@econneq/headless-crud","version":"1.0.10","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.10","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"821596c4625c5f377e46fb35fdfcd7f5ebc23bb3","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.10.tgz","fileCount":36,"integrity":"sha512-kaZojNTRR9j5K0HAZfcKGMfVG7ZgdvG/XPrGAA9N43U3wH0ROs+YSDq1FVKDRi3M9EcBsr2s0f0Ve0nWsy+AIQ==","signatures":[{"sig":"MEYCIQD/ufOO+/68EqlK1qUxdwEi6pMka20QYmQgVRufLUeegwIhALLKm62mRI88NgHaOb5DURfv4Eax80T+Y9c6+LHHTKA+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":835351},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\23962eadb9b7353ae067456bd085b4d6\\econneq-headless-crud-1.0.10.tgz","_integrity":"sha512-kaZojNTRR9j5K0HAZfcKGMfVG7ZgdvG/XPrGAA9N43U3wH0ROs+YSDq1FVKDRi3M9EcBsr2s0f0Ve0nWsy+AIQ==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.10_1778036146574_0.030138611926607384","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@econneq/headless-crud","version":"1.0.11","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.11","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"ab3150c549505e32fde8a406acbb43d9f357ce38","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.11.tgz","fileCount":36,"integrity":"sha512-JLG5p7fkoRsCB8rA4I6Gk8nL68eXe70btLpAsZQq7yZAIkAaF24Qirp7qYDqYM7//ds7u0aiFs5bZ+oPrPI24g==","signatures":[{"sig":"MEYCIQDOeLJs3h+NOWK/iM/zObXtOtQnIPCsPUrw5AeGSsIWsAIhAI4DPuPHeU+/NRhJ1HkeF5LQiFYtCeJX5XTfSrCsIlCV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836019},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\7d29bf8e08755d1d4b31b23ecb51ce25\\econneq-headless-crud-1.0.11.tgz","_integrity":"sha512-JLG5p7fkoRsCB8rA4I6Gk8nL68eXe70btLpAsZQq7yZAIkAaF24Qirp7qYDqYM7//ds7u0aiFs5bZ+oPrPI24g==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.11_1778049676793_0.634860115196296","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@econneq/headless-crud","version":"1.0.12","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.12","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"3fcbe567e5638b269dfb0bc72fc0a954408d5d60","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.12.tgz","fileCount":39,"integrity":"sha512-5aiPS8bAsCWSNm1ckYNwq+Id7w49/lZrBtfcJoyqcsAjzDxHMMCaCdoKr6laYszikzhxmPTW2rvTZVthqSOLxg==","signatures":[{"sig":"MEUCIQDJACSAxDEp8ZJYh/Tw/shxcD6tOlZ2OYJyFiy9mKI6dAIgQXo9gbOT7646COAEYM5vkEy488AUr3s0GEmZ6cfBxAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1289224},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.12.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\b0343305f234b630b664a9019b4ac62e\\econneq-headless-crud-1.0.12.tgz","_integrity":"sha512-5aiPS8bAsCWSNm1ckYNwq+Id7w49/lZrBtfcJoyqcsAjzDxHMMCaCdoKr6laYszikzhxmPTW2rvTZVthqSOLxg==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.12_1778213154082_0.05532250849331888","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@econneq/headless-crud","version":"1.0.13","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.13","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"7b4b9fefa70e5b0e5cda3736371054521447c5f7","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.13.tgz","fileCount":38,"integrity":"sha512-cyc/YvJE7CshTcLKU96HOcfmyr63sRPf3hPSF5cB7OgMi9Nc6WOAByNB0RG8cSPgM9MZkoR8lo+LqOCZw2Ks0A==","signatures":[{"sig":"MEQCIClUrCIxUrMdBaJiahtd0COKL1tCxig2Vp2qNrhSDmFBAiBLJU80qZMw36RyDqbgKZfa5TxMS9k++OmzQS/AM15Clw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1219043},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.13.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\8a7129684535a683ffec642b563494dd\\econneq-headless-crud-1.0.13.tgz","_integrity":"sha512-cyc/YvJE7CshTcLKU96HOcfmyr63sRPf3hPSF5cB7OgMi9Nc6WOAByNB0RG8cSPgM9MZkoR8lo+LqOCZw2Ks0A==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.13_1778223558679_0.7824856889702292","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@econneq/headless-crud","version":"1.0.14","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.14","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"86bd5b1a9ec7729d3adc4b69700c1b15928217cf","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.14.tgz","fileCount":38,"integrity":"sha512-jrtWO4kf3fHckm1uTdq0MScp8J2MTPAMkhlR6RU86WtaqlAwYCr5ieWT7y+bd5fDFBLYdXdMIctoE2e/5iXR9g==","signatures":[{"sig":"MEQCIGYn3zquzuScl42LjTVk6vZNX32W+VE1r6XIC419G0nQAiAT8TyrAxKbHoatdNfPECR1a0NjaSOxIkIboJyTkgCSfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1295770},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.14.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\e96206748df1457f9408cb13aa9a6397\\econneq-headless-crud-1.0.14.tgz","_integrity":"sha512-jrtWO4kf3fHckm1uTdq0MScp8J2MTPAMkhlR6RU86WtaqlAwYCr5ieWT7y+bd5fDFBLYdXdMIctoE2e/5iXR9g==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.14_1778250530254_0.5729565201992919","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@econneq/headless-crud","version":"1.0.15","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.15","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"b37b10fe38dc8cac3aa80edf4e1a6535f6ff51ef","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.15.tgz","fileCount":38,"integrity":"sha512-uNzj11vqNPs6Iya2+GLh8tZalKWGL7VOSEKuIH/U0TWKzPqDY5MHQQcWQZvT/5TllDOtC7N++C/3uEoCSiV/ZQ==","signatures":[{"sig":"MEUCIQCq63H9AkdMFbKD0bc4qsPGrhNm3L2l+aOBOJ6i228eawIgL8AWDK9LgecxGdMKp3V0hDq2V9WTIL7yTYvsjc7v7qc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1303978},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.15.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\0515f8407cfda7868da32a076a85ba77\\econneq-headless-crud-1.0.15.tgz","_integrity":"sha512-uNzj11vqNPs6Iya2+GLh8tZalKWGL7VOSEKuIH/U0TWKzPqDY5MHQQcWQZvT/5TllDOtC7N++C/3uEoCSiV/ZQ==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.15_1778251672563_0.10851498218724687","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@econneq/headless-crud","version":"1.0.16","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@1.0.16","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"a6b342cc2dbaccc77ded03a19b7c69ee612c3816","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-1.0.16.tgz","fileCount":38,"integrity":"sha512-VskGWUkatFOoADXfOuctTfTn16mHvQMiKAoe1vu7l9754RNGox4U5dy0EucUE5TImMJT65EIxMSDtm1zI3xafA==","signatures":[{"sig":"MEUCIA24rC+h7g55bzvI309Ag/y4xGo/emRtRwjZ7QA/0593AiEA5JhRGG0Ut2vodRpC35XsKCcqicKNj4S9j37zK6TvkYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1286295},"main":"./dist/index.js","_from":"file:econneq-headless-crud-1.0.16.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\70aaa1a3bd50b03bfe8c8870c49dec6f\\econneq-headless-crud-1.0.16.tgz","_integrity":"sha512-VskGWUkatFOoADXfOuctTfTn16mHvQMiKAoe1vu7l9754RNGox4U5dy0EucUE5TImMJT65EIxMSDtm1zI3xafA==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"Headless, configuration-driven CRUD engine for React + GraphQL. Zero UI opinions — bring your own components or use the built-in defaults.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","rimraf":"^5.0.0","typescript":"^5.4.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_1.0.16_1778253047397_0.5692892775430829","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@econneq/headless-crud","version":"3.0.0","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@3.0.0","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"0b6d3525584e31507fc70db4962856945c1fe535","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-3.0.0.tgz","fileCount":50,"integrity":"sha512-5KsdeHT+vTFzDPNUYr4jRNX9SYJUjHFai7jVNyZ2ukq5YkipfpkHJ5UkIgQ5SXp6Ql/idLC1kjNoRtbPivyMlQ==","signatures":[{"sig":"MEYCIQC+ktMx2en8Y2+R0hGM5rTPTGxlLT0AASTJj4fmIYoG8AIhAMbuweSI24uZte9bZ+AC12A2uDwVaE1/kv2dWzW4PItB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1805794},"main":"./dist/index.js","_from":"file:econneq-headless-crud-3.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./theme":{"types":"./dist/theme/theme.d.ts","import":"./dist/theme/theme.mjs","require":"./dist/theme/theme.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"},"./adapters/tanstack-query":{"types":"./dist/adapters/tanstack-query.d.ts","import":"./dist/adapters/tanstack-query.mjs","require":"./dist/adapters/tanstack-query.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\e970a90dcb8b5470c27a4b9e41d8ae37\\econneq-headless-crud-3.0.0.tgz","_integrity":"sha512-5KsdeHT+vTFzDPNUYr4jRNX9SYJUjHFai7jVNyZ2ukq5YkipfpkHJ5UkIgQ5SXp6Ql/idLC1kjNoRtbPivyMlQ==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"E-CONNEQ branded headless CRUD engine with TanStack Query adapter. Zero external UI deps — batteries-included teal theme.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","rimraf":"^5.0.0","typescript":"^5.9.3","@types/react":"^18.3.28","@types/react-dom":"^18.3.7"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_3.0.0_1778751714161_0.6882444103290886","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@econneq/headless-crud","version":"3.0.1","keywords":["crud","react","graphql","apollo","headless","form","table","typescript","next.js","admin","data-table","form-builder"],"author":{"name":"Your Org"},"license":"MIT","_id":"@econneq/headless-crud@3.0.1","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"homepage":"https://github.com/yourorg/headless-crud#readme","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"dist":{"shasum":"6c4603c1dcb2a3cfc300fcf6a816b62279d791ee","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-3.0.1.tgz","fileCount":50,"integrity":"sha512-4F5B21BIe31blAXXmbDLFWYOobM8VXNAOyhv2pMbbZUGvCm7obW5+TTgON541ATVS82elzB/AWg+Wf1HcKdzSQ==","signatures":[{"sig":"MEUCIQDxNuNK/0aqEDWOazwf4O/dToNmI7QrembXPNQgZgY5qwIgHu1q9LXc3pRlpFsWZB0v8xl4CpEFOO1OXYo+NdB4IYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1809316},"main":"./dist/index.js","_from":"file:econneq-headless-crud-3.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./theme":{"types":"./dist/theme/theme.d.ts","import":"./dist/theme/theme.mjs","require":"./dist/theme/theme.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"},"./adapters/tanstack-query":{"types":"./dist/adapters/tanstack-query.d.ts","import":"./dist/adapters/tanstack-query.mjs","require":"./dist/adapters/tanstack-query.js"}},"scripts":{"dev":"npx tsup --watch","lint":"npx eslint src --ext .ts,.tsx","build":"npx tsup","clean":"npx rimraf dist","typecheck":"npx tsc --noEmit"},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\ccf265e44590eeee5a72ed67024d9792\\econneq-headless-crud-3.0.1.tgz","_integrity":"sha512-4F5B21BIe31blAXXmbDLFWYOobM8VXNAOyhv2pMbbZUGvCm7obW5+TTgON541ATVS82elzB/AWg+Wf1HcKdzSQ==","repository":{"url":"git+https://github.com/yourorg/headless-crud.git","type":"git"},"_npmVersion":"11.8.0","description":"E-CONNEQ branded headless CRUD engine with TanStack Query adapter. Zero external UI deps — batteries-included teal theme.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","rimraf":"^5.0.0","typescript":"^5.9.3","@types/react":"^18.3.28","@types/react-dom":"^18.3.7"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0","@tanstack/react-query":">=5.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true},"@tanstack/react-query":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/headless-crud_3.0.1_1778867041205_0.45011565110222707","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@econneq/headless-crud","version":"3.0.2","description":"Headless, framework-agnostic CRUD engine — renderMode, tableVariant, embedded filter bar, REST+GraphQL, dark/light mode, full TypeScript.","author":{"name":"E-CONNEQ Technologies"},"license":"MIT","keywords":["crud","react","graphql","apollo","rest","headless","form","table","typescript","next.js","react-native","admin","data-table","form-builder","filter","dark-mode","design-system","framework-agnostic"],"repository":{"type":"git","url":"git+https://github.com/yourorg/headless-crud.git"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./core":{"types":"./dist/core/headless.d.ts","import":"./dist/core/headless.mjs","require":"./dist/core/headless.js"},"./defaults":{"types":"./dist/defaults/index.d.ts","import":"./dist/defaults/index.mjs","require":"./dist/defaults/index.js"},"./adapters/apollo":{"types":"./dist/adapters/apollo.d.ts","import":"./dist/adapters/apollo.mjs","require":"./dist/adapters/apollo.js"},"./adapters/fetch":{"types":"./dist/adapters/fetch.d.ts","import":"./dist/adapters/fetch.mjs","require":"./dist/adapters/fetch.js"},"./adapters/rest":{"types":"./dist/adapters/rest.d.ts","import":"./dist/adapters/rest.mjs","require":"./dist/adapters/rest.js"},"./adapters/tanstack-query":{"types":"./dist/adapters/tanstack-query.d.ts","import":"./dist/adapters/tanstack-query.mjs","require":"./dist/adapters/tanstack-query.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","import":"./dist/i18n/index.mjs","require":"./dist/i18n/index.js"},"./theme":{"types":"./dist/theme/theme.d.ts","import":"./dist/theme/theme.mjs","require":"./dist/theme/theme.js"}},"sideEffects":false,"peerDependencies":{"@tanstack/react-query":">=5.0.0","react":">=18.0.0","react-dom":">=18.0.0","react-i18next":">=13.0.0"},"peerDependenciesMeta":{"react-i18next":{"optional":true},"@tanstack/react-query":{"optional":true}},"devDependencies":{"@types/react":"^18.3.29","@types/react-dom":"^18.3.7","rimraf":"^5.0.0","tsup":"^8.5.1","typescript":"^5.9.3"},"scripts":{"build":"npx tsup","dev":"npx tsup --watch","typecheck":"npx tsc --noEmit","lint":"npx eslint src --ext .ts,.tsx","clean":"npx rimraf dist"},"_id":"@econneq/headless-crud@3.0.2","bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"homepage":"https://github.com/yourorg/headless-crud#readme","_integrity":"sha512-pHciMGgFtDU8TRk1WWYJKwHLZMwQFXX3fg6vfkMf9M137X7903s4ZKjEMkQBxv/Aun1H3Nsw2uDR6GGzzyQXvQ==","_resolved":"C:\\Users\\e-con\\AppData\\Local\\Temp\\3454db6c9c7749866b9469a91cd8c355\\econneq-headless-crud-3.0.2.tgz","_from":"file:econneq-headless-crud-3.0.2.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-pHciMGgFtDU8TRk1WWYJKwHLZMwQFXX3fg6vfkMf9M137X7903s4ZKjEMkQBxv/Aun1H3Nsw2uDR6GGzzyQXvQ==","shasum":"0f9304920cada67bacfabbce45a496fc5f39d174","tarball":"https://registry.npmjs.org/@econneq/headless-crud/-/headless-crud-3.0.2.tgz","fileCount":44,"unpackedSize":918873,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGkDpUaMVnUp6+uJSBZKW9kNcil33rH/qaYtvQVPqxswAiBVoMX2nKFbkfzkXvNDlghEx9XZH9qzKT+nhwlx9Z/WTg=="}]},"_npmUser":{"name":"e-conneq","email":"wemoov13@gmail.com"},"directories":{},"maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/headless-crud_3.0.2_1779434259843_0.20695878962560688"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T02:46:12.442Z","modified":"2026-05-22T07:17:40.176Z","1.0.1":"2026-04-30T02:46:12.735Z","1.0.2":"2026-04-30T03:18:57.838Z","1.0.3":"2026-04-30T03:35:14.106Z","1.0.4":"2026-04-30T09:31:49.537Z","1.0.6":"2026-04-30T10:50:41.998Z","1.0.8":"2026-05-01T15:41:25.626Z","1.0.9":"2026-05-01T16:03:56.984Z","1.0.10":"2026-05-06T02:55:46.794Z","1.0.11":"2026-05-06T06:41:17.038Z","1.0.12":"2026-05-08T04:05:54.292Z","1.0.13":"2026-05-08T06:59:18.973Z","1.0.14":"2026-05-08T14:28:50.434Z","1.0.15":"2026-05-08T14:47:52.730Z","1.0.16":"2026-05-08T15:10:47.617Z","3.0.0":"2026-05-14T09:41:54.366Z","3.0.1":"2026-05-15T17:44:01.517Z","3.0.2":"2026-05-22T07:17:40.049Z"},"bugs":{"url":"https://github.com/yourorg/headless-crud/issues"},"author":{"name":"E-CONNEQ Technologies"},"license":"MIT","homepage":"https://github.com/yourorg/headless-crud#readme","keywords":["crud","react","graphql","apollo","rest","headless","form","table","typescript","next.js","react-native","admin","data-table","form-builder","filter","dark-mode","design-system","framework-agnostic"],"repository":{"type":"git","url":"git+https://github.com/yourorg/headless-crud.git"},"description":"Headless, framework-agnostic CRUD engine — renderMode, tableVariant, embedded filter bar, REST+GraphQL, dark/light mode, full TypeScript.","maintainers":[{"name":"e-conneq","email":"wemoov13@gmail.com"}],"readme":"# @econneq/headless-crud v4\n\n**Headless, framework-agnostic CRUD engine** for React, Next.js, React Native and any JS project.\nZero external UI dependencies — batteries-included teal design system with full dark/light mode.\n\n---\n\n## What's new in v4\n\n| Feature | Details |\n|---|---|\n| **`renderMode`** | `'full'` · `'table'` · `'form'` · `'action'` |\n| **`tableVariant`** | `'enterprise'` (A) · `'card'` (B) |\n| **Embedded filter bar** | Accordion inside the table header — never detached |\n| **`FormOnly`** | Inline form without any button click |\n| **`ActionButton`** | Button-only render — reveals form/table on click |\n| **REST adapter v2** | Entity-routing, body transforms, idPlacement |\n| **Headless core** | `createCrudCore()` — pure TS, no React, use anywhere |\n| **Theme overrides** | `injectThemeOverrides()` + `buildThemeVars()` for RN |\n| **`colorMode`** | `'light'` · `'dark'` · `'auto'` (follows system) |\n\n---\n\n## Install\n\n```bash\nnpm install @econneq/headless-crud\n# or\nyarn add @econneq/headless-crud\n```\n\n---\n\n## Quick start\n\n```tsx\nimport { CrudEngine, CrudProvider } from '@econneq/headless-crud';\n\n// Wrap your app once\n<CrudProvider adapters={{ toast, useMutation }}>\n  <App />\n</CrudProvider>\n\n// Use anywhere\n<CrudEngine config={config} data={data} />\n```\n\n---\n\n## Render modes\n\n### Scenario 1 — Table only (no add button)\n```tsx\n<CrudEngine\n  config={config}\n  data={data}\n  renderMode=\"table\"\n  tableVariant=\"card\"           // 'enterprise' or 'card'\n  filter={{\n    show: true,                 // attach filter bar to table header\n    expanded: true,             // open by default\n    mode: 'client',             // 'client' | 'server'\n    fields: [\n      { key: 'name',   label: 'Name',   type: 'text' },\n      { key: 'status', label: 'Status', type: 'select', options: [...] },\n    ],\n    columns: { mobile: 1, tablet: 2, desktop: 3 },\n  }}\n/>\n```\n\n### Scenario 2 — Form only (inline, no button required)\n```tsx\n<CrudEngine\n  config={config}\n  data={[]}\n  renderMode=\"form\"\n  formOnly={{\n    autoOpen: true,             // default true — mounts immediately\n    defaultMode: 'create',      // 'create' | 'edit'\n    initialValues: { name: '' },\n    showFooter: true,\n    submitLabel: 'Save Patient',\n  }}\n  onMutationSuccess={() => router.push('/patients')}\n/>\n```\n\n### Scenario 3 — Action button only\n```tsx\n<CrudEngine\n  config={config}\n  data={data}\n  renderMode=\"action\"\n  actionButton={{\n    label: '+ New / Search Patient',\n    variant: 'primary',\n    size: 'md',\n    shows: 'form',              // 'form' | 'table' | 'both'\n    position: 'slide-over',     // 'modal' | 'slide-over' | 'inline'\n  }}\n/>\n```\n\n---\n\n## Table variants\n\n### Variant A — Enterprise (default)\nTeal header, export toolbar, column visibility panel.\n\n```tsx\n<CrudEngine config={config} data={data} tableVariant=\"enterprise\" />\n```\n\n### Variant B — Card\n`PageHeader`-style title, card container, inline search. Matches the patient table example exactly.\n\n```tsx\n<CrudEngine\n  config={config}\n  data={data}\n  tableVariant=\"card\"\n  cardTable={{\n    title: \"Today's Patients\",\n    subtitle: `${total} visits on ${TODAY}`,\n    searchPlaceholder: 'Filter by name, phone…',\n    showFooter: true,\n    backLabel: '← Back',\n    onBack: () => router.back(),\n  }}\n/>\n```\n\n---\n\n## Filter bar\n\nThe filter bar is **embedded inside the table card** — not a separate component.\n\n```tsx\n<CrudEngine\n  config={config}\n  data={data}\n  filter={{\n    show: true,\n    expanded: true,             // accordion starts open\n    label: 'Search Filters',\n    mode: 'server',\n    apiType: 'rest',\n    rest: {\n      url: '/api/patients/search',\n      method: 'GET',\n      paramType: 'query',\n    },\n    behavior: { mode: 'debounce', debounceMs: 600 },\n    useUrlParams: true,\n    urlParamPrefix: 'f_',\n    fields: [\n      { key: 'name',       label: 'Name',     type: 'text' },\n      { key: 'dob',        label: 'DOB',      type: 'date' },\n      { key: 'sex',        label: 'Sex',      type: 'select', options: [\n        { value: 'M', label: 'Male' },\n        { value: 'F', label: 'Female' },\n      ]},\n      { key: 'phone',      label: 'Phone',    type: 'text' },\n    ],\n    columns: { mobile: 1, tablet: 2, desktop: 4 },\n  }}\n/>\n```\n\n### Server filter — GraphQL\n```tsx\nfilter={{\n  show: true,\n  mode: 'server',\n  apiType: 'graphql',\n  onServerFilter: (filters) => {\n    refetch({ where: buildWhereClause(filters) });\n  },\n  fields: [...],\n}}\n```\n\n---\n\n## Dark / light mode\n\n```tsx\n// Follow system preference (default)\n<CrudEngine colorMode=\"auto\" ... />\n\n// Force dark\n<CrudEngine colorMode=\"dark\" ... />\n\n// Force light\n<CrudEngine colorMode=\"light\" ... />\n\n// Or via HTML attribute on your root element\ndocument.documentElement.setAttribute('data-theme', 'dark');\n```\n\n---\n\n## Theme overrides\n\n```tsx\n// Per-component override\n<CrudEngine\n  themeOverrides={{\n    brand: '#7c3aed',\n    font: 'Inter, sans-serif',\n    tableHeaderBg: '#4c1d95',\n  }}\n  ...\n/>\n\n// Global override (call once at app startup)\nimport { injectThemeOverrides } from '@econneq/headless-crud';\ninjectThemeOverrides({ brand: '#7c3aed', radius: '8px' });\n```\n\n---\n\n## Framework agnostic — headless core\n\nThe `createCrudCore()` factory is **pure TypeScript** with zero React imports.\nUse it in Vue, Svelte, React Native, or vanilla JS:\n\n```ts\nimport { createCrudCore } from '@econneq/headless-crud/core';\n\nconst engine = createCrudCore({ fields, defaults, validate });\n\n// Subscribe to state changes\nconst unsubscribe = engine.subscribe((state) => {\n  myStore.set(state);            // Svelte writable / Vue reactive\n});\n\nengine.openCreate();\nengine.handleChange('name', 'Alice');\nconst errors = engine.doValidate(engine.state.formValues);\nconst payload = engine.buildPayload(engine.state.formValues);\n```\n\n### React hook adapter (already built-in)\n```tsx\nimport { useCrudForm } from '@econneq/headless-crud';\nconst form = useCrudForm({ config, externalData });\n```\n\n### React Native usage\nTheme tokens as JS object (no CSS):\n```ts\nimport { buildThemeVars } from '@econneq/headless-crud';\nconst theme = buildThemeVars(isDark);\n// theme.brand, theme.surface, theme.tableHeaderBg, etc.\n```\n\n---\n\n## REST adapter\n\n```ts\nimport { makeRestAdapter } from '@econneq/headless-crud/adapters/rest';\n\nconst adapters = makeRestAdapter({\n  toast,\n  baseUrl: '/api',\n  entity: 'patients',\n  getToken: () => localStorage.getItem('token'),\n  idPlacement: 'path',          // PUT /api/patients/:id\n  methods: { create: 'POST', update: 'PUT', delete: 'DELETE' },\n  transformBody: (vars, action) => ({\n    ...vars,\n    _action: action,\n  }),\n});\n```\n\n---\n\n## GraphQL (Apollo) adapter\n\n```ts\nimport { makeApolloAdapter } from '@econneq/headless-crud/adapters/apollo';\nconst adapters = makeApolloAdapter({ toast, useMutation, decodeId });\n```\n\n---\n\n## TanStack Query adapter\n\n```tsx\nimport { makeTanstackAdapter } from '@econneq/headless-crud/adapters/tanstack-query';\nconst { data, isLoading, isFetching, dataUpdatedAt } = useQuery(...);\n<CrudEngine\n  extraTableProps={{ isFetching, dataUpdatedAt }}\n  onMutationSuccess={() => queryClient.invalidateQueries(...)}\n  ...\n/>\n```\n\n---\n\n## Full config reference\n\n```ts\ninterface CrudEngineProps {\n  config:            CrudConfig;\n  data:              T[];\n  loading?:          boolean;\n  renderMode?:       'full' | 'table' | 'form' | 'action';   // default: 'full'\n  tableVariant?:     'enterprise' | 'card';                   // default: 'enterprise'\n  filter?:           FilterBarConfig;\n  formOnly?:         FormOnlyConfig;\n  actionButton?:     ActionButtonConfig;\n  cardTable?:        CardTableConfig;\n  colorMode?:        'light' | 'dark' | 'auto';              // default: 'auto'\n  themeOverrides?:   ThemeOverrides;\n  exportOptions?:    TableExportOptions;\n  viewLink?:         ViewLinkConfig;\n  tableControls?:    TableDisplayControls;\n  fixedVariables?:   Record<string, any>;\n  externalData?:     Record<string, any[]>;\n  onRefresh?:        () => void;\n  onMutationSuccess?: () => void;\n  className?:        string;\n  extraTableProps?:  Record<string, any>;\n}\n```\n\n---\n\n## Changelog\n\n### v4.0.0\n- `renderMode`: `table` | `form` | `action` | `full`\n- `tableVariant`: `enterprise` (A) | `card` (B)\n- `FilterBar` embedded in table header with accordion, client + server + REST + GraphQL\n- `FormOnly` component for inline forms\n- `ActionButton` component for button-only render\n- `createCrudCore()` framework-agnostic headless engine\n- `injectThemeOverrides()` runtime token injection\n- `buildThemeVars()` for React Native / non-DOM\n- `colorMode` prop: `light` | `dark` | `auto`\n- REST adapter v2 with entity routing, `idPlacement`, body transforms\n- All filter fields responsive with configurable grid\n- URL param sync for filters\n","readmeFilename":"README.md"}