{"_id":"@boilerhaus-ui/boilerhaus-ui","_rev":"5-e648e32a1cf69aa7e6d6205aa548bc0a","name":"@boilerhaus-ui/boilerhaus-ui","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@boilerhaus-ui/boilerhaus-ui","version":"0.1.0","keywords":["design-system","react","tailwind","components","ui"],"license":"MIT","_id":"@boilerhaus-ui/boilerhaus-ui@0.1.0","maintainers":[{"name":"boilerrat","email":"128boilerrat@gmail.com"}],"dist":{"shasum":"0f525ed8144908820b0e76dd895aa1a7481ff02b","tarball":"https://registry.npmjs.org/@boilerhaus-ui/boilerhaus-ui/-/boilerhaus-ui-0.1.0.tgz","fileCount":75,"integrity":"sha512-HO0ZQgNmVOzPL7trRyslafeSghNnHvX6AS5vzor/pSWRE/C+gAwy0eqByd025lBvw3/EM3KF5L1HQea7WeH/dA==","signatures":[{"sig":"MEYCIQCxV7QX4PWKJKey4wGqnpRRgVZBSd0VlGCotOIyrg0fMwIhAN4xKGO3MxJkSe+YaqGf/kMBsgc1XgjBJ5S2R06zMXnK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2702570},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens.css":"./dist/tokens.css"},"gitHead":"061016ada658ac2358b4b0a3a794902acb5de004","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:lib","build-storybook":"storybook build"},"_npmUser":{"name":"boilerrat","email":"128boilerrat@gmail.com"},"_npmVersion":"11.12.1","description":"Boilerhaus design system — Bauhaus-inspired tokens and components for ScopeHouse and beyond.","directories":{},"sideEffects":["./dist/tokens.css"],"_nodeVersion":"24.13.1","dependencies":{"clsx":"^2.1.1","tailwind-merge":"^3.5.0","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-toast":"^1.2.15","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-switch":"^1.2.6","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-progress":"^1.1.8","@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-radio-group":"^1.3.8","@radix-ui/react-aspect-ratio":"^1.1.8","@radix-ui/react-dropdown-menu":"^2.1.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","react":"^19.2.4","eslint":"^9.39.4","vitest":"^4.1.2","globals":"^17.4.0","react-dom":"^19.2.4","storybook":"^10.3.4","@eslint/js":"^9.39.4","playwright":"^1.59.1","typescript":"~5.9.3","@types/node":"^24.12.0","tailwindcss":"^4.2.2","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^4.1.2","@vitejs/plugin-react":"^6.0.1","@storybook/addon-a11y":"^10.3.4","@storybook/addon-docs":"^10.3.4","@storybook/react-vite":"^10.3.4","@storybook/addon-vitest":"^10.3.4","eslint-plugin-storybook":"^10.3.4","@chromatic-com/storybook":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.1.2","@storybook/addon-onboarding":"^10.3.4","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/boilerhaus-ui_0.1.0_1775393760390_0.3401803596529567","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@boilerhaus-ui/boilerhaus-ui","version":"0.1.1","keywords":["design-system","react","tailwind","components","ui"],"license":"MIT","_id":"@boilerhaus-ui/boilerhaus-ui@0.1.1","maintainers":[{"name":"boilerrat","email":"128boilerrat@gmail.com"}],"dist":{"shasum":"7dfcb2a74ae8c779c2fbf0b8ed5cedd68678a500","tarball":"https://registry.npmjs.org/@boilerhaus-ui/boilerhaus-ui/-/boilerhaus-ui-0.1.1.tgz","fileCount":77,"integrity":"sha512-TWZkHt3+p1DlK5+nqVpsIMab0lk7hG/e/R7e21FW8+bGkbRIRRuLCBTqR9WGIjpHX7gvSDFo6bjmPl1CF5YDxQ==","signatures":[{"sig":"MEQCIEhn8nKjzbCJ3KOaWyd97WL/ncDLftujtb60IGY52oLaAiBRVdoM9/3YFbqKJVaI0Ei2lsoNRi/v6jNYHOwo/CQNHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2704388},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens.css":"./dist/tokens.css"},"gitHead":"3474a2ada4aa22c6d6ea9943e9325d14a268de33","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:lib","build-storybook":"storybook build"},"_npmUser":{"name":"boilerrat","email":"128boilerrat@gmail.com"},"_npmVersion":"11.12.1","description":"Boilerhaus design system — Bauhaus-inspired tokens and components for ScopeHouse and beyond.","directories":{},"sideEffects":["./dist/tokens.css"],"_nodeVersion":"24.13.1","dependencies":{"clsx":"^2.1.1","tailwind-merge":"^3.5.0","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-toast":"^1.2.15","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-switch":"^1.2.6","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-progress":"^1.1.8","@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-radio-group":"^1.3.8","@radix-ui/react-aspect-ratio":"^1.1.8","@radix-ui/react-dropdown-menu":"^2.1.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","react":"^19.2.4","eslint":"^9.39.4","vitest":"^4.1.2","globals":"^17.4.0","react-dom":"^19.2.4","storybook":"^10.3.4","@eslint/js":"^9.39.4","playwright":"^1.59.1","typescript":"~5.9.3","@types/node":"^24.12.0","tailwindcss":"^4.2.2","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^4.1.2","@vitejs/plugin-react":"^6.0.1","@storybook/addon-a11y":"^10.3.4","@storybook/addon-docs":"^10.3.4","@storybook/react-vite":"^10.3.4","@storybook/addon-vitest":"^10.3.4","eslint-plugin-storybook":"^10.3.4","@chromatic-com/storybook":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.1.2","@storybook/addon-onboarding":"^10.3.4","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/boilerhaus-ui_0.1.1_1775437892122_0.5273397049030255","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@boilerhaus-ui/boilerhaus-ui","version":"0.1.2","keywords":["design-system","react","tailwind","components","ui"],"license":"MIT","_id":"@boilerhaus-ui/boilerhaus-ui@0.1.2","maintainers":[{"name":"boilerrat","email":"128boilerrat@gmail.com"}],"dist":{"shasum":"352b77a27225fc510b53104d3b285aa4f321acc6","tarball":"https://registry.npmjs.org/@boilerhaus-ui/boilerhaus-ui/-/boilerhaus-ui-0.1.2.tgz","fileCount":79,"integrity":"sha512-bo6egv65IL0+WX+4+hjEtwH29BQUGPeOgZG5C7JWMf2sxwGVjHl1f5dyC13os8P9YPfwZADxG2ULOt2GPlZW8A==","signatures":[{"sig":"MEUCIEXAgjrbkfy+BlpNy4jN0N4on8LAq66vvYqdussrYBJSAiEAvRBP1guRekju9eq2OYM17ZzcKiTjyhHqhV3OO/lc7gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2706282},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens.css":"./dist/tokens.css"},"gitHead":"6360a688888304316c859a7cd5ecb3d8856f3588","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:lib","build-storybook":"storybook build"},"_npmUser":{"name":"boilerrat","email":"128boilerrat@gmail.com"},"_npmVersion":"11.12.1","description":"Boilerhaus design system — Bauhaus-inspired tokens and components for ScopeHouse and beyond.","directories":{},"sideEffects":["./dist/tokens.css"],"_nodeVersion":"24.13.1","dependencies":{"clsx":"^2.1.1","tailwind-merge":"^3.5.0","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-toast":"^1.2.15","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-switch":"^1.2.6","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-progress":"^1.1.8","@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-radio-group":"^1.3.8","@radix-ui/react-aspect-ratio":"^1.1.8","@radix-ui/react-dropdown-menu":"^2.1.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","react":"^19.2.4","eslint":"^9.39.4","vitest":"^4.1.2","globals":"^17.4.0","react-dom":"^19.2.4","storybook":"^10.3.4","@eslint/js":"^9.39.4","playwright":"^1.59.1","typescript":"~5.9.3","@types/node":"^24.12.0","tailwindcss":"^4.2.2","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^4.1.2","@vitejs/plugin-react":"^6.0.1","@storybook/addon-a11y":"^10.3.4","@storybook/addon-docs":"^10.3.4","@storybook/react-vite":"^10.3.4","@storybook/addon-vitest":"^10.3.4","eslint-plugin-storybook":"^10.3.4","@chromatic-com/storybook":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.1.2","@storybook/addon-onboarding":"^10.3.4","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/boilerhaus-ui_0.1.2_1775441256396_0.28730329164875923","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@boilerhaus-ui/boilerhaus-ui","version":"0.1.4","keywords":["design-system","react","tailwind","components","ui"],"license":"MIT","_id":"@boilerhaus-ui/boilerhaus-ui@0.1.4","maintainers":[{"name":"boilerrat","email":"128boilerrat@gmail.com"}],"dist":{"shasum":"0e3756a2afbf5aa2fd81fc97b947c3b4a4170996","tarball":"https://registry.npmjs.org/@boilerhaus-ui/boilerhaus-ui/-/boilerhaus-ui-0.1.4.tgz","fileCount":79,"integrity":"sha512-1uNGG4PQNoPHwC9GCmfZ+1p/X79KhCpWwg4JkzL52kCJw5IF8GvoNgtNFH8LQuXSmIhT9WusSPpYVgYDpEFUrQ==","signatures":[{"sig":"MEYCIQC90QfJRX6uQW/mREdRhN6vYdG4RX2emxX3JEPl3Z5jhAIhAL0GP6KbJ3ZtrZyIS5+ySryhIHFC0OxvSs3bbycZIjys","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2706282},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./tokens.css":"./dist/tokens.css"},"gitHead":"ee576b06bb2d28c4488c0a422de378b51ca294ee","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:lib","build-storybook":"storybook build"},"_npmUser":{"name":"boilerrat","email":"128boilerrat@gmail.com"},"_npmVersion":"11.12.1","description":"Boilerhaus design system — Bauhaus-inspired tokens and components for ScopeHouse and beyond.","directories":{},"sideEffects":["./dist/tokens.css"],"_nodeVersion":"24.13.1","dependencies":{"clsx":"^2.1.1","tailwind-merge":"^3.5.0","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-toast":"^1.2.15","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-switch":"^1.2.6","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-progress":"^1.1.8","@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-radio-group":"^1.3.8","@radix-ui/react-aspect-ratio":"^1.1.8","@radix-ui/react-dropdown-menu":"^2.1.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","react":"^19.2.4","eslint":"^9.39.4","vitest":"^4.1.2","globals":"^17.4.0","react-dom":"^19.2.4","storybook":"^10.3.4","@eslint/js":"^9.39.4","playwright":"^1.59.1","typescript":"~5.9.3","@types/node":"^24.12.0","tailwindcss":"^4.2.2","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@tailwindcss/vite":"^4.2.2","typescript-eslint":"^8.57.0","@vitest/coverage-v8":"^4.1.2","@vitejs/plugin-react":"^6.0.1","@storybook/addon-a11y":"^10.3.4","@storybook/addon-docs":"^10.3.4","@storybook/react-vite":"^10.3.4","@storybook/addon-vitest":"^10.3.4","eslint-plugin-storybook":"^10.3.4","@chromatic-com/storybook":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","@vitest/browser-playwright":"^4.1.2","@storybook/addon-onboarding":"^10.3.4","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/boilerhaus-ui_0.1.4_1775442471949_0.10224169146400364","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@boilerhaus-ui/boilerhaus-ui","version":"0.1.5","description":"Boilerhaus design system — Bauhaus-inspired tokens and components for ScopeHouse and beyond.","type":"module","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs","types":"./dist/index.d.ts"},"./tokens.css":"./dist/tokens.css"},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":["./dist/tokens.css"],"keywords":["design-system","react","tailwind","components","ui"],"license":"MIT","publishConfig":{"access":"public"},"scripts":{"dev":"vite","build":"tsc -b && vite build","build:lib":"vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json","prepublishOnly":"npm run build:lib","lint":"eslint .","preview":"vite preview","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"dependencies":{"@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-aspect-ratio":"^1.1.8","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-progress":"^1.1.8","@radix-ui/react-radio-group":"^1.3.8","@radix-ui/react-select":"^2.2.6","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-switch":"^1.2.6","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-toast":"^1.2.15","@radix-ui/react-tooltip":"^1.2.8","clsx":"^2.1.1","tailwind-merge":"^3.5.0"},"devDependencies":{"@chromatic-com/storybook":"^5.1.1","@eslint/js":"^9.39.4","@storybook/addon-a11y":"^10.3.4","@storybook/addon-docs":"^10.3.4","@storybook/addon-onboarding":"^10.3.4","@storybook/addon-vitest":"^10.3.4","@storybook/react-vite":"^10.3.4","@tailwindcss/vite":"^4.2.2","@types/node":"^24.12.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1","@vitest/browser-playwright":"^4.1.2","@vitest/coverage-v8":"^4.1.2","eslint":"^9.39.4","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-storybook":"^10.3.4","globals":"^17.4.0","playwright":"^1.59.1","react":"^19.2.4","react-dom":"^19.2.4","storybook":"^10.3.4","tailwindcss":"^4.2.2","typescript":"~5.9.3","typescript-eslint":"^8.57.0","vite":"^8.0.1","vitest":"^4.1.2"},"gitHead":"5f196ed089aefa540d79e306bde8bfc8749aa2f8","_id":"@boilerhaus-ui/boilerhaus-ui@0.1.5","_nodeVersion":"24.13.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-MrvmcKl8pvH/rHXiewxMmcSh6CpVxX7oIe6Sfv4J/hu6o2iuA6sce8yD78MbUJmE+fRzIUV25daN/9VTiu912g==","shasum":"b27dcc3e48e389b96f17fdc820b06ea3c3436f4c","tarball":"https://registry.npmjs.org/@boilerhaus-ui/boilerhaus-ui/-/boilerhaus-ui-0.1.5.tgz","fileCount":89,"unpackedSize":2711660,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDEW1Ol0hHw6dzKW4TDcc6Um0jhesro4kvz67l0MwHwUAiEA48OJJhlWKfbIuiC3ZoVUcPQFnwdToqnVmZafX+FF5Fw="}]},"_npmUser":{"name":"boilerrat","email":"128boilerrat@gmail.com"},"directories":{},"maintainers":[{"name":"boilerrat","email":"128boilerrat@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/boilerhaus-ui_0.1.5_1775529060017_0.4318743971578711"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-05T12:56:00.283Z","modified":"2026-04-07T02:31:00.454Z","0.1.0":"2026-04-05T12:56:00.576Z","0.1.1":"2026-04-06T01:11:32.419Z","0.1.2":"2026-04-06T02:07:36.622Z","0.1.4":"2026-04-06T02:27:52.130Z","0.1.5":"2026-04-07T02:31:00.333Z"},"license":"MIT","keywords":["design-system","react","tailwind","components","ui"],"description":"Boilerhaus design system — Bauhaus-inspired tokens and components for ScopeHouse and beyond.","maintainers":[{"name":"boilerrat","email":"128boilerrat@gmail.com"}],"readme":"# BoilerHAUS UI\n\n`@boilerhaus-ui/boilerhaus-ui` is the BoilerHAUS design system package: a Bauhaus-inspired React component library for BoilerHAUS, ScopeHouse, and related products.\n\nIt combines:\n- design tokens in CSS\n- React 19 components\n- Tailwind v4 utilities generated from tokens\n- Radix UI primitives for accessibility\n- Storybook as the primary component workshop\n\n## Stack\n\n- React 19\n- TypeScript 5\n- Vite 8\n- Tailwind CSS v4\n- Storybook 10\n- Radix UI\n\n## Package\n\n```bash\nnpm install @boilerhaus-ui/boilerhaus-ui\n```\n\n```tsx\nimport { Button } from '@boilerhaus-ui/boilerhaus-ui'\nimport '@boilerhaus-ui/boilerhaus-ui/tokens.css'\n```\n\nIf the consuming app uses Tailwind v4, include the package as a source so Tailwind sees the shipped class names:\n\n```css\n@import \"tailwindcss\";\n@import \"@boilerhaus-ui/boilerhaus-ui/tokens.css\";\n@source \"../node_modules/@boilerhaus-ui/boilerhaus-ui/dist\";\n```\n\n## Local Development\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nRun the local Vite app:\n\n```bash\nnpm run dev\n```\n\nRun Storybook:\n\n```bash\nnpm run storybook\n```\n\nBuild the package library:\n\n```bash\nnpm run build:lib\n```\n\nBuild Storybook:\n\n```bash\nnpm run build-storybook\n```\n\nLint the repo:\n\n```bash\nnpm run lint\n```\n\n## Workflow\n\nStorybook is the main development surface for this repo.\n\nThe expected component workflow is:\n1. Define the API in `<Component>.stories.tsx`\n2. Implement the component in `<Component>.tsx`\n3. Export it from its local `index.ts`\n4. Re-export it from [`src/components/index.ts`](/media/boilerrat/Bobby/boilerhaus-ui/src/components/index.ts)\n5. Verify accessibility and visual states in Storybook\n\n## Design Rules\n\n- Use tokens only. Do not introduce raw hex values, arbitrary spacing, or ad hoc durations.\n- Prefer Tailwind token utilities in JSX such as `bg-signal`, `text-void`, `border-rule`, `rounded-md`, and `duration-fast`.\n- Use CSS custom properties from [`src/tokens/tokens.css`](/media/boilerrat/Bobby/boilerhaus-ui/src/tokens/tokens.css) when utilities are not enough.\n- Keep components isolated. Avoid cross-component styling dependencies.\n- Favor Radix primitives for focus management, keyboard behavior, and ARIA support.\n\nThe canonical repo rules and design constraints live in [`CLAUDE.md`](/media/boilerrat/Bobby/boilerhaus-ui/CLAUDE.md).\n\n## Structure\n\n```text\nboilerhaus-ui/\n├── .storybook/         Storybook config\n├── src/\n│   ├── components/     Reusable UI components\n│   ├── lib/            Shared helpers such as cn()\n│   ├── tokens/         Design tokens\n│   ├── index.css       Base styles\n│   └── index.ts        Public library entry\n├── package.json\n└── CLAUDE.md\n```\n\n## Current Component Set\n\nThe library currently includes:\n\n- Accordion\n- Alert\n- AspectRatio\n- Avatar\n- Badge\n- Breadcrumb\n- Button\n- Card\n- Checkbox\n- Combobox\n- DataTable\n- DatePicker\n- Dialog\n- DropdownMenu\n- FileUpload\n- Input\n- Label\n- PageShell\n- Popover\n- Progress\n- RadioGroup\n- Select\n- Skeleton\n- Spinner\n- Stat\n- Stepper\n- Switch\n- Table\n- Tabs\n- Textarea\n- Toast\n- Tooltip\n\n## Publishing\n\nThis package publishes to npm as a public scoped package:\n\n```bash\nnpm publish\n```\n\nPackage name:\n\n```text\n@boilerhaus-ui/boilerhaus-ui\n```\n\n`prepublishOnly` automatically runs the library build before publishing.\n","readmeFilename":"README.md"}