{"_id":"@pankod/refine-mui","_rev":"113-152ded66e358cdf18c68ccbd76168b17","name":"@pankod/refine-mui","dist-tags":{"latest":"3.63.0","next":"3.62.0"},"versions":{"3.17.0-next.0":{"name":"@pankod/refine-mui","version":"3.17.0-next.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","@types/lodash":"^4.14.171","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/material":"^5.5.2","lodash":"^4.17.21","lodash-es":"^4.17.21","@mui/x-data-grid":"^5.7.0","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@pankod/refine-core":"^3.15.2","@pankod/refine-react-hook-form":"^3.16.0","notistack":"^2.0.4","dayjs":"^1.10.7","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.17.0-next.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-OMovrsL8j/0kVUECZSGx3E65cWDva7oT8/5Vpe5kaCckpbfsg3Ms/gAA3HZ5Wk3y6Qs5p8jS5Z7wed11lELpyw==","shasum":"d411c8873d9cecad845139097f49c99079040c3c","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.17.0-next.0.tgz","fileCount":103,"unpackedSize":1302349,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB0vRgru/llmNcTFWEoaDEFhChNJiKD94rlHKKs1arKQIgMZA4AODHfjP2rt2j1kPumwINqgYCM6IRjSDYP71/GCc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJil41ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5KQ/7Bc2sTEDtg1zTzBONQpA3DpYnJCbzoD/4vqwrPFofPai0T8Pl\r\nXc4v40ti8reWyudu5JkvHv3MeLhU4xcrvo2/o04+BFgXD+TXzxz8x905py2+\r\ne+F4QgvsQmgOiQeiCyPwdpliSOeZHq6JSPgcYdmHHzuHplXrmXGX1spAYCBJ\r\n1LJcsFWWyhEd4QSkgh3a+pcptblnky/ASHjcHB9bzWvRMuiNd2YvupAS9izK\r\nhf8FQkr1dCp6BLke3rtnJov0B3eH2L+x4dsq802rpPlkDHit18+vz22SXC1y\r\nSzFJe4hQYzfr3KYcoCqoKn5FyuNnhrdAd0k55iTXjGIh1klTKGNJFzRLZlZW\r\nnqmPgrsA2smmp03C2fA1GaLp4HUDxz6wDbIHG6mMzE50A5aPmeq2KrbxMYJg\r\nEcXashnCxGer+uX3zVT7+lMLTjP3ei3EbCMvqhl4nLEqyHTDa1UiwIcwZ3D7\r\nN63UE92t/hobdK6brNZSw9OXB7GrIsGtlFPoIWN6bb6ppy3U9qfTIn5WOwuP\r\nY0++ACkuzIiTQrV2SAMzVI4ACYHYHU9e/woWe2EVZAgnsF1hyNQfCGKu8q39\r\nemi2YEMduZxXP6k/ng1tY0oB6QZrSQMvTuRtiy2OFXsXyJeD7bgpCVRRbT7p\r\nswEoM6+cGNJLajfIodrp7L+5jocKww05FQg=\r\n=XE74\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.17.0-next.0_1654099289187_0.24863158726472778"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.17.1-next.0":{"name":"@pankod/refine-mui","version":"3.17.1-next.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","@types/lodash":"^4.14.171","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/material":"^5.5.2","lodash":"^4.17.21","lodash-es":"^4.17.21","@mui/x-data-grid":"^5.7.0","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@pankod/refine-core":"^3.15.2","@pankod/refine-react-hook-form":"^3.16.0","notistack":"^2.0.4","dayjs":"^1.10.7","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.17.1-next.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-nRoys9ptIBNJE0Zm0QfamQNu/ftZpMWJ1grIPgSDiFZDu/XjRAB9+8T4AgmkaHf9sny/cTcX52tFb9JuhYnReg==","shasum":"f65415e2a0aba17f013272d6c5c21700c4532ed7","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.17.1-next.0.tgz","fileCount":103,"unpackedSize":1303063,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuaOSRSw68L2ibT/xxlgvm8WOHPqZ+VZlR9P5YJQTAIwIgKI/oJ+ncwCrg9QLeVC+D44CR/8TJyMEinYTPniraT3M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimH/IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoD4w/9ELAiuMz9ezyK0DTkU47T0AlvN87tO1j2PliecKPotxXhvKgm\r\nuuZc87IYvVEIzokUqxTbNZvxvy3DTLBiVTo20w3gTdg+E8DiFGCbt6Q5l2o5\r\nW2MUlm2MextJWyAOu+dR57PqlC7QU2SBUCxU/5/dSgxOj4k/c4MOQv+dCmm/\r\n4Kwcy60UhX8mPWFhRUkJcSBWbPaGt6aHre1iReBLnzdGqCjndi2fc5Dnglp3\r\nDQzK5pOyAoANXqSmPYs0jxGU4uFKuAJHCv1FWfo8i1ldZUOZcbHvKf89Oro8\r\nIHqxC3zEClskEPKAfLj8Q86cCSKmFgQ3buHgen9Ih9VM0Zqu69xxSm3yaQw0\r\n/2iqIybl3YRJ3D5IXQcRMM5dBipFZ23FAAzTDbkLnNnVQ664TuQnj6TC5QGW\r\nJED70M8Bu1zHi8t9IOrbvBckw28KYFmwkdFrlYGFXjotMP9C6I36iOsfMPQA\r\nHlMDr1Jd6khVODGpoAZ1H1yqz7q+F1nsHafigJGXhdArNBKP3+UmRYE/DC1d\r\nOQeyDtM/9T8lsGHbgxLZ47ReXEJP1JFN/RsomBSRFHZt9I6IyoPYKdYLR5Dl\r\nPNzJvLNHFdo6r0g5W5Jqkg7P0DLCagP9bG7aGUPrxpjAuvZZf0NJmi4eUEdd\r\noEfxw6bu1NLUhh7LEl+LxW1Tl1Yy9CmNYZM=\r\n=x1lc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.17.1-next.0_1654161352243_0.938329155405111"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.18.0-next.1":{"name":"@pankod/refine-mui","version":"3.18.0-next.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","@types/lodash":"^4.14.171","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/material":"^5.5.2","lodash":"^4.17.21","lodash-es":"^4.17.21","@mui/x-data-grid":"^5.7.0","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@pankod/refine-core":"^3.15.2","@pankod/refine-react-hook-form":"^3.16.0","notistack":"^2.0.4","dayjs":"^1.10.7","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.18.0-next.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-okuRAWZUycMJaLmBW5VpFibUIjIczIBvB5eN/B15PPa1Il3HAwMCGwK41T6MBVf3GEEou+SWYP2mPHPFD+fd9A==","shasum":"c0491f874d7a03ee68930d151e9e2bb78b774133","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.18.0-next.1.tgz","fileCount":103,"unpackedSize":1302954,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfER13AFEU2rRZwSyB02S2Uq4EeSGIInwvzWYPiYeAlQIgJNx2aEncjMzhUv+bWt5zK3aD8Y2DJ3o3GLZQoDOPltA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimJMOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7rw//TkhGs+0i7vu603+mg4CpVZQerlgHROWfuhA9P1s97mCoS9H2\r\nhl/KeArqJY0sVnQrpdGa0zObyEzvx2S8A+K78wcG5gs5OcmrcLR8boI1QOWN\r\n6km5+MaPz7c6HDfJ75Do7Vtj1TcHPXpXV8Mz2jpMJWWuVYOjXQV3OYeOOaJ9\r\n4iKr5H49qP6SevQlsJg6jKdkkVyEtVSRLyop93xX99OcJiCc1c6VV7+07Oyk\r\nYXEGDHZVnYKk4HhhN1wwC3YwqBHnQqFYVe5X72lsvnBwi4dfL30EpKv09obg\r\nspMJHCFMNf43BBeTVqDmj0melo8JAfDfXlTrYvT0EFJbOO+ZlubisWtjHwVH\r\nvmGLBTRbg9ZNKR955cAlQanXjj2hi718oxbLHu5UR1p8mKgVdxoPA/FqH1td\r\nPPflCXvtSakImF9sBG168TebmKT1+aRZcqDrW06UuQYoz7IA4ROjES1qk4G/\r\none6i3yTIGeYYafuLOrXr21n4iRwGfzVdyvAHHUQpufWa6A+8SjIvAiBccai\r\neVmAqVAQRD+7zeZ6+QqiodFz0itmb1xUCTO5Y+Ax6qR1ZJDrXGIncd5ujnsh\r\nhfklpzcnLLUMR77MGxXePtXgq5wInbXUd1QESoagor3W2ybBUKmSqVkK+bD7\r\nrVyTfwBgv1uXLQBVVtmYcqbeySJt7RG5VKk=\r\n=UsUD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.18.0-next.1_1654166286508_0.47669848976817075"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.0-next.7":{"name":"@pankod/refine-mui","version":"3.24.0-next.7","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.0-next.7","@pankod/refine-react-hook-form":"^3.24.0-next.7","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"fb8333dbb245b9d4fcd3a0a77d7b8dec019fbac5","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.0-next.7","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-Uxo/5+9HGrs2PMXl1HhDr7bdUT5jOAYaxgdcECWzTBbv5BI7eNewgxY7iV/14TIOJZD794Fj6ZXpHYe/Rowibw==","shasum":"dea52c063df58d47e18aeca3223049c64b268b41","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.0-next.7.tgz","fileCount":104,"unpackedSize":1313405,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0MO/IfGycLoQWoxHyyBR8EnT2weQg/d0aLi0e1uKhdQIhAP2xiwD2cZ9wQdzBfiGZOJZR/dlz5NL1EigMnmuuWiKh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin2tvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkyA/7B5pS6WBrJQv2rdJ2VsU3MCE7q7IcBTOu0ak4BSrqRhCc9jk3\r\nS14a8PV+UCcwrzYtxPvB8WqpaiSkg0l4sY+XyasUJ0Ex8VQ5JlkCnJWsR1NW\r\nNipVcd/+HinnqPeiJdrEMAP5nTJpMxSQTbq69mZbdW6QfUsOb/LakIYdiei4\r\nXJjufvHHh1Of+uibZgA4f705kktxsmO6uA3eNZjKIogbk9iZYXKbcqCy2AiN\r\n96smYRnnT5Em9EiBWmxmiUIG9TVfHGC5yGYXrjbaggtze8lyvftW0n67VyPB\r\nR2+zTU299sIHrjki5NB0jnNtDup0f4SUigTt+7FW5uE7iRV08Mr/KZFAaLhN\r\n1hhu/NmDOKMM9dwm02CElR+Uwu3jDBpLh8imOfbHVP3qDodOBU1gWG1U8l4A\r\np2d/B2v9tLgMv9tmlsRE3fCgKhifEU1lc260Z7n1kY9RanBcR+zsAggB8LhY\r\n8CNo7cQ2j7I19W7xE6mxnfjvcTmbP8FQzX0c2dnmi3wJBgVDasW+9kUepZGR\r\nIEf1cFOAcYrKDsQsOfAYwgncFGaDm1EYHBAiGAif5cfnVC+DIMFz+W3y5rUi\r\ndhA5Zn5CBVhgtWmn2oPmRlA5sQVgU0XcbJk/FTFLN0fhTJhBHaXTJ0thKOhg\r\n3Jcw1Qx7Tz7iDD3PWB2+N8xQG9Fz61dZa3I=\r\n=Ejaw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.0-next.7_1654614895643_0.5779844306803579"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.0-next.8":{"name":"@pankod/refine-mui","version":"3.24.0-next.8","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.0-next.8","@pankod/refine-react-hook-form":"^3.24.0-next.8","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"e379effaf4469b0c5443fab16f40f05194d68295","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.0-next.8","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-vQLn+HiX5Jf+iZM+bjxA+FNVWdqg8MpN8oWnsirLDP4tOzPTQxIhJKiHuyA7O4VaBBXt8T90QcGq758F6mhPIA==","shasum":"2320b64aa45d093d97f29d6bd3177ff724492ef2","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.0-next.8.tgz","fileCount":104,"unpackedSize":1315635,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGHukLtKS9F/HyY80l7LArg/erp9+ZW9UvQlT9z7rbEkAiEAp2jow02urZtun6Miz+6QGHwARYATAE14lU+TfXZLDLI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin3JJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoe7w/8D0d41wE8XSSYZhm3Yth6Is2nddYD0tBa84Pm4ouZ27LdyKUV\r\ntRNo7YNTIi/Z29KnLtMiStB6YYCr6BB/Rs46U+TXQ6QfI+mHBPLVEybpizfX\r\n9fUVcUSQvMtUE0k7btyetsXyjrvIr1QqR5VD3MW78VcNfXDUhb3e/RfQ6fsV\r\n59c18Uq9O8qZBBRXtZ8uHhBNqBDOz55dQLqFctfKLnhxwhfR/XGQTmKh274B\r\nWzqZ84hknG8Yis9G6/LjeQsEYpu3CKLlT859AQmR4zFFoa6O76TbQ71rr81g\r\niU26lVBb+7jGmIfM2LvDhhjny76E0oEg2NutRj91DkjtimaAcCrqVCCcs8Dn\r\nDSyAuouCyHqUkaQcbPuQ2zG50PkWKbuc1gnKSh9jrdzM74rss6z5Mo/pw0oV\r\npiZpIh5khH4AtrLe0YCjb08+gRxeK+9noDm1UUmB1L4uOnhmE81zPNzWPTBz\r\nebeqWXD+rJ6NKDPGv8gtS0P5N4Ktkukw1ql2B/2mzzg8yFHkVh0y6UGy9kek\r\nhL4dNgUweAVH5oklqelJDnANcH6NTdHBVF85SWaso2vRDf5wzH9gf9rX9x91\r\naTwG1RYSX/pL9ZWBfuQfWB2zK+WmnL12OGjrVaIK1apzkm4un+1PrIwsBJIi\r\nkP+xY/MeTNaciNhwXgUsUxKUePOnXALnHR4=\r\n=xPbs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.0-next.8_1654616649591_0.39424726299511614"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.0-next.9":{"name":"@pankod/refine-mui","version":"3.24.0-next.9","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.0-next.9","@pankod/refine-react-hook-form":"^3.24.0-next.9","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"451eb4296976408b128d01e45dacb871b052e1d2","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.0-next.9","_nodeVersion":"16.15.0","_npmVersion":"lerna/4.0.0/node@v16.15.0+x64 (linux)","dist":{"integrity":"sha512-CAeaep+uc1uvPTT62pvO7u5hbITAPlrNnxJDYxzJ1urdKnSONbyHSkZJWsM6kADAjZYqkAhY9ndeqPMfT/M7JA==","shasum":"d774ec56fa153a988a00b0a2743b8a25858ec093","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.0-next.9.tgz","fileCount":104,"unpackedSize":1315635,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHlOOKRCyIO39/otDzGrCzR3ODUEE3cndyFX4zZMJM9DAiAFhh/vqPoT4GmxMokFP6I+tIc9AplPsndUyXeNM5sYuQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin4jEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrixw/8CdkGy0Jow3Cd7lPYh8z4rXCDb/ypoi5aYI6bXLDmTHbPNSep\r\n7p0+U9+ycQOyWPXllprn6Cq5KoavOyDCdCGpodpCfQLzQBI5zzPROwts7wtG\r\nYWZl3XjmbkSoHzU+RA3ZNap3vW9oBIGJKOI2G/rfidQPBbkGKYGbGGshOiTP\r\nWCg6rx0UhKiGfRapbyzi2elO/uSgbUDoIbeHUTkYeN38vo7V03zqIvT9/r0M\r\nIQZg0dXbmIUrOkN+v+CXfR5zV5nBJVVYwdGTimpjP0Hujtcgo29Imgk4EksZ\r\nWW8TpuVRu356JiQ/Ultc8wJ3IumH0YCCYXS+UF6z2Y3fcp5TRuZ/ss2t8xFL\r\nDREfn8I5Uu92/U9yXe2PoENINIsDWvjpu+8Tp2BipyjEvbIyrrH6z9yEeinr\r\nW6M3PM51Sw2sMd7ASCwodM1O394r5avygzbbTEnpyCNVaFrn7RNGbj+M57OX\r\nIKr7jaX1AZv+0q+tGlWH69Chdc7b9Z26QKDNjKyvuhnm2KN1GppAEgxGrdqb\r\nUXvxENERQ8nEQwwXTaXIuvFNDCo8sA8WLVBunYPuwNA1GaHB8ZTLY1GTqpVr\r\nFbFMRKPz4H8NQMqTp0jY8738mPxWUV1qSeDGXN8csO2KD8PyeXKWF0BYAXH0\r\np1wNTtoLeFhZ3Qx7dKe3QiAfvRyxBCD3E1U=\r\n=6owb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.0-next.9_1654622404269_0.21887819723351742"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.0-next.10":{"name":"@pankod/refine-mui","version":"3.24.0-next.10","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.0-next.10","@pankod/refine-react-hook-form":"^3.24.0-next.10","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"b762a00905cafcc009b6ed907759d4aa8e6366b3","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.0-next.10","_nodeVersion":"16.15.0","_npmVersion":"lerna/4.0.0/node@v16.15.0+x64 (linux)","dist":{"integrity":"sha512-dmCkCt1F4tPtt1IDx0qtnoywEYm9vRNdgd2sJ7ar5GuLp78mEg0EQJbwEuL5/QlUSl0iJWO1o1Q0pXwINE/4/A==","shasum":"0518eebb0092fd71a51288d96bf44c4587cf2db3","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.0-next.10.tgz","fileCount":104,"unpackedSize":1319592,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHy/TH0fdk4lbtc6OQQveb2PMh9Y3jeBwTEtWfM4QDgIAiACl/i3ssjpm9Romgz707jsFovCK7vVYmt+PCrQTN+MrA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioERvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobYg/8DCAv/DQhK+eQNGzcn7PsNsHNpw7FSs9iBGHPlPGQcvuqYj/U\r\nOTHin5mmXzW90mUBZNpeq0JkvJR2WxccxxIyqdA4MVyqqvc5soZjKKIRLqxe\r\nDbm7W57XSB0+eQnFljQja4pVOTeOm3M7Ngp5uKztVN86PoAndD3GTJup0ysF\r\nDhDDyvqYO8wvz0IAIPlyuBA3ENnaO6asY5kYo7Mr43/Hd8/kRfqbebSZr/6g\r\nuukXnBSlAjVy5EpB+rJmMfT4ixB1YKEolBB+cDVumVL11/M3ZiEoteuE4yR5\r\nNYkWfCS5o3xnMX31qWiQ4FUAEOewpqxzXri78OLZ4ZxBk43ufQpCvi4FMh8k\r\nqbH3kXwh5Skp+jLlopdZhzZoptE9u3rK48l7Vu5M5C6fDAQnk/cVCnqsG3Ha\r\nFkYMfYr+mGPWNkRPaoBXx+eJL/lSnB/BiNzNJZNQeLNSUQB4WxXXfDcd8l4F\r\nbD9UN47lxVz7TCz0cuxTEjXJHoiwVU/aBxilAR2xTNkHUZtX3V0sbz3uInoL\r\n6rXYbIIMIPzZ+S5uYY3lFaML71yKSIbcP8xwc+HUj6bnVfxPEl74WPSyFKF4\r\nwbidisp2/dierWxri8NJApPwFI9J8R+4NflSqvnbHR/HwstXO1ZPjkzsE5VC\r\ncD/pFGqbTq3D0UZBnJ0YJ0FYCz2PNHHCCWU=\r\n=yj8v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.0-next.10_1654670447192_0.3698422547011324"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.0-next.12":{"name":"@pankod/refine-mui","version":"3.24.0-next.12","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.0-next.12","@pankod/refine-react-hook-form":"^3.24.0-next.12","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"029756906cfde0a51ed60e73886013620d78c911","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.0-next.12","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-gqJHYqgxrXeA+EMgiXS4y8x7k0yv8ORZri00P8MiPiC8htTZCtyN/espvXqf5VgJ/GFHSh/j+0YqHl/5bvnt7w==","shasum":"dcbfd1ba46f4d6a6bef13150a2cf4ba6b477de7b","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.0-next.12.tgz","fileCount":104,"unpackedSize":1319593,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIxWXUh+TTs4bNEngJMmsXWkbD0XTlNvVrSdjId5HLUAIhAJzeMsSI50GaT3ZiRJV4dTjTKda5+6/xpg8miqdPN0kb"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioFd1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoygg/9Ht+nVDCX5+BXppEFterqHybhtXZJycT7iYunmvxPw5cY4bM6\r\n6qtMYVWfZrxKkb47EvmAZkTngzaD6xuKKQyIgh0ro7h6J+yP9d45CCEeDRGO\r\ncqEuRFcrLgRsuOUumJXprFg90Eba961BmFClgHtf9GZex1ItUUlbiJVFBrSr\r\nTLmLD8hCRJlP7FxUtDs/Ud39/3cYdeKKcs5A1MvWFhGk3TKr1opIsNsQ51VT\r\ndBmMleXDrdGSoD4D/E2REqxxYnM4ELeo0Rjch62l5hlKEjdPMk/Fz38XHjCM\r\nr0uTYhxlXhmXF8PoqCQ5so+WMoBDfzo/jst29kpMW62N/0KnnW47NAm0ScTZ\r\nxj0z0D5JTDjGl66EHeLD2qrihRK7PdJvZu/uaJLFUV0+CTWM8uP3fu4G5T3a\r\nOudjdUgPgI1cVe6fIas7Q09tHKICBi6brjF6LvOY/9snrmWleV96J77WZbdX\r\nTCm71EfMcovIn7o+1gojixkKcMsz13jdwERUwEuaNR8BRX8zUu2y/sekHmgE\r\niDSKbl/6yOWlBsW0eBiNVXmpxk4vjKctv7GtVZSEtXF82nXcuxyydaIVFSGd\r\nXYicAG8HkoSLAeU4AV4SJfBp8/8ykT7emsyz7wVKGb3IY5yK/qoBdZGnZnk7\r\negwoBrZh8264Ue+CWiyKmiCKr4P3Y6gNQk0=\r\n=pTYK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.0-next.12_1654675317510_0.6899834672766407"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.0-next.14":{"name":"@pankod/refine-mui","version":"3.24.0-next.14","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.0-next.14","@pankod/refine-react-hook-form":"^3.24.0-next.14","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"234b46cda6d4b9e669a0cbc3d90f6b63f2ebbbbb","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.0-next.14","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (linux)","dist":{"integrity":"sha512-zWtkHAtOMu7wWrVKqRcdMO9afksrbRsy7yYNsN9NM6vL+AnKPdvSAOueoshlNmyG1997inQ8h4pyucEsJQfZWA==","shasum":"43121008938a9be1b6aec44a471332449e0cc2a2","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.0-next.14.tgz","fileCount":104,"unpackedSize":1339173,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBGSLAm7TfFivm2mEkg5Y1yVAZNRBjxFKRnlpHYQ8Nn7AiBgM1lZKkDnNPsTWfX/fZNNeOTDsVnJJVJpGQ+M/cjznQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioKZIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPDg/+I7blmTrwqT1ID261TIIagcR0OyFFVWpx6IAAX1pIwM4B3zk+\r\nYTanlARlXuNkdm+pOv/OYoDOSHw7zdpfjmFHO2EUldl2lGE43W+vhxoO1KHF\r\nL3LHDEmNWNF0nr0v0HHCJVN1FjlKscyIVwGc7GlL9bKxfFamQD7z73lPqgFH\r\n/YHx6wLsphgYBpIAcGk/DhEJVNAcext7Ai3ZWM/TOAcAz+XyD08S1NAKztw1\r\nokbJ1jKNbr0s3IGMSpTkyL4lfe+StqFl29n+OPGUM5uK/7+BKI+dr1v90tjm\r\nXqU5qLa4+GaHvo5naYGUr41m7iQJaYQnE1D8kewnZo+thOPH2xDkkjiwaNPR\r\naMzBBW5nBNGtHGkuYwXYK/WhBznX26t/YbMcq6lxqUHgCCyO8IUmZxe5O1dF\r\nnfvo8bShFJQ7zWD/fYo5EqMc7S3rh9J8fuHo7UOsOguQpEuXtgVzAF5lU4FO\r\nHbrjADvoTzmcjEcknrqIUDbrpCEYe7FhDySIzmIw+uFd5kOXLsWTx1ZlkraI\r\nUvFB24mQWXKTsKov8YxMtvI2lvERi0dEqOBXeKArZf318lwvnYzfbfutwL8n\r\n+LJPHrVJPeNJ4Qg+wWwOo2M9oM0YE+wVkQA+K52QOdsFstketodUg231VS4l\r\nodMk2YAP1kYa+Sl3AeWz3wM3wz5YTkGhwUM=\r\n=VAxA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.0-next.14_1654695496219_0.2531982913604276"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.24.1-next.0":{"name":"@pankod/refine-mui","version":"3.24.1-next.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.24.1-next.0","@pankod/refine-react-hook-form":"^3.24.1-next.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"ebaa04d0e3e28e53534056ea4946ffac14e7a5a0","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.24.1-next.0","_nodeVersion":"16.15.0","_npmVersion":"lerna/4.0.0/node@v16.15.0+x64 (linux)","dist":{"integrity":"sha512-1RfZPHbaCzh5HJHRJl5ZfGrO7nrOZIAleqU9urdHlWlymifO2rR/SLaiaLjD+8MlblJLfaOFBE5fOFM5DHK0Xw==","shasum":"fc5b5af3a67c92090f89c973e4dd4d4330b72ab8","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.24.1-next.0.tgz","fileCount":104,"unpackedSize":1339170,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1RU8mILnWzx1sGBU72dA4WP0JNUXtdV6dbZoYF+C/LAIhAJFKh+AkMvlKgx5Dn5cS9Q1xbY5YwlqB3l06R8lKTC/K"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioLGVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvMw/9FZ1txjAX30/qC13GNbD1Ohzn5TQcWCwwxs4ALry30mafSJ92\r\nFRyna8qRyzMARHQAvmCgp+/ZpwHRke6AR6EZDPpT2wgM4e8Oo7qBEi2ONSdj\r\nhrsawaDHagzMDoGjW+7xB88EcLBFYSdI1MRGPLHuoFIfDzh4EFYj4WjGOKQc\r\n1i2pDFh1qJflJteNFAl5RVT9haPlCf1KXs5oBpIXaRMMBsj3+MZo2OyFiBOR\r\nyMMvZt3g4EmFHT88wLcW/FVxGognPwregAnFElA4jXUKyDe9PNFtyBXNzJDL\r\nOODiQnXoa/4byN5Sqbw6KWoO2mo5Og9AO7N72mp7TWnUKkFqEqgFafAETesH\r\nWnTF7wLyA0YCa7Gc5eB0+c1QmdaIM09MCssYz3nQrn/8EXlCll5TnfUYHBcd\r\nhAk4n2RR5ENqLpzU2uDAgmRrvIH9psV3M0Ik5ydYfSYX4jlQQTpfsEMRxrRO\r\nUwwKLUjMgWNaS3Z+dZ1cr2IjVipOmXSqoU63oju42hQaOYZp0/bPvTParowC\r\nIvl1yrOxai1Yrv28EVD8kG2zYzxCpwTjoz0C1AO3ig21Cucj2Ty5j9EYbsuz\r\npGQF1D8KD9gmU8binFe6125+Kx2BI23d39gEknhg2FAlVUw0n5G0xsv2Bdvk\r\nFy6hYJAzT1H40ssfl157g76ALlhTsttfiRQ=\r\n=obkX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.24.1-next.0_1654698389242_0.5490363527572661"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.25.1":{"name":"@pankod/refine-mui","version":"3.25.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"antd":"^4.18.8","dayjs":"^1.10.7","react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.25.0","@pankod/refine-react-hook-form":"^3.25.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.25.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-jiyfrYDt4JNhXdUqsfLPSPQHlId4aRrPFiyoCcpHqcVhvgxFj06eG7SFT2xxKVaJ2aeKluD8UzvBkCN6c0psqQ==","shasum":"b4b7789ce3cbce9cedc7a1de4c6c213cad6b995c","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.25.1.tgz","fileCount":103,"unpackedSize":1339269,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOxuqG7qUZH5oz8Beyztc2PYMEhwIrmaib7HuiOW/hFAIgE1OjtME1ccAfkozLLacK5VDfI1JO7HS+cyGK8H9Iw6s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioY4gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFYA/8CEStbftH+9kWzReJtzyCRVpY2hYBuAEAq/B79kBmYBSYmepG\r\nUP6nVIeUYv2JNjkT9+vZZMuvqRuFZrQvXmgW8V+eKFc4hn/Ck2KNx4UyIhLO\r\nyAojeykBPvrpVp+lZ+09139FPBBwI5a8iQ+z5bP5UqgbWkorSNDMQB3/owUW\r\nHnFWhLJB1JNyTUVsem/STMOsg5DTpt2FWyIpUEp640tq3CJXbtwonFKU7leD\r\nzR5uK0YTNmZZC4zOwG+0W9t+fGS3sRPgksGROIHh4nRcz2f7kvdiwd9T5RVQ\r\nXvWiKf0486KuX0z85N2F/UrgQ3A7kTVCzxFTyNXeBfOc+Tjg1R3jubzXE/9q\r\n5sGwieZLl8KEdecxCjoNigf2YQRbq7bDsg9SDWPKBXpjAD5eNq9GvfRXXCdj\r\n9Poc/9tg4heFjX+NMVRV2rfNSABJXYhi/5jr9juoSVKwt06NklYMc1i/vuTz\r\ngA/OIf9R+4lG3rPC9WBUFVTds60CxIvq7NtU5yJADtSuRvSskMATr/bklGpa\r\nodHeYct9Ki1N0Z7pEFob5djGTaygSuz4QoaEHkiDVh54WZCF0WGo2Tyg+yy1\r\npT3z0Mte8+5EDu8xsgSMZg0MYzRH9TukwghBlJ+cwe5niHEU00NPhMlweQOP\r\nwoRvzDTPGh+5zYsI0Dn3U6HbXWGtfx4IUSs=\r\n=LJb0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.25.1_1654754848473_0.5148848113528921"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.25.2":{"name":"@pankod/refine-mui","version":"3.25.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.26.0","@pankod/refine-react-hook-form":"^3.25.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.25.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Fq830Y3ByxE2ZagRg/51ENDjzlyf0b28vkD6oBVGFBfFz0j0T4uSXxtKGX4fIP4U4q6S7Iu0KRVSPbzEf2q2TA==","shasum":"28fb551cd1966f9d89883a6a5f8fb81d6726c184","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.25.2.tgz","fileCount":103,"unpackedSize":1344804,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIASY4EsurqVP45fZ56hvmi3ZoMTIjwU/cHedK2kvrDriAiAcT093awH3UyUhWqg4Qm2edHr6s2Y3Tn1nol0i9NezrA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioeFFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpGQ//RY8HG/6H4qzYWj84U0NVkAyU+MgKLhqM/rH3/E8AwJiJZOr+\r\n/MGVuH/bh8g+MLlWEW3TCGIf7ss7zKy5f9lhRd//bt7fr4Fs77SW8hAmrTbc\r\nKDo6fDA7PKS9CZ9caOC4In6+buJBnZ4uyZPWyKBnIEkclzDrhCNQouB1PxX1\r\nMXHHSynaechwvs10A6HEGMwKS/6NKv7KmBu5JX6qd1bKsEH9IiXxVOWxHM1E\r\noC/D6HZHga7X3TlEmIKFUB/a3xOD8AAjoIXgtSf+IiTYS4LpDCkOmqFKhCuV\r\n/LXEvTPIkIyuXMMv/qGfYW11Z/eVJxGLa0WBrihViEKuzmEPiHxMWuLX/NZd\r\nyyGw1soGXXkq0crPB9uAKxY/M6vB0C4OPtSMxT+FwpQB+wpfmg2WQro2Q3jC\r\n2JFQ2C3AXRxGaja0/7l8VtBwl1ungcKbkFiIP2xQwIJCWfyCz5oUKvqySuHS\r\nOxkNuUbf0ae9L5hpZyA+r/IDkupGjKCc6aDy0sgYtbO7EYqREep1SfevMN68\r\nayYSwA3Ar8ZhhmPuhn07z7o9L2fHOEln6PNpjWOUM27hD9YMY9Czb47radpE\r\nszgpEhvP03S9rjQLUd7zCFEtMLKhaIax0e4rSR9KkeGWsby8RdRNPMH1C9+s\r\nQ0+Hd/TrTtRESSLoIhN5GMXr7T6cyYAj0xc=\r\n=e1HE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.25.2_1654776133211_0.03222929889905246"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.26.0":{"name":"@pankod/refine-mui","version":"3.26.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.26.0","@pankod/refine-react-hook-form":"^3.25.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.26.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Ts/s+12mfL6PqBOE6DN0XwStiANa/LPes8SMTuXqr5Cu1VuYUxwgqUWSMxXbotWZ/JSumbgHMVDnkfJsQd0sqg==","shasum":"fd4bfe943be3e607d2430118518e7965d55ee4c9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.26.0.tgz","fileCount":104,"unpackedSize":1351655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+NudbtJhcYV9J+Y2txPxn2M5z9lHA5U2JD8y7TKTt9AiEApnJ3IXSS0Jyud4oWz8Fr1EnVHYQY3ORbTvrr1Lo00S8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiof+2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5Kg/+O7++UcooeyHLdK19KQEMRILLIapUsP9uVq8cvX6pmKcqlepa\r\nliLR32VDdFUqO+lU8T4/i/en022IcJRWtNoD16h/PO9zkB9/o2Yt79munUBe\r\n2CFcEaIaU0oFa+I0s5zm+7DrzJ1YOkuV8tCBv23PLp5h8oOzBzXokjUqLpvL\r\n2RgCu0p8wQTsJnA7o1xM0/TgJfG341TxG9M+d2ca8N+CcbqiFkHlR3e+Z2pw\r\nzTWdUI1gbrwdDRVKlDaBxPLsRC+NZZVQ8ZBFkMkgLt1Q0Ar76bvykJt0rKSE\r\nyYxaCaT2KI016jBzGvro3XfK2rtZUu9/slvnU/12QZIzEqKhufetRw0gqgqs\r\np5wAfX5NGUWqxJ+uZOmuxzE3YOAR4rLi2dhlogJW4Cv2JaGOBRBTy17dxoIc\r\n9lY0g4h1Ce2sFeqjpRIERcGAeITfvw3UdhqS0jUGJmxmY/8BHBGUrdN9DvU8\r\nPtWAYAaIwPVd9EmR5w2iClPOGDEmLcYA8PZsm/33FaXU1ivoCK9+WzdPBlHO\r\nsbttYzEo2FKpQXCup+KuG/2QBol+7Noab3dGArhSD8qz28C7gl698Dz/Ufhw\r\nE2TW+uksplgN/yrpQscvSUs6tTGr3M/XGQr67Gzwe4EVVfM82sR5AxkmQBgh\r\ny5NByB3pHLY0GvCxOUsJI9hn7CoaEZZIRCg=\r\n=mkPk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.26.0_1654783926212_0.8934816038513262"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.29.0":{"name":"@pankod/refine-mui","version":"3.29.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.29.0","@pankod/refine-react-hook-form":"^3.25.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.29.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-jfVruSxoo+Uds19u67W/vy8KBmsiH3t90gg06L8aP1NxkMOvaJYDb8pQgum5Jh20a1xvI+Vm6yh69Rnh/8+Dnw==","shasum":"fd32d1be65b3b4a39c81d30fa0cf2bc65ae3a51e","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.29.0.tgz","fileCount":104,"unpackedSize":1353827,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBWYkrN5NrTekl5WAhKunU4/RFcHRcWiexJXT+LRjCjwAiEA34mjRTNpV+n2X7YaVCVLv+mumxBI7gEtW3DHvzdILkY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiovG9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJOxAAk0I9lqMI+SZmYlP0y4ra3SmUTSCeYejCLKnp/dcRbWTtKIFo\r\nAQ+X+C16hs50/QK1UH2dYi4JS17rQaqzjCxEYVQ43HId2I+JEENZ7TBVw2v0\r\nGnP3SgW7umttSQ4iGsKURCodpqLYFW/WW4+up+TToBK6GiLcCJMgl3M638cU\r\nItLs9tU+3Ltw/+6e4WYf06UfxKIpyT4O1yZpQ4KCeCRxDbBQZkqna8YICpee\r\nWpYj/mCKADsxrF+6flZ3ImJ7wDrHgF8OGsWMqidE9J0XgQisb+MqtMDMcNhp\r\n+aQZZq2eUglglaFTDS/7PohMzMT2qeL1P8vnC+BMfnEpYnxymodFurXjIlEb\r\nuJ+LH2avKGm1Dz6XuY7pFfwXFiowVQ5fB5uHU/m5ShNyl4pqjR6PeZvjjN8T\r\nqw9CgaPgqmbEUJte1Dq+7hE2kTGiXF4ghx1q+5dK13bnSXiYQbxx7fNQGavN\r\nlSk8rFLaeMo1Ffjk7Lnh2Tt2OWJ/zFLqxIsWce5CUIVx5fTU0hrmMao0kc8V\r\nknaR4wy+WyYGvEUF6RENnLa+u/Ya0uuuTjiYnpWk5N+WXuo8zAvJTbJwWYz9\r\nTRwVNYcVQBTNuvsTz+ScTwR2fEbjBk+MJUtaXpwaZOWDb2vdfbGn6ArB2ECZ\r\n8jovOOfzTJZMlXfaUg/SUNcp8BiQo74NHoA=\r\n=QSzW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.29.0_1654845885365_0.5049488162843374"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.27.0":{"name":"@pankod/refine-mui","version":"3.27.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.26.0","@pankod/refine-react-hook-form":"^3.26.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.27.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-phbuZLFReckNZdSap7KfUHn+z7IjhbVthIBFVoyC+nJreT6q7wuGMdBrhUXKLssXUDV7fuJ8yQf2Tg4VCFmTRg==","shasum":"7e1bdb461d842505e89366683fe62e40f39f91a0","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.27.0.tgz","fileCount":104,"unpackedSize":1373779,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSZgUG/fgH7xCFogprWbLO4Kfq/C6G8dr9XSukyeMzvgIhAIcaDQ3YsIbzrW9+yvBBMBNPjQBWrNJeNGHt0woUO3ot"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipDn7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQpxAAolevW59KaKrG3+7ugZfxMR3whXgr8DDrQ2s7HxtmKqOuUHoN\r\nNnfpnedc41x5X1gJsvQDe9u9oELeygfApN+elPHnNH/yV5+2IVyvSEWoa4CF\r\nLiUpBWS3ysENc7J6qMnHswGqgT6geBAeq4g2qOG3loAHjjPH5ToIDmfygXnz\r\nyz3Is7+xTUGWXiTZ+W4X87G0f/b3GO76sB7qoV2oFL0zwaSoe+FVcICHn4Rb\r\n6t/DwQSwu8ao401mHSHDYj6S88wb+mVCCBPS6SmzAcem8SvdX9sbZHcuP1Bs\r\njAYIBfQ1MgRKgBNGG/FLBvCjIAQKu++04rsp0acge2pvz5j2MV0xPNIGWABA\r\nxhXzk/L9A95M9qd/PmxbYI2I+8cvR9J6KT13L0aSjmAy/wHGbxmsFa8fLNV3\r\nSH0kIyvU4OZi/yZedDchp3P/lcPjh0sMUWKH5dwpY+XpBDH9Omqv0fxNQ2KF\r\njnpldfnaMtxjYdUDJFYK7jY7Zhlco/cHOobZOaqmVO40cNf3E3Su356AnNVQ\r\nAVFsfeVQz1jW96/XZv2OfhOCjFe3Vic0dT5rrwdv8nfjNxriP8Az+pU8FRZn\r\n2XHi1H50UuB3dgCjeArI05N32heFbvYPYwEuskSYaBWCb5CJvTrW4YOJJ7Ko\r\nwR2TGdmM3Gwgt7XvTbczDAhIExiQFK2hZ58=\r\n=nz+1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.27.0_1654929915060_0.49437497245564366"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.0":{"name":"@pankod/refine-mui","version":"3.30.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.5.1","@mui/lab":"^5.0.0-alpha.75","@mui/material":"^5.5.2","@mui/x-data-grid":"^5.7.0","@pankod/refine-core":"^3.29.0","@pankod/refine-react-hook-form":"^3.27.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-0G7oLibz/RRWbGBugNO156wmfXPMpU8cWxC5nsKxylZHsPYItK5ozncOBaEtwuxuvx1dARpaKQWbNnFb1+Zm4A==","shasum":"884fb6323e4c298aebc169911b12527961b47e9d","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.0.tgz","fileCount":104,"unpackedSize":1375043,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGpUD8IunJMedMHxoC8kMGYqkTs6B1xWE3HjvYTZ884CAiB5X4UrpQS/zAnsqd2VZXYRAJLSEotk5W1cJLHEXZJI/g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipE/gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWpA//bi8kfs/0WRdkO9FNujbuRPkOddckhxNJOEnl6yYvkiZcLpJM\r\nZ7OLrmmNpjoIuWJaJ9l/D44MxJMKgpKktLs1yiPLO+RBHBmvKgoaCKNhi5CP\r\nzhQk74FtRjF77gGvwJeFWyy/J5SJTchXDNunPiNDm7sw4ahJiS1VVLXvfC1B\r\nSEO+Akfuvg9NRhnNyfHIChX2trgo33m9sVVqvErUunOe6XzAGSN8+ePgxS83\r\nhr4wnbL1Vm40yLVNgZyVjw2pAkwroGK/jMBuSpPKewC6gH7LWiLOtz2Xg5Ae\r\nBpy9X10yNLTUdP3iy6EVW9jQvnSKxIKJLAnCCldlRnAPnpqeaEBNqo4usT2v\r\nVatEo+eGOuZVxI/zTBul5xqiLcEnwWG3s3BcfLuvCNnus1fE3yTzpLBPGWbm\r\n7cG4opGe0+IDi/nXTwMKdSBvoTNCShINedPvtlnXIJVIhsvk02Cteae9OXhb\r\nV2yO1VVqRz5JyIMj19c8Nmwj3UOCaHtw9IVuJc5wsXM7kIisgyPDhBaW74Ui\r\nme7sCExlENajASiHEfW0krWGOevpoXMfWrT6KOR5wqufP8Yv52l/F0cK+Ni1\r\n/ZwSkCLEsisppFjsLXePe3klx3WS/+hwhI/eWGkqVL4WdfHqh4Wuif4EJnYa\r\npOEXe+fx4HhCgAta7eloHyVPjV44xBhgHPI=\r\n=aqWS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.0_1654935520365_0.9114231972349525"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.1":{"name":"@pankod/refine-mui","version":"3.30.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.29.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.30.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-GiFE6Ilef6p9bXSLzGYeJJAtj7Z3NuaGPqJaY83Qky6NM3QfMgV967tqzV5mtzun7ElXNRAU6oQumDIM+8rDLA==","shasum":"6b658f9f268066fb3c4ae81197db06c74ef2dcfa","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.1.tgz","fileCount":104,"unpackedSize":1379320,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICMbdO5r8YdnfxiPNRGCIBZHjewg4A+wdr9iz+394JWlAiEAnREoJvBnYzuWo2xi5xSgeH9LH1/7Rdk78dlLYBUBdjE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqE91ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpl+A/+NHWwQemNemB36GQ+mKAaILb2ei2Ig+ZQEUpZVsnZ9L37QLm9\r\n0/sly16hedwjjcieduGqmetyWJsDK3mMMV9rxfIR1GIiURGishv3uYGQmdal\r\nulIC4PGZJ1xgPAW039ozQg69+kxwl5C6fivKP5Tj2SoLNlkA7cV7Z/GdniRq\r\nzbTKVkxZa3psPaZYRe5S3ppftxrV5c+rDXzx/4n+Q9ahUmVyx5ynPrHj5M1f\r\nlpeU7a4OWFcRe3VaV39V7zoDrmUed7WL8WxLc/4JmVGQV1M38QDlHIy2YPsn\r\nSi3ofILwS8Uy0dkQxwBizEGqI93HDYbs1VBjws6lv+eh8yt1S0S0rMyEXLGi\r\nQtQZkTCg0+Osgm77HalBVosT65Q+iNmowWA31AeeTQYTJWY0KZUiZV2K+qI3\r\ncRRrKYlwYGrwGxmr6LeHLHy2nHjbVdXPa0IRRvBOlUJc75x1E3kxW/HN2wa4\r\nf2SYkWlwi2WH9hfBD86xWMB83hlkeYb7bkgg3dI4xw8KZJvdDu44YK/JCFPR\r\nnT/j2M/d4rBj5qSYVaqvpgLiYeYC0i25ihJ5wWxZZzAnK/QIwA84keKwG8Ne\r\nOOy9aDdfAg9KEIFrgeE3qSgDqaBnmoHSdn65cTsnnYWVDd9sKuTxrZAqyvgi\r\nL5YI4aWYqoJcfPUPrj6R9sHvwWFku6ia9N4=\r\n=dqVO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.1_1655197557542_0.011111147258387799"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.2":{"name":"@pankod/refine-mui","version":"3.30.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.29.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-antd.svg)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core-antd)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nmport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: string) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: string;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.30.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-K1swkAUYNVslhS4+aJuISyBzkN3I7RqcELJOp4a1GLoahDjMzKlu/eygANmZBWi8dnfCRrqLHE1e0xpd4Hjifg==","shasum":"3e35fab662b7d3d0815843bf7107b0a31fa070a2","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.2.tgz","fileCount":104,"unpackedSize":1381282,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAZM3BJYDHnGPyJwA7/Ix3HDIAwiy8qG5AaTOrpSsTevAiBJ7FweM2Uwavy8HN0RrrSEmMyJ+qXrOtCZ+u+xXiVGIw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqG+NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpjpQ//RMFe112/DSpW/mTC9OIb3/XgaIv06DQeu8bfpPDcyPCE0eNK\r\n+J+1rsNt2ZjO/TMTY9Bsp6Y1K/FFseG4RnNJK/aVa/7YmbQWWI+sT+rh5OOG\r\n7LI8IqJbzwEKdUPKvGE4U6BJUQJKVGhDacsGT/0JDPP/PEOL9BJPBYKa+RNb\r\nDQQeI1Uv+NDgkSeoSAjGfDMt2yk/h8GVuMLYFOwkfGC7nFmwqY3lUksDxva3\r\nhll32fjho6qkIHX+CQDBhq4Z+nHNeWdUd8Ad3m7ZtyOTsqYyMrr7Y09vDgrw\r\nbqpxrqeXwIqvvUh2ctJewCbHFNh7j2iG7OP4itZmBfm185rLq/8uzqaOKh69\r\nybhsJg7NF3FtfxGqzxzlOBS4WzEhcHDNMamu5nkuxkraA4d4xfJ10+la0EKj\r\nMp+rEYDNF1p5bsL9sCZEV3JInqdou1fnAtGF03c5SNLg6SRnHv75GgCr4S9B\r\n6pm+we+ZmsSam0GbflgyfKKZ9PD5HD43m1vxlIhVybwW3eXbFxaEIDnXYOSu\r\no2hT0jLi0LrzYVMjbVIJKSonONJtj19HRrbcH6Q/gcPoQ8I9i4tD3lgow+2Z\r\n84+lVnz0w9Yn1zhKDVAmRvDWbKxSZ4/kSai+7ortiY5GFLJMksmgTYcrSRv1\r\noOB4W4LnDpavSn2uXEFu6TQF/+KicdPGjs8=\r\n=Qpb7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.2_1655205773449_0.2667665041831435"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.3":{"name":"@pankod/refine-mui","version":"3.30.3","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.29.0","@pankod/refine-react-hook-form":"^3.27.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.3","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-g+pAfFqc5+2Bb6w5/mzf16G6D3jTxODTLl5lEa1GgTbbX1Unn8UvHQ4se2eU7LvmeFOgQAVdNTQUQ+/WG6iSVw==","shasum":"e7961b608ccfa7ad6d8b32a560a72c0130ebb069","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.3.tgz","fileCount":104,"unpackedSize":1381763,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAKgNlIZJKVfVhQf4HOQHp1qwYZo5/VWhebcZvIHmIrgIgDcJxSTD0PvSUsa4/zsAGWrFudGYas6yRiG3Kj8GCiIs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqHjEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrURBAAiKw/zzZpRDHVrH8KDoHDxmpoGQvujc/Md4SGi33EV33v1QRs\r\n4v8iiUcmsIPxCn2habWf83DMBGbozxinYAVZs/yg5m3C/SnbQhKIzwfZjB1j\r\nP9qUq5RbLyme0VPwN9tHR8FqbPU7T3NFM6TTQ//F7+Zk8LCOG+i0E8FRSVVx\r\ni2aee3EaHIJ5uK2w//Z48vx+W0Mr+zlA98JkFTPHuBDbWD2XrwLBiqT4ZNLe\r\na7OlAfDLSx73s3W5Y7L2yp+x8uh+gwLZkuMRDHco0N8R4nJC9ke5XFUBZsPb\r\nMe5m+MQSjHttFnPcIfVOK9j64XGC15v4FrDjSiT13Bp6PpzKXIYBxUGyu7KK\r\n13WiVn6qy0T12B1gE7ANMJtwLIh5kbJifHm2cur/5dTSQEC+BeT+4LkIf1Ko\r\nyK08CYhK6xlyx7fjW88lwIATcU0sLzP3wwvKJdCn41z953O1MLbaBYQryMrU\r\nYV8rVGsf68TNaNnSKypJjiZBdTiz7SExUxdhKdtgIlJX+wPGeFv4hLnAyuF6\r\nCXx8ro9/EnhSXWmX7r/FdjIUAWG054KY2Cq/LrzopA4ZZry8lYB6uYFsL3Ta\r\nq0tPBQKWqGUM3EP5wX3S5Xb3DCF35JaYINpq7379qdqPF0UsigrwDzkKg3tw\r\nK2x8XxabwKv7Lc3F9d03B9ymezW6XCejqjA=\r\n=qR19\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.3_1655208132719_0.12389019493668285"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.4":{"name":"@pankod/refine-mui","version":"3.30.4","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.29.2","@pankod/refine-react-hook-form":"^3.27.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.4","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-qnAvSyjr8aciueze5Fdnsl5s4BqbIHAYtXYdtwlStUo3num6TMVsO+e28TZM1FrQ1yYIqsvgLRGHan0kaxv2vw==","shasum":"232952a0a15c870bc2ba5392a5561b48da441776","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.4.tgz","fileCount":104,"unpackedSize":1386604,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHlpPoj8VDphlPQc1/fVRx9jguRwPx0x/LUgN59l2yecAiAVrxWDFpenGcd3AVMVrsk8EJZq6JPg2eY6QPhIyDQImg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirGOoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/KRAAjQTEPP9mRRgUHYZrErxKOnlppTnTvh6mozxlqQ16GhP7qF9V\r\n34fnP/mXIr6FebHamqt8GdMldCWJ2xWBE2YuN9jYUpnpe8fnE8QZ/QbtusrF\r\nrqFSQa7AYTY4JOGP7ZNfzOq0EiW4PRAVciJ3zvaZsYwKFHQU8p8aAhWtCK9I\r\nD5dD2lT4mRY79ZUFqwsc8hybBI97R7xVXxwle2gD3P3CHI5c74K0HiLHHD09\r\nyo6DH+qsiS+NZKg9FgD7FosN8G8jFZs6vrN2+J6r8qcTHzwly5KMOVOtP2b0\r\neI9FgU9LeMlFf3U9YRwpF7xxj9xyXqD9mzn1xU7UItIGTNHIwVYLzpZTPx6a\r\nFWeXuiL5duCP/U+eVixD+ZgyaAqMQInhZ5aNt7uNYS/M1SLFlXCM/JgwGOht\r\no+7WM/kilx4jrOj1Wrefx11GgL50rnJjvC0naE52ete/Cm34XTH6I/Mi+CEV\r\n6ZGGWnp1rxqJdy7kEvSU3YRp+zDVE+3cErlBES1m2xHdZizEHFyOnepct3Yf\r\nf7qa30lHAKezCetV6Fg/uu1E4/ZKI046UQAg0BnCPSG+3V5+KTmKHBRNh07X\r\nTC5kahkNb8WpC5iIKKgZ6bKVAy9GgxCq/LJ8awg+EPYHkFHN/NnLu7otW38N\r\nrzjJmRMu0A1nG53VZEWImELtFkdKceH2+to=\r\n=kYIJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.4_1655464872469_0.18931231491291456"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.5":{"name":"@pankod/refine-mui","version":"3.30.5","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.30.0","@pankod/refine-react-hook-form":"^3.27.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.5","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-awLxV2mGvRmWxVOs1MLK0cy1IzFTy8o/bgvUzihoc5Jt4dvkfU0kszYJ4rOB3heoLF6lhlRjTDNvWkW8aJVfWA==","shasum":"02a9aaf5430dcbb9e20e05e991e9b2ee86181b37","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.5.tgz","fileCount":104,"unpackedSize":1393690,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoN2REviahQG4kxx6LYOzyQ5+tSVjxX23PaxUYEmIVOAiAl6YlSazE0v5I2RJJT4xHmF2NQqSd2yKDFroM9pkWz7Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisH7OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEkA//Ttkdkp9fhKE7YMvtmuVAYKHVIjjj2wpj/YfErMDxPPntOrW5\r\n8s36i7rPvNt4T0vyRRRKE2aUFH6uo6MbGtUy1e8ZdxAMlhqhLE6oHBV2wyDV\r\nUOUToQtcNx2vjG4nYlzbsatVhDq8EEu4SvYhbVK7+nKiXf3CYcAwtmQvx6Bl\r\no2zV++3KVYDCrSQMgcLL6bzJNMJjIh/pB92piMQs1DYHLUOtGTdvxy1HmM9K\r\nyG7dWrTrkbviaV4fXyh0Df75voz7sZdqHrEB808s4kgr2Mj1NjpLG93dIShr\r\nQTKA/7UTLQTT+4hDmDny4ABa1CPJwLUB/o6VS54nu+Ulo22YvM4ocVHI0vu1\r\noD8i4MR4AL2ah8HL6BtRlWUfTPGivpNuOHHOrtLJ4J2HgQTzIwyBGJ2mL5sc\r\nyPLIQV3EeWXoZu4ZF5lmO1XyuT97nF3Xu3c7SESIYSOghwqP3RO2lawJuhIC\r\n44LfXCXoD3NqRRzQ0txCgTlk0NBfcLf7+N1dGj+vISt/c7FWCEWIsjDW/xBV\r\nSKajX7c5zvZgN9MUS4UeBtLxp6FFbi5zbhUC56AE06bTk9RdaRZ0F6ZN++TH\r\nFq2jD1jjBAtWXlOHkx9jT51HC1U7os5QLyRsvoROW6DDgClpeFdiefYcRqEt\r\nWgFDYQc8sbhygakkxNoOxOVjA5kEVKUJJ1I=\r\n=pdeu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.5_1655733966328_0.810072333203204"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.6":{"name":"@pankod/refine-mui","version":"3.30.6","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.32.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.6","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-lNOghHNj3K3Acjr7KOYCG+iuX3EiY19CwsL3KVCQ4+jHcQL2CDB4nfVQpiXMzoNt8fyroZJRdM4BJK7FyNSZaA==","shasum":"1c1a753450fdf282941116b302fe70765086f531","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.6.tgz","fileCount":105,"unpackedSize":1414768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID3eg4xrbNhhuuxUfmvYv2L7QtRrdE1WqISKlBFTDUlKAiEA8i7V+h5MF3mVnuOX0kdmj5jOs52wbruy8EzF2EYT0Yo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJisKNtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoovQ//deFQhyvTRZDAa8Kd3j8ujxNvSanhX3w2pmI4UIorRpc8Os9p\r\nF8q09pbO/YZ7Z3cXUjO7AlmpuqMZLKK+D1qLhFrn+Jz8RpE0GOK96coeJQIC\r\nlcW6ONpwtXWUhbGh5kaGuKtIou2Wj28/WBczu8Nk12aJzk9xwrBFu+/xC/Xk\r\n1HyIeG5oJ2+kG5b5zCr9aW5UcEhICmqbvQM77DUh6sNfV5EGCRkZR8utrGay\r\nlZAd+nKz/REogsqCU296Tb/SX/p3JgOlCc+3bKeDGarwU2ufpmuq76hdOHZK\r\nLSf//9gU3Gqvg9N7gS2GK2v9G1WiRD8pYUPXcHHYNxM1eGMz6B7Ft46nDKc8\r\nATWIoQY1so3P2ChxGdAJXUitdaqPosiofGpTB7DOtpUl+XUBFMqNUNDSO3gr\r\nRjAFonj1Sht11cnSlJZ9aHhCgt3Wlt0qfOQHNHR1xBx7BHP38bZ/HHpDc9Te\r\nO/9dJDfFU+QjmDtMAH6BH0oVVs4UObzOKD+W44hZvs7PzAIOrdqK8oOH2l3l\r\nVpPuI+qntjjAri6gbZmM9khU/lhB+51K2x4jdNAMzSXjA2F+DaDj1vlAG2Xo\r\nFWEC9eMZVYTLILK2H8SuYeUBJqgO9RNGbSJ9IhzOJ5RfzBh3vJk52+DhUpW3\r\nBcqApCoekwpt+ve1c94/9wC9YsDI3QGfj/k=\r\n=C2cD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.6_1655743341690_0.891944399020032"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.7":{"name":"@pankod/refine-mui","version":"3.30.7","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.33.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.30.7","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-LVaAgGlRmacKBg17nstgrE5OiMeyVPfFWj81hh/f6pIaPjgQZNxGHpBFkthV9JDGwbupbxxCsvxDOiqWcnCkog==","shasum":"9efafdc069696e5babac09773abfd498adcf8ff8","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.7.tgz","fileCount":105,"unpackedSize":1416120,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgA6PeH4ZY26lUsKVw8QsnXKb2WCCJS3zRiRFBMqA89QIgK6p+TbwZ9nfBWHeRyX9YNHIx4qGg5gqHoJml5hDUHRo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitBm5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmojNg//W2yFxrrZHWc5WDJSdr+2uGoCbfaDGTwWl2pjxk58rEO29YGM\r\nkB62GrVJeLlL+AnD2k0YinniROnPGYPlvYoSW7E5ydAq7ncLz+fPO7SejbLo\r\nAifHXyffBR2kmA+8kHufPLIvUwzoNXAQGhHSZB9F5b1VIctinFQ2rbqBn0F7\r\neLTYstuGbEcjEPEuHah0TDkbjktV0JmRS2K84ANYLIHZn/dqR5fIX3zfu/Zx\r\n0JVpsw3K6IjmLiehUcPj/QJQdncoVaYHt3s4oqdwady/QXRJoQ5ew1HwYIvz\r\nXSIxyXq2Ol5D0qYQV6ac9jyDJ7SKwbQjx4u7SbbsjAqV+NSdkdD5ssdYcQr/\r\nvRTJ9DFGq9SXGf6uYCo9sUvqFA8mneSb+Q4rf13wPLr/OmTElsWph07bPyL2\r\nGvINQU5uPUDrWjLxuKog+p6xFZKGTYzjHtqkzQpXlu7+negYa+zDzWTed1Qs\r\nKl0rYfqJV55TM2gkbRYwrTH+wKiIkGi9nBLPTYQnEtZzMXSUBGdl+QhTG3K5\r\n+ADdmUcTq3qID7zatR5tgM3EVkO3mpIbHHzhnw/UmzunpOYgD1PBILR6aGTJ\r\nrOmR45TRPSwDdXN2LBDgEDm5N03g6QT8ak1gw+G7k8GS+kDD7DXGPnp41jn7\r\nNFDsEaXEZjPHrvb8R5/hDdy+W6qNtgzXqEQ=\r\n=0pl7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.7_1655970233078_0.7826360631016656"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.8":{"name":"@pankod/refine-mui","version":"3.30.8","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.34.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.8","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-E9WObebMcauG1wStpRLobMhBpzWd+cInBBm7K6C3IVpWUqLOyCvfmcFnv3fgw+XHSMWm0LuLN1FfyjsOm37lKA==","shasum":"5d6227a713534d820d06c70a09432db785fed291","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.8.tgz","fileCount":105,"unpackedSize":1416612,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGp5kTaOk4TSwdnjaLDzOwGhKB2bjcEK4n7jOzd8W7AkAiEA74gXVh2kochP7MF3f/+vmxGLk+9i4OEQDK5klgsM28E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitCRGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmppKxAAkzDySfSzRNS+Ny44dzl0kz8s6GFlmqnmmzZwYWxFjv2tEIab\r\nuyP3bEkNTHCWp8PaPjAeJeQoM5HwD1zUC/f67vt+GylIvFj1d3t71OZmZ6VX\r\n3hcXv+jGoHowE2Efrd0VxPVZwKuHJe98tAmBgh8RD5u/Po5hX1ck0W6fgL0f\r\n8F4zdETi5h06co/BRlVfkYuAYnyHOxZLTgcoplEe6IceNp1VQ5QQ/tzs0a8q\r\nHDMPPFkWqry3lzmkGiOAChJuPV2ajs2qdf9KbWR5KjZVSLBzwcXXnnzQg19U\r\nBUsaawo0kXbL+1f0+Qf8Xt7f5njRIfvBD17RCFnr5NFTr4APJTZqdTsDyOFP\r\nFx0U+W5YhYbOOkKO5PYtP26VZ0fDv4a93EKO1OGaAvKyp076FEU5p+zbT787\r\nBdJTnhyVSJ6jvBmhaWBbcLuaEivNuWfmfNf3gXibj2tJy08K/ATRbqPoo9RQ\r\njJBsKCaXsJ/xaf5bE7EKLRt3QqyfCWp2fc6aZZjIFZp9KvN4zVYeLI8zSRBl\r\nEfcdLzfW1tfLflQfIACeI8umPUAyOMW8iK6E+/bvEW+CPrHVJqsCCFoRjgMQ\r\nihReEPvu397GC3tFUg7mkQqOf/hnDSWvun59J/6mIfWEzmswbDCn+GknwMvA\r\nJRMMRaK5Q7KBySC9y4MZzU52NsEAc2IblKg=\r\n=RtIs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.8_1655972933760_0.6477625699350373"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.9":{"name":"@pankod/refine-mui","version":"3.30.9","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.34.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: ICategory;\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.30.9","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-GoLu6IUl8kLKOhyawcT/vKsN2vHsIEa7rYNlEzSpN1mzPi9L7VHzDbN+zWPb2Kg6u4TksnQLu+1DgY/rJp/XEQ==","shasum":"5e00e74db6f8f2c119a3bc92984c04a8898abcae","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.9.tgz","fileCount":105,"unpackedSize":1420657,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDW/cICgV/4Ek54YpDaswUVHeDQM+BKI5i5j6WvY1QkkgIhAP5g6Z/j0KRyEFfxOTKoC071lUhzVP9IHzV8VrVr7Xsh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitHg2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpt+Q/+IaMyDOo5DLT227K4E8BknWlr8Pys8Tj2OEv9QC9MtLp0xh8W\r\ngm7dUyA7l2ZblEwMECaa84FYFTqJ72ytFGUoLcpAVCuvunAoPb9IOUvZ4wkv\r\nFNAXckzneDGmsvZ01A/cukm/3LdI8eUpSoFhkS6ur7otTtpSJclwfj7h0s8v\r\n6SWsyOe9ziF75d7k3pdsdykiJBWt2My+EytP7RHJRfLDPCcqdyFw3uyFUKD7\r\npOseC7GmNAbVpAYS9sR9EAjA1dkJqKbgYd3H2/mxwsw1uagN+fd89meSoFXw\r\nRfnQ+UWuHb477GWPeiFaacBoH/3FX3fVTigupYp01secAst8/Gz8ExPaNibO\r\nUXYkH++qGN7ZVbSwYm0NvCDlYY/MGdDEH4Cw8mnvMVi1GIwsfWmO9HcsFFTt\r\nt+uEBdMVqNisrYQpW47MVht4Vkqlkk2414iLsXp+/KlsVPMhlG8JnBoj4vUZ\r\nQLv8cmy3fBMG1ZyppLMMy6fxg7CJAdzvpnYgK8KtCA1uctFPOxgevClJPcNH\r\nhtGys69XIxSY2lGaD8BjeBo3QCMyTKPIyPRL8RuIvnAGK5imcASKzO8mfmnv\r\n+cxSqMDzxZyh4OZ2oPA4nG2Zt4xNZyV1B8EF21uWcy1akTkJEhs2cryhJu1o\r\nZoo+p+pVO7dS6lL6pni8/BActYBmG9C8LZM=\r\n=+2s0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.9_1655994422382_0.8089122922748666"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.30.10":{"name":"@pankod/refine-mui","version":"3.30.10","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.3","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.34.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.30.10","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-hk9ERZYsC02RlYy7zZT7+My00cPtx8pXRtENaLwFUtQvWZMJq3EXq4SyJCF0452rvnV3mQbDwuH/ayHaEhi4EQ==","shasum":"57ec98eb2f6b6a4c5d8f6aec4c553c3298419d79","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.30.10.tgz","fileCount":105,"unpackedSize":1420748,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFsOnW73S8fJwslt7eyJgvnAGnIB+GLZoMxQNwQtHZgkAiBk2gveX+h0CAL9oCoT6TPw6xb//qidpwGUrBmWGKOlpQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitIIYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFJBAAlaIpYEsDHN+/0D7o/jP8CGB2WHZk1RjuudUWlq6ZhY17nr1E\r\nt3f6XFtDuJIeCegecet29/2GJ3MbwXj8jPoexnvOBKqnSPB8wPqwuXRukvN9\r\nIrGNKvyGcZ8GLZp1+LOAU9pTiJDefSIjb9zgWY89Q2ulKQmhAX7ZSiMT+cWg\r\nQqeiKlKy8ovHT3oxAsunM7xyHDJcIWSvlrqcC7dCYJqZxiZN1qn3/PlDiNjX\r\njPTYFb0FOL3pdygTKzv16+5qj2rxC8niiJLtBAZRzT3q13TFB39jdH7z/BBn\r\nnjb1fNo+rwusfIdIQUdj0T8RRsSMtRUVOHeKthoLSMEmnDc0WlCStgs7fDrO\r\neSwg915IBUODkw3miciBBJqrQMPaIy3rch1jwYGnWLa+/k+ZFgWUHB/CFEEV\r\nxTGV3Vo53EDBr2YwIlArdt84ZD1e002KOwuf8g4CcEyfs5m3bRfcuO4mtKqs\r\nhFvS1zFC6eVJGyP/YSouvT8uH/gpbqCL/HYLWBm/kv608v/TkvSq3hidNFUk\r\nZDUUl1sLcbd238/sia2iqfftpWmmaQplkvHGxXjXvVxe6jfryABIrWOYPcmL\r\nb2wcCg6GgO8tZFxQ4DgDjEjTaexJKJrCfJQsZAfGhRCxYNt1ytYYUvUL98N8\r\nZl+KamcticXCv6gzGBwtHFBLhglrXRJB6H8=\r\n=z17R\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.30.10_1655996952223_0.21566367639185535"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.31.0":{"name":"@pankod/refine-mui","version":"3.31.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.34.1","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.31.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-KeoejTDDCKQ8cxgALpfdiAvaEUhX8stAixS9igWPToZJ16TNK9z3XjXjf6CRHidtPp9dlnFjCILGB3btiLUyAQ==","shasum":"feaad991bbcddb8f1e88b181747231a10093267f","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.31.0.tgz","fileCount":107,"unpackedSize":1456666,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7RG7EsL746iKrXkVd3uD78gtgQFNDUjyc9DuCNpqAUgIhANFxNjOntXt4O9H5hGocUat7Q8B0b1gHdFQBJSkal/h1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiutoGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZ3Q/+IFEjL6/sGd9INTRnyo9jHOrEAQi57NSg7uzozcgL774p6VI6\r\n7lYTVkjpO8JDSZUM+6uTNbMaF4XeFOR1lzZvSjEdh4QjTD4u3R4tST+YXOIL\r\n9NAvUVoMPyViLugxR8TsZ44VQ9Hf1dU1tIQfHyN3728RfBrcDevHwiyTUQ7X\r\nERfj+J7cuS8t8vdLvCIgzEkIxNlwoWtYsVELYsKafkLdGDp7uBm1B7yhIvtq\r\nd5W5ETlJMd46pLdHn7uMcDl72b8Qf1/wbhPrtxNd59zyxqbee0HtDLnBnQVK\r\ncWC8OnjrEAaF3kqmahzlFApQT3ehEwrHrdMu+cUXkT2T3B00LMdV/+Wj/Rn9\r\nC41qJQr9aVw8HCtk8MdC4nv3eb/JVlQn9yRml108Lp2av3MIaHLaXO8NAJsn\r\n8aB4E6MuAlicaltguwGbRed4K2aB5UtMKSkSwcGHnCboBsJJGID9DAK0h9Lo\r\n8xN1GRxXMzx2SsQXBk973x19lvarDYVpg17nMYIuDClS3Pq8PK8AQtti5CaC\r\nFJwAynC7j2QuWj+H4f/V0ur1xD8VJommmWOcTJkcrI/NiUhvmHhJRbQUtE9D\r\nSOO7nav+GIs5LkNvCdwj1JVmyeuqsofouQ03wf70/PBeFv5T4HfCAwTRqPAr\r\n/pDGresCSjjn+MHwZ9JQro1HLqG7gFZ8cGE=\r\n=LJ/b\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.31.0_1656412678395_0.24542267945583274"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.32.0":{"name":"@pankod/refine-mui","version":"3.32.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.34.2","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.32.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-IV17ZBAMr74i+hG0F90w2nqGVQRAEi/tkADMzkxR71ixkfpGR1Uag4qNfdKb+KOwoVHM6q6zDF8H+uuEMNhV9A==","shasum":"818d869b46c34927e29d3aab3f7145d2cae48297","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.32.0.tgz","fileCount":107,"unpackedSize":1457264,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDElvw+7vH2iHy+MvLzNs0owlaMn+gV59J/iccjWIeHcAIhANifNaPGu93FAL75D5Es2jomvZkJ246/wbLuAQc5NYYh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuvr+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNnQ/9H1sKzeWi39bOsqx4BAG15MQcKyRlX6qCi8p83PRhUSJFQ9el\r\nYFpSYgpJnrmmsw9AOQ8bhjx6Lf5NML8NgnYMUVC03Nhc6H0pH5XfVWQkfYyk\r\np/l3V5kEd7cVrFY7JMGTt6yJdKEE5eF6ciZ0SeFKgl830Yb5g3Ti8vuMsjce\r\ntffe0Uv8bvv9CcE3nEyPEiczP9iwP8jw2ydBcosqQesggUpGDhUHRVnlLC4Z\r\n8o9aRBFa2kaIESZYiy24utkENSJ+MZDaLOCxfCjcq5TmrGLlulU4U8QGYfJD\r\nWP54Nj3AXoai99ogqoTFKR8JVX2A2LU4TyoJff/Fx7AkqbLv2nwmP/SJTEpM\r\nXK1p9OVpdCD90ZQdn6NjIgIow4ipc44TlM6X4FkagZVVF2KZo7WVTp80mYd7\r\nxgsoo5eErx5a8DHYzIcxy5AVf1wOyLmZZ+dYKbQeqOdOmodeKiT4M4E+24Kt\r\nfvyFJcsq/dwdcu+xV+GEV0jCvhUr29T9lGyB4eEflf+vfZawWELobGSWEH42\r\n5Vtz7nNPsR/5j72dNCecnbssFWypAYJrvoX/8AgyQsqRUMOybn6/B0nNNiAj\r\nbrhVSkx5E+s6HT3k38Eql1R/KjhoR8dwK+y/d3hrCya8L+QtIxz8QboMj3ty\r\n5AnqIw6FWRfQ2kS9/aZ3etIBPO+btaDyNoo=\r\n=xldY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.32.0_1656421118141_0.26452759185689767"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.33.0":{"name":"@pankod/refine-mui","version":"3.33.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.35.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.33.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-B+u3kGkLQ+IhN9BFuZHwDUOLWfiImz2BWVStvKy30VqIsYZR22QOPKMsknxtMfCqMxbS49a1BlAakWOyf1II9g==","shasum":"6dbec9727342cdf72c223f4d62bf9440e38ba9a9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.33.0.tgz","fileCount":107,"unpackedSize":1471525,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5w1lWokXEoH9zoLemtj72H2+AAIOZ8zluajafFhnEIQIgBof2HhkL/UFmSspHqfUNLI2vaSOLJUtYeVGuvpbhrT4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivUfwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6/w/+Kp/hXcUBEo3o5V2y368+vy8ci5O7cg+TzMjuMTcOFkNDi2Cp\r\nnVc6uP6HUNz5wCFyjKAYqkjs5el2wqvQnsUa5MItJNxv83YMAhrURrA2ftGY\r\nJc2jq0EF0EY5aT9YPD0teVJ+YUn3QVWgkwErryDgCzAJpNYz/vVIiXAFxPo6\r\nXGGJoS99uZn4P6vKouEsdj9vOXVgLgpZOCKytAfbKzWjJzr7YrZ6qesKIgBf\r\npUQcGsdeqOFoepwka+UPkOHzUiL5sJdVhKon8mU35z8szByeBhwJvweNVHai\r\naubrcP/FNLdo5+g4zf0Rc5ZDdB8b19w0/6thFlBlhvqAxBeZbIKSHCsbTrUT\r\nAze8Q5+kqPCQcr0N7BhRSEyQJuj7x2QlBaAYsqfFx9y/oyZqR/nH6mWPcV2O\r\ngJpUT2QVpQjhqGkGXU2I8I7aoUzjjxuseo3enXTcGQMZhHl7REb+jsQ2rfle\r\n8zfnHwJQ6TnclNcIFQoiB0IbyGD5dneQqTT0U4sMD0r8XxvrDUw2UAWIvhgy\r\n5X1E1NVkV580Cjt3bV5RFcbpAC7UmYiua5xPiQR+7Jv0+iQxx0yo0bfrGqDZ\r\nBvKMz0CXCVjOmB+rHBqhzwgw59bEO+8q96Iqki4vjT+rpgUx+WOBYG0YRpft\r\ngcDkQiO/ChHsvK6IQqdGnyvx4CE1+qWenps=\r\n=hKnF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.33.0_1656571887981_0.10823000759343082"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.34.0":{"name":"@pankod/refine-mui","version":"3.34.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.36.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.34.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-q21KXXTcg5haBXVrxTxX8WFlCdrdeY0eLSH3RTF7K8ezxcc+7RhYUAfJf8Z6GhspNAPuCAAutXuQYKEYjLm8eQ==","shasum":"8b6f80117d4c294d67faf4249f100b18a5145c68","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.34.0.tgz","fileCount":107,"unpackedSize":1472542,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMgNZVOCE7aH1DNX7sVcPt+0tCSjNgt1QJmtlOQ0EmjAiEAnKPsfP313hQnl+Aw9lzVMi7V0G485N6I0OVt4aHE2S4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivWLBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmongw//V+tHbjct982oT6D2ESdOKMdkGKX9l2VqqkhizisPB3nH1qeh\r\ngj7s3SC6NK0L1Y7iux2jM39bpEtgOuIu1zcdQ+X1GX3UuOjeQi0aWwE/L95J\r\nrkxNhthaDYPKrLzXb8bH0kCdxyGCfBo3N8tDWDTCAcTEcFZKKINIgiScpqSQ\r\noPzgWP6mzxSmF3e08Xx4i7Uk9jzIb/uGfZwSIMJWOmvFAMkMskM0yx5yQBrY\r\nu8iqmKnW8KYjVsqwmGuFqbE96V1hlcsX1x1mRqGEyfDSMEdNZAlGEIsG/+vc\r\nfeY1Vo66hOvMYXpkPBpO9fSCqi1kEsD6TdKAFw+riMZDN1qMf/f5zxKt8HGi\r\nkZqarcpFcm96K5uIFfaID26EBoTIEOtY3pbuKE3ECCe2v9TgKyEwYqU4PDRq\r\nJpINZzgDcGeP88Qo1zEC0pnzGzjdIk1TBL8Grx/6iIUBLzYzoAAt8Cdbmxzr\r\nqBIjSGbht2jEuKsOR9aNtLjd7SrdoHsbYXHj9edvMq+I0+sXcUOais+SYJrH\r\nIRSuxQ9WT3FpX+D3gjj0KZZwIu44ulCXm9tvDSlI/JUblY8VmwWU49WzYb7X\r\nhh4MgqNlW4ZFV/EY934iMz94UiHQYRCf0ZM4Hn5UbOD2NEiZ9fQ18XSZQ904\r\ndcw6ttATQ0LDymbbB8lSAkppu9ezAXpWO60=\r\n=Oada\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.34.0_1656578752865_0.18697689465068446"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.36.0":{"name":"@pankod/refine-mui","version":"3.36.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.36.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.36.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-zGdnqpbWuZd30WvpOLGpuFaxo+sc5yXDvmOwjoVwXpyHWaNdyAw4Ec8qP9ttCrDms5Jec23q0GDOGlzG8m9/FA==","shasum":"aef1e7f4d8d3b861f11aa9b5134262eebdedcb73","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.36.0.tgz","fileCount":107,"unpackedSize":1488458,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICXhLuF9/KsaPhimOP49dGff/TBVVyptOGIXh4YXBSfLAiAjkInO1pCJYjQeYWKiXRq4IZHHzLcdp1vMWV0ZSd30xQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwv+yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoK1hAAiU/LXOcbiXTrZWUzxLd47td0b4Zoy9YojtfMslnwCMY2rfTv\r\nY5NEQ3EuL0dijbyYNKIqKgl/of0EDiAY9+lmChHx2//xdaKz+UIOVkPAx1ew\r\nsLPfvbaJ9CxNTWM+diRgEFQRbnVimGlHxfbHCvO50PgPHLTa/0okQxQYZt4B\r\nGiai0u/CuA4NIrgizgwbM33p85gDavGOMuhqLxgj5pYMbKyl/3ZNzW04rVjZ\r\nYz8k0zK6w/W7doUSdadHDuPO8wBAVzp22NmJob7RWdm912VYDvQG/PwyPDWS\r\nTlH3zhxCqVtk+r+3RNq3Bmx45kW5ip35nXezTTfEL+Buoo9xILnmSa+Lw2Oh\r\nmKoE1xgOxE7K+eQBLlqcP3zlBoBN+IiqqTBbWNVRXvclamvgegc2Qy7G5VBh\r\n/VN1FVY976bs8rNZ1rmpT0JIEsBqLZeoE2kOrobfoAnAxNhoHiSVOCjH6Ece\r\nx3cwBgtRjuY0vuKE+jpVa1JMikyb2VYRS7U8tCtvByqSGT3zpLZExyDMsOC7\r\nd128pfR6T5t9HAMJJKs5+9GdCzN7+GIj6M+9gWpk7CriaS1cYPNTmaf/VN8v\r\nOC2wo+5sMlvzeo4SU7+dLdPHnh3UFrGo5OBje68u8WFmZyaY2DifGuZmfCCZ\r\nb0NmYKFhlpLdP7iCosdR7p7P1mdrgGbOg8E=\r\n=Bnbm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.36.0_1656946610758_0.2494120920173155"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.37.0":{"name":"@pankod/refine-mui","version":"3.37.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.36.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.37.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-2/Q2UxH3ns/WNSEOZGCej7nY/Eo09eUVa7Puphx+aDxh2UNpn9OU90KPP2ZGg2Eh6fHyWq3T1oPw2ebQplLoLA==","shasum":"7e0990edff3c828824e128540466cb65f3e35699","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.37.0.tgz","fileCount":107,"unpackedSize":1489168,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2bgoicS7HniaEf4w7hSme3RFaKiyooH1/DB9rkHJpsAiEAwteX11YB4L9Yuqj28Yl0wxhuTPafB4FlwNaU247lW/E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwwWEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpllg/+PvAI3DwLCZcs3rMaLHybB9NJzgI3wwGrMXejAVkb+sgJKHj0\r\nVWfZ9D953kMRvH1/OEmWuxQnSyMoI2dc+mkE2B+NC/B9MRUfNaSDORcYlpaP\r\nYZ1FOQXs6DGVRfwhffIXLIg/tczLrIGGsimBvfKrIrcxM83UDZlCdz+kwmAx\r\nuaP/2TE7ChL0nPe3sjrpM8y44n3MEE9stdnxF0bvqXNW4/HAZqw0jrA6Vvml\r\nnMGacWDHnq6tPsajwymUIjbP/AAXrI2M9lA5hv4ebx5zPr2lIvY5GpgfFBIl\r\nl+u1XOlio7IR75RdqaY37uZOqtp5HEukuFI2im4isu9+ITZQg+rFofsSfEMI\r\nVZrPX44v/8P7/iWPERx9oQOSTar07XPVRYJvZMT7dVJi0OWqpMByiEFFFlWG\r\n9057As6mzJe0FRW6KWGCH1iTk04FLYNSFPyPxZOV5OtU1ZCUNoVmvPNIdnJ/\r\nD/hEROJzEuucyg4/Vr7Ub6FdXoUa4zNcgHPH74RdlL+FXYpEu6DsSZZa8QMI\r\nxKWmvDQ1/sD9G28ImdbVy+DeTRJc60Lt1Z5QawrAbU9uXUOGUiBDM8uFzwlq\r\naaSpxv7FLuIwjmag1BBNeKiKOjoLaaVJTlfJXyedZfx3tcyFCefYil9SsvgH\r\nkkRmj7mqPNDBhHqWce9st5GdQcHwkYz123U=\r\n=vsG+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.37.0_1656948100162_0.9760075057770721"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.37.1":{"name":"@pankod/refine-mui","version":"3.37.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.37.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.37.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-bac1N3rblV+Z4xJc9G7xLoTsDKWSqQQJ0LbLaQhsHtvbDhjahkG5qPFglelrAZESLGh/IMdJLv3E7u613TxLOw==","shasum":"fdaf1839ad3c8dd97b1d26944f38f71417d38a6a","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.37.1.tgz","fileCount":107,"unpackedSize":1492527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICRZquQXSy9/Bu7jFUUv/bNYSQ/l/+Z5uWeemlyHN2k6AiEAtCgwGWeiyLvWPy91MZUG5eb3feOXtzQ6QpajLSdXS2Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixWzvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTVQ/+O4Gr1tZPcFci7dOkgKcNDxqiMjJpEW/yE9zGta3fAM6198dE\r\nJHYoPt2sWKkQkPLhrSP2MEgnzYaa/2C0pV58byQpnsiP+aB7wdJHeRGW2I6C\r\nznNFG0+zardeaQFZ28Nutt559H3kRWncDdDrgwkd6BTyE0HamzLhZnb9TxqF\r\ngdfqfjKUlUM2Wh2OJ+5rwvw7quDJRy7oUtD4x75sNZpZYQf7l2ptZ+nERcOW\r\nE8WhYZVFBrlOTEcAOWx9aF8dRAT1nBi1WkTSvYludM6wyIQfB6A2MG6dXUMP\r\nM1bTsFblhgJ1Go0cackyS9u1akvTpUrVf/sLQ5fIw+N70pqBezG6J1VijBgK\r\nNDrjNQzuqZa/j+wFovtJwtNeTBA6nWWogYsbXHWQakZY4hU8ye9SxqmTk2Xe\r\nR0PIY1ZsnSgvQK8/Ly3NRSF7qxTBo0LrjYvZDP3DS6yIr9d+T7jGF3ugnBnW\r\n6Dolqaa1++RBDsKQhzIvRkX6DjGRIj/ibP9/Ct6z2LvgeKLb/55dEiC+bckP\r\n3+qJw4AG/dTvSBDJLYpH2K1HsGehg9/jBOJW+wLDH9V1IIgJUItTh1FAx4vS\r\nl796SyfckdOsDnLFwhKAAMhrsPM3iG+8YjAmyGdHzGZrW06QbS5Fl44qRuUk\r\nIin5U4momJ1EpBbhk0e739imGV80E2QL0PE=\r\n=gF3T\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.37.1_1657105647283_0.7705650477018589"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.37.2":{"name":"@pankod/refine-mui","version":"3.37.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2"},"devDependencies":{"@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-core":"^3.38.0","@pankod/refine-react-hook-form":"^3.27.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.37.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-YlszM6ZGIF/EOr09QS16tM7M3Lr2BGgxylLxqfJo/8s+Fq83u+6XJXGPWbMyCjlCFMNGMxb0w++QVcRqUDajzg==","shasum":"2faa95e489c5fe53cef04e3076e7ed1d57ecbb03","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.37.2.tgz","fileCount":107,"unpackedSize":1492751,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaJ8ugPMLcsMD2Iz/kG7TdPX3qNsyiz0kbidfasBfigAIhALKh7wP2TtrejcD0kQNGERPLQVjF64jFmFq9UCvnpLRh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixXoNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpqbg/+KClnwoykE1DgvQuszl71lD91TYm9ioJ/F0oOJZuxJ3dmTpV9\r\nV81JR5/nm+iNZ396lwJWiMnS7nH2cFXy000bgYWfo5o69uDxs7rqfyXW34rf\r\nZ9ecs9b9WWTD5Z/skEg6vjFTYd999omjXCzjKPT+yaqokXf9csfL/d80MSeF\r\nQ5bHMCiDygEzIHlpBeiTKy4iCdCWWcBYtja6zbyEcoH1+esMtCFiufh04N8W\r\n8po+CJZ6CwfqpPBJbcfra6OaOKvKb6KpYW0JVIk5P6J3hv7ZxF5MUJkzYGe0\r\n4R07Q3IYw6YuvqYucmCLNxeMiMMiYG6qmsXf9QoUgyfhwsPSrY8G1GglL2X5\r\niki98oaKGg0ZXQ1UEtDPsMZupGF/2j9uqKqvtdUYwoGBH+LJrN4LurtxrSwO\r\n1w8U1nZ1JC19DYAG+6xyaNJA9vxBRD0PXBbzKsT1mCYQyiiToGif0hFhTZ/L\r\nnr0XupG281v6sOBygOf+nmeBc0KVGfQCjvZ1803THmkS/jEoxe4mPh6c+XxK\r\nDa7kEMKMQnWt/vjBcJvfF4ACg0t3eKzh+cMiwu36NoUG4zcLQ7p3V7wIZpEb\r\nPyDtJMl9kkwmdgMU2t4Z0uKed7cMERfP5gkmmtdO6qSTbDdG0mCzMNu1/U4H\r\n+3Iy6PYUFE8albnsUEJVfjPaScP8N66EgB8=\r\n=krSU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.37.2_1657109005318_0.9357991478460472"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.38.0":{"name":"@pankod/refine-mui","version":"3.38.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-core":"^3.47.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.28.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.38.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-eF8FBCtt1MZWEfkN0TRI9o4cTEQxaLNKwmwzHDUTi7EKRU7TGiBis4bZusk3624asD9xhnBno4NNoSI+sz2QvQ==","shasum":"867ab371802d42fecaed82b9cf4c683119271925","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.38.0.tgz","fileCount":107,"unpackedSize":1603793,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEI0CrvXGQswKO9SSNvpK2qZWHxzU1fPbRCdYAYxXHlLAiB3sP/EzT1T+2GXMRT2CbyG43SOZT3FORCnc8c6gb6LQg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3+p7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUuQ//eVdzSQ+5x3777kHWTXQKf0nrF/bAEMJ/3iwQRZpYyd9HK/PZ\r\nNnQZ0DLWjgWit1h2a2hrhU10vsti7L5cjxpvxVDE0KCMdzBaIP1sBshIgXol\r\noktv7RSyWDK5GMO0EJeGfHxpPKX21AqyqEpvQ3oAt/8mhVGKV0Nb3HgREwy7\r\nmWjuujuquUfn/d62lvgyAiJScrsU1CjEwyd7sTc6ICa4eqhseI5n/KjK/JA7\r\nGbixXfDXbNBTgCOJyJdHRfi6dxDGa9MpMb1o10jzLSl+z7hrO+z4lKFBVTsj\r\njIBcT7qUeTMn7mZD/5cMq84TJgm6sZ3GWyxyd3gpyH1Jo3KV2eQzyTbjZvVn\r\nl5E6Fi7OWXqfkp5sV5+NNnyxldPbIaKGMlGzC7bAkJardWkrd8D4XdBsZ7/4\r\n0gc/MD5VQFjAQ61KpvB9iDRbYRFnvRwKIMiLW0Utv51csIwFg4gc93ytp3ZQ\r\nhfsQpSPGv2GRtdSWP1ZIAOqt+FbApTwnsiRMaShzGWCB2uEXDlqWyyiFLBb7\r\nduV2i97lwxiPaiyDz63cqg8me+l0wIRqHqVP2RnG3hWHtjh0VSWuVffAxyED\r\nPYJSODx5S1OeOYJkoZI/cwrMXpbyZ6Pt2DmW7VIjEZkDMCnHUKfzLtDyH9r3\r\nXbuEZ/SyLb/cTv6xP2WRhKpD5HSCrlAtP4k=\r\n=YWMV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.38.0_1658841723001_0.17631952889715197"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.39.0":{"name":"@pankod/refine-mui","version":"3.39.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-core":"^3.48.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.29.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.39.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-7+m/zP1Eo5cLXZDJCEO6ouCQIaHjmgClFHI2dMZBEg0l/1GYZnWF+d+jgG2EyMbgvJ3XSOZoSJFnzyZJIL54dw==","shasum":"0fa695263375471ad832db49e40c53045c68ebd1","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.39.0.tgz","fileCount":107,"unpackedSize":1604334,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYHdZlNgWkRIaHhk0sYtxxI5yanc4g7VoHTWuc+5G1MAiEAlb9yIkW/HHkMRqZmZbCsyxHsiMgj3iKwwQpDFZm2sMY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3/B7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0gRAAgEm1ntX8Mdj1vfRmDPUDY8S7EwLZ2oIH4WI3YtK4KmjS0tFS\r\no1XN1J4hcH7OuRPXm566ej/skzSBK9x5lzwfWt4WSW1eSztx+TAFsCTt6OrM\r\ntTVthgRYSUV6SedAbSQSNaoxywHl+N3jx9KakjtrZDIwKd36Qso8GbBZMjnI\r\n/KpDVug6GwRLk99e6dlPPbWruaObuWrOFpkNly5TXQiX21C7P4CGsHmumfPT\r\n54/BdXe88rtzxQIa5rS38+UBWjHbvHWYKu0UuOqbNO8dB3ZFMRepMpJl+10Q\r\nKQ6ELCMYwOq+2qzAlWwTGFNx7MDd4Gx7nsMcd530M/QOSoGT/EXjpCQqfmu1\r\n4Cic3byEsbd+7i2E0jKdskWkkxo3P6MFTNNgmI0/VoL4fAlQrLeMJpPKiuM3\r\nCDmUlDaoK8Avc5BpMEWeKW/rNZ8vf5FG7jf7SMYds3EE1yHmQu9H5THgoMs5\r\n+fXkVUY3qqo9hSPFenaE7BwF/DMSxxzvuH/9FqOFzT9ULXg9djOwo8RS4A8H\r\n+tOuYqNXny2NyuvbIe6vuLx3E5d061nxFJgoah4EaLTzi2/rFZAC0++N8vMo\r\ne8EfB4BIY/epQrf0XqqATjPQXtdxcDxJqQGe+Jl/T/llzLpj0IEc9uGyGg5W\r\nibOPkLQuwaTYG4e6tzCdK/oqb06xt2UikdA=\r\n=X9cy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.39.0_1658843259187_0.24520187348695943"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.39.1":{"name":"@pankod/refine-mui","version":"3.39.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-core":"^3.49.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.29.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n\n## Special Thanks\n\n[React Admin](https://marmelab.com/react-admin/) has been a great source of ideas and inspiration for refine. Big thanks to friends at [Marmelab](https://marmelab.com) for the amazing work they are doing.\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.39.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-tDrdJiWD/mUs9AbF/do2olpbSa0IZZZNveaPo9/kGFO8qK8YJpFBCaWAoQ3amAcAooG4CimV4vp1eHoWH8szGg==","shasum":"e510393b6f6e9ff3f5f4ba45897a265f04a9ba70","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.39.1.tgz","fileCount":107,"unpackedSize":1606855,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHnETyU8y1G32xsTSMdxzOUDNMLyHeNuT61xG9Ey9MCFAiEAwLiH+ZQEKCR6tfm1a36KGB2VcQRlfmrheE/3dl1oav4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4QYJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfUBAAhNafnEzeXzAStTrbHuh5lsDtNrGkrR6EvuRG45mFX9IRxPnt\r\n/dhB+vZPSKTl/F41Q1b72q8UDMAXKpU7+qZoZ8liDDZlrbNsQOLQRBTs0WQC\r\nbE78idC30h86Fo4ZffT8BChXbYlG3Dhn4kLdwr62079kHkg+E1vgNvytVeSN\r\nc6Jeny6fgKI07TzKynevHa01vMYAkhhvNjdD8IC0e3Y5TeEWJEtjUgzD+CW3\r\nRwFw5pttPtc8Gt9hbe3bZbbhmvkKjBBnQOUXYOSKWZID7w1psSXgIZ9gPbYT\r\nT97hjhXDxen1gl5Enr1atVT1B9HIPFCZEAkycyc+CWvo2ANlGM4ir30gLWw7\r\nLE4qUKWiTCrwHle9lWu74RFihcwon1/YSwpQH8n2OaRl/UxHKtn/UXxAo9EB\r\nzNmdPQqzNXGavhB+G8xKh+bH2ruYNnQI9pqCU+NHP0Hsz9YsOgnkOjFGK/gb\r\nqy/RqHmooW4DusyxfsEB1o1N6rLrxSgFL8F6iQ/NTXtlAReLCnFlfI0Kos7h\r\nHNhARpf1VYt7ejrRGATeFF3Z/tPbgRJwYl5F4tYnX5wH5TbFkeP/dCx3UTgQ\r\nONZygImROA5rHRQmZXaY5jBIqed3TtDXkZSx4pANP54xPo32LdVPFa5NfBNn\r\n6Ucmtf3VUWy6MPcFjoZy4JN/HWIrD0FG4f0=\r\n=vM6j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.39.1_1658914313222_0.3909472955241564"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.39.2":{"name":"@pankod/refine-mui","version":"3.39.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^17.0.2","react-dom":"^17.0.2","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-core":"^3.50.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.12.0","@testing-library/react":"^11.2.6","@testing-library/react-hooks":"^5.0.3","@testing-library/user-event":"^12.8.3","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^17.0.4","@types/react-dom":"^17.0.4","@types/testing-library__jest-dom":"^5.9.5","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.4.3"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.29.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.39.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Qyn52lUvffjPSRKa3ufwxtOfmSFPUIbHkysja81H1x0Lve+mRdovXs33elegyGBylQb1h0XzsUZGhK67OJzFWQ==","shasum":"1502ff1653aaa12962d4421bb7a34b6a99b750ab","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.39.2.tgz","fileCount":107,"unpackedSize":1606932,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFiB3x7R/4aEvs5KnOpmKmvqiSp0VIy8H/vPdcRBeBwgIgEFpxd07N2YcolAnQXfhqC3HoXq6WldL15j+CeW4EDCM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4R0uACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6dA/+OQC/Z2ggzZPtTf39XpvDatpYemHFHcW89N9/k/aMWVY9dsvi\r\nMyElCRHd7i6lOvSSI9ghs4mpwXeBSDeNZ3wtzE9Vtczelolm7GN1VkZBn1Si\r\nVX2OXj/cqGR7PEHHxfI0LrMkUOIYzi0iB6XPS9aok7+mLz2nGwNGDH12D2d/\r\nVq4KRnhe2Z0ri4CUwsKd+0s2FolwwZ96h/coS3k+gfHQGM7sDlHy8BcrnRRB\r\nJSdRll4fIV7Bc0V5+8ggIqLYvqIYisduVX/hi25X2YC33rIyrq4RQHEZIpsZ\r\nN7RKqzYWgRBcrwbVW8P1428jdfXASKKc+QjnjWDXhYZIiTkpkzG04GTI90gZ\r\nVPhg190cpRSHZnNodjEj3KBJuJr24lh2Y4V5tcg+61hEqbMrUn6zZ6tT2dvg\r\n8om69z+etQjva5IZgYvGM7TyaYEC7x6M5ah07T+4liWIqALy5KqeS1kcixr2\r\nSCdjuvY4PcAkCy2Mx+4hKwpdiusY9pUCngbWDcrtkMIIULGm0aIl9KBOcyUC\r\nafyJidcytWqQZ1BH4D9q4yLzioXOv+v6z3IJKOPvLFkHKJ9ZLbj2UvBbOuKW\r\nwF3g5gVUYNnL6cOLvv4fK3sDNlnC8eZ3za2Lrs/23negTekGPcxs2W48k8Bf\r\nyHFfRYQeWLtKRTB3HuTgJpqKlFNjhWU4bFA=\r\n=3w7P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.39.2_1658920237985_0.7708772210998729"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.40.0":{"name":"@pankod/refine-mui","version":"3.40.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-core":"^3.55.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.30.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.40.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-GZWFK3ROI9KpM/ikvLEe2Y3FL4n31wCl+m4bqchRU3IS7qTdlCtsFk6AT5/rIu+YNJo0jB94xNX8acZzmgp1AA==","shasum":"dcee3a95fd07f8ad05235784e55e15d9b4a21b97","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.40.0.tgz","fileCount":107,"unpackedSize":1613520,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiZJuKjBc0vOfYlfx8YFEfT0wcVw7UvZE/9of2Wkhx+wIgRydCuDYdc8cugzr3nEnYZcaM/iJlWg8S4qy9Zh5GC/c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi52xeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpAoA//c0dM6UQqUan/etjMdvZ8b5n2BafT/97u/yDPN+JfU12zZmwu\r\n+W3JvpkVswd7To5HdDnDZSJQiVPRiFkNjMkcKHzqOsVwqyV0DSMvYSDOi7eY\r\nVwa20EWh1zCQWIEPsdcEQMC1/o8f6tG1J7/xfktkoOqpsqj1K2tNKLRQ8NQa\r\nsj+871Yt6T8LaJVZrOtTkgNKRbIroysm7SzI3nKvpMQvTUxzwfRFpB121JAH\r\n3Q5HHEzQL72A43AWJp2WNQ/2Lw46rqgl8CnfTkKBKYEcRfFK0vc7RJiU94n4\r\nYzgC2PuLMKL59sQn7QOIGFhi6OMycYqK2D7INqOTCevg/iV1FOmauGs0WzkG\r\nn5MxqU+doiLq3W+fREkgA5QfsG0hXrdC44wf/u7AvzyXYV0YCJ9v6cdWSifU\r\nWpYEXM+2n9t75q7G9DPh+Q6U4O/TGl+2kKyUXw+hsBKXVeoSBzBTWo1W04Io\r\n3dEbRHJHtcLo2PwnGrzTUF8hrYEd3KR4Xc9zf6L1r44lPypLRcgQOvNJj6vL\r\n470NUzYcBRGaMtizj9XtxZLrSEEi7R7djdr3gwHksZl33JEdgssKMQXIRgJa\r\nX/bPOafzPYihocz84vSq3RBATgrM0lhQ4AcZUjYrEQhMLMPXaVDqkPvmXWrG\r\nqq+KsAxIEJ9/4wKRKETHbAe4YmV7b6qJpIA=\r\n=+RuG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.40.0_1659333726292_0.4745814505353809"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.0":{"name":"@pankod/refine-mui","version":"3.41.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-core":"^3.56.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-V8HlrBV1ZjYSkYeVKSTSpvGUHBL6Wjj+BWbEN1hGhl7AC+mjn9y37Ah8AaZncD5zLCitt0A+/42BTDAtptUqDA==","shasum":"3812d8cddcd6513d86cfe0eee54226a9d632803d","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.0.tgz","fileCount":107,"unpackedSize":1613676,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdXRnyNmPOd6eiL8VOfsMkXneriFwOuWcpzJ4Hl0B3aAIgBtFTqLZ5tmkcgB90Ts1G0BHew1DOVXwchDinnZWJLvw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi54ZgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq58Q//VZYoytUhqbzrgqmx50ww5Ps9cvzlKW4IJe38LW04wmWC+525\r\n2AwRuzu5bxtp1KJX/m3ip8Rv04iotk8jrKikurX4AX4gWyd/T2AYkV+bZvB8\r\nFVn9WQ+N9MN6t9d5QXYT5ys2pGIuQyK9Ot1Pl6bdWLd6Gpso5zEOlFT3Cwd1\r\ncutLmI77IqjxnPHMYQ1qA/8+k94jgkEGdOeNm0YmnDyDTWQqFQ4Y2UDGqWZI\r\nXlj0OrxkGA4bFG8m2acGnqUtY3qZ5YuJzhBgvZcgQpNj7w7WG6BFekQO4amB\r\nC1j9y7IL/ZYWc+fouDyyG92VYhMYEflM0HEEzwe2Te2tyYgqXkTA/PtEo03v\r\nTTtpJORko/Hp1oeAiJisYMlBWp3jdkk3qAcumdqTqWSGodHpcm0PSzmB/Ksc\r\n2467VnOVADmLz05xtXRSht/juzUxe2bVKTyqIq1qhvHZsEe1KnGFCXT9iCNG\r\n3pL0mDSz6upYR92J79jnVl9sXe7mYpYAy+ddcjDqTvTAooDPp+vKbd/GzDbp\r\nFUlpvfHsriF9gZlirgTOb5BVy3Me7Kiw15JrHuCLLwbwny351AwRdbUAu2kT\r\nwUplzN5YYbxsinzNVM2oP4apLSgFDApwpaq2DiFu3bl5HWT5UC+y8oWFSEM7\r\noOCXP8bg4um3mFBref/6XuCx5avIgIM2tRI=\r\n=3H8N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.0_1659340384602_0.3756504823053981"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.1":{"name":"@pankod/refine-mui","version":"3.41.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-ui-tests":"^0.2.0","@pankod/refine-core":"^3.56.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.2.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-ESUtUrw/ydEujtlV4H0jGserRPRq7oBum7uWdCArOVxvInvO1AH+aRm9V3LpjZLobVO018TMFpF1fsE45jvjRA==","shasum":"763e9ecb67d0342840952a0db5cbc9d2c9dc2e97","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.1.tgz","fileCount":106,"unpackedSize":1581798,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAg8TVjP1tiOkBdVyhJEBp+29JTmAQfQhPBU1lCCeGbpAiBt3A976pqXWXRyx3hTPRmI8x5Ik4WCN+R7yWEHf89d1Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6406ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWghAAi8flCUNSWgO7zkKBupFgc0aSp0OqdvlzgpYQlzKR92zWjqpe\r\n6Sr1+nTcgPIjRziFZ7VPlld8wNvSAEK97zIwl6nDNoErdSayf8iV/kW8zgRs\r\nuKhfS0OheQh+lXaNNShMlSi2M2ahbRKz+pBJuBhE7Pbaoj2e08ZLeV4c7Gu/\r\noG8uqEXTAEh3QjYpdaBXZhjfDuzIBfnwZRYXjR0dtspVrz7TTC12Fezniv3C\r\np+f1ECyrwaOiMqqbgX6+xAgmj7fEddxVVo8fUQQW7sJlSTuzDAkeXHYNhoXT\r\nA7F7IHNPqpdHyC0eeHTmxH5SlET4ZP/7+yQ4j2B0ecHm5fzsI6qgeiNrIdn3\r\nMLJ7JWQ3z7Ng+LJ5C7WKjATUHW03LY32e9k/+x6gSMjC7VkpBwHOIV0Hv2R4\r\n9veZ51IQcWibE2cg1VkJ/ZRJfCAV+E0e0eZX4M5nLByabAWIRXsGv1ZmYqz/\r\nz7vkDFFRrXM35UQ/4U6ddJ9I+e4NlLjDNMpLPBnpW8ZTuHGAcMt0zmPrP5/O\r\nQwj6biZuXzZ68OcXwo15nVS/FG7af2k8Nl04L9u1PmXNSZUoJ9d2wk8o1biH\r\n4eIChGhoZpPUqf+3FLmWMmAHUy9UodDJX5qnlmO0qZaCNpviiTsve50/2ZkQ\r\nVgU9ZGdkqNatvg/HKv4tRLSc6apEgPyvAPs=\r\n=mXZE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.1_1659604282527_0.9679780144780081"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.2":{"name":"@pankod/refine-mui","version":"3.41.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.0","@pankod/refine-core":"^3.56.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.0","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","react-query":"^3.19.2","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-EVAaSgK6J5gBm3drO5UAOcvzDUhhSAOM1ZJWIaDMt0QQUf4BZ8oPUsoL7fRAWT5DZMqtQ+ZJz0U3lq8co4sunA==","shasum":"9bd56bf1435ca3d9e2c8d844c72e3f0f4ca7579f","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.2.tgz","fileCount":106,"unpackedSize":1582550,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4sqhPiTcUksma9lMtkZRwCNZ66otFC7tu42xEFrO/PgIgIDJu8+83nFkvKh+G+Y0QbPHJG+1PQVYdYY0vTJdj99E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi68MHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqlpw//S8greowyvAOTcBw46vEaPOPcOFoXgiycKgwxrCbn/Ea953GA\r\naTQUauUip0Gl5yea/Fzd2cZVudUfR2bGZSLwESBbN1aFukwP9CJdUkGZNrzj\r\nx2kzE5idTCwi3V2JwRCu34p/sClN6Zcj3gKqU2kFGafsUfRDojHestiEG0zB\r\nGqOTRVxm/pbAaNX/l3h0J7nrGqd7TF/wfOxbDu8KUNwUayP97BFPXMLtEVRV\r\nr3Ck6lwV3H6tDnKs0RKIPVEamkjOpOMG4a0r7OM9QpQw4qgQHaam3nbmnVrH\r\nXu3Q/q2EZi8lRSS/+HOpJf04VoLXbzvvNzUbMSd4N7/ph4c3cZNKeSeuUqsB\r\nklqYPXQVPAQPB/F4RzyuFqp+hA0qrLwCeU36amF21XV+VioMe9SrzC2eMc86\r\nR4LvTydB6pdcHY+Wg3GWLA/8xp6Z4+bbKOHNCnulWGimrKqS40lAKYAt8Mkn\r\nl6sfE1G/5oUO8MqJsXa5dQ5FCYVIrY4o3Ql+gP6jsJ90PZL1dtvSoQNjMzl/\r\nyV6qnUwU4zDANnTSP6BuLT+MVdPxXCE8LPy57U9KzUUBrVJlfgv8kz+Q8xMx\r\n3MKYQ05oX9NZdhPlgDo7VcutjA9FUhwtbBVJJDrTDlmQvv0AXg46ZSbcyKKP\r\nQLZAQ6+I8bYtzpflR1ygk0hm8pjS8y5vgAY=\r\n=GbVA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.2_1659618055643_0.46412662332714105"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.3":{"name":"@pankod/refine-mui","version":"3.41.3","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.1","@pankod/refine-core":"^3.56.5","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.1","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-1TNZNMILj4PYTViPEZ7OacZf7Bu5hnOYtgulFsA9YxRTEXI95pB3UCmiO7sQx0ivFeqoxqyVpFPzTwR1ZpyqiQ==","shasum":"7b04b647d4ab35edac55794dc0b360ed2ecaf129","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.3.tgz","fileCount":106,"unpackedSize":1587695,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCEMRyM+iKa/8qaiOgWHk70+YsihO8OZez61IDutrc0wIgRY3jslBiCGYwu4lb378c7ozzOeYzPzHPNwdBx7LfkUI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7QcyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+Tw/9E+nQViw7YRW9S9yOJyfNCcm5iRqDuL/q6ORXgkF0r7jNWtO9\r\ngWWiz2K5ATKFmLtMmezB5+sQY3BFSKNDdLUbTkkwliEy3QMb6gdGfN2z9ZK+\r\n8uEfyjFyXSP9bH6zwGpRVDTyB1VrXRM76MPMfwUkIrFxb+5uTsg5yP6uDhKz\r\nOADRwweRmZCcfoNt171ISkdDl+Tx+osZnekWghlYJOk/rCp3m4ZafQOXk+sD\r\nMAABinylu7hVT+pD3mdde4Sy/rzCKY42248aXqGaFKxQC6Tcmglaz0YLjjzl\r\nlUBSBbZJKtCrAktvwpTsghAgWLwd85txxm2wDsslsUzSot5z/LsqtU1GIbZc\r\n+SyTER2JafW5iR7LweC/12UCFw1nTysNROsDGDko5nFWIDxx3+zOmhBseyxN\r\no8Vt2ePDiKLQMye5B2RSOC0MCaQDbUiucXft7ZUXy9FVO6pdE1Nc7mF2qAxj\r\nklCzYikTlg2WDWTQ2CJoIC+khRO4SgL8Kd+iK5sEIb91xDvjCTAwMJawMRhI\r\n/TVW9sgDLGehiWve0sFryBWDvq/RTV+rkgRMzXaryuE3vPn0NgEEKIcYwDA5\r\nZq+oKprnuAIqNlmmlIvvC63tpGcm6i6Ia/1vjMl/8iUhJxZW408K7jQqRnOe\r\n+BsIkOn/a4ctv5smJXD87VqyvwEJCtsWLIo=\r\n=utL9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.3_1659701042174_0.4730294811167699"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.4":{"name":"@pankod/refine-mui","version":"3.41.4","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.56.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.4","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-7xHSTFowtTbBWjTEgAwSdmPktUea3/RWj1L3S2dXlLslItFogfwtzvNNIt2sE7pCMlpQ6QB2dp+pLCFSBOufVQ==","shasum":"397ff0e275c048b2fc27d39d04f447975cc14474","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.4.tgz","fileCount":106,"unpackedSize":1587843,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDg4GKCI0Y7vFPDedrdlkTZjWLd8CiIkUPk+UCXH7toMwIgJVQXM04m/XkDPopIxSVQe0uSw7CQ+6sb5DeE++x4aBI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8KlqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqWSBAAmZYo0//y8/judRioNBGSBrL/xUBGyoNsvgNkw2uFJcDDca44\r\nojGUyMCYmR879S0Gj7Vzd7njPopDVDyaQ5Ut6bciv8YDas0GO5QKsxDc4Lzc\r\nUeMuocevlxrJ8Cq3b68Dt9Mow+5OR3fEZCfzPTbWOBdaAKelrn7MeGeDIrNo\r\nNeBJAa07OAh+NIibsiv055a/CRhpMOvFKg7Jvfnjp5yj580ONU+1bMQFYSJB\r\n8fbJj81QrqFthAxtXIBZ2zlpFXL1p2Wy+UH7nd0rnlmUaaCCutog/IdzCbZ8\r\nxIFKL4T7OmlxZjbngwsnH8Vn1mgME0CQgH+4TktsW/cepUuKIQNz7vjtdzQ2\r\n/6He+cYgOrFNP0q5jUGV9D7PApn94xO2VLFg+kVa5gQ/vwYHHciZjRZb/kPM\r\nMZuUaLKxP2X8pdATFTi8L8qz7803XuzitNT4lVQJxHyhcsBg5DtRuaEnq0pv\r\ncdAJAgTfPBopDWpD+N526DiSjioqXhULD+2apbgWfe+o8TTIIHfa/WXMDuBM\r\nvKApTMpLU1PrFL/en/ncGX+HWXMQBWB2mmaRw1ZT7zyIt6wWTZSZhoGtjY4V\r\n3+lNrBWFpFUKBw62IqdNBBXZg5VlJSLBJMh9BYw512y/ZxCywF+FXA5lBnRH\r\n9SL1SaRocttc17ueaGgYFEWNMiNDOtRvw58=\r\n=SLAC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.4_1659939178611_0.5653952655624914"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.5":{"name":"@pankod/refine-mui","version":"3.41.5","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.56.10","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.5","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-w8Lmis3Fxo+PJXxjvl4tNdh3+EIeat4b24a3UeyGq7rABAWAm5O6G1Ogjdez/XkqcJXN6mOrNgcuxFUo/ybGCw==","shasum":"047e9d904c40b663ed06301dc4632bdd73e98cf7","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.5.tgz","fileCount":106,"unpackedSize":1591101,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBI3/zU3NL6FJ8IoRCeJUbKNcEI6Evx01YQ7hhgo7dNOAiEAlmhfKwYB4K/nW1qemSv/CuzTB+r9PiRI//1TOp/6Mzc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8kvXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCkxAAkRbf5nF+QgHSAF+7KiGVpEVsTiBJ0PBt26cwDr97GR6FqRgx\r\nbUzh+xeY6eAk9tbzAClHUYbSr/55kNd2dwFtAs6U4/6n/wKZR74lmJiLRMO9\r\nct1yjOfRM7f3SLVOaROjT62WBA9q5mkao74bsrIvp7Tzc3FvbDOHjJ959JBt\r\nf3InY6Hrmifxm2D+KbSgaGglOyT6wyxlZd1Kmhna0Boun78KjOa8xyBfeU8Z\r\nmPuQk3gUNC2AUIxOV01eNZmwe9e15WKJ6j/Q2hvJanrxQhR5YHZQTw7InD6X\r\nSUC8Zn7OzVo+JjYYaP8L6kR7nUmc9MNrVYYvh/3A0gZvXXwPlZK/racMFw6F\r\np3T1SdVAVmB73R9SrQXIzZ/du1GvZ/vaJbJt0gPBC6BSR+7ug6F257J7JVnw\r\nLfRHOits2VnUPXFTORPTXRPAW2OtiJnyxNtu67i53FJ+q7nEVWWdkipNqmwz\r\nxT1hU8Ahcv/0TzTEL1P2OMyHV4NfhWSrDkPaXKuH6gXPXBgUsYx2x6g8paRO\r\nsyNbS/CVRAZZGbhVf7pLZXleuuofsYabxaay5XIEWunPgh5ScZo0Cqm9IomA\r\nAvJOlp6HHI9gy6NR5dMepPmKMnuiQ7K1BqsVnyfpdOnmI/DsBTfN0s6/j/AV\r\n6tUG13XRSmRbyqjT0sdiK5Ebr10KoMwow78=\r\n=a//u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.5_1660046294885_0.8898712349510058"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.6":{"name":"@pankod/refine-mui","version":"3.41.6","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@pankod/refine-core":"^3.23.2"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.56.11","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.6","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-1zna7rOt/OGhtaFjjsSvwZ6Fw1vI+BF5nLS5SKDSJKRXo7Zs46mZSYHxFjNlcxOuEhwHrewStdAdsmVk97QMMw==","shasum":"0c1ab8a6d3fb803541454eff2a27c4269a667a7d","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.6.tgz","fileCount":106,"unpackedSize":1591187,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzWFeKLFH1HFPtsKgdiZtJHjuFIOLjI2VWSaxfw5kvYgIgOy3Iat3AYMfgdicLSe3IlrMxH8eGiTrtsDkJkzsQSPk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8lOHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQ4A/9FEsLhUJQREe65f953G5U2N0qeocFstaMoXBhA9fM6bBnG7mR\r\ngHdKmmY7ICAQFK/ll1J6IY746GpTYuMCWSnENVIy3Va/StJTZOGSiUyG/Bwf\r\n5CeIUlB4wp18el6xVtxWoF+JqKp1seeA7vXN7Au7AybrGiRdr7z5R2WIU3BV\r\nmVxL8K39xQVyXnHav1VLkD9mzZ2NDcCs9OzPY1V+UNWWGMQvM7BL9qSFvdSJ\r\n9CwPgTJpLb6vMPGc+RTJlhvo40tuxiDivVVnivChUNOQ7WXqTsmVIf3c53hQ\r\nxbw26HU9sofFjy/SU+A0v2OhRaJfuqCrvmK1NEHWkQCRQPWItn0jlZVik6bP\r\nOPD2vCWNimkWW0Ar4SqJV7ssatmh0YtKpdZa/GCkgM56RH929nBN3vNonXfG\r\nfiBuTU0Bwqj0rz6y4NpQZkW3HoxsyDy7t7eTPHjASndU5WXXIRDsuSLt/I5j\r\nf9b6WuyQwupuQ2/oq2nE0oqyOBMH8476lcgcMe0FFAQ7jBxOAL+E09f7bKZI\r\nh1WNzQz8aimifvJ4uSpZ+CU4jt9jLzknh7Oerl6YVz/REVoxAJHqNWOsyH3I\r\nkiz6q9e5qItbb4/9fto7mbdBWxRZkQDa5MEyraMkcyFB2qwdVyud99XteO6e\r\niR8lTcarP64J9ktxnRbMPlFp0Ip/eMaqOpw=\r\n=zr5y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.6_1660048263298_0.7567165270480438"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.7":{"name":"@pankod/refine-mui","version":"3.41.7","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.56.11","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/UuU3XCc3J5\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>refine</strong> is a <a href=\"https://reactjs.org/\">React</a>-based framework for building internal tools, rapidly. ✨ It ships with <a href=\"https://ant.design/\">Ant Design System</a>, an enterprise-level UI toolkit.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/UuU3XCc3J5)\n![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-antd)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n\n\n</div>\n\n<div align=\"center\">\n  <sub>Created by <a href=\"https://www.pankod.com\">Pankod</a></sub>\n</div>\n\n## About\n\n[**refine**](https://refine.dev/) offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## Documentation\n\nFor more detailed information and usage, refer to the [refine documentation](https://refine.dev/docs/).\n\n## What is refine?\n\n**refine** is a [React](https://reactjs.org/)-based framework for building internal tools, rapidly. :sparkles: It ships with [Ant Design System](https://ant.design/), an enterprise-level UI toolkit.\n\nRefine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to _admin panels_, _B2B applications_ and _dashboards_.\n\n## What is a \"headless\" Framework?\n**refine** is a **headless** React framework, which means all out-of-the-box features(**Routing**, **Networking**, **Authentication**, **Authorization**, **State Management**, **Realtime**, **i18n**, etc.), it can be used without being tied to any UI elements or framework. Also, Ant Design as out-of-the-box is supported.\n\n- Customization & Extensibility -  UI is a completely customizable area and each developer uses different solutions. **refine** features does not restrict or interfere with your UI structure. **refine** allows the you to design and customizable the UI based on their unique use case.\n\n- Separation of Concerns - **refine** as a framework, is not responsible for your UI and is independent.\n\n- Maintenance - By removing the API surface to support every UI use case, **refine** easy to use and update/maintain is simple.\n\n###\n\n## Key features\n\n🔥 **Headless** : Works with any UI framework\n\n⚙️ **Zero-configuration**: One-line setup with [superplate](https://github.com/pankod/superplate). It takes less than a minute to start a project.\n\n📦 **Out-of-the-box** : Routing, networking, authentication, state management, i18n and UI.\n\n🔌 **Backend Agnostic** : Connects to any custom backend. Built-in support for [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic).\n\n📝 **Native Typescript Core** : You can always opt out for plain JavaScript.\n\n🐜 **Enterprise UI** : Works seamlessly with Ant Design System. (Support for multiple UI frameworks is on the Roadmap)\n\n📝 **Boilerplate-free Code** : Keeps your codebase clean and readable.\n\n## Motivation\n\nHigher-level frontend frameworks can save you a lot time, but they typically offer you a trade-off between speed and flexibility.\n\nAfter many years of experience in developing B2B frontend applications and working with popular frameworks, we came up with a new approach to tackle this dilemma. This is how **refine** is born.\n\n**refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your UI components and business logic, so they never keep you from customizing your UI or coding your own flow.\n\nAs **refine** is totally _unopinionated_ about UI and logic, it's strongly _opinionated_ about three parts of your application:\n\n1. **API Networking**\n2. **State Management**\n3. **Authentication & Authorization**\n\nWe believe, these are the most important components of a data-intensive frontend application and should be handled in a robust way by leveraging industry best practices.\n\n**refine** guarantees you a perfect implementation of these building blocks in your project, so you can focus on your development.\n\n## Architecture\n\n**refine** makes extensive use of [hooks](https://reactjs.org/docs/hooks-reference.html#gatsby-focus-wrapper) as a default way for interacting with your components.\nUnder the hood, **refine** relies heavily to [React Query](https://react-query.tanstack.com/) for data handling, caching and state management.\nAccess to external sources and API's happen via providers which are basically plug-in type components for extendibility.\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/refine_architecture.png\" width=\"400px\" />\n</div>\n\n## Benchmark\n\nAfter releasing the first internal versions, we had the chance to migrate some of our _React_ projects to **refine**.\nIn addition to **shorter development** times and **overall performance gains**, we've measured significant reduction in project size.\n\n**refine** makes your codebase significantly smaller, by eliminating redundant code such as _reducers_, _actions_ and _unit tests_. Below is a size comparison for an example project:\n\n<br/>\n\n<div align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/pankod/refine/master/documentation/static/img/getting-started/benchmark.png\" width=\"400px\" align=\"center\" />\n</div>\n\n## Quick Start\n\nRun the **superplate** tool with the following command:\n\n```\nnpx superplate-cli -p refine-react tutorial\n```\n\nFollow the _CLI wizard_ to select options and start creating your project.\n\nAfter setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000).\n\nReplace the contents of `App.tsx` with the following code:\n\n```tsx title=\"App.tsx\"\nimport React from \"react\";\nimport { Refine, useOne } from \"@pankod/refine-core\";\nimport {\n    Layout,\n    ErrorComponent,\n    LightTheme,\n    ThemeProvider,\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n} from \"@pankod/refine-mui\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nconst App: React.FC = () => {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: \"auto\" } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    routerProvider={routerProvider}\n                    dataProvider={dataProvider(\n                        \"https://api.fake-rest.refine.dev\",\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    catchAll={<ErrorComponent />}\n                    resources={[{ name: \"posts\", list: PostList }]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const getOne = React.useCallback(useOne, []);\n    const columns = React.useMemo<GridColumns<IPost>>(\n        () => [\n            {\n                field: \"id\",\n                headerName: \"ID\",\n                type: \"number\",\n                width: 50,\n            },\n            { field: \"title\", headerName: \"Title\", minWidth: 400, flex: 1 },\n            {\n                field: \"category.id\",\n                headerName: \"Category\",\n                type: \"number\",\n                headerAlign: \"left\",\n                align: \"left\",\n                minWidth: 250,\n                flex: 0.5,\n                valueGetter: ({ row }) => {\n                    const { data } = getOne<ICategory>({\n                        resource: \"categories\",\n                        id: row.category.id,\n                    });\n                    return data?.data.title;\n                },\n            },\n            { field: \"status\", headerName: \"Status\", minWidth: 120, flex: 0.3 },\n            {\n                field: \"actions\",\n                headerName: \"Actions\",\n                renderCell: function render({ row }) {\n                    return <EditButton hideText recordItemId={row.id} />;\n                },\n                align: \"center\",\n                headerAlign: \"center\",\n                minWidth: 80,\n            },\n        ],\n        [getOne],\n    );\n\n    const { dataGridProps } = useDataGrid<IPost>({\n        columns,\n    });\n\n    return (\n        <List>\n            <DataGrid {...dataGridProps} autoHeight />\n        </List>\n    );\n};\n\nexport default App;\n```\n\n```tsx title=\"interfaces.d.ts\"\ninterface IPost {\n    title: string;\n    createdAt: string;\n    category: { id: number };\n}\n\ninterface ICategory {\n    id: number;\n    title: string;\n}\n```\n\n## Roadmap\nYou can find Refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.7","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-oAeS91gM7e0Zi0jc6Gogn9XGBBDjs52w1Fv04rM8eYt5J90QRjC1n/TyT0L3Zh472/l10ynnTlt4C6TX75DXFQ==","shasum":"e818e80e8b447567385602e8cd92902654d2490a","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.7.tgz","fileCount":106,"unpackedSize":1591488,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGHFgG1p/CWJXX/LnDWSSs0pnpP0XRECjuq/c17NV0kDAiAgYmPaiPVNHL+XPPsQ9CalrXQRu/BPxaeQ6P20wEITkg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi84yDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRgA//Ws3Ll3OZaJpLMpkPC1/tRDbR5IRfAEWLvmisyvFW36at7YdJ\r\nGOBHdhr/MK4mrJ3Fm5cXOkQSlPLlpE/uVTW6lHnCzs8VE42RuL9hkReLnVdu\r\noEmojdhp/vvIvInhOdMKPu1C2KauduaOydh/Ax2QKNWdq/v8W+iBKMc6aDrl\r\nQ7En+SKwGuxbP3qMf+qV+Ze08Ut+Qp9MfZjjux1Ry6qsaRToFv8OmIBHdfRD\r\niwytTSS0uAd3oE9aO8evEBF6+pxLX8CQk6MeUBlk6PqkmBXD7jJOREGeX4Jt\r\njEadnv3zcOFMiXCk7sDkeHSFCvnh1LVhvoobWf3KeccI9yhb2Un8UTHbhAXi\r\nL/Opk2ftRY2TitL01Wxkovqyx29T1CkEou4I9jdeN+D/4Iul8nbOTJHTLIWu\r\njH+A4zuCgyukSqbNoV4Y2b6T7zxmR6JQsddVNEf4jMDDu/nkJYdaXk2oFW63\r\n3k/nXR+LGtsuSC/gT1vzv0uW2q2GeKVT9nJfnj+17C2QMidXEvMN+K9i4QBA\r\nJDH4glaLOOABRwFdkT8u3Wj9fkMgV4m+ZmwhEWZasBlC80ERJMG8o5+9BzMM\r\nfwhkSkrti5x+Lc1NVueguMyktQ567aeuV++YqUux0bOeJrs9xpExb+6Y6ELR\r\nY5ZKVzdb5sukIn8xX61gd70z+wRoYE8DOGo=\r\n=TIDm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.7_1660128387577_0.5165212550232006"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.8":{"name":"@pankod/refine-mui","version":"3.41.8","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.56.11","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash":"^4.17.21","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.8","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-7UxzKZ64K3Fa9lG3fYhjIa78WwRTY57KMpRti4t/67r0b+yp6liXGo6AFJ+9UixBM9nFTlKzeiLIAXfF2U9Hqg==","shasum":"a483bd5240dd563598ab7b373eb9b450a0f5e188","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.8.tgz","fileCount":106,"unpackedSize":1591569,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDL2XC0SLp61WcKd+Z1b1psLXzwSG7pC9rMXoQF+MlZzAIhAM2TTNo7NlhiHFo+jh0T5IgHNPevMA21doFQZkVMYhDr"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi85NhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmquyA//ZslEnf0k+m3yhut/+yQ9LRVsl3HEmQn0v9oRconTUeif5/3C\r\nuYxwfswI2iF/gx356U+TJyh0J7CDJZ4zXn2v84sF2oei3UKILiGDRQgENFzq\r\nLuCfUcwBnQEpOTebyKk0/0noiHliR/DPp1TBHczPrSAQjWmnXtW8RVY4lSxb\r\nySnfjyRXJK9VeEi1YR13xaZKnIqbvafU6KxvSDhArf6UtS4GI2Al9eHOyWYl\r\nzZlWJPHzL9B+54lAPghv1V1tljh1Z9Kgd1VPKy+/rpAPz5YVh7v8I/YT6+nQ\r\nw2kOxQc0wdvoqhdjRLpRJuwi5p8dGYNShB5aUjG3K1AbzBeWas/cLF19ggMf\r\nZ09uBXjd2Y574X9ufRwqFZPDktDjvh1vVJOk3QcmDaIrsww0N2PvVuX8ppXy\r\na2VDeliIscKrIgRHdyRBzDQUYsR63MwYNerl+TU3tBljD5WVBWp4ZrLOVjyE\r\n+hRtch2qotZSnuP+RhJUs26fajVTe66h9jHG9qADk9x/j20Bx0/p34XCZ/3Y\r\ng/VoVUjGx0jrhJusp30NZOtBkNKXsiTyaO+S/GOmN/zHcRe7fhwDXULdNr3w\r\nWhIS8IpGkg+eJtpnyrd5OKM3Fh0BIJ9zo/QXwyfG0d0W78VWPuM38B8Ylrwk\r\nSDgAXLletCMH9cTB3YTVHxMd02/5n0anO04=\r\n=6sEz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.8_1660130145673_0.17795075292872098"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.10":{"name":"@pankod/refine-mui","version":"3.41.10","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.58.5","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","lodash":"^4.17.21","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.10","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-7FCv9T/F35PZAeYLJKIh3cB/4ak0j4pL2/+5+A1j6pnDt3NOPo82kOjxt1wHi08Z550dOFEEhViKVJvrxrm3LQ==","shasum":"bd8a2fba9150e9549192f2643f013542cadeab84","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.10.tgz","fileCount":106,"unpackedSize":1592553,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDopdgQVIr5zM7wyeDTnYZUdsyq3xIHDYaXEfholDPb8wIhAM4P2bJ2tHHk7/DCANbD7WQHRyOY+M19VWQ9ufYimb+1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBiyeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNZhAAhvXs+SkfKKlYUlHK35krTDe9d6W20VqD+2wAnU368wf34agJ\r\nQCDEXGS5U4smohJzY8/4xdfEsuPPW/6BO8vSOkaL08T3yh0dy5P6pKY4n+74\r\nXK2G4V0vT2PfjLlR0bh21+GXOn5xzj8gUzGgNJZLR1Uosf0pP9Cifpwzbzr4\r\nIpURkJDsYaBoiQAKELcFaidRCqLA8SnWoyjwq3b57yw1zpHusAJ9Xv8s1/k2\r\nLbwTA+Ufcc2SDdd2ztn9hcmT4aL8ZzdQBwwx0CiEehfju2QKFIHngWxV9oYE\r\nJeVMKVoI2p5zwCjhQAl9nrxwlMh5O1zFiSySPttaEZcWfBdSVb/LIZkvw9D7\r\n8FNZEqBw69hpA52Htfr85BDIisRgIYgLnYP23Lu01km9urnnpZ29ymmmja07\r\nbOkH6GDKdtbaw6oAatE2vBqxZAW9jEhtjLZRxEb8QZIqkomfb28jyTM9GGzB\r\nI7eu9oCaxTS4VbJPW49jLCtVFhXAMLh7Zy2izN7s6zTBQldog9zOF8uznP8a\r\nMiAwq7Bhwhj352Mc0fVjLenZPcnBphXg7ecNLaT4PvSdtgo8zyVtcKOC+fwL\r\ngfqqCe7dBoQtZwHm9ld0/3tP1JKkv7xDqoG60KMNAbz7XG6NziitSvrUjstO\r\n3VrczfZC5f2htWQs6imY6cFedVn1uH6QtJ4=\r\n=ZidA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.10_1661349022257_0.1478957059291628"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.11":{"name":"@pankod/refine-mui","version":"3.41.11","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.59.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.11","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-pryptVIysIZ5HWa9siKpw7Hf/47bh85YW6MDsgS0jKEc5XEotYID51g1DFTumpWv6+EK532R3Q9GCgN4pbimqQ==","shasum":"c810cec2599d0c78374270c2f45271c6d64310b5","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.11.tgz","fileCount":106,"unpackedSize":1604194,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFh9tWxQT4dNR6NK7YSPymjSa0mk8TA4hUUEb4CIEBXrAiBD83HlRoTGHZm8m9uEo36KQizOG9+LMOxZNC+URuaAng=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCLgTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1RQ//R8rApz0xwQfbYVvFy9JwGSmuEKrUqFRqCv+m3olGpXQ5uA2P\r\nDHO50QuAoynVDEbKsnk8RDCSUqDxTnJXdaLszrrRG6UI7/6FrrGygWMfM+Kg\r\nXteNSBQdacjyxKROltbsuq9wxQoLMmxFL/Q2LbyfmYrX9BMdL6aFvHp7rP6P\r\nGDxyJzTzWafo9Llmft3KgH+Hf3LsNYHdgrSszeHe2OM1g9qM1paKytBCJ6UK\r\nMpXxXR1RWU5tz8GHEnXGwuQHSNYxtzbiCjFKV+0xYHV/6WkywNon6qQyntzb\r\nDVPnLtgbaKpwMgFXQSFMwXdkO+0ZkfDtQ018MOVjusAnTvYlsLlY1jid5JEH\r\nApYkWJc0roYCRwP4lTxjoEalDoZGQ3S2ZPvhPCc2FwykPajVBkJxAO4Gs+fq\r\nImCJPljCs6CZ5io/1vUSkS4nIzHhLlt39WrqrwuZbVYPM5hAxnz5bYi5uHQR\r\nx9Nb6BXuuM3Q5QUVPjmAzGYPzQSRezNFs7WZwnvzYDGgreMVQ2efwxVv+xzB\r\nxqW94Egee0kA791tK3k7i0tNX1R89E6+ACmOf856FXr87UKKc0vhpA9p1FHs\r\nTxu22Umlmr0HQlhQUU/x0ERcBj/V0N1oEZnWTNbAXsj2CAgL1dO6n0WHZ6mY\r\n+aul3G+y2356got55htq7ceT7Ey0Qip0pl8=\r\n=RIO1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.11_1661515795463_0.7172956202750973"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.12":{"name":"@pankod/refine-mui","version":"3.41.12","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.60.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.12","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-hRh4g3N9ff3GMUqj6oM8Eb4ZbSyfK0lm3wlzBfMf4VC1j4eoqA7PytHpLvt9iERbeXeD9y/9jun7OLBK2kuaMA==","shasum":"b795fba1f9ba0f1b5d64a08b2b06fb237563161b","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.12.tgz","fileCount":106,"unpackedSize":1604287,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDc8ViP7WmvLhjRN84cD9Pp+fTKcm5bVxMmUAUotesqjAIgSFbPaKizVCdXnc9fPb/cpjCekp5rGSSTa/yqqSCMEe8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCLwpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqO+w/+Iv0X7F17MlAQIy93QoitE8VhBoxZitAwQ85cFvD6atMn8/7p\r\nFRwjQd0DFZ5YAnUZW21iE0BDTSL5+pGegJEOQVayMgeZljM1k4wxDCZcGC3H\r\ntBKz5MYNCczAtZHcSD60yKqSnV8P2NEL4Nz9QOi/VQeM2K0SImqmLxS3FuSz\r\nt5P6i29VNFOodett167fLCDoHIU+46ttJlf9FiHofgPfu4EFc2F0AyY2uUCD\r\nk7iPKwo/s2UHSgOVGHI1aHyOMWW3+3JzW2ELMFBq8yF8Lj1ymbuOeMs+BLhl\r\nwgu4eB9s+qwQ7ZmZDxCrbosEDWFpDq6JeRIVzoF9xeZK1bhGxpQi7/XPXTfi\r\nKobzO5wB85tTcE6G4bk6w+iiy3vos3nfCiyj7ZKmNnjKk/9IqjGnlg/neqcu\r\nvXwopR/NjhQ87SiXYwZPxzkaWzmW/C7MsXICySgkOBjLumW2a6l8IocllZRj\r\nnPw6yprctybOxvZDJ+5XQ1KF3hYAAy1C+LpY3qzmif40kgWq11hH2jYKJTFg\r\n5i015X4uXDcN8COwHA+EAOmKVrlTkFO+RSr94oGDfYQ6xWOaFyg+IMc7VUxT\r\n51kFSIhpZclLwgMmaRR2ikMpANtmuZn9xwvymYj2ev7URrvCKc7UOZZz0hew\r\n1pfTjmVOw5ycsvCMGOCIU6tbJAFo1mRysEM=\r\n=Q2Lz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.12_1661516841607_0.5708337421667089"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.14":{"name":"@pankod/refine-mui","version":"3.41.14","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.62.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.14","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-nq0yQSPwzGNjYanaWu6ACANnKthP4HRdBP7h+raClYYk/UwvlpNSswEoWtVo8DHK36+agGyjgu0VUr7pogIGqg==","shasum":"7e002372aeda6b509dbfd0b6ebe00bd6da37c940","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.14.tgz","fileCount":106,"unpackedSize":1604473,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHzK1ZTsdmJQD1g5HUnsURABEOZ66wu4CxoYdwMPSxmCAiAWFiCxoPyyGwQFHT1uIoAzbKSHrPTQ5S/KtiN7xjxDwg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCNjBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpadxAAkJgse3EaKdLzFoGhy9BLV85Gj354+hc9XeWh41XLeQTplcK0\r\nrbfAoQHxpEWw0/eFIVRAHwpmJKZhZjtgfirCo78YuhXyVy4YmJp1m5P/5Uh5\r\n20vbSrEu7VQ7SnS9hrXYB2dYAxRL35QkgRPS27AGl+JJgftT3C5/eOiusgvi\r\nYsVNSjKiY9sC7rRFTU1prnD9tT3u9bEv95ZdHkb+VInOdMg7YE1ZIdidjw+g\r\nFFLzf+sgQU2pHDNAM8SodnxQ+GjXHnk74g5PrsHYLMKVRVD4L8iCh2TUouKG\r\nNGsxQuJ/32Q4LTKaB3YLzA9Umd0z8jXQrlmHBJYfcz5nZfBhuzkVy6RDwG4Z\r\nm1+BUbks63S3kKWrnvNupcvDRM2EbNvTJ/EuE9nF7l6yj0MorJTiON62s9NK\r\nexePCW94g+F0PtUIdupleRANhTah+SDaHyrau+mJK3qO8Q2frc79wUmTHAjR\r\n4jJKWyXw9j8cKk0KR0nUev0oqbnI3FmFZgxRki7lqp6mQzYdXeUXskhJNX65\r\noFB34KOtceHrHBpmUaljtok8XeN1yHY0dn1cYtcTIma30HlHdb/pFUpfR5yv\r\nOuMwvlTHI0MjF9VB2IDBEgL18UK42nRdMx3QC54OfXq/kbbTHVcMf81uIp2j\r\nvPQG0eTMU7U56Kshd+5OoWCIZ9C3/CvUeeE=\r\n=rlJl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.14_1661524161356_0.6638619899936458"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.13":{"name":"@pankod/refine-mui","version":"3.41.13","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.61.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.13","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-JAkf+ONywxVel7eiYSAZWr5sbI3U92+hUlSjiUvTzsqeXeZBpFki4S5t3xii1+j/Y4mTzaQy0f+rR2ZdzDBj0A==","shasum":"539df0fc490d92ef5f9508729c90edf7c82c47b9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.13.tgz","fileCount":106,"unpackedSize":1604433,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbTAcgyUgwHPmTLUHO3N90wgQAeGYBA1p3S0ZlQfxnqAIgKcZFxMiNQzKTeNTyLAob/RezGHdFx3sGBHd8101B+i0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDK9xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqLXQ//UVZEMqOzN6il9xaraYgM1TWXAEG4qgexqBVJlb6cv6emVt1x\r\n5087SAYDAyyBeIVAfamUWO0d959T2AVLJeQbVMG8kVEgqGDrpRaI8r8FTO9K\r\nn5hRz2JreGB8mEr9z21FTNT1hi8BXcXvxvrJXxNlfykaVqC3bsja8ftp16qP\r\ncjs/PtHsngzuVWZE2JvJwe1A2QwdP4iKfAFY5zx/PbAyaHyVwkdFh0zVEvXp\r\n9rrHLl0dAssP1nxzOq8eA/aoFu14nclwK/KZtVSsknn9X+LdkNoTkLJjYz7N\r\nYED7MTVGGuGeMYAyay3V06pe5bhFFG4EbbFpjL87to4gF2hd2GSQp2hMW4Wz\r\ndyzUn5dqBM9LmwnAVi2/KdCZC78sYPxNnmiqDnz+CnSbZLMe9TGTQmKPTLfV\r\nBfngy2OqQskMvS9exKJrUvw8mW+v3udhWs8LOsrVmiHlMrCK2AyoEhJClEMj\r\nbphhu9mUn/m8RAjcWTXRzo6r+JcU2RX6kk3+bzCOonjz60LGCS7lEyEh2DL3\r\nIYHTZjKHcUoCPAJYYRiTOFnl6C7uxGBafPf62aGsAtSJYvJ2+PwQwYXOumlI\r\npt8SmEOQZrO6OyxqTNd6ThaEXQkcgn2TLHMT43/C9UoU/+L22CIO57k0vjCl\r\nDZbo81bTM6T/fhfT1AZjXgmq8+g7M1s1WTE=\r\n=SK5j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.13_1661775729112_0.7956479587000118"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.15":{"name":"@pankod/refine-mui","version":"3.41.15","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.62.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.41.15","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-1oJXYr92m9dtX1EFpr8mOZaJfKzG15SjqGwKkpkX+q3GkNQk9qhQIx0F70txyEwi5YWpYGpoaoKqf1aDfuQ8xg==","shasum":"7d97643a9c9dea27fa35aa9671fa3852671ee28b","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.15.tgz","fileCount":106,"unpackedSize":1650944,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYV1YHIA4KnhvuGANNXcqoedkegQ3ENInhcxBgSLOx0AiB8/ObmmZmIo4uncLIftNBK2FHd6fpZdH8k+3CdxC+PGA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEZPMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsKA//Vrkhgwr3cQbsaDTeWpdIba+TTkQtHKoTIyOQ44p/W+VU4BZC\r\nwq6F0IJsZrgC7MPVre4jjh22ndCIOkXZdSIc55NWvvzF55gv8pww+aypE9dc\r\nt5B5CORWRBzVIlqvCSnzRS46dWt0pqOklKSxq1S2+uLGGw2OAzPmEXdhzDd6\r\nWoNnlBlLGr7c48JXRkOMgekTI6xkzf0fBHnzo62JfLgSAbnOrAxWT/4T4rzn\r\nvU+sJ2sdYMsFNJBQFUFTgVFX4RGfH8VfD3uMvJEZVE5ZcZtgPhvBJREHloHM\r\nOMNMEh3oQlfPVdDBFwEKwNRlBz8Wv/IXjjOmxvMgU8Wf5dVegDdUWYZhHTvI\r\nbJBKrahYfWv7XermxDm2b0/wq9wLpjIGNid6EaD6yMnsMX/PczV+mIYV/uaN\r\nk6MZ3S2Y9hqZ2dITqkvCZLBkrDT+Sl0MBfMtF5G0MgvE98CybdKWIVcT8DcG\r\nq85fvOU1zl+wbPD77GOG+naA5sQi/3aMe/M10eoLs55Ie7IbrsYNjxZNt+vX\r\nT0zTmqTDJaCp9OOZb271RBrT7hovIJR5gpYi59NIHIzNjuArvjg8lf2vxpTC\r\nUNYWrG7J6ykvIO4J5M69PjLcpbKYvfkb7VEGoEF4xidXwPV4cgKCvUZPnuws\r\nDeT3IucUzQe6HMhAu2AHE+vGJC8noY310YU=\r\n=+Q9/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.15_1662096332539_0.9478827723946874"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.41.16":{"name":"@pankod/refine-mui","version":"3.41.16","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --dts --format esm,cjs,iife --legacy-output","build":"tsup --dts --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.3.2","@pankod/refine-core":"^3.65.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.3.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.31.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.41.16","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-QJTrx5ogVeIc4e7raoKNu6a3AmVfoZWFW642bS36ZG8otU2RFlRXX8kgipqkBQJHDagDS2vzSd+lnskJSj7zxg==","shasum":"f949eff577bc0a56b92d4dd47f1796b7d9dca6b2","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.41.16.tgz","fileCount":106,"unpackedSize":1652889,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE29zdbZzOVD/58NQPcY+4Whmu5txbCiMIlhXWnJgKNgAiEAxcVz4nQwPiLhdVk15Ji+A3w22W9yGzkLE5aXbAYQdqo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEd6AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQLhAAoy5XtAERvMTBa6QbD1w37G1WnI1KOcPPsl4BtqKm/56ZlpsP\r\nyrCJEkkJ4d05e/WfwgOJyxD5xE6o0Jr/cqbtz9LZVHojwrGG/1+8mXzuhGUz\r\nt6QF4kNh2kVl/h5r0ez6U/cQYDhHCeMsmPots1pwnEfTVVBsz/TSdPwQer8W\r\nt27H+3XXTnQDVxJb4ps4LcTnd7E3sCoLWmvK1D43th1yv/NpJF6ruzfp9qpu\r\nBUVhQWBn/6lPeEXbw43bYTq/rfnJDiEm/bC9zWLLGlmJikMLyZrNW3qkY3xG\r\nzHOY1MjpcHzrGUkhFTl6DUm9yOOIW0/JnDkXl943EJqXlMoAWQAOjw+/g4oB\r\ncKsahmLx5v1AUBnRYqLbRc0KY0uEFlrR2OhrOd8HzquawfOWOueSwjYxbdhN\r\nvwOIRHoNZKps6nXWz9+rQOSOYAkRuG4EVYtibCdoOELTjLtIZksLG/4jg5f8\r\nVjkd802HoEtlwgluz2eH1x7IDKsubZkhigBQI6ExUHQO/kAwEYMCK1OsVWTU\r\nMfCNa1YTzPAQc9NweVJz34qcAS6SAzO8NATKNw3vK6vq2Mz+O7kqNODkWpDA\r\nuL0n3GS4LhLiOYbY411hO2qydkYZ0L7z/GW39QjfYBVXb3/SsT59sA+g35rF\r\no6iBhArFOzH6YSDljvs5zuYCAwB5Z729Lx8=\r\n=aAiB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.41.16_1662115456186_0.8587858716041294"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.42.0":{"name":"@pankod/refine-mui","version":"3.42.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.4.0","@pankod/refine-core":"^3.66.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.4.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.32.0","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.42.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-F7GlaUFOVIT1xGfjac3xopTymux+h6sgGUzTaNKIiwYUy3VOzxnQgj9TTMeaynmOnPoI+NT7RfgVAr7FdRJcBg==","shasum":"c43f145aeec5d8cf81d6d24322bf0fbf5ef15f12","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.42.0.tgz","fileCount":209,"unpackedSize":1695220,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGhFVwo7YgTUu31GgsEAmXAcwjl5hlsKdHw0AItA7rfgIgJa3Je43C2Bhv6yAu1tBmlt7pTCe76xoe6BLdJh3lIUk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjF0l/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtSBAApM9Igjq8XXcXcNtzC+hSU5vhQfnUTvM+Ba2NuPfd5TS96KCN\r\nHKCfF0uEg7szox3rn8BaKIFZn9YPUPlFuYHFaRued/lggcauz+4BwR1Pv+i7\r\nSZQkSltQqGzWg2GnYMav0pPkAqnwqmGvUEzdmTzGyFD0KWM6Eapx3hZyx4m5\r\nQt142Tz1T5d1P8JqBFARn1QaJTfB6kwmATH64yiZK6p7PVW4WF5nmL6n08aI\r\nhJaj8N2/4mCNN9kGNTAt4dwpq6UJPF3he9zrng154WbUCkE8MkdOjrc3css6\r\nuoDUfrlbocqnnxKrk03Rb693y7N5PZj4ZZn0BqB1PYpmrR3LejuruUgBRwVL\r\nbw+QSQtYAYjORR8NgKXQxT5IHTfSD8lnU/9p7htIIXZ8DS0NRt8KnYIAaUSR\r\nWpP9ksgzj0szCRz3Wp89bVfQctoNO9iYumzK0ecL3lwXC3iUPadIRlzZXUL5\r\nIDuATDCxHlev5du9zPoHbGdcDGPbfSbybkQQrtPx5YXhsVhqiiVTzo9OorYj\r\nlHF+hkPkybDTZXmM2/mRGf0xV3d/FY5ks2/I4LF8sPdvtzum/UR2ciy5/rjJ\r\nWfp+i/DBOm/R2Vt4zK/agi+niW15SEb3TB8PTQku0yWHvHt/MT2+ERQY/Uvc\r\njh9Qz1rVf2gn/XEI5b++I8pbMM7UAmXQNi4=\r\n=Pqzd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.42.0_1662470527241_0.9073398399651968"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.43.0":{"name":"@pankod/refine-mui","version":"3.43.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.5.0","@pankod/refine-core":"^3.67.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.5.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.0","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.43.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-UKXn9s9Pq1Aeah/pv78lkQ6EcXsXtdH/+IPtWXYHZjlQaf6seUI4IYD4M9ZePS6MIbK+y1TrMLiI0EDbGiFqFA==","shasum":"00b7d4934836d484be088dab3f063e0bffd591c6","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.43.0.tgz","fileCount":172,"unpackedSize":1622278,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID6ucp17SB08/LUtTZcc8r8iK+Fh2H8LyOAN+BwCnz/NAiEAwC8+u6vlIVZfOdmojADECJv4EScylS4BrnsyrpF9mM0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGFZYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzjRAAneXp++6MtIgkFfD0KpW3NPKm6qxvvrI0Jj/yDXSAcwCphpX1\r\nICmyR7wRzhZRJtDaFg1YYnuf23VmmAsJtMJeY31DRMauXwogiFwL2DyGcu6t\r\nzEUyfseLIdVVHV4YeS98rGWP608pHtGA9w/LWq9zTHjERaPZw8UVAN2yVMZU\r\nMtTvVZtxT1ZJcaj/sFVKUwu6owoedHi6HbKrFyaaG12iaPV3qIU+iK/pnlq3\r\nrfp1HA//Qi8LXQWIZsFn6I2R4zVYQ5FFBVKVwCpkFcCr8tlwM00fMjxBRRG1\r\n4Fa9bvLsPk90D37uGV951A0kCbB2PIt4kAkTjmAL8HjAqtkwPHHdkwm6jzG+\r\nkCiBItF608+2wfiI0t44U5B11EIlL1wBycLvaCXznIutgNwkT1W7KSZpNQ/z\r\npF0TuSAGS7rSkzVtdWav0Xp78dm8UMpUmO36v5TJ4xwEZ9skwa4cRLJwII9t\r\nwkdpgx4urUzDVXVGSgqFMxPUBPkvGDVkZMYHviK+qx/9RuQG/3J7qGUYXU47\r\n1n5dWnEOdnoKBYh/v6b0fQZbEDI7yXuVRXWaDo4OfTiSQ0DU8aNWpObzDeBB\r\nnaIttjllFAeZadWmiK3/hcd7KzikXoG22S6I05F1Xcyf0HHQswOC5sTmjujA\r\nxUMIMXG2Kb1qeOj6gznIhfSdPKPtrgmAItg=\r\n=rHah\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.43.0_1662539352295_0.995228301158666"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.44.0":{"name":"@pankod/refine-mui","version":"3.44.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.6.0","@pankod/refine-core":"^3.67.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.6.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.0","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.44.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-/VSx+31FRfmmfOrd5TQ97aXh60bzL/A1FgZTL7okon9wBkgvhQ+rpZyszniIa519cYLE/URQeMtoxsZdJg/bCQ==","shasum":"f8c082cd701dbf5b6d12b5f4883c636851a92d4a","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.44.0.tgz","fileCount":172,"unpackedSize":1624903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgzVi7mzUFnpFQhPLq4KrGcvr9wLJ9wslX08QT841+eAiEA0H0mCMN9Qjaf+4i816qNWL5XGTJYoJadKqJF6s3Nwl0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHvvbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0Jw/9EF9Cf09yNepUe4Tmin0oGxAOkwd5zexcLUcn0954chU8jHIG\r\nVIQPGaz5wELWsm6GQZ1t+R3nzb4+MtHafuBt7UWrTOpAvO9baJm7Gfr6uMYr\r\naElOhqiSIii0ciKDf/h5j2e4P2cdfATZc3sbFC9K5glVl35n+nSdh5UwqZDd\r\ncqfFM2ys6CqHtyRYTAMRrwwLV/kcIxbvEuqzzqjtTF7oE7xmUfWKgVAztoPO\r\nVdbYFXb+mKA82xzZ0R881zsjRB8PReBA+f39TkrXfOKxL/B0cVNUrRxse0CS\r\nzW9fJ7ADYIm+z461iOhZ5VsWywWjY1++9Ca09f/C1NHiYlBx5YYSx7PZ2Pr/\r\nyNwVVc396+Kmp3JXsDoSyL6Sj+6WLx7QKyYdNMECeA6E+XEq84l8pzDgAW1p\r\nKkOFzIYaWN33ZuaRjd5mH7XqU6hKzXDsLBobO6ebZVaHB1QlmDnRw0y+GD0Y\r\ne9XT2dkjMQL8MdyMG3JNhGhQRbArvz7yoIPyL2h0Ei7+iDodSBrNpC0ryvHK\r\nWS3pLes0m+et2SOVIvF6tXjH7lpm4k2rom6DB+ZFmlljLQmE55UpI8p3MVb+\r\n5QPFySQ+u23dGkOHxuL2aTkTOJpEpq35GqapOc7UCRy3d0d+uMGuv/cKEjbB\r\n/XB+T+tBG81YM3/xJ4sFS0Xvx7fV1IWKDYM=\r\n=BU7A\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.44.0_1662974938594_0.14734262135127274"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.44.1":{"name":"@pankod/refine-mui","version":"3.44.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.6.0","@pankod/refine-core":"^3.67.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"^6.0.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.6.1","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.0","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.44.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ac9/o42WlAYCSoosfIPR+H8d9KWNIKx5JLLMRR32kYqVMKD2Krogca4EVLAlnbkzDagNpB+3i8PrpSbxTc2+Fg==","shasum":"5eba5f3978c4f9d95b2cceae7dd080aece9bf63c","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.44.1.tgz","fileCount":172,"unpackedSize":1625572,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC69noE8De1MBlB7bYdd7En+ZhrePD4Gx+xBkljb4Ej1wIgBiWYZwD4sKTtRnppBztB6oNka+JWcDXHxrNoB005p30="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIHQ3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoP6g/9EYBOi7SjFlzmYjzWjFglqqdx7BQ3eXi6e0elCthR44Wida2Y\r\nwtCzNEmm5zIypCru4Z+DiiGFZ3jAxvtDfU87Rn8ki4iecbtQZRV1GXkZP06D\r\nBkijFz7+vWqrqlmyNGg6lQ7DtBPWEjk1c2OzX4fnZLzOHrakgT+nTGkLegWO\r\nkGDQWStnzuuUQSMOdwBLw4mCkSCZXaUPMWhSd/5bsiKItyFRHHiXWSyHjG9E\r\nd/QSaFkbEjgTBAruLwgZBHYc/VUBGoCPAVDY5cgrD4bRoqROxbayL3t0LtTG\r\nhhMfVjPCObXhie69ozopxFlBwkJeDP32jCK7fzffzTATH7AfMYLUnSBG8Byf\r\nQz4yEFxVDt/cV7VEokfcKtum8KYKkRwvMlWkG2vNsHInRlA0oj1KXUaIAXtJ\r\np6dLMQ53GWNPxcV2YDWWew7gr+Un1jsGG8v5mqNZ45VVq8ee3270cQXeYHBc\r\nEtxeoOz9+DT1GwrZsDyumsb0pskyeDu56gHWlgEEbeTpRa96R+RkIO/oB+aJ\r\neVe91eu0gw9J1W55LHb6beacB80m6FQ5OY2qWq5i3tQToIV2+PRWIESmGYbN\r\nH2VLi1ANryDJPXDelPkyEL57F5ZEZ72Vom4ajVqG/Zx3PW1lRrrQidtoq78l\r\nv703hWHcVGO+MSoXSMiENmbi24nRj6P4LK8=\r\n=Xv4H\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.44.1_1663071287697_0.43265301140695245"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.44.2":{"name":"@pankod/refine-mui","version":"3.44.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.6.1","@pankod/refine-core":"^3.69.8","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.6.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.1","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.44.2","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-BFLFT1iSa7Ir1eVgsVTO+x+ttPGL4DQFkXyRaGsKL0jYLWm8AeAfB4fh5x45JUS/NSPNqi31jhzaoxz8K1zzkw==","shasum":"e1a0713424ddeccb639ef9faa6ea153ec200ccd3","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.44.2.tgz","fileCount":172,"unpackedSize":1627055,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHpAw00EAwnrENLmWOEPlIip/QVOx70HvHgXXTe4y44JAiEA08iZvQ94AawIUM82zHDdIPRiXGiR/bZJ0Hht3iVICug="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIcyyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoL7RAAnlRYi+jkoj6CD/OmlbHb0Nl9ic7jLOzc922gcXYvWDwk9wJB\r\nqUyyhpS+MUUMhsKPS03Kpkj1xKg1+Y2jYPsfLD+TwFpJJcdv2SzFqxPztuY8\r\nJiayag0GZD3Ckp0tJOlg+YAKllGAecvYgBJdVEggSoeST3PhMT1FQWLE4XHd\r\nUiMCJve5bSRLUOBTZw6cCXzJVGTu77DZnnwNqDJBlG+MtbBntVoi8zuJegNO\r\nrlYmIo/oeB2asguNPec8VqxrUZWd6uMb6u31S6E0qN5Q+UAbE+jb6HsaspB7\r\n+Xk0dYFdE3pwTO1SLRhwh+H3TP7sA6ZUZB/+oHMHnlPijACND7gPzca77D+m\r\nyAiD+6ZiD+Y8OZ0WZpdOjLhXUgq17f9/iFOwEg2ISdpIhop03mfFrW+9BES9\r\nOZgu+BsbWkITqe8LvHiObQpbmQ41WGsVrQA/dcDlIzdpOFCNBwEdx5XOwHrt\r\nL7u8dwc/Kkzwv+ClNWlwNgFXRl6Z44h4gl/A3MrwW4oi2u6V8/Z6SWfcZ3rV\r\nYsZzO60fo2jip3fT4ocdddb9pKxSQuB1Hxb7ut8Xb85qKo/bOleVU4WAtH7w\r\nZJ6EtXspNM3oM6ouhXjPjoahGm+pfti4dY7aGrskq/JL0JaSCbf3awRw0nng\r\nVF5Jd1AdpOH6jzQg3yU8oqjLhI+kkeXsQWk=\r\n=h53z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.44.2_1663159474710_0.6410773459303107"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.0":{"name":"@pankod/refine-mui","version":"3.45.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.0","@pankod/refine-core":"^3.69.9","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.7.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.45.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-5J3BLyPboupusbnnqlkVQyPQrT0W4YdksoXXeBWZXg+39gtahOn8S+jLcV1AOJ24grfRbv0SIafZQFZAVE229Q==","shasum":"df6923dd15ab8d53214dfa8c7c618d5ca8a0a13b","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.0.tgz","fileCount":172,"unpackedSize":1627507,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBO1biGNIdQrrWnKXEK6UGdrH2lFv/6g4/7rAYyulyqpAiEA8In94WUD0KmUgQ0ynQooyxSI9E1se1delQL8epCMOw4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIeBDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQmw//S5eUzowGeJbcFRD9amYVfRtQ7RKJlHBIUxgn9zAiubzu6zqN\r\n5z3vLEVyVsAV+EPXLCTysOCKfhBBpZL+usES9qoUywMKi+hyhvxMWPteMxJ/\r\ndzRTQ4dzq7c+bCQ06MfVl8pURuPFtcn/MNxv4NAJY4IxEgHNG1GOqXtDXOEe\r\ncv1KfyswgQES8yfuuCbxjSKve/yEp6NST3wBkXQsfy4tlmGdDiEDNO4PxMWg\r\nkO4WkUgd1pJkhCU8asUuXWvxohJKsW49dZsOfNhIZawi2qosiCyZtO6slzXo\r\nlzLEGM23SXA9aQAaStuUas9jlhxkVShgNAvWfMXEIWR2n1nVf3EBQdlM6/R9\r\nUmB9n44OCh0L3ovTJ5js+8Q6Zo3fsj3HUuqlq3Kdz891gG2PlrdjAZGK1DlR\r\nL/EZKSAIy0zCS9KXRHhbH4YMxLZ7P6NjdN0/gvYruxz+Kpvz6TeaMxjNv4ys\r\nIRUcQtNG+LAl0fH1Emh5SSLPVX5pIkHNFhdbxHjaCz7n++wphokncdqxhCMw\r\nSfoYp6LHV35Xc0ZUeGbGwtUM1eSq7anT6eeYRSfdPHDdde9Rwpm92Gynh5Ac\r\nRH1v0d3Vx043clM6BXVzX9kL/AlkY/oVpY1OBV1jWMZ8wb41Xmw51V3WvANW\r\noYvGB6GCGHYYwploeZRa5UfZiiYfqNpWa54=\r\n=Evoa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.0_1663164483478_0.7979624057745329"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.1":{"name":"@pankod/refine-mui","version":"3.45.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.1","@pankod/refine-core":"^3.69.9","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.8.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.45.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-5G1YSw2ECj5BQl9xr3Lp+ALXqudOXkiMDpEiyPFvq4ef6cSMru1CpOo5XFq/iZL2LlwT1uZUHsdrBgFIGmMpyg==","shasum":"b6028f40e0cd1adc83483568e3f220f509ea5d77","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.1.tgz","fileCount":172,"unpackedSize":1627701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0H5yaJ+TZY3LuxgW3Hl82CZ6ZAStsTQSXjXMZqyhspgIgFzEiH7Ph4kECXppwj9zzpzl9SVdDP/IUSX4X7cKYquQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIvdcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiOg/+Kg1E98TQmSZMr+gKzWYPH0b3Rdon0B4EQ6rWO2/lJIuxpp9H\r\nyg3nWwEqX1eA3ZOWnqXfXsgj1GU/x7SRhFjHfGdye/ffNGBo4nzbamvMqIDF\r\nN8yzRGcFzVh+J2GJs+5NCXPug+9A50guT6l8rrNTUEz9Q8nNm833qJSNOJ0u\r\nNvnWbWit6dJY6HvziAQFqno7kjQ8O7fdWeySC79GtTzXgApK08I+Mi7OpLrS\r\n/3cW/lg0Jk6RfiOe4kbgTAUn7g1OkbOy8g5mTtFYVXhhSvoyMBWS9XmYehvL\r\nTFE6Z8e921nbrwde8C18oJoD7Tb39H6OIFwyj1J0VVVS/Ds4FmqJ2bp1FbDc\r\nZ8uPuZvh9kcixNW35k1p345+ZQLk1JZLgEbNzfSt0Sz28+bKNoNgCSDMQdgZ\r\nDhsTeax0lU5G13bXnehEs8+MFo/R/XBFsqdfO4qYqKwwueaAzYh7jM13QVns\r\nVeieFoW02HOiDU1hSTOS0fEZybwwV6Jix0HjREbgbzsggaOryCaHjo6KNa6D\r\nse98WuNRRbmoN7hCLyQ0Jz9XTYxluIJdrDKqHPP0DrcwLqidBV6Ju0eTzP98\r\ncWtyi2IMsy0s4RAcU10XpQxpSVwzMOWyPQxFcKptnppmgXDLTYRjZpQbVCxb\r\n2YnFPjpu5mp3oUQKohtgI5TnQUJe087Blzc=\r\n=Nbua\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.1_1663235932019_0.031202061824919136"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.2":{"name":"@pankod/refine-mui","version":"3.45.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.2","@pankod/refine-core":"^3.69.9","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.9.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.45.2","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ktZp9971iFf2QQZflDK6Hqq1BTFR3m2g/lb351J3zVFcLbY7h0AJSorx3e2FHCFYhGgD4PD129Va/EPgBq55fQ==","shasum":"b1a857e6264e8807580cb0a0bf0a2f960c70797e","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.2.tgz","fileCount":172,"unpackedSize":1627799,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBJDvCcA34K2jZzz1HDoZ+Y3afB+EyaPViAw3x813keNAiEA6fu/8JhWzSXL0v8WxQGMemtRGSNYgGGWMYjmy5wjOlc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIvyJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoArQ//bMsLGEdCbcwoYY7JceWUOc160NPEjJs0lTO60QiWAqdvVeJo\r\nWKyXLn0DiOnZHNjZ4NwaVEN6izBQ4tI2Nkr5haXD2umJfSXyQhzsYitB0WCH\r\nvzHs0aQoJYNFh6z+v/fPF+UPfsG69gk38jS9wNqPXS3UqgtuGEgLKSkKDZxj\r\nhexWmKRB1rfApYMYZJ5nPQ+e7nO25VVtikeZhc46MIDktUVdoIp5DVnyEEOj\r\nkW8CKbgMTDc/jmDIk1Bom2DS7yY8rDKPVRgUABs6NUycvIk1AvKXFZ2KNEKd\r\njhtMZWpPsBn7MHQsyECsnMEvt6a13NsgT+FKmIWqSsCN5MNg0ByHowFXP8CW\r\ntGf3+WAE+jfnDMK70TatcANKj43NKTUUBK1cUH/yk3BwnB/GyEYHub4KGXAv\r\n3Kn/pgRtDQgGZKvXkKFLhel9qIHSRnBH3JQMHEEMpHmeXHJk0SztccyAlTEY\r\nvW0Mike3b2210c6ncsfu67pn/a343YjLky3teNXpDR9Ox3TB/HdveXIF7RSP\r\nQfQKWmUbCqRAWMNXcI5JkVs0Szy2rRANCi/E59Sab3IrUH92tIiP892akEOh\r\nxWqjCLTr5MTuZYglyXjxvkjTiOCc4TGBKbPMqgKjSEXEPEqkCuvgBIyzAo3b\r\nx8+QlxCeSF7uAmN/fNDIxUdnJ4udttU1Gh4=\r\n=0gzA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.2_1663237256893_0.30956476806249844"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.3":{"name":"@pankod/refine-mui","version":"3.45.3","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.3","@pankod/refine-core":"^3.69.9","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.10.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.45.3","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ObAWZhr62sxEzoROqmJP82E/NJvfBVl3wJhcI6qnr0Wqq1PO1ySJWCc9mY/gX9A2Vzi0utWts2L3spe3Eu+AwQ==","shasum":"0bb8c9106052c7c68669137ae89c64eedd7526b9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.3.tgz","fileCount":172,"unpackedSize":1628055,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHp7dUsG6L/Ma1HTKgdkJurdgfRrmNrU0SpYkqEjlhAuAiEAqs1EDdcgnc8shNzxUg+VIR4OFx9o54B0Dq3NlBB2byw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKtVHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqz5A/8D9MMtMygyfbximCfR3ZmmNQnke+Dis80WOKEy4t92JZot3iR\r\nj0ICjXVJyJBseLZ6hlldHMzHohxuC0DIu5LpSdrF3LGTIcLl7OnNEqp+faVo\r\nFxSPzOx6pkTMDxEXHAf9tP7BUcFznmyQo1RXpSmcIotohjhnLS5oPSp2sKsj\r\nbHdXGCt2IWlEvhvhqZ2DC69JBr75Q3pWf/p9MMXgW5G4YZTnfVdRiHPKwhpX\r\nGVyn/GRvR9vzoadgm8SAU+aC0ReFmNsAgfOWDltxbhGzqwq7PT6bgEQ5C1cD\r\nTekVfXHi3I4CH+bzyoGrlRdiwv01TXFG9BYlCIJnSXzomOnjaTeR9zyihsYn\r\nWArEfj44aUfsFNnGbxqe2++ePK1BtVYrH8uZYMBFBWOZxu+6GH6TfifyPq0A\r\n71m1XUGIYEc9RNvZEKq3nfTsYg0cccNiYxowwqXUVZM7gpL6vwuZ5vlk2Sx5\r\nglx9TR/4VRGYkVXYirh3+eLJSVXQIgVDxsZMTIMFe3+C8J1XKWiwVJ+DNj0Z\r\nWfx9qZfeeugH9IY//XwEheRlpNvc2Y+e4YSwKcheb7R3k1gukjW4OLVmMx6z\r\nNPsnya73li5UaHLAKyk2nDrrPEXra9tWCSh4ws399QZCc1fPI3LG+wmajCwX\r\nekmwE8PLb+8Lo1c5cALFIe2z5LHxelcufcM=\r\n=rAub\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.3_1663751495181_0.830176603758241"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.4":{"name":"@pankod/refine-mui","version":"3.45.4","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.4","@pankod/refine-core":"^3.69.9","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.45.4","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-l9XvGx0WamnnR7yYNU8UP0bVKJ+djY7gDxikNuAv5/YBdVBHdvAv4IFjdvS9Rf14+43mJwa7OgO7jEmGUIPMHg==","shasum":"58524cc97ccc97cd8011e74740dc28ff16a2cefb","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.4.tgz","fileCount":172,"unpackedSize":1628154,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHC294CPoBDS+B+3Cxr5eDeExqvqB1vN3JHcUqM/w2J0AiEAlCf2U3+PlkMQTYcjBePHRC5TXkW6jncB0NdFPwL2jWk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKtzRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUlRAAoIfveFUEnh3YJrbctVkGejlqoNgTRV8k6L4T12SqFvGZKCSj\r\neLz2QlgM9kDJF7ELgF7BpMUSSqHSc9NpZwwu5q9SNNSs5p1KJtZPu1fnxoui\r\nZ7plBoE6NWwWdYDmbqkK0pI16bJeSd7GAxOgnh2vV0439kle67+io9k80LE9\r\n8j4K+uoE4tcg7cWgncPk8Z+DddlT9Sdv6ln5ndTO3OlYBgN0cy7UKTqUri0F\r\nktbr0Oy2Yekr0pPnO9/tnVkGiZn9JrRIwsSMVmU9aGWSxfoOstSHhylztGq4\r\nuTrLTqAIlET+i9okQ3girIIOiZ66K/1Zz33mDQKL/POokpSqPgYAe5vzz4cB\r\nahZs/Etm5rtkBYySZEglN93UCRk8SmGU/YVQTHIh22tUy9Lu6UpYQfRG6LY2\r\n6HckRVbIU60kGku7SI8Oe0perhvhJj5NI+9EIY1Ra1JD0MDOUGZyog8xJj2R\r\nTJ+KINrub7EGk70tOAfxbrnaFvXYj3kJpr4Cfz7tkcFCPBYkDtYhdOC+OP27\r\nNgz2wU/j1mUF1y7y8awf9UVDgP7ZxIdYOFX4fc3s/YPgc7BUMO5fFWbKTVxK\r\naMNAMOk0ImJtHWHagi1ugIxgfX5oq+Y0PWoGqeNpU0F4QZqMKHmIQf+Fo3PL\r\nv1ndDS8SATwPdeEquf0p+2z1MDpRIz8/HH0=\r\n=suTK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"aydinakyol","email":"aydinakyol11@gmail.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.4_1663753425709_0.5290702985533766"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.5":{"name":"@pankod/refine-mui","version":"3.45.5","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.4","@pankod/refine-core":"^3.69.9","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.45.5","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-XE/fX/Zck8IjPhoh+7iNm8PUzw/EmPcWAU+fnoGO0im98b9/TCxAy6WYIrBQR6rRPdQnCxe1qSsvRBkCA1nb6Q==","shasum":"1709acb7ed3e537f765830533bc1f89a9cf8e2b9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.5.tgz","fileCount":172,"unpackedSize":1634059,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1yynHMVHn1baP7Ou89zInpM1Y7xLDXJLg1xi9sVSwqAiEAhlEBVurU8MWFFzfQDqGJzUJq7cBOWK9nilhTZEVyiNg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMuWGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqwGQ/9ESaHCfrxHnHLxpdNlN7606CrwYiypSBhNPlpqoUSQGaLsoYy\r\nt/pRyoSBcmLe+/TjTpSbckFOt/q+Nvv7bX9MX/ovrZPtKbKeECzLmTClCXvs\r\nguSeOTWQtrOJHLNwyHSalX9vySo6GQyBPMskpiunDp29dwTwzssXdgUeXrTX\r\nmakgX/AXn4S2Hl/nO8Le8wmnMOuo97g1o5YuVsGbKyeO1LagNEZninEZ+8zA\r\nAaezTWftH0DJck3Crqc9hhDUrqMhiMkmlJFY12okzJ4nw5WN40eOrdmN0zNF\r\nF8Q6zRYo78T29Tge0CJMIr/3gUUJrABsDh08Aa71kEKko1QZ4yBHNsXFULcW\r\nNv37mDd2A+944yvKxxF6vj5kjgV3qdv4/Sg701obk5obCsWfv/Ks2K5mAtav\r\nbtloj/XNerQs/6XeSojOZ1BPdA+5vm5l7BVoYk0lTN/36V59Ya2kvoAnPeqU\r\nu9Q/EBGrjdGJmi4s8N0sjjJO36+yuiTPsafFU2ZD8gjkim5glYqHw5b6ceFR\r\nJjh10fjKho4loD9MRUKagBwHlTNMT3q61qUx1KLq1SHYic+XlG2pVzCT/Jnp\r\n77sDqkJz9WCRKLk/4Rmb5MfWrEY1Mvb8bGPfqWGMdcpj0fAqatd48R+v/GCT\r\n/ukggNRCwy5L/ksRGtHD1778AsGq8St1WYc=\r\n=y6q8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.5_1664279942295_0.5736626524025805"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.6":{"name":"@pankod/refine-mui","version":"3.45.6","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.4","@pankod/refine-core":"^3.74.1","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.1","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/basics/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/tutorial/headless-tutorial/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.45.6","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-WBlRZUypu2PJzur8z95pxs/z5NimcLMREtDd/LdVcJ+kBLJPC/QJ7Kvo7bLgGIAoEAt71shl3SI6zsG1szZDiw==","shasum":"083c3b3eb1aa426205f14a5a62067c78ff674625","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.6.tgz","fileCount":172,"unpackedSize":1634194,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDT7eKLkzYnRiBxB6GfAhOi+gg0mgxSqAllNJWcHro8FAiEAtW8nQakvR604oXFqfQEzXuUjx3TV/rGJlMy99nk9dwM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjM/OhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmra3Q/8D7Ijo9T26BiZj6pxcnFDysWIv8MsC0YXhNBIX6TKt2/sYKFV\r\nTI3o0J0cEyE9tfU04htP+teclB9iHRvYcLLXbtctY+JfRwZvfZApbitF7wYc\r\nnYvsv/t6UT799e/0e3X1ApO8ftx2bsSo5JA+d0fWwI1idgc/8NsoJq782xc7\r\nLC1wP5FFzlmcY/SlGw23awN5RH3ATPOnGwDZnY7n7q2WWRW04VXZtuTHDtGG\r\npw/XIlkho6M6PjJo74v02N63tQiHjRvAu9i8kyPOY69/qMz5m/3YYbNMK0LN\r\nxxB04Fn3/xbPyxFeKVm7koOUn2U0xn86TOZQ1l9nDxiYeRiTuXxiZTPbVRh6\r\nkFGvHQEhMEf5NJ/w8ZIj3L1yJd8/cR29vYCHUpcadlrAo5Tm4PYg7UGceLzk\r\n+EYPuLuEfHgTB9xy8+9fwGpyBPFDE4f7/mBHBGMW9xmXZ+R4oU3FHHBSEaCx\r\njTjgJjpdY7S7zoz2R67w2CKtUztvmXzsU/kgK4OXEkBTW33mDzEWgdofu/yq\r\ngrwFioG7BvCGe/AXOc/UFTdsvvyPeSKYcmKjTJJqEbiiNCk6L7oNJpkdY4Lt\r\npWc9kkQVDLqI+WFomxuH+V608Emyp6n2fhAl+yz+5BZViYaKcWBAd+Y8lm7A\r\nKemHtmJMP7oKAug5BSb4a93qfyY/fvzgmO4=\r\n=H7qs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.6_1664349089004_0.9080773959563446"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.7":{"name":"@pankod/refine-mui","version":"3.45.7","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.7.4","@pankod/refine-core":"^3.74.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.45.7","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-bm1PmMWpu8yj4miiCtWG067f7B/tt8y1QNXjd7Dsbqm1kGF0om2T3uoK5EVrClAoUUXPpDRiA3eqQp9A0MVCfw==","shasum":"383456db0a8054707a16cc226d68f369798ba63a","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.7.tgz","fileCount":172,"unpackedSize":1634428,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCPFf+IEPly/esuDY4Qog7Q2wtbT6wGYpqGJapjwipXAIgCxAzSMqmsqKmCeZ6CkXWZu73yX7Q7JWgt+K1Zm8Yxho="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNA43ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpE3w/5AIgG1EDDhVcgTlRoRv9ddLWSIRcnMSo7yVoLejLi+ZDwSXP/\r\ngg4svKWtCIWKLz0PcCWHuur2RwjczmDpGdGxuy+uB3vpO8c1YhnjKsxy+KHW\r\nsaTCFXh+PLwXpDgoL+EieVKX4PsBh0vDRTrF+Gxz+69GvD0rTjMesM7ypyoA\r\nYfFV8Q1ZXWUCVRrzmM9SUgpy5helYSXMoDw9lyZv5FLFa6+B7b36ThIlO2Y3\r\n19hNvcUyBDxqF4FlLgimvwsttZBWCtHC2ifEX7UJDL1hXwyc6pBwIZKUEVep\r\nVXH0wmF5MDwiHUGXvSpuO/d5y4PmeTdC9R7Rf0igfT9eLHincfw+rtzj9xWo\r\n4D0I9HNBhhytiE1OWVVA2mlGl3F7CG3bTsKN0ec5Scmk4eDOtYa+w2HL4nX1\r\n1qiZM36KW5rMnw/E1XHBzuPlexmeKEeRvLWDnslrS3yzBabddT9PosckJ8WG\r\nJAYrWg3HJEqsNK33fAu3GhBeNm2PYJucokkC2sJqF5naCfdVm84hCK8IYfEX\r\nNA8BZ1qe4LdbMR/QQQIv+vxC2k19YQd4/DZVq2dmeNR1AchKGfdkI4QWNfle\r\nqJlIcDq1L+OrYB2tGWRlYBwwwzHfARfnJ8+6jUX4tbFBWHMsEaeJL5ZUhhoL\r\nAsWggenFs4IKM7LS0aQKXe/VDgy6V/pxZaQ=\r\n=5HOd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.7_1664355895230_0.4420504101850147"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.8":{"name":"@pankod/refine-mui","version":"3.45.8","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.8.0","@pankod/refine-core":"^3.74.5","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/) and [Material UI](https://mui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.45.8","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-zxlyI/2zgPR/ZGT3Oz/sYwWGZzJkRAmrbIfTU1taAnNW8QqSS6zAjsfTg4jWI1JqsyNgzimHp9OVIzDYsKEGhw==","shasum":"71502c032f2465713a0c0265d0c52ebe075d1511","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.8.tgz","fileCount":172,"unpackedSize":1634589,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/R2TOWK3MxNfX2rcpBx7DPE+zA4EPGV+M96JLjjnRRAiB1p3KxvYwL9MjsaGOYAwKuYk71GNd/u2WCRzTJ1DonoQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNvYrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowlxAAnZGDtnzNdPDt2jpK61VAck2thnG2GVm8MG7wwMDIANCy8VQJ\r\npcsjvtpoqJuyoR/MOHNzzh5ZoasAWYzVJQoINOEdPYmTVArDHg8E7ThvIsrE\r\nM0ItyQloZSFtFl910+uVNm9VagHR4+CsfZfVC4zUWndCXRmyeFmVOsAZK/2m\r\nG+sYuZdWmeQqNTDctSS0OsgMhaLEtotLU+YWG90JW3xTptEp0BpBVBsarjEw\r\nBr9ZCUYsKxO53eEDUyypVsMBk8FiLTfSy8J+elxxdHf+VTB3RChGo1ZO6OYC\r\nUIw5iuWdr0lvGBk5Mj/CDnUhxHm6o5AGBzAO5fUEHKF9JFyoe2n31LH6M9sn\r\nVLu+9vJ0c72L+ZAb5RV1jfHNNLWWYdghgcB8P77lYByG7i5vmxCbLdM+t+M3\r\n7+p0ixGxB2Sg5jCyIK+W7B29vmTMfwqU8AZhCDMHkZ90zWyut025yrZPGAYA\r\nTU5+B1RDY0GrLhb7qiJr3+XKJ35gGQw8Z2BACSavsfOdyADN9Hpjc6PHLhpJ\r\nSMIoJOXBgbLUUUiEQbeQ3oLhf6QiPl9tB/mbdKjAYRa7Y9K0I8ZUKC52qYcQ\r\naPipJxz/AKD73/Pb8S1O952Vtmrx/wNU+tQxqWjGjyDlplFw+v4dW/F2fLrf\r\nUkC1qmsQF+InPtbzO63h5ie2/c6AoKZwpYg=\r\n=W7cE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.8_1664546347574_0.696312671949789"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.45.9":{"name":"@pankod/refine-mui","version":"3.45.9","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.74.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.45.9","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-OLrpsE2IFBdIy4s/McMmZzfLKR4Nf7CP/RWZf9Q8fB+nFCo89iSpuu1MWTqcvWyuq8OSVv9/pUvdzPewP2H/rA==","shasum":"e12f3f017195cccad56f191276d6cba94c1f68ef","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.45.9.tgz","fileCount":172,"unpackedSize":1634655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8x4QzblBdHJdq07V5RX0xUUSMxnrXK5eHD/60pvDYLAIhAMNl9S2x4Elpmub50HMByar/cdHpX14FqV3xGEE/XmVu"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNvnkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQiw//ZQ6k3WbdotO2W94bun0K4WqqmGbY9VWOj/m9fJFnS6yllTSl\r\nyAhUFa4EBhxf+invt4IzyLyQYFNbnXEvHDy6GsJZARVV5sD3Y7UyG1PTHZPi\r\n74AxGp9nvtdTEaCy8PZeBN8yLmRIfL+WsTp1hIX0w3usRzpcYymg+v5qgl0D\r\nrioTvkTXhROpHkVPZOt67whvsE65AU8p3Sj+dv/oBntPLeqk4l/54j4LTPD7\r\nEAZBvavNaTPcg7+OAYfdOEe5iq7liUKVjDuxiJTyFzjG42sJ8NtM+L+k1jps\r\nQjsNP15KnB9uJ9Pt3fhGzdyHsLS1ts4Z9B2yzwb7IQlLbV7FUMR7Q21VzdSE\r\notz+XEmEjtCZKevIkE3CikoDaAeTwLYatGJRifqCYC266vruZwqsTRb7xJtt\r\nV1T5y/cxm5LpWv6jhYlhSkUJsmTgkxN+A9tiqJt+e1sf/R2531vYOS4pR/y6\r\nv+MPTkWQcqgWh3YD3bjclhfWhHqt6C0y60lT8j3/HXbsaf8+vg42dvjms/Jl\r\nbr3vc0O9sBzm5p02O1XEFDzL+PDsj1rEqqUb9zTWjrb/7XsTzTIxefzgs/Zd\r\n6gW2lRY6KKcQlJH3e2NaUYNYoN+u9ZjgVNwOWKnhJWApYZBAkQfeAq5S/xYr\r\nng69e4NtIucktTwoW/ooE3V1VT15C3cZ8kQ=\r\n=n9va\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.45.9_1664547300632_0.20967090526555276"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.46.0":{"name":"@pankod/refine-mui","version":"3.46.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.74.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.46.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-1LjjHEyGpA9EaB3xI5d2eOVTPrOfYXyAYJXDC9ILkGtKEpYe3ZNdxio37bbMeAs12fv1/f4SZBG8hUsRZBi+CA==","shasum":"687078b73e80b5123bb1d57fa37211066f789a65","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.46.0.tgz","fileCount":193,"unpackedSize":1839897,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+QXltAafqyePmISzLCJ3n65GaIlTjWBJvNoGEmNIK5AIhANZmoaBM7QzT2ltSUmOT+3EtCQHU+bFn0dY3kEU2898F"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPCjmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSGw/9GLIRjZ3JGisPSgIuL9SOGFmzIWoyKl8Poy42u0Yy3tzpQNi7\r\nLM+RxojOmZHajZpgNYOTF52lpsKx2j+KVhrqTlcqjo2En//eW1Z//qSlQvME\r\nHUMlB6cucoQSXmaL29352jqPytmaeB9UlO76nohy7ESy2f67RMo1zvkWUolW\r\nht2/A7EvfjFjqG1maSU/pl2xZjsIdhsJmMIhuarrI6iAXWn/CXzo2+u7T3Ci\r\nm4JZo45JRd1JHlGlBEYlU07nNvC89c2Eaxzukw9LK8UKgfaXMxKCpgfw5You\r\nP/0Z7+e4ibA02DfzAxSMvMgevDlo+yJ9XDHRgfKBvpW5OUA6vrvJggRTZ68r\r\nks1+5HmKnuiSxqmDlSytazWMG1rcf7PgiiEAeo/WYQ+l0JbfkCJHwSKTbsUG\r\nms4NP00PWJUYehSP/j1ezUc3Np7oAzNg1QT+w98KN1DbYKke74YTqTubfWjY\r\n3ksW62D7NZZDA2G/6fSPE/ryom/iIHZl1IFNhXRloGVbgwd6EDLqW8GVxVIm\r\nAdzdsXvh8djwSGdjwRC5+E47QCYW7EfYaekFl6ztHLJkxKz4faQBduPFhd/I\r\nGH58ouso+b2zz3sppQLGoY24qqNQsFxMq5hJMVdJ2mTY0T5rjWIBPQN56/+q\r\naWE+cxvon+O8rlb+z4fnuFEm6TARFt8YbPo=\r\n=a3CZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.46.0_1664887014484_0.4957808993524595"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.47.0":{"name":"@pankod/refine-mui","version":"3.47.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.74.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.47.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-dYq/u1gOY06h0A4zBBbgt4Vnu0XX90oTSZ9g++23MxS3y4HNmL3T/q6B7c+pIAOMWmuTIy6mIlEjYPzVJZtziA==","shasum":"479618add3fd0ebce3c29b2d4ae0e6e54eedfae3","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.47.0.tgz","fileCount":193,"unpackedSize":1840420,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDL8kKXvupokMNrzzpLVXf3lVCxD+PLNFyWwPLqu9a6YwIhAPaYwC+fZ5QKiNA4oe0HPPTj3SRNs5hGTEmer767KLmf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPDoYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlvQ/5Ae0tazqV1NtSCeAWOwsCyBOAU8OUvrvdyQQY5vt40+0QgaAs\r\nraCJRPCAdxG55zpli1KYzHPWQ4cDHPQdJjZmHsRO1A8p0+DYzcbJ93+LqSf7\r\nsk/jDDbjMIbQqJ/TTnbrJeLzyYGrM03/We8clEEQPSYxYJPFjm+0h0GLyy/1\r\nvrpWUR6ma3A4JlSIw5UWZRSZhz72nZ6tA+NjA96nHffpnZMUOEsmZ9EUE7Sp\r\n+Wanexq0Lq2AXQAyPJfoUVNl5GcLcZM0ekxVzloeXGFff8sR8kh9nj7DlkBx\r\njkuKY2ThjdNZ30nNzZzqEJB1mdaY4jk7XeWByFZxz+8xw1bKkufqdhuYEIQj\r\nwpaJ0jH31jTGm9x4BzKoitpQ/f0r9jokNw/8F9dEvEwKc03CfBFsNTTr8U/e\r\nRuDChCKA219CwntYMIlQ6LYO7Ym/GMJlKfXzZfuXmyU4xvSLdYJjnnIvMEQE\r\nlf912iEmrTRYW76oSyS5urdjep6GXxbuJ+AVQzn8MxCk1rORWyFL5wNOjuZM\r\nThctqpbX73v57VFG+fXIzQ2VIOHEkT8+P9g3HUeSBjX8YShRf+mDwDxO3C8i\r\nDT4WyxaQP/FtdZW5JQQSxyNVRslEeUVqMKS6VWW+mZUgYD8AlKPTRtl4+on7\r\nVb5Kjlw9RfYnc1BsJKnYAa9eltjfKGXY9K8=\r\n=dRrY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.47.0_1664891416082_0.9400895983353403"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.48.0":{"name":"@pankod/refine-mui","version":"3.48.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.74.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.48.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-EuQds0z9y2XYVmrMBH3KRH0nD0HypwcaIyG6msSIb9rSrp6r+8w0nzIVenDPOsZ/OXoBKPwMVvKJbgqHrtx7ow==","shasum":"ff4f605ff4a5cbcae4e9d7dc2e31e8962ff8871d","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.48.0.tgz","fileCount":193,"unpackedSize":1840943,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmGmMpkFOIYpgfisuvA0xRySS7F4LHThDG7IvaqxvUKAIhAMllcRTle8ZmYSZpYdvKaFuworSV2GZjxlJ0ZNjahqlC"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPD3pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmopOxAAhvWz+t0zNOpAa4I6ebPmIAWxGiLXAqbuZk3XIwvZmyO/jCXl\r\n0F90WG4bhbtcAwfE9N1PuyJ6FAp9ZzGLc0xDpFlgJtm508KxDrF/zJvBNB02\r\n2cUzRK0b9Zb3xO+NrHFI6otwtlm+UsrNiJdUk36ymRyp1BxqT9U0xijCbI5M\r\n7i+EoIhogXw4iRPLmuNkRlgqwiWlLbqookoLgoljQ4tb0CYLrm7W5XKrpyE6\r\nBz0ODCBjpAE/fIzKsMxqovlfOKk5tx+xJVEjM9q6mv+O2PJ7eDEA/3GO3GXF\r\nWQ4oQE0mC+4eEWeqN4Es8gHNJwMeLyFdkrO5KOsKayXO1Ta/M0vPFVR+l+FI\r\n8W1QU5/s4GYHJGrU6phhAg6jjSGXkxPMqfPWg/tcFGB6ugIbUi3EuUn8kY71\r\nmO7JAZCwiVFrgFgHuC5bfMiDZbfYs32GVtgG12YJhcyXVra0GCm2CpyTmyLZ\r\nkgVcu1wbbDhq5Q4v42nJB8KDgWYhNLvcXoW/Yi4vnPu7pbiJbJY34Wtol9rd\r\nYztgElXJS5iFOSWx5zP0qKK3c/vfEGtsh+mFcD4zFI8xDYsFy8s+dNL/42sr\r\nDuLhXvsnPwkTC+H32dO25u9F0plr3T+F6QFDo2w2isfsMLvXF1XoTdf/WBV0\r\n17Q0qV5L1t+FmHVfPQocMQZfa7FkSkr9jDA=\r\n=9Zvr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.48.0_1664892392901_0.44106826655546416"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.48.1":{"name":"@pankod/refine-mui","version":"3.48.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.74.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-open-source-react-framework?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine-open-source-react-framework\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=319164&theme=light\" alt=\"refine: Open Source React Framework - Focus your business logic. refine will do the rest. | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.48.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-cfKdwt2uUP3IalAJVTOxt00/I1ozbNCOtuLQ/RGNz0FQNZQ9o2bIIM+ReCBrIxYPUaTQg6EcBPOoT6kmMq8aBw==","shasum":"fa61d49fba49392117c876a248531170d57372a4","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.48.1.tgz","fileCount":193,"unpackedSize":1841444,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZJmPoMhkfDjQRO5LID3ajGMJREpk9Jw8QQG8iqdmBowIhAO1v88d9Vf0CY8Po0zAYEl9OPGYbfThHNTVgFLst4m82"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPFmVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDExAAlXFyVhtBxNPBcT6JjwvzjkzI5G2lE/DnzYKz2PqWz7xLsQZR\r\nUkxe+O6qfG9giFb3eKJLsmX1aU8wUbbvTyDIHXQzljbftAJl/JtQ+nWDAOYr\r\nPeBKynOZRWw7mVtsdEbHMAAgAm/AKdx5M4tsupzO0/m5LIkUujGjqVO+Beq7\r\nSkYCgTCfzeaMwChpVUzy9iEJGVe8esuTGE87Dw3Apx6tx4A5YarlVey0y8Vf\r\nl8KkPWRNbbDMuvtS66B4812ybnR7f7n0aHtPtJyKX6IXXSjxZBwMf+ZOgANp\r\nwerkTYaTUyaUSZdikdiZ2bTwnC4SV3UXl0i1a8AbOYna4C8obY/CF7HmPB4R\r\nx9zEhZOE068ShmUVTT0HPc9TSNZKlOb4NO+TpRoMCoz/GUwe27ZGUeXgYVQq\r\n86+nVEarRwKn6Y5GzVDXYOxin99hsaYEkxovKxMKH3qEKvK3ry87/OQNLgEn\r\nfQH3pP1d0ys/abxNHx7QohK1kb8I1GFw8kUcOwb9GKQT0L6kdHEBhAq6sCrR\r\ngGKsyHLTqwI8P7wr4CJC5xWn2dVHjwEIKtE0ITpbVSLkXaWyGr0K9Ixb3Y0i\r\nbx94bxJs7eRBEC6qY6vkghXKspVQ4CBUjqmPtoMnUNWWvd57j1ySqUSN0cN6\r\naPBUxlorQS09vYRHhne4zRyUHoi6LqIH/TA=\r\n=dqYD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.48.1_1664899476645_0.07481260178571958"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.48.2":{"name":"@pankod/refine-mui","version":"3.48.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.74.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.48.2","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-SX4+sN4y7/IetKsCBdRt0KBG6HC8fORqnehWJsLva3tTEdBmAHxcJU5yF5SgiMow9IVREq/7H0KaxjABYOi1MA==","shasum":"b09438be78057505d79eebd2b2704896bf1002bb","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.48.2.tgz","fileCount":193,"unpackedSize":1841539,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzhMgqrHYqj4fM2J5nEPYDgkKyUjk20CMm7h+gdmORNwIhAJUlcXleVVQT5J6r72wp2SNNvoNwxMoe3KudF7Nid57T"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPF4/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrU1A//fZ/oQnzlKmlibXB+AfdrWLSunaARMzQVAn+M8bWmkV2ftxT7\r\nRDGwSMEEGsmvzIisPf1VfHd4JYOz+w4soKPKf2u19mFmZzKpzAYcs2oizaxM\r\nJoTaiNp3AHCDqnHkLrqL+ne/YfEKiVV/z6kbIAEe2AqgRSZdTMScjASvnQo6\r\nTDqTxdVCvrcptWuGSw+WHkjaK7/r2ygATcWEgUwdy+813cm3kN1aUHzx6C5b\r\nQFKpNEJNlwq1rB4DqiUkzhAuQ4aH5wgqOfT1E6yHmtfNSGBWmeFPrkSQ16tH\r\nipBGHVJSZKlRwuSuubIEkndGnO5f9DNNb8wFb58gSAO13fUJ2yp0JIAqeFSa\r\ncSnw9Q8QHWXSo0hqrMsewriyCgw7fi3JzJdOBlG/Dmnnk8Z/nhcLuiQTihFF\r\nUDGUglzpVCrAFoMiJFqPT6cltLTL1bDN5jNY/Q5iB6N3zR74Dkj92PlPlVB5\r\nDUnx05aG+HVzLN4gpSj+fr8YzRPzR/PGdLXRIZyxFCmnE7A7oqQA/jaM4Yb3\r\nPt7tZ7D4s3nmDjQtsSvRaEGte7Vx73w8stUXoV/RPwJddNw5w6FbqBjj+Om7\r\nxMchC/kLUxDFPfUglLRK4s1cVxrfrFsaRR4kAc7yFJTGoFTIEhLgWVa4u+1s\r\ny5Eunq/OUb20bSdLhPSrxxWr23WV26eW9qo=\r\n=dyce\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.48.2_1664900671353_0.8975166614301264"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.49.0":{"name":"@pankod/refine-mui","version":"3.49.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.75.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=362220&theme=light\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0046;&#0032;Build&#0032;web&#0032;apps&#0032;3x&#0032;faster&#0046; | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Meercode CI Score](https://meercode.io/badge/pankod/refine?type=ci-score&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Meercode CI Success Rate](https://meercode.io/badge/pankod/refine?type=ci-success-rate&branch=master&token=2ZiT8YsoJgt57JB23NYwXrFY3rJHZboT&lastDay=31)](https://meercode.io/)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.49.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-mWD66q4sO07MrJ8uqfs2ozUsK7bZ1tmaK3ebbjKU+L7NVGG/qSoOUjJ7nRg3RjgUnIGhZ8tlhmCSRsPbRNanhw==","shasum":"51786c2ccce22cbfa7757b80ca7b06f74d9ec7e4","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.49.0.tgz","fileCount":193,"unpackedSize":1848780,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3dKq0d/MgWPFollQcRQAGc8aR4Zuojp/pcKPBliJPrAiEAiJjejFhiqKfUX0/bS0WLFcoOkcxndv+fbdf8rOah+Bs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjPtdHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCdA//YpbT3jJpIuH7Boqy3UH1t5TPqeLiqjnFsOQluy9sIJ7ETU9P\r\neWBwBOsuUXuU0eUfmQ4DXqew8AdDMd3eod5h0kD4veGLsL3yU0rLFjeqswDO\r\ny7SstgJb9Grd3jmMYJexWzrzW0/uv2b2hYEgIEXYKz7wyfI0mP+LcGN7jkmB\r\nMHrWPptGw/Nu43eSrAjDQCL5N0AyNXztoNg+bJvQitvACH7Ejcurv4IyXEMi\r\npjGiiXXlxm/PyCQWqFttE9015HrGuyGRMG50XkzD74XmAFtRdlq0pdkdNPzN\r\n6twuy0zGtmzFO8lt3tTKWGQJlrmQ1Vd6URF0oT+spK+8F62xtKGwl/PwYSb2\r\n5GYNSRikUo/FxOpcZbf5T1ZA6VCfffKERLJhNbIPhiFK0sp17cninuD5AqCA\r\nMRSwjBgAfapvv9g30IhG/d1Em62nVR/4M/+Ok1IrLe0hy6icBIq71p7cQqwI\r\najSE4gBvgCJtmdxpUf8ykz4TAA52KPcc0Bh6rWhIbqX3IYd6rbmtqymfewfg\r\nIzMlbCZaBfN9w1uu399wcRWGI+EO6Jfwk0uqx1MuL+/RE92rUXsclc/Uk7zO\r\n6Sx9AEsf0dfPWD3CvLcXckZwpmpIjNwqSfJCpx6QJlgf4sm7wLycdIq7SakC\r\n29jIW3P6UEQ0/jQDeMD35pHMvOsI2UMxzZk=\r\n=Wr02\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.49.0_1665062727172_0.519989051982154"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.0":{"name":"@pankod/refine-mui","version":"3.50.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.76.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.50.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-82JrXRw6P/PN/JEsf/AB5uMEAY3nt5qmVrEQyiuPrOQNhMm19NklWMQFAIbQWKQfH51MuN48SHLQMEEz8wDI8g==","shasum":"a26290545cdafca060298754d7d54344c97bedd9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.0.tgz","fileCount":193,"unpackedSize":1852684,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQWa/IGEAc7DDmArtdYDFvvwPEAT5GJurDrPuo42AenAiEAnmTCZSBOhvAlAWJHWGSgbUXg0ndWuGbkOvz6UVYG77s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQBF4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo75A/5AFLi8pQZULb4vcxUQBv9rulhI/LdfSNNnWuiLhUwqp59uKCI\r\nDXG9y3WHgNzPfZ0jvwNUFbfzhf86t2A4YOoSQjqXPYarhD6ADp1RIn01Q5Bs\r\nkkoYipvjiazVZWTrQq0NmOfxUvSqta2nBRQl6s/Q+kgR+MOe6LeILqA22To2\r\n1oCMUx97/QwHy0+P/XkNBUze71r+A009Go3TePvqlaB2VKVWwgRp68+fpvKH\r\n+xgtLPJryCec87v2/HXuKmQPohjJsJ8P+77dXdlJF7gyzXwCIDChAsHhmCGQ\r\nyyVsXBiI599LoP2XiuWsix7H+ly0ZazIZpSQgO3ACuYPttieLjtlwUfsallQ\r\nvPlcFJ7oB0IWmh7RpEWlz+pRlXDkQJkIuZtt/I25RYexZKhBHbgOadAGi52N\r\nmqyLT7QIeV/K2N/Qrx5m9Gujg1C6uVA/VaE1DVGJi44kWcT/leY+izKS3y10\r\n0KhJK2rpkXBxcx3bzM73G345oe5UNINigLXSxv47LjyPiHiug0eNtDaKtkn3\r\nFZDozT+EjYNhcfhB1RmCB41Mlgzkal213pRDzJksgzrvSdvKGHJNcpUM36QG\r\nx9925hNY7iqrVUTpVzwvwgCFmrysvazbRiYgu/LJAJhWT44uWtizXc+tanvo\r\n502rEjglaHdeI5ZUmEZ4wcJ9PO8rR76J9pk=\r\n=EEpu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.0_1665143159737_0.8056983607443164"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.1":{"name":"@pankod/refine-mui","version":"3.50.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.79.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.50.1","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-RqeUlX790ATC9prUkx3EkKMhNaMOpstRdFxk/PXIQm8E3Oueh72x+awYpolrgBWJsbWB7mJEVk91H8FPUnIRhw==","shasum":"e262f62f00237655c4f05c747642b31a37ac2d69","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.1.tgz","fileCount":193,"unpackedSize":1853891,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFR1VjZXw4Oqs0t/ZmvW2W/bwdj9mrmJGCfWv4791tphAiA+7cIlyWdF5lSH3VnEBegg9eAUW6zGy4uRk+gZ3thC5g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRTHyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2hA//fwmg+EnITuUn5PoNn77hzEOZTBMO0MUKYaXTyfB5ihz+bcsC\r\no/WNx5j8w3iXDqGE2CcwcH+WiIxGVUpzG+TAGS+CSTBbWHp/n42f3Zt9GloT\r\n0GD/wJuW+QIOd0ZnWuIvq+b2rl6Dzl7APvyaE4Hj4+yCpA+kVCpg50kK5Tkr\r\n5+jXJQEWGgHXKWhaeAP/G1FHf2/Weh8koXzYZIok/G/YCi6JirSX0ISPrFh1\r\n+deHLopb7lElJQ2AhbPfMV0w4n6vaV+mWygxna8SnIYdRlgYePe+wf78hBWW\r\nPq0p3LXZ6mhco1qZwsqN/XumnYnXfCNcJwwhYdUpV30jrcDsgvK8QTzwJ+lz\r\nWMVUW5IwMRofOWRCjhqKRG3Z7JS/MjGWgWbouR34C05NtsQocTPjq8mu0Ru6\r\n5e6jzDQWP9rNC/m1O0E/BLt4au03Mn1D1Rck0brZMlvFDib/+R7zsnhuuoSJ\r\nItBy6VMcPvhVFeNTCclYBxqRxV4UnLHpUF/a5a4KSrxDFhgAxaTl5Zs0mP+W\r\nwGou/pm7oSB7kL9fHQlD1e5azalGPRvGnLJyvn7AGL4nMaKcicJ0MKgAWoKY\r\nZuWOYK+xSb9HZPP8+hTeuEDu5DrpbhNLf/5Ke8XzgC0miNVeBbLRTHrUrvMA\r\nr09oxo3Hba1NhJ8hGarsz5MV+0O8Ynd1xm4=\r\n=La/r\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.1_1665479154044_0.48891654146376884"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.2":{"name":"@pankod/refine-mui","version":"3.50.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.80.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.50.2","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-2RxHYP5RG993Ae21mUd4QGa5kl8wxoqNxvqy1Ah+fb3zBR1CSC7132mI24oL4AwDVu209fepydpg8BcGMugybw==","shasum":"d86553bd78ba4a5a9db7a511efb08525edc15db1","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.2.tgz","fileCount":193,"unpackedSize":1853952,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDM3/SrNF9P41KfRNplV3On2GEoBqd5rmki8giQ13AVcAIhAKd76jAejv7DkjWZ7S9c0eK6VzRupBPpNQoLGYxkCE3H"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRTjvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtSw/8Cw9uRicM5gyN+gYDs4jSGw0mwx91FAfCsXjAYPXTTt0Ho01/\r\nclxDF/0m7ynDOu1AoTYK+8Q+RdziQ1pO/WFQ9JTlHagAUT9xOvVcy24cKsP/\r\nvMmLizLG2U601ydoOZBfWHOkfwhG+MBAOSuorzhuwb+EaqC+RFMCEZp6uM2R\r\nwknXGehlEbzYG5zWJ2DrrF6o+llwfQCxpLdq6aneQXTNhbHF8L9f4KqRRPLm\r\nuM3dEOA+q3xUMZUNMBD98RF67ROrRGOh5IDcrBaxa3A3JBrjfJzhqmS2jHQI\r\nTO18mYsJCSF5mBfhX+m8sX9umk7iwl6oC0TCE2ZMvvwp/EdIb7xsrlNMwx/U\r\nFogXMA1O3XcuR/QstBVTB3OdJdIrq7i09BuqYyBdNKD0FvLSSqZJcJhdprYx\r\n/iXDtTjA4S0RkLb/UJcg2mVdC29deRrmGQ/nyoxR1/rfCWFTCtunA5zalmg9\r\nXqVUjhxyQ/8WmZ0DUqEtmO7tXeTR9gj++mHy0wsdFl4DbGmqOWsf5OymrvPy\r\n9R1pHF+4IgRIBOIq1WFcQthAJOe7mG8G3RXKFgL2///UaEiZ1q0X3VN520d6\r\nH38pSOkc3JRbJnsl0B01OPII3f0Z4i3T5NmZ+plK6Hgkwz6nC0KMcSyEdCLT\r\nO6i5OJl85zXUq1TWSOl2SvTy9c2rnEHhZj4=\r\n=E5qQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.2_1665480942939_0.5504045750223363"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.3":{"name":"@pankod/refine-mui","version":"3.50.3","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.80.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Guides & Concepts](https://refine.dev/docs/guides-and-concepts/access-control/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.50.3","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-O/2ahacjCY9j+8W+nJJ6N7RhUDWc9S4hkTUo/gdjdcHcTDmb63F1pDE3aj9VsqAn6aggKQt/CofLHdc7BANQRQ==","shasum":"76a8c9365153cc9720faafb54534356e3166adcb","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.3.tgz","fileCount":193,"unpackedSize":1855255,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4Pjnw4CBBdrfVBY6wdaPNNVzV7Ax545iV6MDAmV24fwIgCs2myBeEHMlz4rt7YPy9SYVN0/NfbdxPhcA89CS4tNI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRWnRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrE3Q/+OpMZPuCxNqd7/uSFkM/xDpccAjL4bTP4nU14g55z/EU6vf9P\r\nTolniXSxBKDGqMS4586tAPLGePRMjej74b3mZ0DOP+8LoZ3nGVbAFhz64NzM\r\ntOifssTZ+fqBDh3JLZ7oufPhoKLqvJ/Hn27sa1ItQKpJq0ak7H3X03ob06T+\r\nNOtNrADKrP2gLyOSmXI3aRbZB/ZUdCesW9l6pDYn+WuU27Ld9ip1uErQscac\r\n5R1p9fgoDgQlcNsHMG4joeX6Jd03l5SNEzzZmB0DuK2iuzWF4wZXUpGuG90n\r\nL9fwBFNWWKcLwLzK4P9qQzk+ZvUkzLRTSGbZmTiNes5QcDCrlvmGam3ix7ex\r\ny2MqZu7tObS6D9RyTsy7SGZpvazaJPMfH999wbV3TUjslF2/zkNHSRnF/03F\r\nNwYZ7q87kn+GgCKHTjifLgY+pI9o9oQTpsK68oMnqrMqtWacBJ552F8/fxW6\r\n0q3IZYj9Mssn7EQbPKnTkUCSbWuLNi88m6CH+b5KDtIynY4K304weXWpPPZv\r\nwdTQBAKgo0tN2tVqA45BLKnetZjAe8yhb6crqEPQCLHX8JYCwMJLd7utEWmh\r\nXpyDEvYoonEksF/I4sKMoLy2FDTsF3EvVyzu8Lu8+fYznClywcUO2XTkWJCW\r\ntIsEsuKi7E8vivUhMHZdWgDPnBfPG/ECC2Q=\r\n=fbkr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.3_1665493457141_0.21910212112217486"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.5":{"name":"@pankod/refine-mui","version":"3.50.5","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.80.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.50.5","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ItI4JF471NkiEpnCxF9qgEg9dVSRcWCxhT2Od0lI1oBM0hESrou+fmhypMyVn9vnqKVAK8fMCIdVyhbvz3lL/A==","shasum":"d2e0edf206c7a1e5623e7b68ff2d8dbc73015a06","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.5.tgz","fileCount":193,"unpackedSize":1855471,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADNGDvUz0n5Hl99zuN/wmL6WxGi8pS1SvwMAPO86DlnAiAKfDd8Nv9dGcLmBi9BDGOc0q/zXwnAdQG8MBJZAQqyuQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRXnaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrbbw/+LlZpZ42KsIkjVXv2wJEl7ZrCe40tv1ZT8RJ4vz2+PTuZBKi4\r\nRZDNgqD9ikv9OfhIvOYELTBxq+A95OPoKJdKM00tbiPg/QkFHq2Bhg8N9YPc\r\nrOEF5YuWCeJxHv9QasopU+IuduRbugJWr/TQP56jIT+l+IWL2eYwwMErojMQ\r\njlYlHmMvsupj6BEyWoebd74v+O+oOf/q9Ek4gZvHU4yo0HpyQyegc3a7nPc1\r\nvDfmnU+xlH82uQjbft/Qh7vDbHbwDF7OEjMbJp56cGeCgdtvwJnndFQhU7XJ\r\nvwQizTQEi4No0pEz7YanhiQDJWL+vlv65VWTYjWTWwhD586LTUKBS4WA8L6N\r\n8M+uC7diSXBIflpKqfW7uqobFxUmx9+THntMPNr/sK4YcQ4ctm1XG/2IqIzY\r\n4A9rfqVnnroouNr/Twd30dGLBEjmC1GFVFpqVcEwLyvhJQQUu7WnyfOhXYDI\r\nPuDMtc0xpLy0X8Na4q5lrtfN8OyA4Gb/CUj0L2pLCmyrPLOYNHTIaMf/pDYX\r\nQSFwz3KUCvizjdB3o2oQ9eXNJiqcTdVZSbw+EhQJWXe4Fb4t7LjgMEx3GmRt\r\ngCdgpi9SukCZGNPD+RH2TiI/4F8/nSvBDiG1rrQHbOgSm/kPGgFdBH2E+4nG\r\nCTEZswO0en05+ocg1LO6jt+amemadQ4dAB8=\r\n=jrbK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.5_1665497562149_0.0070827453336888"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.6":{"name":"@pankod/refine-mui","version":"3.50.6","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.85.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.5","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/pankod/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://refine.dev/demo/\">Demo</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/pankod/refine/projects/1\">Roadmap</a> | \n    <a href=\"https://refine.dev/docs/examples/tutorial/\">Examples</a> | \n    <a href=\"https://refine.dev/enterprise/\">Enterprise</a> | \n    <a href=\"https://discord.gg/refine\">Discord</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/pankod/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/pankod/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/pankod/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/pankod/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/pankod/refine/tree/master/packages/airtable), [Strapi](https://github.com/pankod/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/pankod/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/pankod/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/pankod/refine/tree/master/packages/supabase), [Hasura](https://github.com/pankod/refine/tree/master/packages/hasura), [Nhost](https://github.com/pankod/refine/tree/master/packages/nhost), [Appwrite](https://github.com/pankod/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/pankod/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/pankod/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/pankod/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/pankod/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for pankod/refine](https://reporoster.com/stars/pankod/refine)](https://github.com/pankod/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Pankod\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.50.6","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-M9X357izwW8ZbA8Xdjns+tAkXPrLHztfOF5x3v551dZ4L8ppIBOec7Q+Q+mSRTqHjk9Px+MdZotyQBDVN6RbgQ==","shasum":"9701b9277bff4fca713e5cb52a7139d72719903a","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.6.tgz","fileCount":193,"unpackedSize":1869105,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKJLs48aEp/EjXMxsv0ogmraKZ6HALDNWIsXI38jof8AIhAOEVp/nO9CgNUwMaWM6zy3tDnvqrra4R1evx9ePSlzr6"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjTUIUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmotyQ/8DJXUkhCQlv4Ayqkbni1eELobLA2gZL04MTIy0/s3ELElSrk9\r\ndQShSRJmwwh3neMPsfaxT1tAge9yY3qFG3Kh/MVzpbcsCmL5aZY151NIeWbt\r\nL8YHLIEo3jrO9R5w3OF9z3kTkmV5Dzx6D4Zz0fm6kwwApZaGCb1nznqSf3Ic\r\nJLe+tEHiZmca2aPexXrmzE8CNqiKUFWSIwc+CVZYruNLOxAhqiIPFZDuVsC3\r\naOf1WxiIx22Gzw7nM+XJKn7jwa6k0R6xGGl78LlMjA7QK/Znnp8JZyvcNeke\r\nJ1hB5vbl7JwhldEuQGtnKQqDPFfrZtOuUsBM2XjIOuBhIDg0V9F90AAfFZTs\r\nG2w6bpg1vTCHsxVk2Nh94CW7gE8T6CJkHlC+OK5BeN/d8Fr/qz3IpeOrB8cn\r\nVpf0dW2GEjziSFGPHwZ21OQ8A6JwVslo/3AHGTWHXf9ypc3GRP2kuSuyKINo\r\nBE9AslzCGs9/jW5AC30MMPKs+Y9Tys+9XWuLHLvWqIANfUuRM9SZ+quCK/uU\r\nfDXMXpSagVLX+jUH5DLU8UfUlBo58rRTBqv8BhWS/oJOtWx5r+/4k/gBkrh0\r\n4jeQpotXowPYneyrkRwVmE/J9dsjq2g7Pj6RU6eqRRcA8QCFlCP8uNK9WdaD\r\n0VQr6ByDWpMTxysSeJFa56Z08bP5p2XwXFM=\r\n=x3Gk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.6_1666007572028_0.6765654353424058"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.50.7":{"name":"@pankod/refine-mui","version":"3.50.7","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.9.0","@pankod/refine-core":"^3.86.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.11.6","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"Pankod"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.50.7","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-YxytBukE0b4yRLwswVflAi3fpKfjzZuRFJOAgFzmegNmsYhbky9ZNT413ZkZ/ztIZ0fMsr/R1kr0oZdN2Hhpsg==","shasum":"e07223fc7c9056e97789b91d5460489bf5fbd1ea","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.50.7.tgz","fileCount":193,"unpackedSize":1869259,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKeBVALiyBkuXvvFrxfUT/gNc/uYAMIbfD0vedBMUaBAiEA/1vZXT7XNuVsIyLPOBDiS9D+b4JDWZClMOd9LDkj+i4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjTUkeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmozCg/9H2ZoImWNSyMeTuNvAbmwLuIa/b9JaVXh2qTvC6XPThSeq6Qn\r\nxP8WeGHLTINi9yvH8Me4WV8SLTWWAFYRe4uLTTZfpgjm3ukugBvaW1BQI6jU\r\n+wi73WI4G2NvSzwQLHsywP9c+mErs+iqI7931zus8vMlm9L29WGx92nf7MYn\r\nAuXDugnX865Y9SdcucWuzTPg5uWtnRnASfZg0so31IfPz8kRGLvJJntTa/7Q\r\nDf2IfCb9HdMwRyzoEXnPNUIJEPLQEwT1wdkhzZ/iPE8SyagXkkwNCEcJxhq5\r\ngshxC9IJHCDeTNq6rTukQoaUbho7PDd4ZOmFzU4YKS92ZxMcqGyX+c6oJyNO\r\nPvXumEvDoV+bzPE8iMPJkf4z4RcM1ssf0ozOpR3Zh+mvqfIL8fKOAy4OZfC+\r\ngjHTcNdZtR97CNpIezSK81ZMpi5ezhR2Z1W+XEj07TokgBUuV2cFsFhuZp/H\r\nIWOTvLA8qUp/OciWxA6kJcKhRbZnoJblO2w93i+UGmY3czMWKzvQoEUafhg7\r\nGXcxx+1/zyAZSsdjn6bBbTJcdGj5VTdwJZKgZk9cZV/uMEzh+cGqzdhiE1vr\r\nn1nIhOanAcjE+nOJJXAXNJwPVg/H37MworWwt9azSGj8QrHsK8pgI57s9g5k\r\nb3XATdm9UP7vN4cj23qq6+f4Msxiq4LHd+I=\r\n=7CiJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.50.7_1666009373795_0.6133418013831486"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.52.0":{"name":"@pankod/refine-mui","version":"3.52.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.10.0","@pankod/refine-core":"^3.86.1","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.13.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/refinedev/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present refine\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.52.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-PNdBon5Ee4TGNT0qffVemNTkYViTAoGubDNrcuA+2FoSCmcWQd6DUvzAdnAMRtPHFjhMuT1AAdqr8u43tb13KA==","shasum":"cbf19890631b258a23c7da61c93315e7693a8416","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.52.0.tgz","fileCount":193,"unpackedSize":1891327,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFCabLccee3aiAmXWfGYlTpP98GuTW9q+Z4y70sHYl2BAiAwQpXhP/7EVwLKQ2HW7jCWKsu1rwq08sNG86CoAnwUCg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUFrcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMmxAAjXwVjCkY92RAefs/WCtVTBq7yzXnPVGm/SNI/sie5NkN1rpo\r\n0nWJDKc8fj73KgkZPlWmMmbNJ9z9w1Yk2M8XdPiUUbz/mFlSGY1o6BITjOgX\r\nTFsaky146LJQA74YMWRVZW4h978aDoqx6bjwJSrrUoLxkUAeDuOSZv2Gh7m+\r\nIJ2AIxHT3qNZxl8xQ1mxf4IcmdCqLtZfqJCmE3tgYpiuOaSv2Jv7coKY/dI4\r\naEPsNGjm0g+jHttdHxkr9ealMZXzsD3n8DVNuJwKL8HJDAp2pUvQNJkuZm2k\r\nTZbslSvO/FAppFf2d3HFCrpHvk81PYP8bqqyA5FVCZW0TULbruGu3UGbrnMn\r\ndvwHOfHHW6NsvaBoYfDsQ9hVNsfw0PMJtMzlH6/ARvlDviF3CIAvowhmNaCx\r\nCXtpiiK0gxPEt82iOsx3FnXN7+8yRds6rUwq6Ms61iy697RfF34SSELqfPF3\r\nO/0LyLhV3TjBC26FwlpRvbY9oRDWSRv8I4H1qoItFxYNLFZYiUU6rYV0YPmt\r\nC6dGGUEIRa1yoXRhB+VQIz6MT3jX5VvP1C267saXQUUgqUak1W59aLCkHovM\r\nIZA9eFaMibXrQOoSzCzmvQ3M5SLQZqL4H+m/FKUxolBmHbcsPNC93LgOsiUx\r\nDH19q3f3i6n+0VrdyVbnfIsJ0atXfJPQIUA=\r\n=FYJb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.52.0_1666210524296_0.11833500855846557"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.53.0":{"name":"@pankod/refine-mui","version":"3.53.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.86.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.53.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-4QIRSFpfa8aqt198Pc5OK2zTZeSZ4slmIqghMA14H/spVvwvbLxUS7a8P2B3tsLdvkvIYS9GJ4zvcgKeZwaYug==","shasum":"afd4b0405dc032d4f92e3447da902dc102f2bea8","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.53.0.tgz","fileCount":193,"unpackedSize":1893072,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDSPZxaJ9pJbotxYOjz1XEKgQCX+Z1UdGScFpZJ7enyUAiArManoCgHyyiCXOZiXkMaEkYYam9yQt97dwtWPNwNnwQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUQIaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruhQ/5AHI2k0UcxoyWQjErqUL5D/fB5uceBI6r5BSOluiXkxq33rEo\r\nSCYWW0/dT+Pa6i1lcg0Dmd97ODJigvQ+RUmhAdcQWWYovoeRhRwGkVjbzqCn\r\nyb2XBXnSAnvDUj9orHAxmc8tcFfZLbbcuhDU4FavfjDUr4o9FR3V7S/wtDfW\r\n01f9IjQ8sNqg9y9v2u323jRnUUFYg3DIzzSBDWLH3W7QpB+hDjnZz11RGl0M\r\nFjwninb0sFTCR/rOyuMhKsiG8AquYD0R5nhrDYsgMDUE5j+9MTzMfTWtdbuS\r\nflp31LbdBR/LkDrEOBY+KhRMwsxgUDgeCgpDuS2WB5uT0eJSzjtjpMnrN5Z/\r\nTvhFXh8YBy9piz8YWQ6jUnT2xQpnu9kIt27kRy48fVbJHUbKsJc00oeDCIxS\r\n1EkL/0wdzrs8yhLnZCY9evQbtSsADueTxCetc5lUzPpjrshizAoTUNPWQGMU\r\n8XNo3fnZt3DD6PqBEa1rDx9XXAIPfqNHnQYnvnebwQ4S/I0lBZM8TMKDleCY\r\nMBfKaa13v0dnWrbzm9zZxlQxvPjvzDAfZqsCovJvLWHnouadczavKVawIvf9\r\ngaZX4HrKuLkB7UpMgMIk7eO7SKr52SXZSb7bTpxAzndHV+FqQ5ZYT/JQpBnB\r\npeqyr8tLqkdNaKgUOQxQQOGjOQjk+8JZJ2s=\r\n=n+v2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.53.0_1666253337882_0.9225494480995948"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.54.0":{"name":"@pankod/refine-mui","version":"3.54.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.87.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/refinedev/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), and [Mantine](https://mantine.dev/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present refine\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.54.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-uwkTjr2uQYmnjUuUDfNBRa2JLfkUjefbAuEhAl4nAbXZ0XyNxrZsJUy5ghwiVI6u5QBGI8/xTJd4zu99h8F9yg==","shasum":"664227e797e47a3923cefac51370281334c9b980","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.54.0.tgz","fileCount":193,"unpackedSize":1906994,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVAyRK5C3vvAOBRTc64dNtp5bZfhv3/FsQxZSmpAW/jAiEA3MmIDwdiPHorxGkVZuzYQO+m2iRH1fP2i0KDumj8v94="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV+DoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUGw/8CqKpObewgcrr6mwLUS4gUk5UB9LRFBqf/ZPwMZx9uGJYesVX\r\ndP8C3KaxyveP9PW7gw1ESljfb8y0TlFtolxCKfwRnqBgBiopXr5Yrh9HARTR\r\nX/xETIkvOrb64VQrQdrGSguyD6SCoCvkESwh70BE1ZUc+V9YUU7pmV6MhvVJ\r\n6HksPBcXRrk2hhZMjaaPQPGzKzmssnQuOHyvxodco/x1RcMrgb4DdwlOlhpN\r\njSwaulE+eRIF6WxlKdMgGteiIQzNBdo0fv9kWscIXIlNzMFJarXXZuTBbA+4\r\nBfg43WGEugltxj2syLSXaWOHCzn5L5Hk2WYF1wTmoDjsa0czmb52baVbXLz/\r\nyWb3txit8s3+DeI8ku/wxpHgj8IiL/Pusz/72+m86LLcwZtswXHirgyvqb3f\r\njmL3tR6OKreskg7lBHgs+sq43fgzu4vTfZknaZ8pC8G2kLr9kUiSopV7Dd5M\r\ntEZfMFjZRKgiZFFtODj14aS2Wqhep7wwULs1A/HiaNiwUmOdae0+TDWBKAJu\r\nvfHFclf2ac5Fl0VhtD1OzRSxqEuyuCkKBMCz4laxXHIxnqrMUE4DGGmzj6g4\r\nsU//QN8fVNA0jCsLl8ZHSzR8Odz++s4nPdOBscr6F9h2IeBhqaoJrS0N6RUK\r\nIyNt9z4M+4RvND3hZ90KNevorL8nl82mGVY=\r\n=dUpr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.54.0_1666703592092_0.2818856381585815"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.55.0":{"name":"@pankod/refine-mui","version":"3.55.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.88.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.55.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-lRcUCW88FuJOhLcxTOVI3gtthrQqYHPK1HFJgT9WZ6ZEdHJN9ozSNdLqJ+GWvsmUvER8FkkFXGyqxJ5rJsUXAA==","shasum":"3abfceb4f6f8e164eb2c4e677c32c168b1540a6f","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.55.0.tgz","fileCount":193,"unpackedSize":1907395,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBCpf/CLrdpGulywZYO9W1O4nUpphfyva6Ghb3mXuWnAiEAhELgehSqXOrNUR36oty/E0EyZlQ20ZfYjk2tcPdr0NU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV/l9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo32g/+IQ/N2/s59dSuP1sMUfT8yyAmnlnAA7CxPYGCY+s0iHH9NZ87\r\nNnL/RCTGwiBDK7bWXdrB9CNagfKELULmV/w1cQNdRDGLsL3nxgq3P23R3VAf\r\nLd2vXf7Pc/9AkAcWJZLfyzjeHbGY4DifcA/SN5BqRDJc0IAdjjPKC0PDBfV8\r\niLjxxFhnfFXULMkHUCgIE4SDldUrNHMq8lyGj9+eBc5xC1MHHy/hVUj4LYtS\r\ngw18I1RLB+JTjSOEipXoAWvAtkS5pkFQJS+gb2DbEXmpSrFlCsIEdqi5uL+r\r\nAc5bMrH7i9SkgwC5EdWJRjmzwbHh5MYYwa0Noks4GbTaJHlurJ4gm3T1dje9\r\nUCmgmaiLxjq6WaABpAfP1gw50sIiy0QjN9PZI3+1RymMn+qIjW8INZDsPdjl\r\nh2z4OOFKDn4mRCCDHOoESN06Hh58XBh9EXafZEWsEEprwaTTzMa8hmjcP2Bj\r\nM5Jj4drMkC60nO0woFDW9EqKEXiD5Tizov13QRrLv+Da3oQN8QgurHEDL9Zd\r\niNqxsd3C8lU+8ObPOrTUMHm7So62uJcz3ihrfsXzOgnA4lG5DAr9txXMKVKn\r\npEQGRbGDgkYIfqeieoMKOPb3YrAO80RArEYcAEjVZpFub5fsfNRt2X8pieQ1\r\nPYTIzkP8Roi4DoG4XGLX5KoUH7HtOYQwbjk=\r\n=yco/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.55.0_1666709885316_0.7112462328974063"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.55.1":{"name":"@pankod/refine-mui","version":"3.55.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.88.3","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/refinedev/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present refine\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.55.1","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-YLjWfgNGpY27JOhgdomE/0/hLwQPiClz1xYGItamcLtvFAqiBgSbfG1Uhmw8Mlu/oDbhJdqFNp+pGr/lG8I8rQ==","shasum":"937a5aa5735514fa510b932572fd83fe5912acd0","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.55.1.tgz","fileCount":193,"unpackedSize":1910125,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGTRzdtKc6q97toP1RPOYW34UhYHq5AVU1xYi4LYHUi9AiAF0jZvZsR81wwfxfLeDflHOikG2tipzQADFvgLlBkOcA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja35TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoiVxAAmViDvXETxJeG9EgKx8ptjsJqo1JgeJJvwOvCIzrrwvLVLYDx\r\nQ2kizULWgtZGartejQ7h2ZR1E/aCWr2y+SVzSy+T3alndsEX/G6BtBZCjQU3\r\nl8Emim2T3PSo5N+C5d9Vz3Q9dY/aHP7pGxMNSgR8xrAobTy3d2uJOSkuJmIv\r\niSWc2sFgiZ5fjVclMZtp78gJ4pdha1JF0eSeXZrqcJkG34F1Yo07/mwZ0A8O\r\nPYCjmdSCRae+N4F5dl77P1ccxiAKsUNa70mL8tCgEBVl26Oskfy5g0u8pmBL\r\nsqWZ/jke6Ux8ex39qImRoMlsjY7mwf3yAuxNTIARUoBGrdH+buFldHPYiIVk\r\nSmdtqf3qBQo+V5m+ft30flhI7G4OGRUJ/wyB6x6ZJ0dNbH7JLd8/W03vPg/1\r\nwUAfivu4tptX1X/UROF3eVvB0IRPYft3KApU39+WiACtOE0lxGhw0GjHFshO\r\nEmDI3Fh9WCo0AJc6z3BqsTmfzyS5gXPB8abT9Bv2V6FHI52WyTDanEzVsMUD\r\n+868b5kbi8699bIkEyManbuNuJXK7XsGwTXUhlRTMECxKIImx4rFUmOYWWHa\r\nCM48VbNvqF0OCmOhCNe/8Kw1dRGZBgEGTz0f3I2TLTJasnG6r88aF01d4mcZ\r\n23OzfI/qnQTuR9AVaJX9QM1gVZGzYzS6vpE=\r\n=gU4w\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.55.1_1667989074915_0.5490618023613909"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.55.2":{"name":"@pankod/refine-mui","version":"3.55.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.88.4","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.55.2","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-f5FaULp2xCNAJWXxh3lfHphAH6UT7tCxUXh/M1mjGvI/IPta9Pe7YK73vN63w6uV0+g08uKIHv2iEzqnBDuYig==","shasum":"93d2a031c99f29d65780316b35cb4bafcdba7515","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.55.2.tgz","fileCount":193,"unpackedSize":1910436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHuH/jf5LeKAexFJ+aHU93SabdLA5pY5FJV0vUbRbHlZAiEAwQQAjtdGrSX73hbUbEDyEPzHYQNSg88Ns4JRy7ZNvBs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJja4ORACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTxQ//VTJrqxXYwXtPJ0JemBMIbeu3G9pjdh5TCGzCNiMbEYmeO0hC\r\nBBtWQQHtKNTcUCaABwg6NpvyWsYGeOxZr6gEanb+LF/Okzth27k7IhtKvUBk\r\n+gwtGAAFclgXKNUYugXN5jYqQUjfI0JBlIjs+DevibQTZbU0YG1cZSaWfq7x\r\nC3cf931jt3DEl7A5NaDTFF616xxHA64F+/KQXvVU9QotrIuRUID8c3Ihocd2\r\ngTKVYwqdgTAksR/e0RpB2MZmPqV7FaeTw7fZsPlhDEkAXt8LltDsX1HN3voX\r\nkCRXREQnnLOAEVZeFjVLM3a75lWGKQcZhntu4Q20QOdmJQ7n3PGPu3mRFftb\r\nboqu8q4ihPPSQBhe2Y52M2lXfZAW01DJ3hjmlKMZtp0G5ea8/Jr69Hd7uu7n\r\nJ920YfLKofjrZ2y0Ni41sH6xDjx8cYG3WfdM8goeKEpUaL0LUpJNWYB7a/yI\r\n8rMnJpq2uk9BMEI9vt+SBg1F6CkIkd4q3NINpCQL5apBqyTKT+Z1LuWTdgS5\r\nLJ9oJl8zg4iraRWYFpIBZ7dmKAtwnGWtPeOMd33fDtBgjRPNIrxhxIf4ZHCB\r\nLdJ1COv+PND3wDe1pNC2UgA/b5PtarFd12Nb0RxCAEgk27789MSb2ihvyq0o\r\nGmxnn7eDBT8XWJgk+HciKkP1EZxaivl77s0=\r\n=7cO/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.55.2_1667990417654_0.26946735837720825"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.56.0":{"name":"@pankod/refine-mui","version":"3.56.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.1","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/refinedev/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the [superplate](https://github.com/pankod/superplate) project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpx superplate-cli --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present refine\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.56.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-7W46tABTNWeSytI3TsqNAAeUvstujhvvggTE5gs59zlLG7+S3QVANkM9zV1Hl2/dH8GIYNtp3Vdp45pbrs/tHw==","shasum":"8d9a2172a1f2cf0bef4f3aaecf831cd4233b3ce6","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.56.0.tgz","fileCount":193,"unpackedSize":1911858,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClRJk4kB66d5HUjZEcna1fd3KlVIGFxnlQtbsgzmOJXgIhALTHBcMDLS35phcKuxeHFBJoziBuEhbBj4l7h9ZpODSe"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhKWxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/DxAAnquAks4DMh7RjlR9GWeJe+f77RnJoVOWsTNMhLgVClOd9DBq\r\nPNbDnkEWZ22sfmQUA4UVWTrp6mdkdDdVDKH/a1LlYeV21sHfIGkJK65V9Oel\r\n8xjh2JvCEw3WSiyn6n225itX0rCsPxfi2/gs7LH1fyixljCbLAZM2hgB7GpC\r\nAZWHWHRYqvA4Paq39s9Ugt4xVTdzg/maqKDdhUP2wLqg44cV7dOkMo4fXP0R\r\nRFKmmJCroxpdjQluGPeQ8nW8BxtQMsbmIM61IjKRza0eUAQe36D7X1uFPGQq\r\nidk22pLF/QbP90CoW5rVwdfX1GnzH4GvBK8OO/aGvzMH6sita3YqSPIHUPsQ\r\nWIrdtVoZHNDk1tqUImfm7UhT3tYfgMMKoR6osOnjGROCdD2kVN083oVyQakW\r\ntwzyP+Fi2aCTuupm7UfpBhQsk4I6TABbds192mcD9moAfC5yTe0+HmxR2CHv\r\nMYDy1C9DTkMcAeqaBdj/YmIzzfkFJZvaTr6d1zxZPywrAA262ggQrGfbKDfA\r\nwtNET0wSH4hDwJg7Fy0yYxlFCpEIhXH83H38A9FxEISBceCM+RWYa4lZrUHE\r\nlVtWStPL6d9Mz8NESP0KfkfI4NKxeB1hLt2o1cKVmyhFmrHDHiL2wifHt8ZS\r\ne5AZax6wTHefzacdG+9HbZHYp7QkCRYoV9c=\r\n=IMUf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.56.0_1669637552762_0.9606142557181143"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.57.0":{"name":"@pankod/refine-mui","version":"3.57.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.57.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-kXCJLV8etYhkz8PHO2hfFsLIRaaBvbjmf6gUrK0bER7zUJ9mm6X+EGQucevWv7d8ZCtbcgvWH+DS/Xa1+xB9LQ==","shasum":"9502e195f987ccc7bf51a386e0758df95c34c26e","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.57.0.tgz","fileCount":193,"unpackedSize":1912136,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB0j3jgSDgdwUivWdhnfG1NdHkpd2BFuegbxgsIHpeQ2AiEAkKcRguSk74HZMUaqbBZQ86tnT0vKCCOnXFP3KgcQLi0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhKrqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogPA//VnHUUocaoi6O2Q3WLOx3D5jDo+cOFzwo88kHBK0EiOUffO/q\r\nBHlUo1O5z0fRvIwj8X95kMNIA2nznUCUYi7bD6UF0bC0nAHRiebywFpAMTuy\r\ngPslEYsAxRy8PBmrGsKJRy/fQeiLNUVjmhMJGXjEGijbvBArx1MlfB3iSlc6\r\npOcX0uRhgbbW4YpgxWZeKDhbQmz+j/vWqROXtggy8JwjbU3I07mQZEd8wU6U\r\n8eTXglAeFzD27A++Ij6vJVu4jFFyNhwZMBLkqPQUHohWU23WUtJEp/nYiLHK\r\nSWh7963YkOpMib1UkK2SO6OqKtHmFFC0oBIGCRLf3mGmPh+es6gMB5L/ftxA\r\n14RuypuvKM3G6EofhadmnYrbJwm0pfdRCcCyFn778VHA2/BORUvb+ott1Di0\r\n6PZdoqNOC4W1PxuyCKUMRTk9Gv/oqXqP2E9wE1FjsxNDg+ToScuHkj6dEKpo\r\nnJ4y9Km6nf4eaikJXZl5CYnmjFusTPMZVTlQ+Njl5cofy/Pw19xHGMSth3mz\r\ng8YL8Vaij3exi6s11RZ/r6SabHtCIDAmz6VLciOai9egVDrXO8i56HltKMli\r\nfdfExS7FtrPiHFqnXp8zTc3PMpa/5K5bTjubbnpK0ffgvcBDoIhLySV8q6CM\r\nzpqc6l0iP82ipQ8FNfh1yzDmQjquEHdpTSc=\r\n=DD/A\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.57.0_1669638890705_0.47073235963505655"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.58.0":{"name":"@pankod/refine-mui","version":"3.58.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.6.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/refinedev/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpm create refine-app -- --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present refine\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.58.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-2Uc4ft3xX3NB/38GOKKmd2uULobYS7NYKEogYQ1hXGlSdCr0Vkvwr7chBrK4lctjO80s4wvf0bhaRXF2hI6HKg==","shasum":"e56061aa3772277120574a5e345f61cfd2ad64b0","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.58.0.tgz","fileCount":206,"unpackedSize":1912025,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCunCTbUmUHHEN+p4EYDI12Xoa24Sxzhpe67DaLlucvCgIhAOS9N68CpJX9SfRQS2Efq8GtZelupy4rB2bkql9Sfyea"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjh1/PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/ew/8CAi2jDgxx1whXPeuHmkf1aGmQeHxd6OobHVGC3TsNbaIarml\r\nFrbiABAZDfVN0cth95P7uRdhaVLjl1bz2Ki7bT4c8+OOc0kk7apITz05gtbl\r\n2F0F0/HUFIT/HZmDdFo+IVGI02BiRyRO8LvjiNSxI3GzRE1vQaNiglSw1vi3\r\nK88NuAoxtuHLG+xfP0dyB0RzyhMys1ys65MDF1P5V8xShOCu5yMUCQu71dpn\r\nwoVQjTUFK4/9VLpXd8sneVp1exakhCQraY4K5TvEdeeJlpKyeD0OUO6GrpZI\r\nwq0NkC8FU1n6DXUHJsgOj0qOUha7ZCz6Put7gHzXkTrh8gVzBDtvkfdMXtbT\r\nh1pSzHQmWOZjeLjm0S8LoNMJanZRi8YGTbPL0Wn8jfhNKH06Xkel2FkNj4qa\r\nmUe9SKZRBH5DrYn77B0fvk5rVOejPDN3HwGOuNEA48DyFx678Sb7s8ruI/tK\r\n9xhxYDqS2i7oJN/0yNQiFwHMAOhB2pq4H9PMVBrlA2JiNVm20o4FzpUsHQ+U\r\nW/4ZJpknFQ5DLLWcAaYZBvRPZrMMRiyL7i3Z1rlnsBoD5lTIeHQ+vnFy6Gcn\r\n0XDetRFbXS+YqBXrvnIhmo03J9/e/YyuE66nuzDSygeEqpVM3yy8SJeYmWDK\r\nK94Gaja2QCrEAqDF9nLDvDTmTMfVA4R4Zl8=\r\n=W3D1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.58.0_1669816271522_0.42311706400248483"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.59.0":{"name":"@pankod/refine-mui","version":"3.59.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.7.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.59.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-OGzxGVmXh/eMveNQhgVPI+JX8O0rr30Y4WQqRt7FPnkAtFQIVqpcDpsbNFAKnEp2KjKUfDp42T9AVKDMCKT8FA==","shasum":"3e4b8dcee0c914feb04a5f23dc83018b2c61abd6","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.59.0.tgz","fileCount":206,"unpackedSize":1912426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBc+PQ+KaDagRde4PHBZULN2jamdB+A7ocE04QyHJiAoAiEArYBDgbpNgh1XLnZcDPY+tue6bHaK3nEW0UDcSUwL9DM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjh2ddACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8cA/+JYR8FnkQEzgQI6CE4nN8NLY5VsWILIENsGUs4TiglmgQi++P\r\nB69ii0y10iNbCyh8ficDzLHN6mMOpA6wv3UwtX9dhiykRk4FyZtBdE4VcihK\r\n010noKIRsvgjvG5XI6+r0l8BefRF470j9UxYoMWP/SP9kpAqnnA8C+n3f8it\r\nR/S96SPg0kxmcRd3arnFXaFdtel9guaKkBdVLF+jewN3dET6fj4i7cn+tlB0\r\nrFhNpt5I2a32iN3pPvIYOhdt+cdL0r6IwXduKYMFE7+8sT5h6OQZe9x4GGmW\r\nlAw91ZRbhPt/i3osFJgIh9WxYWpbksI+bonD2TX6CHZHYxXSXFCD0NTUgjXW\r\nKNdOdKQXjiro8yAAdPraBO65mf4OsbF0D0RlzvVYHZd8jTuMG/9sCZi4ClzD\r\nHru/0l78oZKiQL3b1AD8go7ZD3mY1vpX/BnPcOSYk7Av9WbPS7WhBoRAOy/6\r\nPECqQccISeRdhWWOVpYdLUbO4ln6rUGAXa/mAG2aNw2UvqRw+Z1BKoos4Xg0\r\n/tLFL9AjLsHT1Y4SVytICVjnfj51c11JjdoDjrT9fq81LSkrUJixg0Jxk0xw\r\n6e3laOhk7G7ZEgfscGR+4yubXsPz5U9aru5cDLN83efpIRhnX4EBfO00+waV\r\nW2LblPqcX0R88ljzEDip0Ms8fIGskAXzb4s=\r\n=pROC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.59.0_1669818204943_0.4741815443244328"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.59.1":{"name":"@pankod/refine-mui","version":"3.59.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.8.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n\n</div>\n<br/>\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An Open source, headless web application framework developed with flexibility in mind.</div>\n\n<br />\n\n<div align=\"center\">\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-mui.svg)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-mui)](https://www.npmjs.com/package/@pankod/refine-mui)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)\n</div>\n\n<div align=\"center\" style=\"margin: 30px;\">\n  <img src=\"https://github.com/refinedev/refine/blob/master/documentation/static/img/refine-promo-gif.gif?raw=true\" style=\"width:688px;\"/>\n</div>\n\n\n## What is refine?\n**refine** is a React-based framework for rapid ✨ development of web applications. \nIt eliminates the repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management** and **i18n**.\n\n**refine** is *headless by design* offering unlimited styling and customization options. \n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components` and `providers`. They are all decoupled from your *UI components* and *business logic*, so they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework you favor**. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive* applications like *admin panels*, *dashboards* and *internal tools*. Thanks to built-in **SSR support**, **refine** can also power *customer-facing* applications like *storefronts*.\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** &** **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Ant Design System](https://ant.design/) as the default UI framework:\n\n```\nnpm create refine-app -- --preset refine-antd my-project\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/welcome-on-board.png?raw=true)\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\n\nimport { Refine, useMany } from \"@pankod/refine-core\";\nimport {\n    useTable,\n    List,\n    Table,\n    DateField,\n    Layout,\n    ReadyPage,\n    notificationProvider,\n    ErrorComponent,\n} from \"@pankod/refine-antd\";\nimport routerProvider from \"@pankod/refine-react-router-v6\";\nimport dataProvider from \"@pankod/refine-simple-rest\";\n\nimport \"@pankod/refine-antd/dist/styles.min.css\";\n\nconst App: React.FC = () => {\n    return (\n        <Refine\n            routerProvider={routerProvider}\n            dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n            resources={[{ name: \"posts\", list: PostList }]}\n            Layout={Layout}\n            ReadyPage={ReadyPage}\n            notificationProvider={notificationProvider}\n            catchAll={<ErrorComponent />}\n        />\n    );\n};\n\nexport const PostList: React.FC = () => {\n    const { tableProps } = useTable<IPost>();\n\n    const categoryIds =\n        tableProps?.dataSource?.map((item) => item.category.id) ?? [];\n\n    const { data, isLoading } = useMany<ICategory>({\n        resource: \"categories\",\n        ids: categoryIds,\n        queryOptions: {\n            enabled: categoryIds.length > 0,\n        },\n    });\n\n    return (\n        <List>\n            <Table<IPost> {...tableProps} rowKey=\"id\">\n                <Table.Column dataIndex=\"title\" title=\"title\" />\n                <Table.Column\n                    dataIndex={[\"category\", \"id\"]}\n                    title=\"category\"\n                    render={(value: number) => {\n                        if (isLoading) {\n                            return \"loading...\";\n                        }\n\n                        return data?.data.find(\n                            (item: ICategory) => item.id === value,\n                        )?.title;\n                    }}\n                />\n                <Table.Column\n                    dataIndex=\"createdAt\"\n                    title=\"createdAt\"\n                    render={(value) => <DateField format=\"LLL\" value={value} />}\n                />\n            </Table>\n        </List>\n    );\n};\n\nexport default App;\n\ninterface IPost {\n  title: string;\n  createdAt: string;\n  category: { id: number };\n}\n\ninterface ICategory {\n  id: number;\n  title: string;\n}\n\n```\n\nNow, you should see the output as a table populated with `post` & `category` data:\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/first-example-result.png?raw=true)\n## Next Steps\n\n👉 Jump to [Refine<>Ant Design Tutorial](https://refine.dev/docs/ui-frameworks/antd/tutorial/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundemental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\nIf you have a bug to report, do not hesitate to file an issue.\n\nIf you are willing to fix an issue or propose a feature; all PRs with clear explanations are welcome and encouraged.\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present refine\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.59.1","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ZOEg9OAiMNZ+FuFD7Urhhl0te5nuSKO+3+3MfEC6gRHbC6UPTRnEIS6+uDYmsaxhRdo6lJvrqBCBIs1SdE5zaw==","shasum":"1cbea87a1bb00fd30b47f61acf0817b78ae5586b","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.59.1.tgz","fileCount":206,"unpackedSize":1914459,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3DXA67b5O1+x/X27Flox1861sd6P9fk5uTJWBHcVAvgIhAI2S2Ue8I1dwq5fbmp2PBZpKpAA/f09h0ybn2/kXK7Hl"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiKnZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpt1w//W8gH+YCL2swygE5/20hsxikrI55s+Knu8sH+d+hQW3SqewgM\r\n9eMi02k2FdG3fzMDyODepp28ecgoj0npkIqgOBhLbBGVFQTuGin1wR+j1fUm\r\nzFL6BiJYM+fuP9JNZWlEQPHtG9tzWUnR0npYGi2r5nsU9Pv6Pw8xReuzN3c6\r\n6vPCMjtbAxZgkqZAqy6yWweHJ5Z+gzb0D3B4BK4Ji8+jznUo1NyFe1tEjbxS\r\nxDjspxtLDUUJ0QEYxWeWLfIP53a4VqMl1GgFe33V6cQge/4W7Ly7UDggdNEi\r\nmkyy6PE6laLtDDbVRQIblV/e996YCvy98Z2noUoRs8WXTI/2EfZaFs1eQIyj\r\nQuNtJnSGsFR4fzyGodI0B2sRUSs1N1RT8dxpQGrMKtEGr0v+EvabvCN02jEd\r\nvaKXWWT3EnScSsrd096k5uZMyEGJ3PJCxQiG7I1g3Dz0EFN/MuwYNkHmTr0y\r\nkMOh2pO8oaN5C7K8dn3jpYDRIIKKf6B/lqsPhqHUCf5v3JdyfpaK78xqG/fQ\r\n+qWFJO1ePQOTDRzv32ZwpO0eRcxQTVletPM+BbJEhmwMrL5HhUUVGaFpDB8P\r\nocAvE/XeXXXTQtTst8clB29NnCm7YCRmdqrv1aGfNvC90mtqhp+Xj2hTLcTL\r\nuPRC0UawfRIDhecsQ1Zb61yEYCx/r9npeVY=\r\n=dvpF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.59.1_1669900760838_0.9510730536704759"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.59.2":{"name":"@pankod/refine-mui","version":"3.59.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.9.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.59.2","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-7fVjd7POSi0RuTFGHhae75yGrtF23gTXXMqQsDgeuKJTRcgx2PPsNVpRS7G/A2WOnCR3ofQdkK2mjbe2kBYOyg==","shasum":"cea15aedecb0726b7e57a8eaa1435a2d2d828bd9","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.59.2.tgz","fileCount":206,"unpackedSize":1914791,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq0twlMyEhB1SZrLb4QVakAKzZk7lc2fMOFcGTyRRM9AIhAOKivvV2yM6Kwd0wHGULnMijaqK3XOymjGlvskx0KuZK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjiLGXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJyw//TjXkIBwBfPqcNJhwla0C/LIwACCGr0Cx33ay7XzwAhNJ3q/x\r\n3EwePri0jllvasmViFlkQrDrlLW9v1juRKvZFIY4YWCLyhRPzIareax0mdk3\r\nDq2seV5EZPRVprU7caevDpSw6T6xtCtj5bEJn/aaOtE2+/KiPe31YoPKzXrS\r\nD+qJ12i7Fv/Nr8a8GMC9GwgAUA8o/pzeTvpJnXxbL72y0FDADugeCGqqXwUA\r\nqhGwzo7CDLxBs13iNnIWo+S4GRdCR7LV3jzxz1n3de2eImeJ+dbTwLCn1szV\r\ncbKoXpKruJ3qzJPMrJg3VpAH0Xrpy3bVADEr7NEggM/YhTXal93Ake1R94FQ\r\nc1xobLveamagEAOnArr23aP1lgh09/8sCtHvtEgpyJAYRIna7CaEcoUu4VfK\r\nNTOwIjmmdMzIzTZb+HwfDfumiCgS6Wuaj7aecYekJQyhX2QjhWrDOkTCf1LU\r\ne5O8sIchcefLypYuuRPtdMgqVQy37TFB/1/MRxBlnMw4G6Ag/erolPlwTrxL\r\nSkmIPR6scnkR5MsHxNJ6bEAiPF2ffPSI4rzTc5EJCNPNHiIEHo5n+J3R+hh2\r\nuIXoQcJ1xz8WfLDEy0MaJnXfDLT6FZbtg+hbNt5XGGm4ztPhKdysVdQZn4hZ\r\nze0/G6XeuPO4LbH9FIKJdo/plyeVGX+j2pM=\r\n=KGe6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.59.2_1669902742823_0.48000308690724314"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.59.3":{"name":"@pankod/refine-mui","version":"3.59.3","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.10.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<br/>\n\n<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n</div>\n\n<br />\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An open source, headless web application framework developed with flexibility in mind.\n\n<br />\n<br />\n\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n</div>\n\n\n<div align=\"center\">\n\n\n\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-core.svg)](https://www.npmjs.com/package/@pankod/refine-core)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core)](https://www.npmjs.com/package/@pankod/refine-core)\n[![](https://img.shields.io/github/commit-activity/m/refinedev/refine)](https://github.com/refinedev/refine/commits/next)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\n\n</div>\n\n<br/>\n<a href=\"https://refine.dev/\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png\">\n  <img alt=\"how-works-refine\" src=\"https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png\">\n</picture>\n</a>\n\n\n\n\n\n## What is refine?\n**refine** is a React-based framework for the rapid ✨ development of web applications. \nIt eliminates repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\n**refine** is *headless by design*, thereby offering unlimited styling and customization options.\n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components`, and `providers`. They are all decoupled from *UI components* and *business logic*, so that they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework** that you favor. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive⚡* applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, **refine** can also power *customer-facing* applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **refine** from scratch:\n\n\n\n\n<a href=\"https://s.refine.dev/readme-admin-panel\" target=\"_blank\">\n <img src=\"https://user-images.githubusercontent.com/18739364/204285956-cc20fa11-b769-4bd5-b8f6-9c05a283ac85.gif\"   style=\"width:267px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-medium-clone\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285047-8f24f1f4-65ea-4952-83ed-81e92cdd5b90.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-ssr-storefront\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285039-1ce0cb06-fbf8-4704-89c9-2e004620c9a8.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n<br/>\n<br/>\n\n\n[👉 Refer to most popular real use case examples](https://refine.dev/examples/)\n\n[👉 More **refine** powered different usage scenarios can be found here](https://refine.dev/docs/examples/)\n\n\n\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** & **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is by using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Material UI](https://mui.com) as the default UI framework:\n\n```\nnpm create refine-app -- --preset refine-mui\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\n<br/>\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n\n\n\n<a href=\"http://localhost:3000\">![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/mui_welcome.png?raw=true)</a>\n\n<br/>\n\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\nimport React from 'react';\n\nimport { Refine } from '@pankod/refine-core';\nimport {\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n    Layout,\n    ThemeProvider,\n    LightTheme,\n    ReadyPage,\n    ErrorComponent,\n} from '@pankod/refine-mui';\n\nimport dataProvider from '@pankod/refine-simple-rest';\nimport routerProvider from '@pankod/refine-react-router-v6';\n\nimport {\n    MuiListInferencer,\n    MuiShowInferencer,\n    MuiCreateInferencer,\n    MuiEditInferencer,\n} from '@pankod/refine-inferencer/mui';\n\nfunction App() {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: 'auto' } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    dataProvider={dataProvider(\n                        'https://api.fake-rest.refine.dev'\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    ReadyPage={ReadyPage}\n                    catchAll={<ErrorComponent />}\n                    routerProvider={routerProvider}\n                    resources={[\n                        {\n                            name: 'samples',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                            create: MuiCreateInferencer,\n                            edit: MuiEditInferencer,\n                            canDelete: true,\n                        },\n                        {\n                            name: 'categories',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                        {\n                            name: 'tags',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                    ]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n}\n\nexport default App;\n```\n\n<br/>\n\n\n\n🚀  Thanks to **refine Inferencer package**, it guesses the configuration to use for the `list`, `show`, `create`, and `edit` pages based on the data fetched from the API and generates the pages automatically.  \n\n\n\nNow, you should see the output as a table populated with `post` & `category` data:\n\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/mui_first_page.png?raw=true)\n\n<br/>\n\nYou can get the auto-generated pages codes by clicking the `Show Code` button on each page. Afterward, simply pass the pages to the `resources` array by replacing with the Inferencer components.\n\n## Next Steps\n\n👉 Jump to [Refine<>Material UI Tutorial](https://refine.dev/docs/tutorials/material-ui-tutorial) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundamental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\n\n\n [👉 Refer to contribution docs for more information](https://refine.dev/docs/contributing/#ways-to-contribute)\n\n\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord Server](https://discord.gg/refine).\n\n\n## Our ♥️ Contributors\n\n<a href=\"https://github.com/refinedev/refine/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=refinedev/refine\" />\n</a>\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Refinedev\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.59.3","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-WD2Q5HkNARzSRo+2aG6AxS+Co1JJryK86iHOJ+2HLZGWpHXtf4H2m/h6jVuNF08WTmWZWljxIpmWCNTk2MIC5g==","shasum":"b6db3f021353b1c19a8edaaa9d19dc37994c21e3","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.59.3.tgz","fileCount":206,"unpackedSize":1917421,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFY+V/JjTR8yW2vjJCDzJAzOJa5K1vGDxKqEp2vyklNrAiAXoXEdya9fUQfa75JiyPYDUP49TIce4tOU0Y4IzTld5g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjePXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4lQ//SCR/6pAiGK8R209G3UTpmlxYZbqLWEHtmz6I1sXUiUFHHlha\r\nSTB/Q/eN9wF1reW7U4OoVNo+Edw7MgpyVu6Mj+/grpij+OznXQpH51TlEJU7\r\nIIizr6IMzPUFwRWMsRU19DK/B3U4NhBcqSoQdVUjM9gIEhfmtY5zG3oMOytt\r\nnXUBfjm/MtQQxp2SxAA8reAMprjwYAtewpfhiQzhtkB50n1iKX49ALhKvYL7\r\nBOokWy7Ct7hh5WILYI8fHguAOZXVpvUMvJOs0STFPjxJz/K4X4UoJ8IVEezk\r\nkxgX2ipWd9qsDtFI9Ur4NxxzrC7dZQ6dmGTn6STpbrSwT+hK9QwUAqe+8LqJ\r\n84k1Z2vESur8/d7XykVRaO/aRw9qN1Cd95eAkTq1Y8iweNtRcS13zi2Pta1S\r\nPI5s8qLTOq3QwYC9u+wpaWp6qfreMgZgWhvlrzsO/JG4cWq7voA3JsW1nf6S\r\nK/GlgGfX8q9R+B7UerzHN2HdynHjsJ+24PHfomPTPH+Jl5mSputVDZWSYNYf\r\nK8dbTJ1KvgcA80tTIfZaMoKRKB6M2i4c366oFpfloYRrYCoiIe+4Ju++4WvE\r\nk1+NzE/BjPYngnGHpCVEva5N940rpo/AQD7IVHQ7WtFfsjTO2yjT8F0kvckN\r\n7G/G1EepVkCLitUwES0vPEUNxPT7yxen7dI=\r\n=SGwU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.59.3_1670243287391_0.6207098625656908"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.59.4":{"name":"@pankod/refine-mui","version":"3.59.4","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.59.4","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-SXue88TL91V9/sBL355gWYdGXILVgnB4QOoLQPTziPA7ErzP5O46zvpgDDeVFdzRl9uhDVD6/FwgaLtXGG+4dw==","shasum":"75bca873ccafe230f497423004ae5c7d7ff7f626","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.59.4.tgz","fileCount":206,"unpackedSize":1917768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF8sF82yhV+ltmBXUfCaA2CBVnWRNOHHjuF1xzYFooeLAiEAtzRB+JFtV0Ila8EuGTPKAR093kpkS6HcDKvomC0cCI8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjej8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroCA//WihX2Wni9ZGU2hCi5BcLUpA6SNJ/VAh6D6zzkrV7vhQ+LEdw\r\n7G7Urx1xWm8ouPk2XtYb1QRLlT9zjauq5pJgnzWa3nxQkKHqYnYEWr07r8cg\r\nTJ3Gzd6t3vFZUQEQvosBpB8395Y2GeBFBLMrCdBJ3ifPd9me7ulJAAIc5TZW\r\nKcsxLxbEV64IAmbkvVqtkOEMCieEXPucyMEtDezNZNamytXTUoFyjI6APuUY\r\nDx6I2/Ll+e/l05ek6Gi0sfHwOwtBUUxUyFA5IkhU8MVYCPtoaA0pvNqTD67K\r\nN/ld1m+stFC2St44Y+LYHiquOR1hC1CzBz62trpojKGVQC/4WfBYMdkgzqgm\r\nPaoOwW2Ja0CVKsBT8rbtMkxfZSu81BuU0z+MGXySuiYRmxYWA7ov8AQMizOF\r\nDwL6urSp1eLlwt0VDBury17IqU06jYJ8VSaUUsICvylpDirB6er9uIjKYno9\r\nfR/RmVXAA2unO8IfxJIbPXwVc/bEKZDaPvNj1J19k9V7P63HEEsoe/58CrVA\r\nAd8EBoT/4+LdfScEOSwCOzA27ooVKt7oOjm6mNF6eKTq6XrRk0KNwcyEfy50\r\n3+9/+9qgi0IHbHAPRm3gzX/4o0wCXWMubwVVvYc4Xs4UmAjA8zJkYLvqdjXD\r\n2q4y8qRv2E9OiqfNwHeMP1f8mVYZstKTytU=\r\n=J+MG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.59.4_1670244604534_0.4376523389357456"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.60.0":{"name":"@pankod/refine-mui","version":"3.60.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<br/>\n\n<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://raw.githubusercontent.com/refinedev/refine/master/logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n</div>\n\n<br />\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An open source, headless web application framework developed with flexibility in mind.\n\n<br />\n<br />\n\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n</div>\n\n\n<div align=\"center\">\n\n\n\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-core.svg)](https://www.npmjs.com/package/@pankod/refine-core)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core)](https://www.npmjs.com/package/@pankod/refine-core)\n[![](https://img.shields.io/github/commit-activity/m/refinedev/refine)](https://github.com/refinedev/refine/commits/next)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\n\n</div>\n\n<br/>\n<a href=\"https://refine.dev/\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png\">\n  <img alt=\"how-works-refine\" src=\"https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png\">\n</picture>\n</a>\n\n\n\n\n\n## What is refine?\n**refine** is a React-based framework for the rapid ✨ development of web applications. \nIt eliminates repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\n**refine** is *headless by design*, thereby offering unlimited styling and customization options.\n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components`, and `providers`. They are all decoupled from *UI components* and *business logic*, so that they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework** that you favor. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive⚡* applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, **refine** can also power *customer-facing* applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **refine** from scratch:\n\n\n\n\n<a href=\"https://s.refine.dev/readme-admin-panel\" target=\"_blank\">\n <img src=\"https://user-images.githubusercontent.com/18739364/204285956-cc20fa11-b769-4bd5-b8f6-9c05a283ac85.gif\"   style=\"width:267px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-medium-clone\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285047-8f24f1f4-65ea-4952-83ed-81e92cdd5b90.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-ssr-storefront\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285039-1ce0cb06-fbf8-4704-89c9-2e004620c9a8.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n<br/>\n<br/>\n\n\n[👉 Refer to most popular real use case examples](https://refine.dev/examples/)\n\n[👉 More **refine** powered different usage scenarios can be found here](https://refine.dev/docs/examples/)\n\n\n\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n🔍 Auto-generated **CRUD** UIs from **your API data structure**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** & **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n⌛️ Built-in CLI with time-saving features\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is by using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Material UI](https://mui.com) as the default UI framework:\n\n```\nnpm create refine-app -- --preset refine-mui\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\n<br/>\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n\n\n\n<a href=\"http://localhost:3000\">![Welcome on board](https://github.com/refinedev/refine/blob/master/documentation/static/img/mui_welcome.png?raw=true)</a>\n\n<br/>\n\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\nimport React from 'react';\n\nimport { Refine } from '@pankod/refine-core';\nimport {\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n    Layout,\n    ThemeProvider,\n    LightTheme,\n    ReadyPage,\n    ErrorComponent,\n} from '@pankod/refine-mui';\n\nimport dataProvider from '@pankod/refine-simple-rest';\nimport routerProvider from '@pankod/refine-react-router-v6';\n\nimport {\n    MuiListInferencer,\n    MuiShowInferencer,\n    MuiCreateInferencer,\n    MuiEditInferencer,\n} from '@pankod/refine-inferencer/mui';\n\nfunction App() {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: 'auto' } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    dataProvider={dataProvider(\n                        'https://api.fake-rest.refine.dev'\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    ReadyPage={ReadyPage}\n                    catchAll={<ErrorComponent />}\n                    routerProvider={routerProvider}\n                    resources={[\n                        {\n                            name: 'samples',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                            create: MuiCreateInferencer,\n                            edit: MuiEditInferencer,\n                            canDelete: true,\n                        },\n                        {\n                            name: 'categories',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                        {\n                            name: 'tags',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                    ]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n}\n\nexport default App;\n```\n\n<br/>\n\n\n\n🚀  Thanks to **refine Inferencer package**, it guesses the configuration to use for the `list`, `show`, `create`, and `edit` pages based on the data fetched from the API and generates the pages automatically.  \n\n\n\nNow, you should see the output as a table populated with `post` & `category` data:\n\n![First example result](https://github.com/refinedev/refine/blob/master/documentation/static/img/mui_first_page.png?raw=true)\n\n<br/>\n\nYou can get the auto-generated pages codes by clicking the `Show Code` button on each page. Afterward, simply pass the pages to the `resources` array by replacing with the Inferencer components.\n\n## Next Steps\n\n👉 Jump to [Refine<>Material UI Tutorial](https://refine.dev/docs/tutorials/material-ui-tutorial) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundamental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\n\n\n [👉 Refer to contribution docs for more information](https://refine.dev/docs/contributing/#ways-to-contribute)\n\n\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord Server](https://discord.gg/refine).\n\n\n## Our ♥️ Contributors\n\n<a href=\"https://github.com/refinedev/refine/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=refinedev/refine\" />\n</a>\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Refinedev\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.60.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-frigHU2ZjC9xC1tPHwH4F7jI3AoozrRieE3dhKSixjBNGCQC71VYpzw+DzZKXI1RJQzmqdFmr0TxyqMb78v3+g==","shasum":"783af36e1a8995c8df9b23a31eae67855ffe266c","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.60.0.tgz","fileCount":204,"unpackedSize":1879290,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT2Z2DMqsUBm7b6tYpIufNyFT6+RCE9bhhgiS1P3RAOgIgLvpjaHYYe3ORR298BCIUu9sL4xlJOyccE0wz8jBgktg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkZpeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMHg//bw+nsS3HivZfGV+SGR5Cneoojj160+O253sP/r2jKnPbtu+J\r\n0uLnfADN6wFRpPigATLpxb3/DA7yF/3agW7rtTxYTvw7IJt9mPxzl6IgBDTo\r\nMVrLHO09sj6g8tGW3twoQtsSg1sNRPlzQlQ6VHnkhQxcg5Ep/EEP97Joy2x0\r\neePue2ocS8PFEOZVSxPBWva/3J0vlymqRsHsjGoLUtbw72YQkzUp8upjJBwx\r\nCus0Ps9+XMaH1DUktTbhYWFkRn7NP2QR++/PGn566FbX1DVQfhdwPnRKTHtQ\r\n/cVhGUax1tQSKJRf5e383dE2QNQfLAlb558jIOQuXZ+V7CpTkr4qeJ9ofaiF\r\nEjQI06DLvS95+NskCf5aRxrIaV5t5+yV2557FANX3h1iIozNZ2psbQvTSKBx\r\nVd38gEZuuffH2KPgZukKLuXZsK7GIKDe6IVtsACpM3ht2Bh89cUgVa4Dv3OX\r\nP/Ig2YlUnIbo6Zy/7PljkWv2h/dO2VuVOWd7pUFfIQlDHD5AVmWN77Oixoha\r\nNdvifrU/NwVxtbYKJNMJi0Ib6OZwJdZKz4fpemKCiwVwUUOHqxhLFKz03lXV\r\nQytpmd/VhzaUq6MepeANuFiRjPOOPjMfhtv21PtMUazzME+FwRprbTK96QJx\r\nJauajLTi/rkyp73EagukNElhfb9Y/Gq2pSc=\r\n=7aGy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.60.0_1670486622427_0.7569105389501165"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.61.0":{"name":"@pankod/refine-mui","version":"3.61.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.0","@pankod/refine-core":"^3.90.2","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.61.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-2OEOV6Y/gpeBSd6iR3Y2x9i9FzlUANPWixTpxg8eWDmGmxhsKU1b+S2xMhKoSwoCoVmMVDx71Wawvb+c9fKLCw==","shasum":"6c448b46c4828c7aec62d6c0b1de33e475c3d637","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.61.0.tgz","fileCount":204,"unpackedSize":1879630,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFj0Dgy5MwkaCX/ocmLSV/dJ/3YiG0m14zVaNdnJDFqZAiEAkEE0aRLREchn/6ax4XOL+1lD8TyL14xq/HZefOFc3/c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkaDXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoyMg//Z/7CS/ib0AATqpRNDnAtd1W8LIFO0YdMYOLz7V355Yh9A3wk\r\nl7O/38bCuDvo4gxBbbEZ+F/mou+R3LUo5jwrrVzecMncVi3b+sMWxk6F9vIA\r\n1bjuJL4D+bFp2/vD0emvVhr+F9J3uYG5ie7R5JxbjekPybvEY3lQB6qZ1UaT\r\n4D3HdIUeYbGc0IZmJu1NfBzguKTFGRTb6Ak0P8mrEzYm25tMyO+nGKHRPuOb\r\nMuBef5Em4vfj9kNWwWTv/MqM0cnuj9ipFUsfWiFgoWZshGKKn3JMdqUWWmn+\r\naFfaywXrA3LrG6VDeVDvQPEOpu9KAjcjw3RjSgJnCECX+bj8baduPW5rsMkd\r\ntQeYI+IJhNecS2kgCn+xL/7QvivcLb28Ec2yEfDKUVAWnwwG0y3iDTShJ1oG\r\nCQgABnH4OyqRaIZWJMXFg9KjOeWqP5BmVeb5kUMUf8lZUG9DfLALg/kCb9jH\r\nmdmuUiPMatg3ebYHqobDMX0uGOzgysFD6PyRI9i4T7IjyW6R1aZiSMJ6T3i2\r\ngUIBtFaLUiwkqwaExfi6S8SR2WsP0KublyM5Id0ZLn6W2NFsXAHvriLmZivr\r\nnEaQ+CJlbJaj+RlZJw6yPZxq0mb7x76kqeQf4/NApy/T66jQxuEX47HEozK8\r\nA1nNg7oOyDIp5Ls5UeyFVDl3oCOgSSyYzTw=\r\n=fxkJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.61.0_1670488279193_0.2977935542654502"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.61.1":{"name":"@pankod/refine-mui","version":"3.61.1","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.5","@pankod/refine-core":"^3.90.5","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.1","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<br/>\n\n<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://refine.ams3.cdn.digitaloceanspaces.com/refine_logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n</div>\n\n<br />\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An open source, headless web application framework developed with flexibility in mind.\n\n<br />\n<br />\n\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n</div>\n\n\n<div align=\"center\">\n\n\n\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-core.svg)](https://www.npmjs.com/package/@pankod/refine-core)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core)](https://www.npmjs.com/package/@pankod/refine-core)\n[![](https://img.shields.io/github/commit-activity/m/refinedev/refine)](https://github.com/refinedev/refine/commits/next)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\n\n</div>\n\n<br/>\n<a href=\"https://refine.dev/\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png\">\n  <img alt=\"how-works-refine\" src=\"https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png\">\n</picture>\n</a>\n\n\n\n\n\n## What is refine?\n**refine** is a React-based framework for the rapid ✨ development of web applications. \nIt eliminates repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\n**refine** is *headless by design*, thereby offering unlimited styling and customization options.\n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components`, and `providers`. They are all decoupled from *UI components* and *business logic*, so that they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework** that you favor. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive⚡* applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, **refine** can also power *customer-facing* applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **refine** from scratch:\n\n\n\n\n<a href=\"https://s.refine.dev/readme-admin-panel\" target=\"_blank\">\n <img src=\"https://user-images.githubusercontent.com/18739364/204285956-cc20fa11-b769-4bd5-b8f6-9c05a283ac85.gif\"   style=\"width:267px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-medium-clone\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285047-8f24f1f4-65ea-4952-83ed-81e92cdd5b90.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-ssr-storefront\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285039-1ce0cb06-fbf8-4704-89c9-2e004620c9a8.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n<br/>\n<br/>\n\n\n[👉 Refer to most popular real use case examples](https://refine.dev/examples/)\n\n[👉 More **refine** powered different usage scenarios can be found here](https://refine.dev/docs/examples/)\n\n\n\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Nhost](https://github.com/refinedev/refine/tree/master/packages/nhost), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), [Directus](https://directus.io/) and [Altogic](https://github.com/refinedev/refine/tree/master/packages/altogic)\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n🔍 Auto-generated **CRUD** UIs from **your API data structure**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** & **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n⌛️ Built-in CLI with time-saving features\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is by using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Material UI](https://mui.com) as the default UI framework:\n\n```\nnpm create refine-app -- --preset refine-mui\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\n<br/>\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n\n\n\n<a href=\"http://localhost:3000\">![Welcome on board](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_welcome.png)</a>\n\n<br/>\n\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\nimport React from 'react';\n\nimport { Refine } from '@pankod/refine-core';\nimport {\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n    Layout,\n    ThemeProvider,\n    LightTheme,\n    ReadyPage,\n    ErrorComponent,\n} from '@pankod/refine-mui';\n\nimport dataProvider from '@pankod/refine-simple-rest';\nimport routerProvider from '@pankod/refine-react-router-v6';\n\nimport {\n    MuiListInferencer,\n    MuiShowInferencer,\n    MuiCreateInferencer,\n    MuiEditInferencer,\n} from '@pankod/refine-inferencer/mui';\n\nfunction App() {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: 'auto' } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    dataProvider={dataProvider(\n                        'https://api.fake-rest.refine.dev'\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    ReadyPage={ReadyPage}\n                    catchAll={<ErrorComponent />}\n                    routerProvider={routerProvider}\n                    resources={[\n                        {\n                            name: 'samples',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                            create: MuiCreateInferencer,\n                            edit: MuiEditInferencer,\n                            canDelete: true,\n                        },\n                        {\n                            name: 'categories',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                        {\n                            name: 'tags',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                    ]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n}\n\nexport default App;\n```\n\n<br/>\n\n\n\n🚀  Thanks to **refine Inferencer package**, it guesses the configuration to use for the `list`, `show`, `create`, and `edit` pages based on the data fetched from the API and generates the pages automatically.  \n\n\n\nNow, you should see the output as a table populated with `post` & `category` data:\n\n![First example result](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_first_page.png?raw=true)\n\n<br/>\n\nYou can get the auto-generated pages codes by clicking the `Show Code` button on each page. Afterward, simply pass the pages to the `resources` array by replacing with the Inferencer components.\n\n## Next Steps\n\n👉 Jump to [Refine<>Material UI Tutorial](https://refine.dev/docs/tutorials/material-ui-tutorial) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Check out the [Refine<>Tailwind Tutorial](https://refine.dev/docs/tutorials/headless-tutorial/) to learn how to use **refine** in a pure *headless* way.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundamental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\n\n\n [👉 Refer to contribution docs for more information](https://refine.dev/docs/contributing/#ways-to-contribute)\n\n\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord Server](https://discord.gg/refine).\n\n\n## Our ♥️ Contributors\n\n<a href=\"https://github.com/refinedev/refine/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=refinedev/refine\" />\n</a>\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Refinedev\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.61.1","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-XXZVZLI7/gEMCNO54tzZ7Rtz765KtbVDZyykhUdp/ehsfjuJo3UiS/0Er7yAXIYJKcqmC730sqEFrtHFaVXb9Q==","shasum":"9f5e75f3e73badd79b3803a18201bbdbbba2b1b1","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.61.1.tgz","fileCount":204,"unpackedSize":1880519,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCG1d/CjJHxIhqLRLHB04CHN/XJjBwIWu7fU92DJSfrNwIgcGhgThadpMrN3uU91CLJTts3sBmtU3vCN67jPYWWVYI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmaapACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpxew/+P1hdpNweoMUhyn2IyueJ0kcc3BA9gpQV4lKphpu+HWtLq6e6\r\nwgrIHJne6lMhIXtOOYkSb97X6iz7MHs4yQRjhfBCXZxWfzvp3q7pT3b+kuJV\r\nBrLWqSIIfK2F2dB3qi5XCjRFQDQJsHkYfTflZ6GjNgU9vIBKhqtCuIUZhpot\r\npsj2lqhaRh8RyfNOmvRl3aAtbio2iT+gK9rKOGfqYE0e9FkPS2GMl67b+HAz\r\neRKquMUtIxqSYGPSQlOkt4m0FvRiqs3Lgt/DfmpMJbL6C52JeDHgA/SX64q6\r\nXRELQqaEYopJ7Y3RnKRyE5cn5edSo/jlaN4ytuMoZunooSE1FXfb4Tmc7Aj0\r\nh/lNpxkSQyVD8wzoGgb3IPoGlOHEOoNM8RK9/ezSWJC4tXlCsrC3lJtLzqn+\r\nqpDx/EFF9UD/zV6ofgX5ZBZ17wicYXW0klzIDme0x9MB09dSFrtqAabNxON1\r\nCrIXu2rZYSb4+DlBp3PevX8S8K3OdsIzmSVJagMgfkalUG6PXJjZ77g9SiHl\r\nDFKQgRp+Z7DiH+CM0Qw3hiRJvDVSYIiLbmPuEMpN6ovCC+K1/yMSv4aGq0gb\r\naXDwuak6Q+SVMz29uBNlAxaJ2rcO5eKK/IQ9j5/CJFUUBut1ZMA6VSporQle\r\ncVVZQmlNhd9Q+xC8MTh+sV7nep9tvKHD5KI=\r\n=jYHH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.61.1_1671014057811_0.5081744360491591"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.61.2":{"name":"@pankod/refine-mui","version":"3.61.2","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.6","@pankod/refine-core":"^3.90.6","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^26.0.24","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^27.5.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^27.1.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.61.2","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-rKIomfx6HrejKebkx/wP9arWlWf7tx2Jt8XasV3O2Ga16/2wI1ub6WKySZkerS3lLkCIRUj/4iagasVN+lYOLA==","shasum":"5a6df87eb7b468cdeeb619bcd5e5998d9f689f44","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.61.2.tgz","fileCount":204,"unpackedSize":1881162,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCbOxNzDuQqICFJleJXZGTAQB2Kj9XUj0Lmy9SJgJmIAiAyEo+ftgJ9VmOH3fNE9N1K44F1and25/1T8VtEs39rxA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmbnJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrIMQ/+NNlXGQJpLM4L8NhNqIZuZLRgl5XhNUZ1uDaYUOF+cedl9p1g\r\nSas7P+fJYExbDFirRFFTr7J3K0xlMU/q8HFpjnAAARu38Co8cH/hO2s2bj/6\r\n94FBs2k9Pn+aBEr0T5mGRAraTpCdcGCd33kdOdmxuh2OIJU8pE+A9P4YJU2N\r\nm4MGqv+utzKyTmXylgwyrVa+qKk97a8zj2KSPsLG36JNlWl2Vj/xG+VVBW2o\r\nLljHNClp8TNlGij9KuMQeuotae0erk5kE4KPHSi4EXHMOS/8193RQ97GBTO5\r\nS9nL0pKsX9Hv/9WdoQVjdD9vw7p6W3fSDua0PwDwsvZ4dLAN6b4Co4soCTJ6\r\nl7QJsNKlOj0KT7j34bUMJfwc0TaG+St48xMYjYl+jzSh5SRq6i3lYdy+cHsn\r\nPcALZXFolNPR18phoNJWaZW9fdBMLKrclI3ffPh5B0Yc0VIX1dhLmqw9+3xS\r\nhfovuSnmKbi4uhXjW4cVaE5kKijMH0CwMYcyy8M5P82Z8pXSR1O0zWzDasVz\r\nVZ+TEHVRZjS1KGb5OnvtFzaaC+tr/7E0FA2ynpg/adIbrUciQWROeZU6SDyL\r\n14aV2udoFIsudCWhK4jKwY4mPBMDB6KMyB4CrDoohnE6nGsaB1movWCBupCa\r\nF5OK4kGV02uHI0flCMD0vx8NY626U0ANhKk=\r\n=Xq2O\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.61.2_1671018953192_0.9394871520913903"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.61.3":{"name":"@pankod/refine-mui","version":"3.61.3","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.6","@pankod/refine-core":"^3.95.1","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^29.2.4","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^29.0.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.61.3","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-M+fSnuy4lW20b16B6NcKpHCjL/apDzhHNUXqzXVMDqTjGGqaOmiyyg6awXj17c5IOY3ewsSXN0UMBuTasiumaA==","shasum":"3b1584f5b0a682aad0c6098dfdef6efec6b69715","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.61.3.tgz","fileCount":204,"unpackedSize":1892227,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDy0vqtWhOSEe0n1+ypvfng2k4wHWj6Piqviyql2q1SzgIgWGCUcFI+qIvdalFAO/2wDhg7ZFx4cbUXfQqGVMpomSg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjxmncACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmSg//aCNn2cGWukx9eWk42zxWcdil03hndSlm0ojZBVV+v+/dmm2M\r\nq0Fddn3c1Ak7PmlEeaHMt7cdVlt1wJPwGJ+o/12ycaOUfeKN2GJzDgyZyQdP\r\nHYqqiZIu9IA6P15fSKaN6Tq4M59+hpztJIVTI9vm5oxWWTY2B2Prgh+bEneo\r\nak5rwm1CjDSJRUPAOKv/MqGoq5o218Z81lBrNxwRIc/dbFGi4Cchhgmgtvw8\r\nQq9J9hbzRm/TvV3+AZULDPBS1a36KyN/twod0WYV8tr0MGbk5fTKHJfTwm3B\r\n7/OGfA4VobYisN+fI8LxR9pcMq+4BtYqgjvYzkV6dpAQvMezPs+kl3uW5fc7\r\ndqgNRiYp7Qv55fyAeJu8Os94JoXj+sRxsOpAh7SImS627EZE1KcxlzA7Ub8g\r\nvDWtmXukZxfVO8AGlXc4FQnlXF8I4ma2YtdoVyHI497ov+C6Uq7LXIvQ9TNq\r\nxliS7eyE+6vU9Qg2fH2EKju5Ib81HL0UQiyTvBVLdl0m2RnAWiK5+W2n3fSL\r\nWeMq4leDHUyd9VKJ1gqSm93PeQ/R5KBp7AmXtAUoND1lebcUcmCqmq1q3CSs\r\nfMzmmmNpT5I5euOJSY7pxL24aD4Zm5LYB3LwZHR7C1G1GRAPYxQbPM9j/u8a\r\nbNrSzXLijkPGXLdwyHbHoWS4Kx0UxC0SFhw=\r\n=9AIo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.61.3_1673947612514_0.7976688595481483"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.61.4":{"name":"@pankod/refine-mui","version":"3.61.4","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.6","@pankod/refine-core":"^3.95.1","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^29.2.4","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^29.0.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<br/>\n\n<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://refine.ams3.cdn.digitaloceanspaces.com/refine_logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n</div>\n\n<br />\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An open source, headless web application framework developed with flexibility in mind.\n\n<br />\n<br />\n\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n</div>\n\n\n<div align=\"center\">\n\n\n\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-core.svg)](https://www.npmjs.com/package/@pankod/refine-core)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core)](https://www.npmjs.com/package/@pankod/refine-core)\n[![](https://img.shields.io/github/commit-activity/m/refinedev/refine)](https://github.com/refinedev/refine/commits/next)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\n\n</div>\n\n<br/>\n<a href=\"https://refine.dev/\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png\">\n  <img alt=\"how-works-refine\" src=\"https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png\">\n</picture>\n</a>\n\n\n\n\n\n## What is refine?\n**refine** is a React-based framework for the rapid ✨ development of web applications. \nIt eliminates repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\n**refine** is *headless by design*, thereby offering unlimited styling and customization options.\n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components`, and `providers`. They are all decoupled from *UI components* and *business logic*, so that they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework** that you favor. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive⚡* applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, **refine** can also power *customer-facing* applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **refine** from scratch:\n\n\n\n\n<a href=\"https://s.refine.dev/readme-admin-panel\" target=\"_blank\">\n <img src=\"https://user-images.githubusercontent.com/18739364/204285956-cc20fa11-b769-4bd5-b8f6-9c05a283ac85.gif\"   style=\"width:267px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-medium-clone\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285047-8f24f1f4-65ea-4952-83ed-81e92cdd5b90.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-ssr-storefront\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285039-1ce0cb06-fbf8-4704-89c9-2e004620c9a8.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n<br/>\n<br/>\n\n\n[👉 Refer to most popular real use case examples](https://refine.dev/examples/)\n\n[👉 More **refine** powered different usage scenarios can be found here](https://refine.dev/docs/examples/)\n\n\n\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), and [Directus](https://directus.io/).\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n🔍 Auto-generated **CRUD** UIs from **your API data structure**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** & **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n⌛️ Built-in CLI with time-saving features\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is by using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Material UI](https://mui.com) as the default UI framework:\n\n```\nnpm create refine-app@latest -- --preset refine-mui\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\n<br/>\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n\n\n\n<a href=\"http://localhost:3000\">![Welcome on board](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_welcome.png)</a>\n\n<br/>\n\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\nimport React from 'react';\n\nimport { Refine } from '@pankod/refine-core';\nimport {\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n    Layout,\n    ThemeProvider,\n    LightTheme,\n    ReadyPage,\n    ErrorComponent,\n} from '@pankod/refine-mui';\n\nimport dataProvider from '@pankod/refine-simple-rest';\nimport routerProvider from '@pankod/refine-react-router-v6';\n\nimport {\n    MuiListInferencer,\n    MuiShowInferencer,\n    MuiCreateInferencer,\n    MuiEditInferencer,\n} from '@pankod/refine-inferencer/mui';\n\nfunction App() {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: 'auto' } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    dataProvider={dataProvider(\n                        'https://api.fake-rest.refine.dev'\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    ReadyPage={ReadyPage}\n                    catchAll={<ErrorComponent />}\n                    routerProvider={routerProvider}\n                    resources={[\n                        {\n                            name: 'samples',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                            create: MuiCreateInferencer,\n                            edit: MuiEditInferencer,\n                            canDelete: true,\n                        },\n                        {\n                            name: 'categories',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                        {\n                            name: 'tags',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                    ]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n}\n\nexport default App;\n```\n\n<br/>\n\n\n\n🚀  Thanks to **refine Inferencer package**, it guesses the configuration to use for the `list`, `show`, `create`, and `edit` pages based on the data fetched from the API and generates the pages automatically.  \n\n\n\nNow, you should see the output as a table populated with `post` & `category` data:\n\n![First example result](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_first_page.png?raw=true)\n\n<br/>\n\nYou can get the auto-generated pages codes by clicking the `Show Code` button on each page. Afterward, simply pass the pages to the `resources` array by replacing with the Inferencer components.\n\n## Next Steps\n\n👉 Jump to [Tutorial](https://refine.dev/docs/tutorial/introduction/index/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundamental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\n\n\n [👉 Refer to contribution docs for more information](https://refine.dev/docs/contributing/#ways-to-contribute)\n\n\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord Server](https://discord.gg/refine).\n\n\n## Our ♥️ Contributors\n\n<a href=\"https://github.com/refinedev/refine/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=refinedev/refine\" />\n</a>\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Refinedev\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.61.4","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-UF+wobAhN7fCObCYFdLgXY7J5pfWYjC6F3AUCXbav22xevdI/bamxEXen+VnPH/m5RO/amfLVPAbrqRhGBR9Xg==","shasum":"62dc29121b4b1f005b41fc2fbe184ede95f0e18a","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.61.4.tgz","fileCount":204,"unpackedSize":1904991,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH/30qOQFZ1ry4n4JGEaUQQubkM/Y/0FFp+eT0Iu9vgxAiEA6+bNk7DBZCOx0B6m06LOa5r7I+IZyyaly1j7f01aJtY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3EUPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2YhAAldI2mbSn8LPnrE5ufqv3/4YZbuyNUnHcd+0Rq7Lq6YR8LGs1\r\nWv9MOfBCUlg9wSBBjbUv1M3we8DtsXrr3DEEedXDFWoU2VV+rA+Nzc13XivJ\r\nuUY15CwTbLfdh9gSAJ66TJsaI6JOwrNwx9UY9dp/Mfc02y6XsaBKnrju1Odu\r\nBVQMzZRHddwPkop2mYGOalwk/+9SeNBWH1H6ysK0IrEjIbJDwQr/zhWa6oUe\r\nL6w1/cMRUVZCrFqpeg0F5EEnOfPJOrvUMSXzg5M8/40WxkkaVqTpEc6wiTL5\r\nCKAB4jjWdpGF61ThEVTMoe9YPHICaOKqnBl9cyER2P9JoinpVWk1C4a24r3x\r\nyEoc8PfYN/QepiNDO14E9hHJ/6itPtguKs4prQKgY/1Ewnt63BYamy+PHEx5\r\nTxdP7A3HBd/GDPC+qFqgxG4AuHbpouXcsCzaSDccBJ4emwNXwYlhCw0GblKC\r\nrmaH7miWfmZqS+jqqafeJOPkHhCcDM44asiBldxqdIpdBuT2DChj0Fn/59cy\r\nO4fh1mjZek+SY3TOzqNhrh/HtRiNfEjNgd8NK7uqKwfsNxcmlKMCtsiHfDE8\r\nbuH2ySVhs7DOFnQtDRYvQVQuANMr7PCLreKAW1jJqTbwWQSAFBqTXnUVbIVc\r\nS7aYZUWgr5mFD/lsOKgqKlvNnfgoN+10MeA=\r\n=iHVx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.61.4_1675379983384_0.8517210497791863"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.61.5":{"name":"@pankod/refine-mui","version":"3.61.5","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build"},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.11.0","@pankod/refine-ui-tests":"^0.11.6","@pankod/refine-core":"^3.95.1","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^29.2.4","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^29.0.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.14.2","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.33.2","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.61.5","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-hCq3+t8bgMEkyst8Vi8/YdOEzVl6g3BtCnTlZYcU9ItVFSpeBDcKtopXcp5zzj5GFzWcz4qXn3XwjFIH/oA+sA==","shasum":"228791bc6400278c1e27adbac13f2cd66856a57e","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.61.5.tgz","fileCount":204,"unpackedSize":1905277,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICAFGmnftu1LXkQFDk4DMp6OSQoGrSdt68GcAMV5G4beAiA+ByqDeWywmrJ/a+nBlwIrVyy/QxCM2W2+YrwqoqcwEA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3KlGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrspw/+M1ZgZD7BXddJbjvobQU7djfFm0DMADe77z7IgPsxnvvfYPB1\r\nSeqcycbTpZuKYVYSt/zyCButyY7N+AKxLDm4EL1YDvtT/UKkxxXtXlYL5aZS\r\nmWCHqb3QkDAhtgfDXoG8Epvtd+dilct6dEiBS3b+vjiXspzDRZ/Uv4SdUvG8\r\nwkP7rC1KNDAwYLZp7XL/Vp7EDyf8Utp3qsMRbZDiBxnzTN2zziM039JX+EGQ\r\n7tGCGp97KJVM3aw5uXhyJGbnnyurfJ4xR0W9hpLxn211AkV9O1Jgka88VZm1\r\nfi2NzC8jnwiVxnUrWb/vrgN0S2UtWSBOkfh2g1+21O7bsYbCTkoPkxrFqBK7\r\nRseL+GTVb2cNHmsUolViOgH1cE1e2qkCe2h1IcixyMF1duetRn6hsNikX6dh\r\nfQ4CBcsKb0REri90GqQus+2pkbXIPO0Q1LfAyvvMJm+Dlq2HqKs/fdBYWFMU\r\nBrVFCqx76dMJfwVXvDPxR7dZO4IiCAn0UBgZvCh2OoMadiBAtWjyUtZjoPiF\r\nTmTdCdqWfSJdIquGkzBcdOUX9T21utWM1QmvGv39VkTdvpxc6bZmUCs522AZ\r\n6tmi3a/VQKWkXkGdn6vWyL+qPW6CoYSI7af9zj80qgez5ldCp+pCg29B2Kjp\r\nsCPAKV6G8AULlkhiOOINfee0OMW7TwU6IRU=\r\n=nGLT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.61.5_1675405638170_0.0901409717558681"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.62.0":{"name":"@pankod/refine-mui","version":"3.62.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build","postinstall":"echo \"refine v4 is released 🎉 \nThe new version is 100% backward compatible. You can upgrade to v4 with a single command! \nSee the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x \n\""},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.18.0","@pankod/refine-ui-tests":"^0.12.0","@pankod/refine-core":"^3.102.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^29.2.4","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^29.0.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.15.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.38.0","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"readme":"<br/>\n\n<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://refine.ams3.cdn.digitaloceanspaces.com/refine_logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n</div>\n\n<br />\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An open source, headless web application framework developed with flexibility in mind.\n\n<br />\n<br />\n\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n</div>\n\n\n<div align=\"center\">\n\n\n\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-core.svg)](https://www.npmjs.com/package/@pankod/refine-core)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core)](https://www.npmjs.com/package/@pankod/refine-core)\n[![](https://img.shields.io/github/commit-activity/m/refinedev/refine)](https://github.com/refinedev/refine/commits/next)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\n\n</div>\n\n<br/>\n<a href=\"https://refine.dev/\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png\">\n  <img alt=\"how-works-refine\" src=\"https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png\">\n</picture>\n</a>\n\n\n\n\n\n## What is refine?\n**refine** is a React-based framework for the rapid ✨ development of web applications. \nIt eliminates repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\n**refine** is *headless by design*, thereby offering unlimited styling and customization options.\n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components`, and `providers`. They are all decoupled from *UI components* and *business logic*, so that they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework** that you favor. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive⚡* applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, **refine** can also power *customer-facing* applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **refine** from scratch:\n\n\n\n\n<a href=\"https://s.refine.dev/readme-admin-panel\" target=\"_blank\">\n <img src=\"https://user-images.githubusercontent.com/18739364/204285956-cc20fa11-b769-4bd5-b8f6-9c05a283ac85.gif\"   style=\"width:267px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-medium-clone\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285047-8f24f1f4-65ea-4952-83ed-81e92cdd5b90.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-ssr-storefront\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285039-1ce0cb06-fbf8-4704-89c9-2e004620c9a8.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n<br/>\n<br/>\n\n\n[👉 Refer to most popular real use case examples](https://refine.dev/examples/)\n\n[👉 More **refine** powered different usage scenarios can be found here](https://refine.dev/docs/examples/)\n\n\n\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), and [Directus](https://directus.io/).\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n🔍 Auto-generated **CRUD** UIs from **your API data structure**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** & **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n⌛️ Built-in CLI with time-saving features\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is by using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Material UI](https://mui.com) as the default UI framework:\n\n```\nnpm create refine-app@latest -- --preset refine-mui\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\n<br/>\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n\n\n\n<a href=\"http://localhost:3000\">![Welcome on board](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_welcome.png)</a>\n\n<br/>\n\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\nimport React from 'react';\n\nimport { Refine } from '@pankod/refine-core';\nimport {\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n    Layout,\n    ThemeProvider,\n    LightTheme,\n    ReadyPage,\n    ErrorComponent,\n} from '@pankod/refine-mui';\n\nimport dataProvider from '@pankod/refine-simple-rest';\nimport routerProvider from '@pankod/refine-react-router-v6';\n\nimport {\n    MuiListInferencer,\n    MuiShowInferencer,\n    MuiCreateInferencer,\n    MuiEditInferencer,\n} from '@pankod/refine-inferencer/mui';\n\nfunction App() {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: 'auto' } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    dataProvider={dataProvider(\n                        'https://api.fake-rest.refine.dev'\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    ReadyPage={ReadyPage}\n                    catchAll={<ErrorComponent />}\n                    routerProvider={routerProvider}\n                    resources={[\n                        {\n                            name: 'samples',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                            create: MuiCreateInferencer,\n                            edit: MuiEditInferencer,\n                            canDelete: true,\n                        },\n                        {\n                            name: 'categories',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                        {\n                            name: 'tags',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                    ]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n}\n\nexport default App;\n```\n\n<br/>\n\n\n\n🚀  Thanks to **refine Inferencer package**, it guesses the configuration to use for the `list`, `show`, `create`, and `edit` pages based on the data fetched from the API and generates the pages automatically.  \n\n\n\nNow, you should see the output as a table populated with `post` & `category` data:\n\n![First example result](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_first_page.png?raw=true)\n\n<br/>\n\nYou can get the auto-generated pages codes by clicking the `Show Code` button on each page. Afterward, simply pass the pages to the `resources` array by replacing with the Inferencer components.\n\n## Next Steps\n\n👉 Jump to [Tutorial](https://refine.dev/docs/tutorial/introduction/index/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundamental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\n\n\n [👉 Refer to contribution docs for more information](https://refine.dev/docs/contributing/#ways-to-contribute)\n\n\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord Server](https://discord.gg/refine).\n\n\n## Our ♥️ Contributors\n\n<a href=\"https://github.com/refinedev/refine/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=refinedev/refine\" />\n</a>\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Refinedev\n","readmeFilename":"README.md","_id":"@pankod/refine-mui@3.62.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-MkWUQEdJxfe8JQPrn471ZwTHXoEgdSjbEVI5xQTW7i0O0srs+edEnmXUcjunrCx3i8B/ITDel+mGdpPVZaR6Yg==","shasum":"a522bfc6224078ac9ffd4ebbdcd3f3aa46d36bf0","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.62.0.tgz","fileCount":204,"unpackedSize":1914266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH78lyfxYZYDkluSfO6kBMdAl/0haPhvjGMhkydpdbqNAiAMITIxspgMygaHZdQ93/hhRNwAW0zSmlaiLH8ccUAGog=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDzKPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxUg/8C5hjabjRZvvsVeQuPigB6vPieAkfJLAdfPcIB9B9/aOriGyP\r\nmpV7UUVZq4houqgGMKAsqlPgIvPSY5dX/g+B884M/fOrZ8PgZGSXJgjereJ1\r\nyHls7R+wZadcxysP3R8Zxi+1YuAp6FG+NGJQWOgJq/ynwTTceM1aJVXbzT2f\r\n1zkLsF4wvtKGoRPSgv0XMT1Of5yptTBH2UxSTNAGU7TRzSsfYfjz6Ulw+cN7\r\n5mHXoSJaAfX35r7fEXtywkPZrTn9e0i3croaxjrEDgoI/ohWzsTxr179L1aN\r\nQPueyvLgiztZJesg6CaFIsTeAGbCMeryKmbikPnN5CQMKD3vb4XhyEO7BKEP\r\nzT55qPzCbw+/vm7XILzDdPjVwRltwpoLw4dkY1L2lfIEiTGwOgqV5ktN0gFw\r\nPt5p5xpVBf433fxr98lo1ewzvwmkrzbAYCj7rg10X66M/Kwc32bDONnw7e+s\r\n7G8uRLnKbioXUTxw+S/oEeV0Viv6AJmM45twcDMdgvn6al4hh1OXW6gcHdrK\r\nBvIGHrpbz9aucxJ2xzMngiAUfNJ+SazQc1jqUqZopGgCYQPY5xpim7W2sP4d\r\nAQ5P/5kei2wTFnXsGZPQHdWdHzJ3dXJ4W9sLIARwldsUct/gQv4p8FkJWdav\r\nT/UxSz9j+M/8hpwCW6k7fMAicLqR6jI3dMI=\r\n=/qBp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"willico","email":"batuhanwilhelm@gmail.com"},{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.62.0_1678717583384_0.9543290045599666"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"},"3.63.0":{"name":"@pankod/refine-mui","version":"3.63.0","description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","private":false,"main":"dist/index.js","module":"dist/esm/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsup --watch --format esm,cjs,iife --legacy-output","build":"tsup --format esm,cjs,iife --minify --legacy-output","test":"jest --passWithNoTests --runInBand","prepare":"npm run build","postinstall":"echo \"refine v4 is released 🎉 \nThe new version is 100% backward compatible. You can upgrade to v4 with a single command! \nSee the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x \n\""},"peerDependencies":{"@pankod/refine-core":"^3.23.2","react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"devDependencies":{"@pankod/refine-cli":"^1.19.0","@pankod/refine-ui-tests":"^0.13.0","@pankod/refine-core":"^3.103.0","@esbuild-plugins/node-resolve":"^0.1.4","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^8.0.0","@testing-library/user-event":"^14.1.1","@types/jest":"^29.2.4","@types/lodash":"^4.14.171","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/testing-library__jest-dom":"^5.14.3","esbuild-copy-static-files":"^0.1.0","esbuild-plugin-inline-image":"^0.0.8","identity-obj-proxy":"^3.0.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","postcss":"^8.1.4","react-router-dom":"6.3.0","ts-jest":"^29.0.3","tsup":"^5.11.13","typescript":"^4.7.4"},"dependencies":{"@pankod/refine-ui-types":"^0.16.0","@emotion/react":"^11.8.2","@emotion/styled":"^11.8.1","@mui/icons-material":"^5.8.3","@mui/lab":"^5.0.0-alpha.85","@mui/material":"^5.8.6","@mui/x-data-grid":"^5.12.1","@pankod/refine-react-hook-form":"^3.39.0","dayjs":"^1.10.7","lodash-es":"^4.17.21","lodash":"^4.17.21","notistack":"^2.0.4","react-markdown":"^6.0.1","remark-gfm":"^1.0.0","warn-once":"^0.1.0","tslib":"^2.3.1"},"author":{"name":"refine"},"license":"MIT","gitHead":"829f5a516f98c06f666d6be3e6e6099c75c07719","publishConfig":{"access":"public"},"_id":"@pankod/refine-mui@3.63.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-NGHE9a3O8fg+yuQ9iBguKrzs7/jFHjGcclC/crs9FyJcTksvG3kuO1YPb9PeveyAVgxcnk4ZM5XmMFI6/IXEOg==","shasum":"e3a6b51b5279abbca45185a70e3a4dece022d8db","tarball":"https://registry.npmjs.org/@pankod/refine-mui/-/refine-mui-3.63.0.tgz","fileCount":204,"unpackedSize":1914997,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAMNczcBy7vrIaixsplEKlPQdy9roo1qOsYxpgLTBz00AiB0J9aJyH5RvJ0DUeuWD391SxnOOZbR5aso+FZ7NdsrBQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEB3/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0eA/8D1S5WKLWhIT6PyHJantMcGqzI/rpiyN0O3rYIKRHRfTsa+nj\r\nTmoGg7MlM4p+lbO0JZNRlxpc6J9p58UzBXOAEhGfMQuC+8eY9Y+kZQXlKpaO\r\nKFBFoajPNaAtfAAZOA+tQzm9me4ONj21S44L7F8h60BA05hSGDfVs9mnTvjk\r\nl1v/UvPp01gKGR0vZvTqOi6zpE5c1HzV6OS0sNtkBrRw5g8B6AQs2TAhCpJH\r\nXt4H3yASN7qIuVJLTBLK4MveTVbgUu/l9fYzAs8NAAAM0cc3sIHyIaLcaomo\r\nky8c0My7ODo3HxJkb99x5kWN9Tyj+OkWBMaaAF9yCqb3zhWXZ8K2xCUTkMKe\r\nZXg2pPBCRGfAY5qU1VTN2P8a6rbcdQf583l7IMx8zUdwv64ndRou45YAJ0fT\r\n0YJk7rGlh+0v/PeftO+TKsMqAznTqCE0Fjfir0BYjm9LM7x9WFtWYZNiSUaT\r\niC21qdxZvD7Gmc2S4vnk2DSfgFDSP8+Ku6TGyFMbih/CGc6ZkynJ49EKYPmt\r\nTMpbZF7EV1ANfqxSRgKqcuPe76Akcv4o2AODDtUIfJy9hCN9QdzUoWYz6CLY\r\n6hI2ZbmEvvJQiPO8FhjIoZX9JoB6JqRHU0HERaOW7YVqVjbfZU5ZmNxzRf5Y\r\nlb3iFl9c7nqspGBvndvisr2F3X1/kbMLzCA=\r\n=Bkj/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"omerfarukaplak","email":"omer@pankod.com"},"directories":{},"maintainers":[{"name":"willico","email":"batuhanwilhelm@gmail.com"},{"name":"alicanerdurmaz","email":"alicanerdurmaz@gmail.com"},{"name":"salihozdmr","email":"salihozdemir94@gmail.com"},{"name":"omerfarukaplak","email":"omer@pankod.com"},{"name":"pankodbot","email":"bot@pankod.com"},{"name":"yildirayyunlu","email":"yildirayyunlu@gmail.com"},{"name":"aliemirsen","email":"senaliemir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refine-mui_3.63.0_1678777854761_0.9613420779868096"},"_hasShrinkwrap":false,"deprecated":"refine v4 is released 🎉 The new version is 100% backward compatible. You can upgrade to v4 with a single command! See the migration guide here: https://refine.dev/docs/migration-guide/3x-to-4x"}},"time":{"created":"2022-06-01T16:01:29.116Z","3.17.0-next.0":"2022-06-01T16:01:29.427Z","modified":"2023-11-02T07:54:20.373Z","3.17.1-next.0":"2022-06-02T09:15:52.422Z","3.18.0-next.1":"2022-06-02T10:38:06.739Z","3.24.0-next.7":"2022-06-07T15:14:55.816Z","3.24.0-next.8":"2022-06-07T15:44:09.794Z","3.24.0-next.9":"2022-06-07T17:20:04.572Z","3.24.0-next.10":"2022-06-08T06:40:47.470Z","3.24.0-next.12":"2022-06-08T08:01:57.737Z","3.24.0-next.14":"2022-06-08T13:38:16.471Z","3.24.1-next.0":"2022-06-08T14:26:29.413Z","3.25.1":"2022-06-09T06:07:28.703Z","3.25.2":"2022-06-09T12:02:13.413Z","3.26.0":"2022-06-09T14:12:06.432Z","3.29.0":"2022-06-10T07:24:45.724Z","3.27.0":"2022-06-11T06:45:15.295Z","3.30.0":"2022-06-11T08:18:40.704Z","3.30.1":"2022-06-14T09:05:57.823Z","3.30.2":"2022-06-14T11:22:53.651Z","3.30.3":"2022-06-14T12:02:12.950Z","3.30.4":"2022-06-17T11:21:12.689Z","3.30.5":"2022-06-20T14:06:06.578Z","3.30.6":"2022-06-20T16:42:21.887Z","3.30.7":"2022-06-23T07:43:53.393Z","3.30.8":"2022-06-23T08:28:54.005Z","3.30.9":"2022-06-23T14:27:02.599Z","3.30.10":"2022-06-23T15:09:12.438Z","3.31.0":"2022-06-28T10:37:58.576Z","3.32.0":"2022-06-28T12:58:38.400Z","3.33.0":"2022-06-30T06:51:28.296Z","3.34.0":"2022-06-30T08:45:53.180Z","4.0.0":"2022-07-04T14:11:56.977Z","3.36.0":"2022-07-04T14:56:50.932Z","3.37.0":"2022-07-04T15:21:40.392Z","3.37.1":"2022-07-06T11:07:27.440Z","3.37.2":"2022-07-06T12:03:25.543Z","3.38.0":"2022-07-26T13:22:03.425Z","3.39.0":"2022-07-26T13:47:39.474Z","3.39.1":"2022-07-27T09:31:53.431Z","3.39.2":"2022-07-27T11:10:38.172Z","3.40.0":"2022-08-01T06:02:06.519Z","3.41.0":"2022-08-01T07:53:04.838Z","3.41.1":"2022-08-04T09:11:22.742Z","3.41.2":"2022-08-04T13:00:55.864Z","3.41.3":"2022-08-05T12:04:02.547Z","3.41.4":"2022-08-08T06:12:58.845Z","3.41.5":"2022-08-09T11:58:15.151Z","3.41.6":"2022-08-09T12:31:03.572Z","3.41.7":"2022-08-10T10:46:27.895Z","3.41.8":"2022-08-10T11:15:45.884Z","3.41.10":"2022-08-24T13:50:22.470Z","3.41.11":"2022-08-26T12:09:55.686Z","3.41.12":"2022-08-26T12:27:21.925Z","3.41.14":"2022-08-26T14:29:21.606Z","3.41.13":"2022-08-29T12:22:09.361Z","3.41.15":"2022-09-02T05:25:32.885Z","3.41.16":"2022-09-02T10:44:16.352Z","3.42.0":"2022-09-06T13:22:07.505Z","3.43.0":"2022-09-07T08:29:12.646Z","3.44.0":"2022-09-12T09:28:58.967Z","3.44.1":"2022-09-13T12:14:47.941Z","3.44.2":"2022-09-14T12:44:34.971Z","3.45.0":"2022-09-14T14:08:03.710Z","3.45.1":"2022-09-15T09:58:52.266Z","3.45.2":"2022-09-15T10:20:57.115Z","3.45.3":"2022-09-21T09:11:35.445Z","3.45.4":"2022-09-21T09:43:45.892Z","3.45.5":"2022-09-27T11:59:02.536Z","3.45.6":"2022-09-28T07:11:29.382Z","3.45.7":"2022-09-28T09:04:55.555Z","3.45.8":"2022-09-30T13:59:07.777Z","3.45.9":"2022-09-30T14:15:00.858Z","3.46.0":"2022-10-04T12:36:54.754Z","3.47.0":"2022-10-04T13:50:16.393Z","3.48.0":"2022-10-04T14:06:33.151Z","3.48.1":"2022-10-04T16:04:37.135Z","3.48.2":"2022-10-04T16:24:31.692Z","3.49.0":"2022-10-06T13:25:27.461Z","3.50.0":"2022-10-07T11:45:59.967Z","3.50.1":"2022-10-11T09:05:54.302Z","3.50.2":"2022-10-11T09:35:43.214Z","3.50.3":"2022-10-11T13:04:17.363Z","3.50.5":"2022-10-11T14:12:42.334Z","3.50.6":"2022-10-17T11:52:52.299Z","3.50.7":"2022-10-17T12:22:54.039Z","3.52.0":"2022-10-19T20:15:24.565Z","3.53.0":"2022-10-20T08:08:58.086Z","3.54.0":"2022-10-25T13:13:12.231Z","3.55.0":"2022-10-25T14:58:05.488Z","3.55.1":"2022-11-09T10:17:55.058Z","3.55.2":"2022-11-09T10:40:17.856Z","3.56.0":"2022-11-28T12:12:32.998Z","3.57.0":"2022-11-28T12:34:50.955Z","3.58.0":"2022-11-30T13:51:11.849Z","3.59.0":"2022-11-30T14:23:25.274Z","3.59.1":"2022-12-01T13:19:21.140Z","3.59.2":"2022-12-01T13:52:23.035Z","3.59.3":"2022-12-05T12:28:07.652Z","3.59.4":"2022-12-05T12:50:04.751Z","3.60.0":"2022-12-08T08:03:42.730Z","3.61.0":"2022-12-08T08:31:19.481Z","3.61.1":"2022-12-14T10:34:17.938Z","3.61.2":"2022-12-14T11:55:53.427Z","3.61.3":"2023-01-17T09:26:52.775Z","3.61.4":"2023-02-02T23:19:43.635Z","3.61.5":"2023-02-03T06:27:18.415Z","3.62.0":"2023-03-13T14:26:23.939Z","3.63.0":"2023-03-14T07:10:54.976Z"},"maintainers":[{"email":"batuhanwilhelm@gmail.com","name":"willico"},{"email":"alicanerdurmaz@gmail.com","name":"alicanerdurmaz"},{"email":"omer@pankod.com","name":"omerfarukaplak"},{"email":"bot@pankod.com","name":"pankodbot"},{"email":"senaliemir@gmail.com","name":"aliemirsen"}],"description":"refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.","author":{"name":"refine"},"license":"MIT","readme":"<br/>\n\n<div align=\"center\" style=\"margin: 30px;\">\n<a href=\"https://refine.dev/\">\n  <img src=\"https://refine.ams3.cdn.digitaloceanspaces.com/refine_logo.png\"   style=\"width:250px;\" align=\"center\" />\n</a>\n<br />\n<br />\n\n<div align=\"center\">\n    <a href=\"https://refine.dev\">Home Page</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/examples/\">Examples</a> | \n    <a href=\"https://refine.dev/blog/\">Blog</a> | \n    <a href=\"https://refine.dev/docs/\">Documentation</a> | \n    <a href=\"https://github.com/refinedev/refine/projects/1\">Roadmap</a>\n</div>\n</div>\n\n<br />\n\n<div align=\"center\"><strong>Build your <a href=\"https://reactjs.org/\">React</a>-based CRUD applications, without constraints.</strong><br>An open source, headless web application framework developed with flexibility in mind.\n\n<br />\n<br />\n\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n<a href=\"https://www.producthunt.com/posts/refine-3?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-refine&#0045;3\" target=\"_blank\"><img src=\"https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=362220&theme=light&period=daily\" alt=\"refine - 100&#0037;&#0032;open&#0032;source&#0032;React&#0032;framework&#0032;to&#0032;build&#0032;web&#0032;apps&#0032;3x&#0032;faster | Product Hunt\" style=\"width: 250px; height: 54px;\" width=\"250\" height=\"54\" /></a>\n\n</div>\n\n\n<div align=\"center\">\n\n\n\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![Maintainability](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/maintainability)](https://codeclimate.com/github/pankod/refine/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/99a65a191bdd26f4601c/test_coverage)](https://codeclimate.com/github/pankod/refine/test_coverage)\n[![npm version](https://img.shields.io/npm/v/@pankod/refine-core.svg)](https://www.npmjs.com/package/@pankod/refine-core)\n[![npm](https://img.shields.io/npm/dm/@pankod/refine-core)](https://www.npmjs.com/package/@pankod/refine-core)\n[![](https://img.shields.io/github/commit-activity/m/refinedev/refine)](https://github.com/refinedev/refine/commits/next)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n\n\n</div>\n\n<br/>\n<a href=\"https://refine.dev/\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/18739364/200257042-3f2aa7f7-a07f-4824-8d2a-b25f26b6fd32.png\">\n  <img alt=\"how-works-refine\" src=\"https://user-images.githubusercontent.com/18739364/200257209-8fc0c8b1-2568-453e-873f-00513434deed.png\">\n</picture>\n</a>\n\n\n\n\n\n## What is refine?\n**refine** is a React-based framework for the rapid ✨ development of web applications. \nIt eliminates repetitive tasks demanded by **CRUD** operations and provides industry standard solutions for critical parts like **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\n**refine** is *headless by design*, thereby offering unlimited styling and customization options.\n\n## What do you mean by \"headless\" ?\nInstead of being a limited set of pre-styled components, **refine** is a collection of helper `hooks`, `components`, and `providers`. They are all decoupled from *UI components* and *business logic*, so that they never keep you from customizing your *UI* or coding your own flow.\n\n**refine** seamlessly works with any **custom design** or **UI framework** that you favor. For convenience, it ships with ready-made integrations for [Ant Design System](https://ant.design/), [Material UI](https://mui.com/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n## Use cases\n**refine** shines on *data-intensive⚡* applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, **refine** can also power *customer-facing* applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **refine** from scratch:\n\n\n\n\n<a href=\"https://s.refine.dev/readme-admin-panel\" target=\"_blank\">\n <img src=\"https://user-images.githubusercontent.com/18739364/204285956-cc20fa11-b769-4bd5-b8f6-9c05a283ac85.gif\"   style=\"width:267px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-medium-clone\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285047-8f24f1f4-65ea-4952-83ed-81e92cdd5b90.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n <a href=\"https://s.refine.dev/readme-ssr-storefront\" target=\"_blank\">\n<img src=\"https://user-images.githubusercontent.com/18739364/204285039-1ce0cb06-fbf8-4704-89c9-2e004620c9a8.gif\"   style=\"width:200px;\"  />\n</a>\n\n\n<br/>\n<br/>\n\n\n[👉 Refer to most popular real use case examples](https://refine.dev/examples/)\n\n[👉 More **refine** powered different usage scenarios can be found here](https://refine.dev/docs/examples/)\n\n\n\n\n## Key Features\n\n⚙️ Zero-config, **one-minute setup** with a **single CLI command**\n\n🔌 Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/master/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/master/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/master/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/master/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/master/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/master/packages/strapi-v4), [Strapi GraphQL](https://github.com/refinedev/refine/tree/master/packages/strapi-graphql), [Supabase](https://github.com/refinedev/refine/tree/master/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/master/packages/hasura), [Appwrite](https://github.com/refinedev/refine/tree/master/packages/appwrite), [Firebase](https://firebase.google.com/), and [Directus](https://directus.io/).\n\n🌐 **SSR support** with **Next.js** or **Remix**\n\n🔍 Auto-generated **CRUD** UIs from **your API data structure**\n\n⚛ Perfect **state management** & **mutations** with **React Query**\n\n🔀 **Advanced routing** with any router library of your choice\n\n🔐 Providers for seamless **authentication** and **access control** flows\n\n⚡ Out-of-the-box support for **live / real-time applications**\n\n📄 Easy **audit logs** & **document versioning**\n\n💬 Support for any **i18n** framework\n\n💪 Future-proof, **robust architecture**\n\n⌛️ Built-in CLI with time-saving features\n\n✅ Full **test coverage**\n\n## Quick Start\n\nThe fastest way to get started with **refine** is by using the `create refine-app` project starter tool.\nRun the following command to create a new **refine** project configured with  [Material UI](https://mui.com) as the default UI framework:\n\n```\nnpm create refine-app@latest -- --preset refine-mui\n```\n\nOnce the setup is complete, navigate to the project folder and start your project with:\n\n```\nnpm run dev\n```\n\n<br/>\n\nYour **refine** application will be accessible at [http://localhost:3000](http://localhost:3000):\n\n\n\n<a href=\"http://localhost:3000\">![Welcome on board](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_welcome.png)</a>\n\n<br/>\n\nLet's consume a public `fake REST API` and add two resources (*posts*, *categories*) to our project. Replace the contents of `src/App.tsx` with the following code:\n\n```tsx title=\"src/App.tsx\"\nimport React from 'react';\n\nimport { Refine } from '@pankod/refine-core';\nimport {\n    notificationProvider,\n    RefineSnackbarProvider,\n    CssBaseline,\n    GlobalStyles,\n    Layout,\n    ThemeProvider,\n    LightTheme,\n    ReadyPage,\n    ErrorComponent,\n} from '@pankod/refine-mui';\n\nimport dataProvider from '@pankod/refine-simple-rest';\nimport routerProvider from '@pankod/refine-react-router-v6';\n\nimport {\n    MuiListInferencer,\n    MuiShowInferencer,\n    MuiCreateInferencer,\n    MuiEditInferencer,\n} from '@pankod/refine-inferencer/mui';\n\nfunction App() {\n    return (\n        <ThemeProvider theme={LightTheme}>\n            <CssBaseline />\n            <GlobalStyles styles={{ html: { WebkitFontSmoothing: 'auto' } }} />\n            <RefineSnackbarProvider>\n                <Refine\n                    dataProvider={dataProvider(\n                        'https://api.fake-rest.refine.dev'\n                    )}\n                    notificationProvider={notificationProvider}\n                    Layout={Layout}\n                    ReadyPage={ReadyPage}\n                    catchAll={<ErrorComponent />}\n                    routerProvider={routerProvider}\n                    resources={[\n                        {\n                            name: 'samples',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                            create: MuiCreateInferencer,\n                            edit: MuiEditInferencer,\n                            canDelete: true,\n                        },\n                        {\n                            name: 'categories',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                        {\n                            name: 'tags',\n                            list: MuiListInferencer,\n                            show: MuiShowInferencer,\n                        },\n                    ]}\n                />\n            </RefineSnackbarProvider>\n        </ThemeProvider>\n    );\n}\n\nexport default App;\n```\n\n<br/>\n\n\n\n🚀  Thanks to **refine Inferencer package**, it guesses the configuration to use for the `list`, `show`, `create`, and `edit` pages based on the data fetched from the API and generates the pages automatically.  \n\n\n\nNow, you should see the output as a table populated with `post` & `category` data:\n\n![First example result](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/mui_first_page.png?raw=true)\n\n<br/>\n\nYou can get the auto-generated pages codes by clicking the `Show Code` button on each page. Afterward, simply pass the pages to the `resources` array by replacing with the Inferencer components.\n\n## Next Steps\n\n👉 Jump to [Tutorial](https://refine.dev/docs/tutorial/introduction/index/) to continue your work and turn the example into a full-blown CRUD application.\n\n👉 Visit [Learn the Basics Page](https://refine.dev/docs/getting-started/overview/) to get informed about the fundamental concepts.\n\n👉 Read more on [Advanced Tutorials\n](https://refine.dev/docs/advanced-tutorials/) for different usage scenarios.\n\n👉 See the real-life [Finefoods Demo](https://refine.dev/demo/) project.\n\n👉 Play with interactive [Examples](https://refine.dev/docs/examples/)\n\n## Roadmap\nYou can find refine's <a href=\"https://github.com/refinedev/refine/projects/1\">Public Roadmap here!</a> \n\n## Stargazers\n\n[![Stargazers repo roster for refinedev/refine](https://reporoster.com/stars/refinedev/refine)](https://github.com/refinedev/refine/stargazers)\n\n## Contribution\n\n\n\n [👉 Refer to contribution docs for more information](https://refine.dev/docs/contributing/#ways-to-contribute)\n\n\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord Server](https://discord.gg/refine).\n\n\n## Our ♥️ Contributors\n\n<a href=\"https://github.com/refinedev/refine/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=refinedev/refine\" />\n</a>\n\n## License\n\nLicensed under the MIT License, Copyright © 2021-present Refinedev\n","readmeFilename":"README.md"}