{"_id":"@codeshumon/popup-menu","_rev":"6-fa3ceb3f1a7bcd910171d0b0df608b92","name":"@codeshumon/popup-menu","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.1":{"name":"@codeshumon/popup-menu","version":"1.0.1","keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"_id":"@codeshumon/popup-menu@1.0.1","maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"homepage":"https://github.com/codewithshumon/popup-menu#readme","bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"dist":{"shasum":"cb50a8ada5d920061e35eb3471444e143639fb78","tarball":"https://registry.npmjs.org/@codeshumon/popup-menu/-/popup-menu-1.0.1.tgz","fileCount":14,"integrity":"sha512-246F7QpLmf3BPIKxsAncZTouXK9JEfrZOfCEASyPB4+S1IYrlel4eWGvRygDNLzbjRbZ7vb0DNP4YIwNe3eyyw==","signatures":[{"sig":"MEQCIDmJ6m1saGwR+PZkQgcJ19U0qzL0EGMSbqFqCXmeokyzAiAxLVGCOQ7QkInS1E/ByjZdB4WllZ9xhfOwtwiAbfdLrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117289},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"style":"./dist/style.css","types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./style.css":"./dist/style.css","./package.json":"./package.json"},"gitHead":"8fcc7ea19e33a8f22f4ec39db2c981247cd78e94","scripts":{"build":"npm run clean && npm run build:types && npm run build:js && cp dist/types/index.d.ts dist/index.d.ts && cp src/PopupMenu.css dist/style.css","clean":"rm -rf dist","build:js":"rollup -c","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist/types","prepublishOnly":"npm run build"},"_npmUser":{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"},"repository":{"url":"git+https://github.com/codewithshumon/popup-menu.git","type":"git"},"_npmVersion":"11.6.0","description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","rollup":"^4.21.0","typescript":"^5.4.5","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^15.2.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/popup-menu_1.0.1_1757262408052_0.7955028322405595","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@codeshumon/popup-menu","version":"1.0.2","keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"_id":"@codeshumon/popup-menu@1.0.2","maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"homepage":"https://github.com/codewithshumon/popup-menu#readme","bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"dist":{"shasum":"e2fd68e94a4794c1adb59838d2bc4480e310666a","tarball":"https://registry.npmjs.org/@codeshumon/popup-menu/-/popup-menu-1.0.2.tgz","fileCount":10,"integrity":"sha512-8rElrZo2wAVf/XI5Ewojbaq6u1qeAInYQmlHGqM7ws/kcx3ZxsOibJCKyMEwOxhaZ0EDAz664MeLTcbpEC/GmQ==","signatures":[{"sig":"MEQCIC3++ieG87d66/XP+vHBhshpJ0555qmSEo2ll57yPWlBAiAfGyHGOx42Uk0AH84tp3BFO1xQb7Iu3zrHPwKZfuXS8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120350},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"ac9d425602841d3fb281d114ca7af2b17e35ad23","scripts":{"build":"npm run clean && npm run build:types && npm run build:js && cp dist/types/index.d.ts dist/index.d.ts","clean":"rm -rf dist","build:js":"rollup -c","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist/types","prepublishOnly":"npm run build"},"_npmUser":{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"},"repository":{"url":"git+https://github.com/codewithshumon/popup-menu.git","type":"git"},"_npmVersion":"11.6.0","description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","rollup":"^4.21.0","typescript":"^5.4.5","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^15.2.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/popup-menu_1.0.2_1757262493096_0.11988107849746377","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@codeshumon/popup-menu","version":"1.0.3","keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"_id":"@codeshumon/popup-menu@1.0.3","maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"homepage":"https://github.com/codewithshumon/popup-menu#readme","bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"dist":{"shasum":"7672e12c00e6ce567fd8f734d82f75d8bb9f3473","tarball":"https://registry.npmjs.org/@codeshumon/popup-menu/-/popup-menu-1.0.3.tgz","fileCount":10,"integrity":"sha512-byj8jDvL2MP0AzBGZqUTk1SCcUsnsU2KcxE/GBInINgpFeD9mFFUkqUF+5S0j0zPAyd0Jb9Q09yAu5sF0qoQ4w==","signatures":[{"sig":"MEYCIQDY5afEJ+E70NRhgnHcliCD7J1dhWxlZQOGOZZAQDqGMwIhANeITCmi7sTMkaUKJyxGgapfm349cTEXaVhXI52kTAuO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87541},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"9a406695f22917b9952140543ec92ae1541fed57","scripts":{"build":"npm run clean && npm run build:types && npm run build:js && cp dist/types/index.d.ts dist/index.d.ts","clean":"rm -rf dist","build:js":"rollup -c","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist/types","prepublishOnly":"npm run build"},"_npmUser":{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"},"repository":{"url":"git+https://github.com/codewithshumon/popup-menu.git","type":"git"},"_npmVersion":"11.6.0","description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","rollup":"^4.21.0","typescript":"^5.4.5","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^15.2.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/popup-menu_1.0.3_1757593894734_0.24537405151578073","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@codeshumon/popup-menu","version":"1.0.4","keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"_id":"@codeshumon/popup-menu@1.0.4","maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"homepage":"https://github.com/codewithshumon/popup-menu#readme","bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"dist":{"shasum":"684138ac1af1d7702ddd496b6cb15ec8d73b4a15","tarball":"https://registry.npmjs.org/@codeshumon/popup-menu/-/popup-menu-1.0.4.tgz","fileCount":10,"integrity":"sha512-RI4TXrhonVGI1SvxWvHcnnPMzkN80gvmdDHYWSY10qFMcV5KI0vlL3ANHDakaFz2coHd2O/lskpCGJ22UfI0UQ==","signatures":[{"sig":"MEYCIQDySZ0X0XYxceztxCrKhuxT3z18srIpp/20DgB1nnUUKQIhAMbaWFzcYmA4sJEZNDU8RdXHJMErHwbCnTJb0BlGUxLi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104004},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"8687dd3c6e98a03ae571e20d56ac50249ecdc78c","scripts":{"build":"npm run clean && npm run build:types && npm run build:js && cp dist/types/index.d.ts dist/index.d.ts","clean":"rm -rf dist","build:js":"rollup -c","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist/types","prepublishOnly":"npm run build"},"_npmUser":{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"},"repository":{"url":"git+https://github.com/codewithshumon/popup-menu.git","type":"git"},"_npmVersion":"11.6.0","description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","rollup":"^4.21.0","typescript":"^5.4.5","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^15.2.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/popup-menu_1.0.4_1757594131455_0.1824806614379082","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@codeshumon/popup-menu","version":"1.0.5","keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"_id":"@codeshumon/popup-menu@1.0.5","maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"homepage":"https://github.com/codewithshumon/popup-menu#readme","bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"dist":{"shasum":"1239b350bdaa9938a9c5adcee81bb408836bdc78","tarball":"https://registry.npmjs.org/@codeshumon/popup-menu/-/popup-menu-1.0.5.tgz","fileCount":10,"integrity":"sha512-y/JvSs8gk3V/HYBkye/oRRdyDskVuQquaQlN8eLRBFlUATQQx2ahV4QCRTr0VZ91XpS6+Az3Ri6RBKi63ask6A==","signatures":[{"sig":"MEQCIAjVCtxSNNvrQn6zWzKvqhev3jcrJX9voocjctY+D/CTAiBDizngjwlLe3LnN3NVT4m5gygtBTt7v0IxiJ3s1oLPmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107274},"main":"./dist/cjs/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/esm/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"./package.json":"./package.json"},"gitHead":"52b71a5b7f60b0412424d5ee86e3672c570d1d1a","scripts":{"build":"npm run clean && npm run build:types && npm run build:js && cp dist/types/index.d.ts dist/index.d.ts","clean":"rm -rf dist","build:js":"rollup -c","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist/types","prepublishOnly":"npm run build"},"_npmUser":{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"},"repository":{"url":"git+https://github.com/codewithshumon/popup-menu.git","type":"git"},"_npmVersion":"11.6.0","description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.3","rollup":"^4.21.0","typescript":"^5.4.5","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^15.2.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/popup-menu_1.0.5_1757602613493_0.9597445401525206","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@codeshumon/popup-menu","version":"1.0.6","description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","main":"./dist/cjs/index.js","module":"./dist/esm/index.js","types":"./dist/index.d.ts","type":"module","exports":{".":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js","types":"./dist/index.d.ts"},"./package.json":"./package.json"},"scripts":{"clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --declaration --outDir dist/types","build:js":"rollup -c","build":"npm run clean && npm run build:types && npm run build:js && cp dist/types/index.d.ts dist/index.d.ts","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-typescript":"^11.1.6","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup":"^4.21.0","rollup-plugin-postcss":"^4.0.2","tslib":"^2.6.3","typescript":"^5.4.5"},"keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"repository":{"type":"git","url":"git+https://github.com/codewithshumon/popup-menu.git"},"bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"homepage":"https://github.com/codewithshumon/popup-menu#readme","publishConfig":{"access":"public"},"_id":"@codeshumon/popup-menu@1.0.6","gitHead":"f438416491691a6ae262b71cc1ad7f325f37fe9c","_nodeVersion":"22.15.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-OFqPg/Wjmap0aGbDs72AgcGj6qTh0izx0kxaPJ/jQ0g+pWHou2pv2k2kz6TZqTn5IddNETSNam9sOTwXtntC8w==","shasum":"5d91e311447da5411d159f553ece54d60466cbf6","tarball":"https://registry.npmjs.org/@codeshumon/popup-menu/-/popup-menu-1.0.6.tgz","fileCount":10,"unpackedSize":108471,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC38VyDrl+fjEgyMWStJUZzTscH6oYPNlI0c9tSP0Y30QIgNgJgnI0P7Pq7AIZG/sP7eVQ8laR0tKNGDNDrNUIqVn4="}]},"_npmUser":{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"},"directories":{},"maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/popup-menu_1.0.6_1758306188918_0.20638574708453628"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-07T16:26:47.959Z","modified":"2025-09-19T18:23:09.291Z","1.0.1":"2025-09-07T16:26:48.242Z","1.0.2":"2025-09-07T16:28:13.273Z","1.0.3":"2025-09-11T12:31:34.966Z","1.0.4":"2025-09-11T12:35:31.652Z","1.0.5":"2025-09-11T14:56:53.674Z","1.0.6":"2025-09-19T18:23:09.115Z"},"bugs":{"url":"https://github.com/codewithshumon/popup-menu/issues"},"homepage":"https://github.com/codewithshumon/popup-menu#readme","keywords":["react","popup","menu","dropdown","context-menu","popover","ui-component","react-component","typescript","responsive","animated","lightweight","customizable","nextjs","tailwind","css","built-in-css","positioning","auto-positioning","ui","ux","web-components"],"repository":{"type":"git","url":"git+https://github.com/codewithshumon/popup-menu.git"},"description":"A lightweight, customizable popup menu component for React with built-in CSS styling and TypeScript support. Features automatic positioning, smooth animations, and responsive design for modern web applications.","maintainers":[{"name":"codeshumon","email":"codeshumon.shumonkhan@gmail.com"}],"readme":"<h1 align=\"center\">@codeshumon/popup-menu</h1>\r\n\r\n<h1 align=\"center\">React Popup Menu Component with Built-in CSS and Auto Positioning</h1>\r\n\r\n<p align=\"center\">\r\nA lightweight, customizable React popup menu component with automatic positioning, smooth animations, and zero dependencies.\r\n</p>\r\n\r\n<p align=\"center\">\r\n<a href=\"https://www.npmjs.com/package/@codeshumon/popup-menu\">\r\n<img src=\"https://img.shields.io/npm/v/@codeshumon/popup-menu.svg\" alt=\"npm version\">\r\n</a>\r\n<a href=\"https://opensource.org/licenses/MIT\">\r\n<img src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License: MIT\">\r\n</a>\r\n</p>\r\n\r\n<h2 align=\"center\">React Popup Menu Tutorial Video</h2>\r\n<h4 align=\"center\">Watch how to use the popup-menu package in action</h4>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://www.youtube.com/watch?v=VqWXTRMDz9g\">\r\n    <picture>\r\n      <source srcset=\"https://img.youtube.com/vi/VqWXTRMDz9g/maxresdefault.jpg\" media=\"(min-width: 640px)\">\r\n      <img src=\"https://img.youtube.com/vi/VqWXTRMDz9g/hqdefault.jpg\" alt=\"Popup Menu Demo\" \r\n           style=\"width:100%; max-width:560px; aspect-ratio:16/9; object-fit:cover;\">\r\n    </picture>\r\n  </a>\r\n</p>\r\n\r\n<p align=\"center\"><em>Click the image above to watch the video on YouTube</em></p>\r\n\r\n<h2>Table of Contents</h2>\r\n<ul>\r\n<li><a href=\"#features-\">Features ✨</a></li>\r\n<li><a href=\"#installation-\">Installation 📦</a></li>\r\n<li><a href=\"#basic-usage-\">Basic Usage 🔧</a></li>\r\n<li><a href=\"#advanced-usage-\">Advanced Usage 🛠️</a></li>\r\n<li><a href=\"#api-reference-\">API Reference 📚</a></li>\r\n<li><a href=\"#position-options-\">Position Options 🧭</a></li>\r\n<li><a href=\"#typescript-support-\">TypeScript Support ✅</a></li>\r\n<li><a href=\"#browser-compatibility-\">Browser Compatibility 🌐</a></li>\r\n<li><a href=\"#contributing-\">Contributing 🤝</a></li>\r\n<li><a href=\"#license-\">License 📄</a></li>\r\n</ul>\r\n\r\n<h2 id=\"features-\">Features ✨</h2>\r\n<ul>\r\n<li>🎯 <strong>Automatic Positioning</strong>: Smart positioning that adjusts based on viewport space</li>\r\n<li>🎨 <strong>Built-in CSS</strong>: No need to import separate CSS files</li>\r\n<li>⚡ <strong>Smooth Animations</strong>: CSS transitions for opening/closing effects</li>\r\n<li>📱 <strong>Responsive Design</strong>: Works on mobile and desktop devices</li>\r\n<li>🎛️ <strong>Customizable</strong>: Extensive configuration options</li>\r\n<li>🔧 <strong>TypeScript Support</strong>: Full type definitions included</li>\r\n<li>📦 <strong>Zero Dependencies</strong>: Lightweight and fast</li>\r\n<li>🌙 <strong>Theme Support</strong>: Light and dark theme options</li>\r\n<li>🖱️ <strong>Scroll Control</strong>: Optional scroll prevention when menu is open</li>\r\n<li>✋ <strong>Hover Trigger</strong>: Option to open the menu on hover instead of click</li>\r\n<li>🎬 <strong>Configurable Animations</strong>: Choose from multiple animation styles ('scale', 'in', 'out')</li>\r\n<li>🎨 <strong>Complete Style Control</strong>: Full CSS customization with <code>noDefaultStyle</code> option</li>\r\n</ul>\r\n\r\n<h2 id=\"installation-\">Installation 📦</h2>\r\n<pre><code class=\"language-bash\">npm install @codeshumon/popup-menu\r\n\r\nor\r\n\r\nyarn add @codeshumon/popup-menu\r\n</code></pre>\r\n\r\n<h2 id=\"basic-usage-\">Basic Usage 🔧</h2>\r\n<pre><code class=\"language-jsx\">import React from 'react';\r\nimport { PopupMenu } from '@codeshumon/popup-menu';\r\n\r\nfunction App() {\r\n  return (\r\n    &lt;PopupMenu\r\n      trigger={&lt;button&gt;Open Menu&lt;/button&gt;}\r\n    &gt;\r\n      &lt;div onClick={() => console.log('Option 1')}&gt;Option 1&lt;/div&gt;\r\n      &lt;div onClick={() => console.log('Option 2')}&gt;Option 2&lt;/div&gt;\r\n      &lt;div onClick={() => console.log('Option 3')}&gt;Option 3&lt;/div&gt;\r\n    &lt;/PopupMenu&gt;\r\n  );\r\n}\r\n\r\nexport default App;\r\n</code></pre>\r\n\r\n<h2 id=\"advanced-usage-\">Advanced Usage 🛠️</h2>\r\n\r\n<h3>With Header and Footer</h3>\r\n<pre><code class=\"language-jsx\">import React from 'react';\r\nimport { PopupMenu } from '@codeshumon/popup-menu';\r\n\r\nfunction App() {\r\n  return (\r\n    &lt;PopupMenu\r\n      trigger={&lt;button&gt;User Menu&lt;/button&gt;}\r\n      header={&lt;div className=\"menu-header\"&gt;User Options&lt;/div&gt;}\r\n      footer={&lt;div className=\"menu-footer\"&gt;Settings&lt;/div&gt;}\r\n      position=\"bottom-right\"\r\n      animationDuration={300}\r\n      theme=\"dark\"\r\n    &gt;\r\n      &lt;div onClick={() => console.log('Profile')}&gt;Profile&lt;/div&gt;\r\n      &lt;div onClick={() => console.log('Settings')}&gt;Settings&lt;/div&gt;\r\n      &lt;div onClick={() => console.log('Logout')}&gt;Logout&lt;/div&gt;\r\n    &lt;/PopupMenu&gt;\r\n  );\r\n}\r\n</code></pre>\r\n\r\n<h3>Custom Positioning and Styling</h3>\r\n<pre><code class=\"language-jsx\">import React from 'react';\r\nimport { PopupMenu } from '@codeshumon/popup-menu';\r\n\r\nfunction App() {\r\n  return (\r\n    &lt;PopupMenu\r\n      trigger={&lt;button&gt;Custom Position&lt;/button&gt;}\r\n      position=\"top-center\"\r\n      viewportPadding={20}\r\n      enableScroll={true}\r\n      noDefaultStyle={false}\r\n      theme=\"light\"\r\n      onOpenChange={(isOpen) => console.log('Menu is:', isOpen)}\r\n      onClose={() => console.log('Menu closed')}\r\n    &gt;\r\n      &lt;div&gt;Item 1&lt;/div&gt;\r\n      &lt;div&gt;Item 2&lt;/div&gt;\r\n      &lt;div&gt;Item 3&lt;/div&gt;\r\n    &lt;/PopupMenu&gt;\r\n  );\r\n}\r\n</code></pre>\r\n\r\n<h3>Hover Trigger and Custom Animation</h3>\r\n<pre><code class=\"language-jsx\">import React from 'react';\r\nimport { PopupMenu } from '@codeshumon/popup-menu';\r\n\r\nfunction App() {\r\n  return (\r\n    &lt;PopupMenu\r\n      trigger={&lt;button&gt;Hover Over Me&lt;/button&gt;}\r\n      hoverTrigger={true}\r\n      animation=\"in\"\r\n      position=\"right-center\"\r\n    &gt;\r\n      &lt;div&gt;Fades in from the left&lt;/div&gt;\r\n      &lt;div&gt;Item 2&lt;/div&gt;\r\n    &lt;/PopupMenu&gt;\r\n  );\r\n}\r\n</code></pre>\r\n\r\n<h3>Complete Custom Styling with noDefaultStyle</h3>\r\n<pre><code class=\"language-jsx\">import React from 'react';\r\nimport { PopupMenu } from '@codeshumon/popup-menu';\r\n\r\nfunction App() {\r\n  return (\r\n    &lt;PopupMenu\r\n      trigger={&lt;button&gt;Custom Styled Menu&lt;/button&gt;}\r\n      noDefaultStyle={true}\r\n      menuClassName=\"fixed z-50 flex flex-col bg-blue-600 text-white rounded-md shadow-lg min-w-[120px] opacity-0 transition-all duration-200\"\r\n      position=\"bottom-right\"\r\n    &gt;\r\n      &lt;div className=\"px-3 py-2 hover:bg-blue-700 cursor-pointer\"&gt;Option 1&lt;/div&gt;\r\n      &lt;div className=\"px-3 py-2 hover:bg-blue-700 cursor-pointer\"&gt;Option 2&lt;/div&gt;\r\n      &lt;div className=\"px-3 py-2 hover:bg-blue-700 cursor-pointer\"&gt;Option 3&lt;/div&gt;\r\n    &lt;/PopupMenu&gt;\r\n  );\r\n}\r\n</code></pre>\r\n\r\n<h2 id=\"api-reference-\">API Reference 📚</h2>\r\n\r\n<h3>PopupMenu Props</h3>\r\n<table>\r\n    <thead>\r\n        <tr>\r\n            <th>Prop</th>\r\n            <th>Type</th>\r\n            <th>Default</th>\r\n            <th>Description</th>\r\n        </tr>\r\n    </thead>\r\n    <tbody>\r\n        <tr>\r\n            <td><code>trigger</code></td>\r\n            <td>React.ReactNode</td>\r\n            <td>Required</td>\r\n            <td>The element that triggers the popup menu</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>children</code></td>\r\n            <td>React.ReactNode</td>\r\n            <td>Required</td>\r\n            <td>Menu items/content</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>header</code></td>\r\n            <td>React.ReactNode</td>\r\n            <td>undefined</td>\r\n            <td>Optional header content</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>footer</code></td>\r\n            <td>React.ReactNode</td>\r\n            <td>undefined</td>\r\n            <td>Optional footer content</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>className</code></td>\r\n            <td>string</td>\r\n            <td>\"\"</td>\r\n            <td>Additional CSS class for the wrapper</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>menuClassName</code></td>\r\n            <td>string</td>\r\n            <td>\"\"</td>\r\n            <td>Additional CSS class for the menu. When <code>noDefaultStyle</code> is true, this class is applied without any default styling, giving you complete control over the menu appearance.</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>position</code></td>\r\n            <td>PositionType</td>\r\n            <td>\"auto\"</td>\r\n            <td>Menu position relative to trigger</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>onOpenChange</code></td>\r\n            <td>(open: boolean) => void</td>\r\n            <td>undefined</td>\r\n            <td>Callback when menu opens/closes</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>onClose</code></td>\r\n            <td>() => void</td>\r\n            <td>undefined</td>\r\n            <td>Callback when menu closes</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>animationDuration</code></td>\r\n            <td>number</td>\r\n            <td>200</td>\r\n            <td>Animation duration in milliseconds</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>viewportPadding</code></td>\r\n            <td>number</td>\r\n            <td>5</td>\r\n            <td>Minimum padding from viewport edges in pixels</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>enableScroll</code></td>\r\n            <td>boolean</td>\r\n            <td>false</td>\r\n            <td>Whether to allow scrolling when menu is open</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>noDefaultStyle</code></td>\r\n            <td>boolean</td>\r\n            <td>false</td>\r\n            <td>Disable default styling for menu items. When true, only the <code>menuClassName</code> is applied, allowing complete CSS customization. Essential positioning styles are maintained inline.</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>theme</code></td>\r\n            <td>'dark' | 'light'</td>\r\n            <td>'light'</td>\r\n            <td>Color theme for the menu</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>hoverTrigger</code></td>\r\n            <td>boolean</td>\r\n            <td>false</td>\r\n            <td>Opens the menu on hover instead of on click</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>animation</code></td>\r\n            <td>'scale' | 'in' | 'out'</td>\r\n            <td>'scale'</td>\r\n            <td>Specifies the type of animation ('scale', 'in', 'out')</td>\r\n        </tr>\r\n    </tbody>\r\n</table>\r\n\r\n<h2 id=\"position-options-\">Position Options 🧭</h2>\r\n\r\n<p>The <code>position</code> prop accepts the following values:</p>\r\n<table>\r\n    <thead>\r\n        <tr>\r\n            <th>Position</th>\r\n            <th>Description</th>\r\n            <th>Example</th>\r\n        </tr>\r\n    </thead>\r\n    <tbody>\r\n        <tr>\r\n            <td><code>\"auto\"</code></td>\r\n            <td>Automatically chooses the best position</td>\r\n            <td>Smart positioning based on available space</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"top-left\"</code></td>\r\n            <td>Above the trigger, aligned to left</td>\r\n            <td>Menu appears above and left-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"top-center\"</code></td>\r\n            <td>Above the trigger, centered</td>\r\n            <td>Menu appears above and centered</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"top-right\"</code></td>\r\n            <td>Above the trigger, aligned to right</td>\r\n            <td>Menu appears above and right-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"bottom-left\"</code></td>\r\n            <td>Below the trigger, aligned to left</td>\r\n            <td>Menu appears below and left-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"bottom-center\"</code></td>\r\n            <td>Below the trigger, centered</td>\r\n            <td>Menu appears below and centered</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"bottom-right\"</code></td>\r\n            <td>Below the trigger, aligned to right</td>\r\n            <td>Menu appears below and right-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"left-top\"</code></td>\r\n            <td>Left of the trigger, aligned to top</td>\r\n            <td>Menu appears to the left and top-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"left-center\"</code></td>\r\n            <td>Left of the trigger, centered</td>\r\n            <td>Menu appears to the left and centered</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"left-bottom\"</code></td>\r\n            <td>Left of the trigger, aligned to bottom</td>\r\n            <td>Menu appears to the left and bottom-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"right-top\"</code></td>\r\n            <td>Right of the trigger, aligned to top</td>\r\n            <td>Menu appears to the right and top-aligned</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"right-center\"</code></td>\r\n            <td>Right of the trigger, centered</td>\r\n            <td>Menu appears to the right and centered</td>\r\n        </tr>\r\n        <tr>\r\n            <td><code>\"right-bottom\"</code></td>\r\n            <td>Right of the trigger, aligned to bottom</td>\r\n            <td>Menu appears to the right and bottom-aligned</td>\r\n        </tr>\r\n    </tbody>\r\n</table>\r\n\r\n<h2 id=\"typescript-support-\">TypeScript Support ✅</h2>\r\n\r\n<p>This package includes full TypeScript type definitions:</p>\r\n<pre><code class=\"language-typescript\">import { PopupMenu, PopupMenuProps, PositionType } from '@codeshumon/popup-menu';\r\n\r\nconst menuProps: PopupMenuProps = {\r\n  trigger: &lt;button&gt;Menu&lt;/button&gt;,\r\n  children: &lt;div&gt;Menu Item&lt;/div&gt;,\r\n  position: 'bottom-right' as PositionType,\r\n  theme: 'dark',\r\n  enableScroll: true,\r\n  onOpenChange: (isOpen) => console.log(isOpen),\r\n};\r\n\r\n// Usage in component\r\nfunction MyComponent() {\r\n  return (\r\n    &lt;PopupMenu {...menuProps} /&gt;\r\n  );\r\n}\r\n</code></pre>\r\n\r\n<h2 id=\"browser-compatibility-\">Browser Compatibility 🌐</h2>\r\n\r\n<p>This library is compatible with:</p>\r\n<ul>\r\n<li>✅ Chrome (latest)</li>\r\n<li>✅ Firefox (latest)</li>\r\n<li>✅ Safari (latest)</li>\r\n<li>✅ Edge (latest)</li>\r\n<li>✅ React 16.8+ (hooks compatible)</li>\r\n<li>✅ TypeScript 3.8+</li>\r\n</ul>\r\n\r\n<h2 id=\"contributing-\">Contributing 🤝</h2>\r\n\r\n<p>Contributions are welcome! Please feel free to submit a Pull Request.</p>\r\n<ol>\r\n<li>Fork the repository</li>\r\n<li>Create your feature branch (<code>git checkout -b feature/amazing-feature</code>)</li>\r\n<li>Commit your changes (<code>git commit -m 'Add some amazing feature'</code>)</li>\r\n<li>Push to the branch (<code>git push origin feature/amazing-feature</code>)</li>\r\n<li>Open a Pull Request</li>\r\n</ol>\r\n\r\n<h2 id=\"license-\">License 📄</h2>\r\n\r\n<p>This project is licensed under the MIT License - see the <a href=\"LICENSE\">LICENSE</a> file for details.</p>\r\n\r\n<p>MIT © <a href=\"https://www.npmjs.com/~codeshumon\">codeshumon</a></p>","readmeFilename":"README.md"}