{"_id":"@adeeeeta/greenhouse","_rev":"5-8c85fbe98494b15ce7b5e313307263da","name":"@adeeeeta/greenhouse","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@adeeeeta/greenhouse","version":"1.0.0","_id":"@adeeeeta/greenhouse@1.0.0","maintainers":[{"name":"adeeeeta","email":"aditya51696@gmail.com"}],"dist":{"shasum":"c630d7172b7d88b0d6b26cfcd76f414351e11282","tarball":"https://registry.npmjs.org/@adeeeeta/greenhouse/-/greenhouse-1.0.0.tgz","fileCount":109,"integrity":"sha512-TFDF4CMCy1o518wfSetXZp8qvaQKNmN1ndxQg81zNJq/gzxg9OtX8TmDhEE/RyzlvSAnZqabMB3tfpn2chdSwQ==","signatures":[{"sig":"MEUCIQCbGYGWAyt6fzkHhq8BaewNRbOt5WWELd1VBvSuWBZNuAIga3rbtLDRDyDQ5bDEJqvXBAMExeajOhvV/o0ZCKB3y1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132180},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./styles.css":"./dist/index.css","./tokens.css":"./dist/tokens.css"},"gitHead":"5cb6c30a542bfb24db1bfb168f79ca67c521bc74","scripts":{"build":"vite build"},"_npmUser":{"name":"adeeeeta","email":"aditya51696@gmail.com"},"_npmVersion":"11.12.1","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@floating-ui/react":"^0.27.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.5","vite-plugin-dts":"^5.0.3","@vitejs/plugin-react":"^6.0.3"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/greenhouse_1.0.0_1784695023339_0.5934918801414586","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adeeeeta/greenhouse","version":"1.0.1","_id":"@adeeeeta/greenhouse@1.0.1","maintainers":[{"name":"adeeeeta","email":"aditya51696@gmail.com"}],"dist":{"shasum":"dddd4355ac2f7982608f8da06531101f71af4acd","tarball":"https://registry.npmjs.org/@adeeeeta/greenhouse/-/greenhouse-1.0.1.tgz","fileCount":231,"integrity":"sha512-jrJRZ0MvQR3IRbi/ndK6zZAFPh12rhWMzTkkaOh655AhMcddtyFrsTU9awa//4t9hnZasC+GefVf0ie5F0ml3w==","signatures":[{"sig":"MEUCIQC9zWamlN2fzhDBoQiFyKtYL1N4W0zUs/BHYmlGamhC2AIgBkuESr+8+9Kt/w/7yxQvkrjbvTkH+negAEeyGAsy8hQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154671},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./styles.css":"./dist/greenhouse.css","./tokens.css":"./dist/tokens.css"},"gitHead":"7361cfe8ac1ebbb7ab9e3d30b77272b11727845e","scripts":{"build":"vite build"},"_npmUser":{"name":"adeeeeta","email":"aditya51696@gmail.com"},"_npmVersion":"11.12.1","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@floating-ui/react":"^0.27.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.5","vite-plugin-dts":"^5.0.3","@vitejs/plugin-react":"^6.0.3","rollup-preserve-directives":"^1.1.3"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/greenhouse_1.0.1_1784740810956_0.5886497856750768","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@adeeeeta/greenhouse","version":"1.0.2","_id":"@adeeeeta/greenhouse@1.0.2","maintainers":[{"name":"adeeeeta","email":"aditya51696@gmail.com"}],"dist":{"shasum":"848ed61692493459d33d8b4726f784f7c651b76b","tarball":"https://registry.npmjs.org/@adeeeeta/greenhouse/-/greenhouse-1.0.2.tgz","fileCount":232,"integrity":"sha512-yNoANeyxeCXNLctXt5+/7L6DdBUZRSTNEqzx6bbPK+0MySHjyMQebG8MSk4UxYHp7bpnj19CgFOsvJI1Pu7liQ==","signatures":[{"sig":"MEUCIQCqye5lX7uISC72pGCxNTIbAY66JMpl49ShxMyjyLYVoAIgV0wuTYbykFDPYOA8NdVNhkBAuDEhq7n0J2vh3xdTkwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157158},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./styles.css":"./dist/greenhouse.css","./tokens.css":"./dist/tokens.css"},"gitHead":"c99f30914495571f8bb47831b5117df64557edad","scripts":{"build":"vite build"},"_npmUser":{"name":"adeeeeta","email":"aditya51696@gmail.com"},"_npmVersion":"11.12.1","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@floating-ui/react":"^0.27.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.5","vite-plugin-dts":"^5.0.3","@vitejs/plugin-react":"^6.0.3","rollup-preserve-directives":"^1.1.3"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/greenhouse_1.0.2_1784747535051_0.232565502041147","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@adeeeeta/greenhouse","version":"1.1.0","_id":"@adeeeeta/greenhouse@1.1.0","maintainers":[{"name":"adeeeeta","email":"aditya51696@gmail.com"}],"dist":{"shasum":"4cf8cce14591652be1c3d40d6141e4bc710b5afb","tarball":"https://registry.npmjs.org/@adeeeeta/greenhouse/-/greenhouse-1.1.0.tgz","fileCount":232,"integrity":"sha512-PQfj6RLLH/TODtVrLjGYA9i+U6s8qzYTexmXlBw0V6gWdOV9Yc2syG7kLyEDqH6E7wAdd+/Hc3x45pRK0pmgkg==","signatures":[{"sig":"MEQCIEIuvbwkYjyQdEpOmy7YHXqpD7vKWaL8zm4IXN69WoTfAiBxFEXJd9eXnsBgIw+fWtcClrLx/iu/PGphBHJqvlaTDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157305},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./styles.css":"./dist/greenhouse.css","./tokens.css":"./dist/tokens.css"},"gitHead":"e14a9a3691acd78c5b469afeb0d72c80e27d847d","scripts":{"build":"vite build"},"_npmUser":{"name":"adeeeeta","email":"aditya51696@gmail.com"},"_npmVersion":"11.12.1","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@floating-ui/react":"^0.27.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.5","vite-plugin-dts":"^5.0.3","@vitejs/plugin-react":"^6.0.3","rollup-preserve-directives":"^1.1.3"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/greenhouse_1.1.0_1785004420931_0.11705500812236713","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@adeeeeta/greenhouse","version":"1.2.0","license":"MIT","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./styles.css":"./dist/greenhouse.css","./tokens.css":"./dist/tokens.css"},"scripts":{"build":"vite build"},"dependencies":{"@floating-ui/react":"^0.27.20"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"devDependencies":{"@vitejs/plugin-react":"^6.0.3","rollup-preserve-directives":"^1.1.3","vite":"^8.1.5","vite-plugin-dts":"^5.0.3"},"gitHead":"d52ee71feaaf617689d8869e4daf17365fd5298e","_id":"@adeeeeta/greenhouse@1.2.0","description":"A React component library and design token system built for learning design-system architecture.","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-l6ihQFAGVG8X5Lji8fjPpuu1N3D9C6ek/NFG9TZyhG7kvdATvXxvUnrSgdXBTNG/r1aEfvCdX/DK+b6NCr2ohQ==","shasum":"1cfc801774f6020793adb73686d7bab3d1a4f335","tarball":"https://registry.npmjs.org/@adeeeeta/greenhouse/-/greenhouse-1.2.0.tgz","fileCount":240,"unpackedSize":163844,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHNnIMgja6XxUNRN7NQojxH90Wd25+kz8SDXGTiaevLNAiA8sU6HMT9wdV9qteoD6D958tnOHIBlBRIKMOzfVONNKA=="}]},"_npmUser":{"name":"adeeeeta","email":"aditya51696@gmail.com"},"directories":{},"maintainers":[{"name":"adeeeeta","email":"aditya51696@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/greenhouse_1.2.0_1786596740189_0.3043515547872553"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T04:37:03.164Z","modified":"2026-08-13T04:52:20.529Z","1.0.0":"2026-07-22T04:37:03.474Z","1.0.1":"2026-07-22T17:20:11.104Z","1.0.2":"2026-07-22T19:12:15.196Z","1.1.0":"2026-07-25T18:33:41.061Z","1.2.0":"2026-08-13T04:52:20.354Z"},"maintainers":[{"name":"adeeeeta","email":"aditya51696@gmail.com"}],"readme":"# @adeeeeta/greenhouse\n\nA React component library and design token system built for learning design-system architecture.\n\n[![npm version](https://img.shields.io/npm/v/@adeeeeta/greenhouse)](https://www.npmjs.com/package/@adeeeeta/greenhouse)\n[![license](https://img.shields.io/npm/l/@adeeeeta/greenhouse)](./LICENSE)\n\n## Install\n\n```bash\nnpm i @adeeeeta/greenhouse\n```\n\n### Peer dependencies\n\nGreenhouse requires React 19 or later. Both must be installed in your project:\n\n```bash\nnpm i react react-dom\n```\n\nA bundler that handles CSS imports (Vite, Next.js, Webpack, etc.) is also required.\n\n## Setup\n\nImport the two required stylesheets once at the root of your app. `tokens.css` defines every design token (color, spacing, typography, radii). `styles.css` carries the component styles. **Both are required — components render unstyled without them.**\n\n```tsx\n// app/layout.tsx (or your root entry)\nimport \"@adeeeeta/greenhouse/tokens.css\";\nimport \"@adeeeeta/greenhouse/styles.css\";\n```\n\n## Usage\n\nEvery component is a named export from the package root:\n\n```tsx\nimport { Button } from \"@adeeeeta/greenhouse\";\n\nexport default function Page() {\n  return <Button kind=\"primary\">Add to greenhouse</Button>;\n}\n```\n\n## Components\n\n### Actions\n\n| Component | Description |\n|-----------|-------------|\n| `Button` | Primary, secondary, and ghost variants. Supports icons and icon-only mode. |\n\n### Data display\n\n| Component | Description |\n|-----------|-------------|\n| `Avatar` | User image or initials with circle/square shape and sm/md/lg sizes. |\n| `Badge` | Status indicator with neutral, success, warning, error, and info variants. |\n| `Tag` | Categorical label. |\n| `Text` | Typographic primitive for body, heading, and caption text. Polymorphic via `as` prop. |\n| `Tooltip` | Floating label on hover/focus. Built on Floating UI with portal rendering. |\n\n### Feedback\n\n| Component | Description |\n|-----------|-------------|\n| `Alert` | Inline message with success, warning, error, and info variants. |\n| `Spinner` | Loading indicator. |\n| `Toast` | Notification system. Exports `Toast`, `ToastProvider`, and `useToast`. |\n\n### Form\n\n| Component | Description |\n|-----------|-------------|\n| `Checkbox` | Single or grouped checkboxes. |\n| `Dropdown` | Select menu. Also exports the `DropdownOption` type. |\n| `FormField` | Label, helper text, and error wrapper for form inputs. Used internally by form components and available for custom inputs. |\n| `Radio` | Radio button group. |\n| `TextInput` | Single-line text field with error and disabled states. |\n| `Toggle` | On/off switch. |\n\n### Layout\n\n| Component | Description |\n|-----------|-------------|\n| `Card` | Container with flat, elevated, and outlined variants. Supports links via `href`. |\n| `Divider` | Horizontal rule for visual separation. |\n| `Modal` | Dialog overlay with focus trapping. |\n| `Tabs` | Tabbed content panels. |\n\n### Icons\n\n64 hand-picked [Phosphor](https://phosphoricons.com/) icons, organized into 9 categories (plants, tools, garden, weather, and more). All icons are named exports:\n\n```tsx\nimport { Leaf, Sun, Thermometer } from \"@adeeeeta/greenhouse\";\n```\n\n## Documentation\n\nFull usage guidance, interactive demos, and design foundations:\n\n**[greenhouse-design-system.vercel.app](https://greenhouse-design-system.vercel.app/)**\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md","description":"A React component library and design token system built for learning design-system architecture.","license":"MIT"}