{"_id":"@edux-design/drawers","_rev":"3-f0220457cb163a493ad63c451254e3b0","name":"@edux-design/drawers","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@edux-design/drawers","version":"0.0.1","_id":"@edux-design/drawers@0.0.1","maintainers":[{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"}],"dist":{"shasum":"53eca6915e585562d9a6f44fa4bdbf052fefda1f","tarball":"https://registry.npmjs.org/@edux-design/drawers/-/drawers-0.0.1.tgz","fileCount":7,"integrity":"sha512-Uq6zTVqrBDY0cmz7bvl9b6hSOQGiiiYop5N5HmO71HvBNM4uzwUbVa8g28OdP7q9cBCjCVSH3W7duCWEWzbdMw==","signatures":[{"sig":"MEYCIQDXFh0MB+/gm3OypttrY9amWd2rJ946G1GwPlwyvqXEFgIhAMlZL99+Zn4eoNw1AZ/TiHc9AgUDhOBbHhcAy1wQj776","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16636},"types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ddb46aaba206b836944fba99582582eaeb4491a7","private":false,"scripts":{"dev":"tsup src/index.js --watch --format esm,cjs --external react,react-dom,@radix-ui/react-dialog","lint":"eslint . --max-warnings 0","build":"tsup src/index.js --format esm,cjs --external react,react-dom,@radix-ui/react-dialog","check-types":"tsc --noEmit","generate:component":"turbo gen react-component"},"_npmUser":{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"},"_npmVersion":"10.9.2","description":"Token-aware sliding drawer built on Radix Dialog primitives.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","postcss":"^8.5.6","typescript":"^5.9.2","tailwindcss":"^4.1.12","@tailwindcss/cli":"^4.1.12","@tailwindcss/postcss":"^4.1.12"},"peerDependencies":{"react":">=18","react-dom":">=18","@edux-design/utils":"*","@radix-ui/react-dialog":"1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/drawers_0.0.1_1769742357924_0.21517064501797756","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@edux-design/drawers","version":"0.0.2","_id":"@edux-design/drawers@0.0.2","maintainers":[{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"}],"dist":{"shasum":"41f580cb2c88af8eae6d52cd07160d6ca5fc21e8","tarball":"https://registry.npmjs.org/@edux-design/drawers/-/drawers-0.0.2.tgz","fileCount":9,"integrity":"sha512-E4JGajn0KrOUk2D8kFAPlVJWkL//y1KaGGGotDZAc/skuTQlT5jKt3i1oB7qLJfQFmHEx0vU1eCLCIKb1VfLeg==","signatures":[{"sig":"MEUCIQD6xtnj2aZqf3Yleb77hBMHSNftgLXtP6hqiIFC2cKjbwIgKgMsIvaUkmaqT03G1Uw2uG4PHKZz2j5ebkCsaUcuwRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27435},"types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a98e56b09f76d3c16ee203218e00ad9fcd6fca5c","private":false,"scripts":{"dev":"tsup src/index.js --watch --format esm,cjs --external react,react-dom,@radix-ui/react-dialog","lint":"eslint . --max-warnings 0","build":"tsup src/index.js --format esm,cjs --external react,react-dom,@radix-ui/react-dialog","check-types":"tsc --noEmit","generate:component":"turbo gen react-component"},"_npmUser":{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"},"_npmVersion":"10.9.2","description":"Token-aware sliding drawer built on Radix Dialog primitives.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","postcss":"^8.5.6","typescript":"^5.9.2","tailwindcss":"^4.1.12","@tailwindcss/cli":"^4.1.12","@tailwindcss/postcss":"^4.1.12"},"peerDependencies":{"react":">=18","react-dom":">=18","@edux-design/utils":"*","@radix-ui/react-dialog":"1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/drawers_0.0.2_1769743807511_0.6076106162197896","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@edux-design/drawers","version":"0.0.3","private":false,"sideEffects":["**/*.css"],"types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"lint":"eslint . --max-warnings 0","build":"tsup src/index.js --format esm,cjs --external react,react-dom,@radix-ui/react-dialog","dev":"tsup src/index.js --watch --format esm,cjs --external react,react-dom,@radix-ui/react-dialog","generate:component":"turbo gen react-component","check-types":"tsc --noEmit"},"peerDependencies":{"react":">=18","react-dom":">=18","@edux-design/utils":"*","@radix-ui/react-dialog":"1.1.5"},"devDependencies":{"typescript":"^5.9.2","tailwindcss":"^4.1.12","postcss":"^8.5.6","tsup":"^8.5.0","@tailwindcss/cli":"^4.1.12","@tailwindcss/postcss":"^4.1.12"},"_id":"@edux-design/drawers@0.0.3","gitHead":"0f1cd0a0aa07ecb9511a73dab0b66549878f24ab","description":"Token-aware sliding drawer built on Radix Dialog primitives.","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-zMUxb0fi5zibtuBdhrRVoMwQFlvJZ1ICCR442V1N2t8CliUJj6ei3Oq4JvjGClfyBaqPlcApnT7w0SATy9cyKw==","shasum":"1dd50c352e90200ae7fa313542a7dc54d2fe99a8","tarball":"https://registry.npmjs.org/@edux-design/drawers/-/drawers-0.0.3.tgz","fileCount":9,"unpackedSize":27876,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCzKi6424ByrdfSfVBhnQ/HH+SddNLFHduZQsEBthRr0AIhAK4gDzvoIPgRlTqAQW5gwsEZOtI5aKQnoQK86SEEhhgf"}]},"_npmUser":{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"},"directories":{},"maintainers":[{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/drawers_0.0.3_1775865767311_0.11383344300125686"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-30T03:05:57.801Z","modified":"2026-04-11T00:02:47.572Z","0.0.1":"2026-01-30T03:05:58.089Z","0.0.2":"2026-01-30T03:30:07.676Z","0.0.3":"2026-04-11T00:02:47.452Z"},"description":"Token-aware sliding drawer built on Radix Dialog primitives.","maintainers":[{"name":"vjdalsanto26","email":"viraj.gunawardana@cambridge.org"}],"readme":"# @edux-design/drawers\n\nToken-aware sliding drawer built on Radix Dialog primitives.\n\nExports: `Drawer`, `DrawerTrigger`, `DrawerContent`, `DrawerHeader`, `DrawerBody`, `DrawerFooter`, `DrawerClose`, `DrawerOverlay`, `DrawerPortal`.\n\n---\n\n## Installation\n\n```bash\npnpm add @edux-design/drawers @radix-ui/react-dialog @edux-design/utils\n# or\nnpm install @edux-design/drawers @radix-ui/react-dialog @edux-design/utils\n```\n\nPeer deps: `react@>=18`, `react-dom@>=18`.\n\n---\n\n## Usage\n\n```jsx\nimport {\n  Drawer,\n  DrawerTrigger,\n  DrawerContent,\n  DrawerHeader,\n  DrawerBody,\n  DrawerFooter,\n  DrawerClose,\n} from \"@edux-design/drawers\";\n\nexport function SettingsDrawer() {\n  return (\n    <Drawer>\n      <DrawerTrigger asChild>\n        <button className=\"underline text-sm\">Open settings</button>\n      </DrawerTrigger>\n\n      <DrawerContent side=\"right\">\n        <DrawerHeader>\n          <h2 className=\"text-base font-semibold\">Settings</h2>\n        </DrawerHeader>\n        <DrawerBody>\n          <p className=\"text-sm text-fg-subtle\">Your content goes here.</p>\n        </DrawerBody>\n        <DrawerFooter className=\"flex justify-end gap-8\">\n          <DrawerClose className=\"text-sm underline\">Close</DrawerClose>\n          <button className=\"text-sm font-medium\">Save</button>\n        </DrawerFooter>\n      </DrawerContent>\n    </Drawer>\n  );\n}\n```\n\n### DrawerContent props\n\n- `side`: `\"left\" | \"right\" | \"top\" | \"bottom\"` (default: `\"right\"`)\n- `backdropProps` / `backDropProps`: props forwarded to the backdrop/overlay\n- `className` / `style`\n- `contentProps` for passing additional Radix `Dialog.Content` props\n\n### Drawer root events\n\n- `onOpenChange`: called with the next open state\n- `onOpen` / `onClose`: convenience callbacks when state flips\n\n---\n\n## Development\n\n```bash\npnpm --filter @edux-design/drawers lint\npnpm --filter @edux-design/drawers check-types\npnpm --filter @edux-design/drawers build\n```\n\nStories: `src/demos/Drawer.stories.jsx`.\n","readmeFilename":"README.md"}