{"_id":"@_ns/strapi-plugin-mega-menu","_rev":"7-8eb0f449b2029d0f86579be60fd79434","name":"@_ns/strapi-plugin-mega-menu","dist-tags":{"latest":"1.0.5"},"versions":{"0.1.0":{"name":"@_ns/strapi-plugin-mega-menu","version":"0.1.0","_id":"@_ns/strapi-plugin-mega-menu@0.1.0","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"dist":{"shasum":"6ca3f0abd9fef08f6cf7327d1445bdba4920dffc","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-0.1.0.tgz","fileCount":17,"integrity":"sha512-R4mJtbfFWrBMg5DZBSkJPByMaQRN+UgNpJyxJzyRuHxzXIUiAuxiWa52n5n8pLWt2uXyw4pHfdTFCWchYKsAmg==","signatures":[{"sig":"MEYCIQCKZfovCo1hl4jazK7Hr7EG0Z+6j5EGrB9gAVnq94dFzQIhAKUPjL32zWA9nGRxkVPt/iD3B/DRl4sBSZkqG5kpYXuu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53082},"strapi":{"kind":"plugin","name":"mega-menu","displayName":"Mega Menu"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./admin/src/index.jsx","default":"./admin/src/index.jsx","require":"./admin/src/index.jsx"},"./strapi-server":{"import":"./strapi-server.js","default":"./strapi-server.js","require":"./strapi-server.js"}},"_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"_npmVersion":"11.7.0","description":"<h1 align=\"center\">Strapi + Mega Menu Builder</h1>","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-mega-menu_0.1.0_1776925287494_0.42287434904860666","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@_ns/strapi-plugin-mega-menu","version":"0.1.1","_id":"@_ns/strapi-plugin-mega-menu@0.1.1","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"dist":{"shasum":"7916357ea93954aa1788e2721b75b549e7c10e98","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-0.1.1.tgz","fileCount":20,"integrity":"sha512-c9sWMV0LD9+nuhDGhtmcA32BKzFcrv6efHrQdW6549Nu4oYseM0RknB5UQ2Scntkvj7b5isEauiGqZfG1BAJNw==","signatures":[{"sig":"MEYCIQDLCXt8BR6Ma1lJm3cIh8clORBnwLs1CerLXPCNfmGd5gIhALd78dvbRjtXMjZEHn23f2tiHob2eTYWClM29IyB3Vih","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131233},"strapi":{"kind":"plugin","name":"mega-menu","displayName":"Mega Menu"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./admin/src/index.tsx","default":"./admin/src/index.tsx","require":"./admin/src/index.tsx"},"./strapi-server":{"import":"./strapi-server.ts","default":"./strapi-server.ts","require":"./strapi-server.ts"}},"gitHead":"7945812318ea5c06497e995e7dbc0be8d225412e","_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"_npmVersion":"11.7.0","description":"<p align=\"center\">   <img src=\"./assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Strapi ➕ Mega Menu Builder</h1>","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-mega-menu_0.1.1_1776938895070_0.05832801505552654","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@_ns/strapi-plugin-mega-menu","version":"0.1.2","_id":"@_ns/strapi-plugin-mega-menu@0.1.2","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"dist":{"shasum":"8770c7be6c5c2845925d08ef088506b5ee485c5f","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-0.1.2.tgz","fileCount":20,"integrity":"sha512-Q4Zt4P9IVzRjNVczM8JltCp3m0yyfq7PitjV7Qz8osd6A46HW2oLLnZ89aBdUMOO/oME9mfqU6wjJnVR8SwZ2A==","signatures":[{"sig":"MEQCICpvKbfFi9VpEm7vz6AFGe11c3H5YI9BqGTCKE/6xltYAiABg73fSuEBYmB+fVDdIrXXab6nK9+gwyvhFQ3sH/DuYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131530},"strapi":{"kind":"plugin","name":"mega-menu","displayName":"Mega Menu"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./admin/src/index.tsx","default":"./admin/src/index.tsx","require":"./admin/src/index.tsx"},"./strapi-server":{"import":"./strapi-server.ts","default":"./strapi-server.ts","require":"./strapi-server.ts"}},"gitHead":"7945812318ea5c06497e995e7dbc0be8d225412e","_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"_npmVersion":"11.7.0","description":"<p align=\"center\">   <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Stra","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-mega-menu_0.1.2_1776939600870_0.914113741922056","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@_ns/strapi-plugin-mega-menu","version":"1.0.2","_id":"@_ns/strapi-plugin-mega-menu@1.0.2","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"dist":{"shasum":"ad89def34f37cb0dba3b2adc077aba17d5dae5d3","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-1.0.2.tgz","fileCount":20,"integrity":"sha512-4e16fHdhALruvW7ohWpMXTe8uTC/9G0LWkkIrlwafALL5Ib56BHixYRPqHO+wNo5BW+xBhUGX2xd0HoQg5NCog==","signatures":[{"sig":"MEQCICQAmIDBo/QnAioRxnSDJc367zHehGEj0tpjx7QZ9oQDAiBSkFmrvLu1AxmVIOBmIIHauoFClPYO67uqBIjRKsoe0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131530},"strapi":{"kind":"plugin","name":"mega-menu","displayName":"Mega Menu"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./admin/src/index.tsx","default":"./admin/src/index.tsx","require":"./admin/src/index.tsx"},"./strapi-server":{"import":"./strapi-server.ts","default":"./strapi-server.ts","require":"./strapi-server.ts"}},"gitHead":"7945812318ea5c06497e995e7dbc0be8d225412e","_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"_npmVersion":"11.7.0","description":"<p align=\"center\">   <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Stra","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-mega-menu_1.0.2_1776941385097_0.5245752987947321","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@_ns/strapi-plugin-mega-menu","version":"1.0.3","license":"MIT","_id":"@_ns/strapi-plugin-mega-menu@1.0.3","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"dist":{"shasum":"71aba91c45a15787d2a66ea027ca05547a111fa1","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-1.0.3.tgz","fileCount":20,"integrity":"sha512-s5eXVhVsQ3vkaWI/1UOUxi1Kp1RBeiK9kEkKnXyhj9w9bmuZOu53/qzePotqQQUn/QKNEfq7bwpE4cz/e5mKzA==","signatures":[{"sig":"MEUCIBkq5iIsDwhk1LkTbhHbPGeG6O6M6aN1ND+kL9fOWX+6AiEA5L7u8QcoIS39KteAZ+b7F1wrB2uxhyySfeX/d9n5N0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131550},"strapi":{"kind":"plugin","name":"mega-menu","displayName":"Mega Menu"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./admin/src/index.tsx","default":"./admin/src/index.tsx","require":"./admin/src/index.tsx"},"./strapi-server":{"import":"./strapi-server.ts","default":"./strapi-server.ts","require":"./strapi-server.ts"}},"gitHead":"586a56fcdfa26ce8bb618370fdc095701de446f5","_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"_npmVersion":"11.7.0","description":"<p align=\"center\">   <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Stra","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-mega-menu_1.0.3_1777893248682_0.16142411382649513","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@_ns/strapi-plugin-mega-menu","version":"1.0.4","license":"MIT","_id":"@_ns/strapi-plugin-mega-menu@1.0.4","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"dist":{"shasum":"145ac7032f002e1a1729b6df492fe09a888bcf9f","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-1.0.4.tgz","fileCount":20,"integrity":"sha512-TCDFck5se/3Nm5ql8lwE/yumoKVCt3ARF+DZQFQ+WOeAVzaSWCGhlmjoYTECjN6aXQ7fGZAZZUCP1a4Ugr9q0A==","signatures":[{"sig":"MEQCIBQbtmGHkBGpkQJfFc/p+32bDlsSn0bpGhllV8dp5ZN1AiAYF+/zVnGcLqspBUQmw9ngCg3ohRG7S72WNEhak73fjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131621},"strapi":{"kind":"plugin","name":"mega-menu","displayName":"Mega Menu"},"exports":{"./package.json":"./package.json","./strapi-admin":{"import":"./admin/src/index.tsx","default":"./admin/src/index.tsx","require":"./admin/src/index.tsx"},"./strapi-server":{"import":"./strapi-server.ts","default":"./strapi-server.ts","require":"./strapi-server.ts"}},"gitHead":"586a56fcdfa26ce8bb618370fdc095701de446f5","_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"_npmVersion":"11.7.0","description":"<p align=\"center\">   <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Stra","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"peerDependencies":{"@strapi/strapi":"^4.0.0 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/strapi-plugin-mega-menu_1.0.4_1778060434059_0.7818394709468415","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@_ns/strapi-plugin-mega-menu","version":"1.0.5","license":"MIT","author":{"name":"Neeraj Solanki","email":"neeraj2000solanki@gmail.com"},"peerDependencies":{"@strapi/strapi":"^4.0.0 || ^5.0.0"},"strapi":{"name":"mega-menu","kind":"plugin","displayName":"Mega Menu"},"exports":{"./strapi-admin":{"import":"./admin/src/index.tsx","require":"./admin/src/index.tsx","default":"./admin/src/index.tsx"},"./strapi-server":{"import":"./strapi-server.ts","require":"./strapi-server.ts","default":"./strapi-server.ts"},"./package.json":"./package.json"},"gitHead":"a7f9b20e1b41fd4de5281b8001c72d496d50c0b5","_id":"@_ns/strapi-plugin-mega-menu@1.0.5","description":"<p align=\"center\">   <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Stra","_nodeVersion":"24.11.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-GxJBlex4XXFr1rQM/bmPzjPdcJoo2Met8KQC/YOQs+xcwE+hT0tqb9+RexN4HkrM3cuxcSPMvbffvYyukLSLvg==","shasum":"ece814f0b6cc62e5a04f76b124af403c9a34e4dd","tarball":"https://registry.npmjs.org/@_ns/strapi-plugin-mega-menu/-/strapi-plugin-mega-menu-1.0.5.tgz","fileCount":20,"unpackedSize":131712,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAF06pkn36V2WMCswwtEUBPdzECbpqMOpjOLpIHGzaKzAiEAlWAewa4omkMllVcsnrV1WRNg9ej1Z8zSbNnfdzaCqq4="}]},"_npmUser":{"name":"_ns","email":"neeraj2000solanki@gmail.com"},"directories":{},"maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/strapi-plugin-mega-menu_1.0.5_1778229632022_0.6894113832950008"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-23T06:21:27.335Z","modified":"2026-05-08T08:40:32.292Z","0.1.0":"2026-04-23T06:21:27.647Z","0.1.1":"2026-04-23T10:08:15.271Z","0.1.2":"2026-04-23T10:20:01.053Z","1.0.2":"2026-04-23T10:49:45.260Z","1.0.3":"2026-05-04T11:14:08.849Z","1.0.4":"2026-05-06T09:40:34.196Z","1.0.5":"2026-05-08T08:40:32.166Z"},"license":"MIT","description":"<p align=\"center\">   <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" /> </p> <h1 align=\"center\">Stra","maintainers":[{"name":"_ns","email":"neeraj2000solanki@gmail.com"}],"readme":"\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/mega-menu-editor.png\" alt=\"Mega Menu Builder editor preview\" width=\"760\" hight=\"480\" />\n</p>\n<h1 align=\"center\">Strapi ➕ Mega Menu Builder</h1>\n\n<p align=\"center\">\n  Reusable nested mega menu custom field for Strapi v5.\n</p>\n\n## 👋 Get Started\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration](#configuration)\n- [Frontend Integration](#frontend-integration)\n- [Validation Rules](#validation-rules)\n- [Requirements](#requirements)\n\n## <a id=\"features\"></a>✨ Features\n\n- Nested menu tree editor as a Strapi custom field\n- Configurable max nesting depth (Level 1 to Level 4)\n- Drag-and-drop style hierarchy editing inside the field UI\n- Collapse / Expand support for large menu trees\n- Basic title and URL constraints for cleaner menu data\n- JSON output that can be saved directly in content entries\n\n## <a id=\"installation\"></a>🔧 Installation\n\nAdd the plugin to your Strapi application:\n\n```bash\nnpm install @_ns/strapi-plugin-mega-menu\n```\n or\n```bash\nyarn add @_ns/strapi-plugin-mega-menu\n```\n\nThen rebuild the admin panel:\n\n```bash\nnpm run build\n```\n  or\n```bash\nyarn build\n```\n\nQuick start (development):\n\n```bash\nnpm run develop\n```\n  or\n```bash\nyarn develop\n```\n\nFor local plugin development inside `src/plugins/mega-menu`, Strapi auto-loads the plugin.\n\n## <a id=\"usage\"></a>✍️ Usage\n\nThe plugin is available as a **Custom Field** in Content-Type Builder.\n\n1. Open **Content-Type Builder**.\n2. Add a new field and go to the **CUSTOM** tab.\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/usage-custom-tab.png\" alt=\"Select Mega Menu Builder from custom tab\" width=\"760\" />\n</p>\n\n3. Select **Mega Menu Builder**.\n\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/neerajsolanki73/strapi-plugin-mega-menu/main/src/plugins/mega-menu/assets/usage-add-field-form.png\" alt=\"Add Mega Menu Builder field form\" width=\"760\" />\n</p>\n\n4. Save the content type and restart Strapi if required.\n\n\n### Custom field details\n\n- Plugin id: `mega-menu`\n- Field name: `mega-menu-builder`\n- Field type: `json`\n\n### Example output (JSON)\n\n```json\n{\n  \"items\": [\n    {\n      \"id\": \"node_1776858560893_5eb921\",\n      \"url\": \"/products\",\n      \"title\": \"Products\",\n      \"children\": [\n        {\n          \"id\": \"node_1776858589836_cb32c9\",\n          \"url\": \"/electronics\",\n          \"title\": \"Electronics\",\n          \"children\": [\n            {\n              \"id\": \"node_1776858590572_88bfd9\",\n              \"url\": \"/laptops\",\n              \"title\": \"Laptops\",\n              \"children\": [\n                {\n                  \"id\": \"node_1776858810835_f60e77\",\n                  \"url\": \"/model1\",\n                  \"title\": \"Model 1\",\n                  \"children\": []\n                },\n                {\n                  \"id\": \"node_1776858844971_6ed20e\",\n                  \"url\": \"/model2\",\n                  \"title\": \"Model 2\",\n                  \"children\": []\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"maxDepth\": 4\n}\n```\n\n### What editors can do in the field\n\n- Add root menu items\n- Add nested child items\n- Set max depth for the menu tree\n- Collapse/expand branches\n- Reorder items before saving\n\n> The plugin is configured to be used from the custom field flow.  \n> No separate plugin page is required for editor usage.\n\n## <a id=\"configuration\"></a>⚙️ Configuration\n\nThe plugin does not require extra code-based setup in `src/admin/app.*`.\nConfiguration is done directly from the custom field UI.\n\n### Field-level configuration\n\n- **Max Nesting Level**: controls how deep menu hierarchy can go (`1` to `4`)\n- **Node fields**:\n  - `title` (menu label)\n  - `url` (target path/link)\n  - `children` (nested items array)\n\n### Content-Type Builder setup\n\n1. Open your collection type or single type.\n2. Add custom field `Mega Menu Builder`.\n3. Save changes and restart Strapi if prompted.\n4. Use the field in Content Manager to build nested menu JSON.\n\n## <a id=\"frontend-integration\"></a>🌐 Frontend Integration\n\nFetch the content entry and render `megaMenu.items` recursively on your frontend.\n\n```js\nconst renderMenu = (nodes = []) =>\n  nodes.map((node) => ({\n    label: node.title,\n    href: node.url,\n    children: renderMenu(node.children || []),\n  }));\n\n// Example usage with API response\nconst menuTree = renderMenu(response.data.megaMenu?.items || []);\n```\n\n`maxDepth` can be used as a UI guard if you allow menu editing on frontend.\n\n## <a id=\"validation-rules\"></a> ✅ Validation Rules\n\nMenu item payload constraints:\n\n- `title`: required, trimmed, max 120 chars\n- `url`: required, trimmed, max 2048 chars\n\n## <a id=\"requirements\"></a>⚠️ Requirements\n\n- Strapi `>= 5.0.0`\n- Node.js `>= 20.0.0`\n\n","readmeFilename":"README.md","author":{"name":"Neeraj Solanki","email":"neeraj2000solanki@gmail.com"}}