{"_id":"@elmoura/fast-menu-ui","_rev":"3-470feb8b7c2c6a1289108185b102884d","name":"@elmoura/fast-menu-ui","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@elmoura/fast-menu-ui","version":"0.0.1","author":{"name":"Jeffrey Bernadas"},"license":"MIT","_id":"@elmoura/fast-menu-ui@0.0.1","maintainers":[{"name":"elmoura","email":"mourasb.gabriel@gmail.com"}],"homepage":"https://github.com/Bernz322/react-library-boilerplate#readme","bugs":{"url":"https://github.com/Bernz322/react-library-boilerplate/issues"},"dist":{"shasum":"04f8b6a2a4dd47b7991f2fafa5573774c46a4ba5","tarball":"https://registry.npmjs.org/@elmoura/fast-menu-ui/-/fast-menu-ui-0.0.1.tgz","fileCount":3,"integrity":"sha512-onPQNkQ6tPM5qGhVhAoJJfgg3e4NEFVqDdqFOjNcJEJd2xGkLZGrMamqWVugpNR0z9N4cpxmgHxNkP8KKxc+VQ==","signatures":[{"sig":"MEQCIF1/3ibBiIsXb+xByYSpa5MYOgpnr16gcD9wE7rEUOQyAiBnOP4UgL4S2iimTOR7XMyhLIiPvxV8aNBqzVxFX5zQHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7822},"main":"build/index.cjs.js","types":"build/typings/index.d.ts","module":"build/index.esm.js","gitHead":"4bc0f5239bd546a6fa1d87e12ae8a68d562e043c","scripts":{"lint":"eslint","test":"react-scripts test --env=jsdom","build":"rimraf ./dist && npm run build:js && npm run build:types","format":"prettier --write .","prepare":"husky","build:js":"rollup -c rollup.config.mjs","lint:fix":"eslint --fix","storybook":"storybook dev -p 6006","test:clean":"rimraf ./coverage","build:types":"tsc -p tsconfig.build.json","build-storybook":"storybook build"},"_npmUser":{"name":"elmoura","email":"mourasb.gabriel@gmail.com"},"repository":{"url":"git+https://github.com/Bernz322/react-library-boilerplate.git","type":"git"},"_npmVersion":"10.9.2","description":"A boilerplate to get your very own React Component Library up and running using Rollup, Typescript, Jest, React Testing, Storybook","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@babel/runtime":"^7.21.0","@tailwindcss/postcss":"^4.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","antd":"^5.29.3","jest":"^29.5.0","vite":"^6.2.1","husky":"^9.1.6","react":"^19.0.0","eslint":"^9.13.0","rollup":"^4.24.2","globals":"^16.0.0","postcss":"^8.5.6","ts-jest":"^29.0.5","prettier":"^3.5.3","react-dom":"^19.0.0","storybook":"^8.6.4","@eslint/js":"^9.13.0","typescript":"^5.0.2","@babel/core":"^7.21.3","@types/jest":"^29.5.0","tailwindcss":"^4.1.11","@types/react":"^19.0.10","autoprefixer":"^10.4.21","babel-loader":"^10.0.0","react-scripts":"^5.0.1","@storybook/test":"^8.6.4","react-hook-form":"^7.80.0","@storybook/react":"^8.6.4","@types/react-dom":"^19.0.4","@babel/preset-env":"^7.20.2","@storybook/blocks":"^8.6.4","typescript-eslint":"^8.12.1","eslint-plugin-jest":"^28.8.3","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.18.6","@hookform/resolvers":"^5.4.0","eslint-plugin-react":"^7.37.2","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-image":"^3.0.2","rollup-plugin-delete":"^3.0.1","@storybook/react-vite":"^8.6.4","rollup-plugin-postcss":"^4.0.2","@storybook/addon-links":"^8.6.4","@testing-library/react":"^16.0.1","eslint-config-prettier":"^10.1.1","@rollup/plugin-commonjs":"^28.0.1","@babel/preset-typescript":"^7.21.0","@chromatic-com/storybook":"^3.2.5","@testing-library/jest-dom":"^6.6.2","@rollup/plugin-node-resolve":"^16.0.0","@storybook/addon-essentials":"^8.6.4","@storybook/addon-onboarding":"^8.6.4","@testing-library/user-event":"^14.4.3","rollup-plugin-node-externals":"^8.0.0","@storybook/addon-interactions":"^8.6.4","react-docgen-typescript-plugin":"^1.0.5","@babel/plugin-transform-runtime":"^7.21.0"},"peerDependencies":{"antd":">=5","react":">=19","react-dom":">=19","react-hook-form":">=7"},"_npmOperationalInternal":{"tmp":"tmp/fast-menu-ui_0.0.1_1782940979115_0.90126956812751","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@elmoura/fast-menu-ui","version":"0.0.2","author":{"name":"Gabriel Moura"},"license":"MIT","_id":"@elmoura/fast-menu-ui@0.0.2","maintainers":[{"name":"elmoura","email":"mourasb.gabriel@gmail.com"}],"homepage":"https://github.com/elmoura/fast-menu-ui-lib#readme","bugs":{"url":"https://github.com/elmoura/fast-menu-ui-lib/issues"},"dist":{"shasum":"491ab50e35e792cd64b9e46ab39ffc09ea718b52","tarball":"https://registry.npmjs.org/@elmoura/fast-menu-ui/-/fast-menu-ui-0.0.2.tgz","fileCount":3,"integrity":"sha512-eq9MXeniWv4dHKEeInDORo50PVqBkNj3h24JLbY3tO1AtqB5q0hp1Yo1XGY4TJ+YwQJFgV1+jTJPhP7jZwq3+g==","signatures":[{"sig":"MEUCIQD/pw//RG4ys+s+7heATJu/6FizrbJ5xIteg7ACRYBWqwIgWaOxSMuIz7ei/fd7yJIw5oNN0243OgNIWAaU1Zn5uSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7815},"main":"build/index.cjs.js","type":"module","types":"build/typings/index.d.ts","module":"build/index.esm.js","exports":{".":{"types":"./build/typings/index.d.ts","import":"./build/index.esm.js","require":"./build/index.cjs.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"f160c24794a47bf04aae6af195a9e7ab97c761ea","scripts":{"lint":"eslint","test":"react-scripts test --env=jsdom","build":"rimraf ./dist && npm run build:js && npm run build:types","format":"prettier --write .","prepare":"husky","build:js":"rollup -c rollup.config.mjs","lint:fix":"eslint --fix","storybook":"storybook dev -p 6006","test:clean":"rimraf ./coverage","build:types":"tsc -p tsconfig.build.json","build-storybook":"storybook build"},"_npmUser":{"name":"elmoura","email":"mourasb.gabriel@gmail.com"},"repository":{"url":"git+https://github.com/elmoura/fast-menu-ui-lib.git","type":"git"},"_npmVersion":"10.9.2","description":"A boilerplate to get your very own React Component Library up and running using Rollup, Typescript, Jest, React Testing, Storybook","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","dependencies":{"@babel/runtime":"^7.21.0","@tailwindcss/postcss":"^4.1.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","antd":"^5.29.3","jest":"^29.5.0","vite":"^6.2.1","husky":"^9.1.6","react":"^19.0.0","eslint":"^9.13.0","rollup":"^4.24.2","globals":"^16.0.0","postcss":"^8.5.6","ts-jest":"^29.0.5","prettier":"^3.5.3","react-dom":"^19.0.0","storybook":"^8.6.4","@eslint/js":"^9.13.0","typescript":"^5.0.2","@babel/core":"^7.21.3","@types/jest":"^29.5.0","tailwindcss":"^4.1.11","@types/react":"^19.0.10","autoprefixer":"^10.4.21","babel-loader":"^10.0.0","react-scripts":"^5.0.1","@storybook/test":"^8.6.4","react-hook-form":"^7.80.0","@storybook/react":"^8.6.4","@types/react-dom":"^19.0.4","@babel/preset-env":"^7.20.2","@storybook/blocks":"^8.6.4","typescript-eslint":"^8.12.1","eslint-plugin-jest":"^28.8.3","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.18.6","@hookform/resolvers":"^5.4.0","eslint-plugin-react":"^7.37.2","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-image":"^3.0.2","rollup-plugin-delete":"^3.0.1","@storybook/react-vite":"^8.6.4","rollup-plugin-postcss":"^4.0.2","@storybook/addon-links":"^8.6.4","@testing-library/react":"^16.0.1","eslint-config-prettier":"^10.1.1","@rollup/plugin-commonjs":"^28.0.1","@babel/preset-typescript":"^7.21.0","@chromatic-com/storybook":"^3.2.5","@testing-library/jest-dom":"^6.6.2","@rollup/plugin-node-resolve":"^16.0.0","@storybook/addon-essentials":"^8.6.4","@storybook/addon-onboarding":"^8.6.4","@testing-library/user-event":"^14.4.3","rollup-plugin-node-externals":"^8.0.0","@storybook/addon-interactions":"^8.6.4","react-docgen-typescript-plugin":"^1.0.5","@babel/plugin-transform-runtime":"^7.21.0"},"peerDependencies":{"antd":">=6","react":">=19","react-dom":">=19","react-hook-form":">=7"},"_npmOperationalInternal":{"tmp":"tmp/fast-menu-ui_0.0.2_1783082206139_0.8931992969609768","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@elmoura/fast-menu-ui","author":{"name":"Gabriel Moura"},"version":"0.0.3","description":"A boilerplate to get your very own React Component Library up and running using Rollup, Typescript, Jest, React Testing, Storybook","license":"MIT","type":"module","main":"build/index.cjs.js","module":"build/index.esm.js","publishConfig":{"access":"public"},"exports":{".":{"types":"./build/typings/index.d.ts","import":"./build/index.esm.js","require":"./build/index.cjs.js"},"./styles.css":"./build/styles.css","./package.json":"./package.json"},"scripts":{"build":"npm run build:js && npm run build:types","prepack":"npm run build","build:js":"rollup -c rollup.config.mjs","build:types":"tsc -p tsconfig.build.json","test:clean":"rimraf ./coverage","test":"jest","lint":"eslint","lint:fix":"eslint --fix","format":"prettier --write .","storybook":"storybook dev -p 6006","build-storybook":"storybook build","prepare":"husky"},"sideEffects":["*.css"],"types":"build/typings/index.d.ts","peerDependencies":{"antd":">=6","react":">=19","react-dom":">=19","react-hook-form":">=7"},"repository":{"type":"git","url":"git+https://github.com/Bernz322/react-library-boilerplate.git"},"devDependencies":{"@babel/core":"^7.21.3","@babel/plugin-transform-runtime":"^7.21.0","@babel/preset-env":"^7.20.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.21.0","@chromatic-com/storybook":"^3.2.5","@eslint/js":"^9.13.0","@hookform/resolvers":"^5.4.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-image":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.0","@storybook/addon-essentials":"^8.6.4","@storybook/addon-interactions":"^8.6.4","@storybook/addon-links":"^8.6.4","@storybook/addon-onboarding":"^8.6.4","@storybook/blocks":"^8.6.4","@storybook/react":"^8.6.4","@storybook/react-vite":"^8.6.4","@storybook/test":"^8.6.4","@testing-library/jest-dom":"^6.6.2","@testing-library/react":"^16.0.1","@testing-library/user-event":"^14.4.3","@types/jest":"^29.5.0","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","antd":"^5.29.3","autoprefixer":"^10.4.21","babel-loader":"^10.0.0","eslint":"^9.13.0","eslint-config-prettier":"^10.1.1","eslint-plugin-jest":"^28.8.3","eslint-plugin-react":"^7.37.2","globals":"^16.0.0","husky":"^9.1.6","identity-obj-proxy":"^3.0.0","jest":"^29.5.0","jest-environment-jsdom":"^29.5.0","postcss":"^8.5.6","prettier":"^3.5.3","react":"^19.0.0","react-docgen-typescript-plugin":"^1.0.5","react-dom":"^19.0.0","react-hook-form":"^7.80.0","rollup":"^4.24.2","rollup-plugin-copy":"^3.5.0","rollup-plugin-delete":"^3.0.1","rollup-plugin-node-externals":"^8.0.0","rollup-plugin-postcss":"^4.0.2","storybook":"^8.6.4","tailwindcss":"^4.1.11","ts-jest":"^29.0.5","typescript":"^5.0.2","typescript-eslint":"^8.12.1","vite":"^6.2.1","zod":"^4.4.3"},"dependencies":{"@babel/runtime":"^7.21.0","@tailwindcss/postcss":"^4.1.11"},"_id":"@elmoura/fast-menu-ui@0.0.3","gitHead":"2fa0d1756fc8cc3c26328fb2009785158be634ed","bugs":{"url":"https://github.com/Bernz322/react-library-boilerplate/issues"},"homepage":"https://github.com/Bernz322/react-library-boilerplate#readme","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-GU9q9tDP9yLzJrho5JZ4qI/p1rL2ncTDWrxUU5vRnlV+xSob3/j5/CKVdNjFD4P3ao72Wl9XDThLhgs1REWIbA==","shasum":"5486b4e2832752d6c9579ff45ce7f63277bb2c2b","tarball":"https://registry.npmjs.org/@elmoura/fast-menu-ui/-/fast-menu-ui-0.0.3.tgz","fileCount":33,"unpackedSize":88716,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQChmATlgC0Br7Jiuf+3fgU7bZNBvlZjbkwc44na1ZpvrQIgA50jbRPrcDGoXcC1lhRRgcK1P+zGnpldYFcPXFT1nhs="}]},"_npmUser":{"name":"elmoura","email":"mourasb.gabriel@gmail.com"},"directories":{},"maintainers":[{"name":"elmoura","email":"mourasb.gabriel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fast-menu-ui_0.0.3_1783085569238_0.2893947273088444"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T21:22:58.965Z","modified":"2026-07-03T13:32:49.465Z","0.0.1":"2026-07-01T21:22:59.264Z","0.0.2":"2026-07-03T12:36:46.264Z","0.0.3":"2026-07-03T13:32:49.378Z"},"bugs":{"url":"https://github.com/Bernz322/react-library-boilerplate/issues"},"author":{"name":"Gabriel Moura"},"license":"MIT","homepage":"https://github.com/Bernz322/react-library-boilerplate#readme","repository":{"type":"git","url":"git+https://github.com/Bernz322/react-library-boilerplate.git"},"description":"A boilerplate to get your very own React Component Library up and running using Rollup, Typescript, Jest, React Testing, Storybook","maintainers":[{"name":"elmoura","email":"mourasb.gabriel@gmail.com"}],"readme":"# React Library Boilerplate\n\nThis is my own and go to boilerplate for creating my own React Component Libraries built with modern practices and tools I am comfortable to use with.\n\n## ✨ Key Features\n\n- :rocket: React 19 support\n- 🔥 Type checking with [TypeScript](https://www.typescriptlang.org/)\n- 🎉 [Storybook](https://storybook.js.org/) V8 Integration\n- 👷 Testing with [Jest](https://jestjs.io/) and [React Testing Library](https://testing-library.com/)\n- 📏 Linter with [ESLint](https://eslint.org/)\n- 🚫 Lint-staged for running linters on Git staged files\n- 💖 Code Formatter with [Prettier](https://prettier.io/)\n- 🦊 Git Hooks with [Husky](https://typicode.github.io/husky/)\n- :scroll: [Rollup](https://rollupjs.org/) for Bundling\n- 🎁 Automatic changelog generation with Semantic Release\n- 🤖 CI/CD for NPM Publishing and Storybook Deployment\n\n#### Requirements\n\n- Node.js 20+ and npm\n\n#### Getting started\n\nRun the following command on your local environment:\n\n```\ngit clone https://github.com/jeffreybernadas/react-library-boilerplate.git my-project-name\ncd my-project-name\nnpm install\n```\n\n_Note: I will always update all dependencies whenever I have the time._\n\nThen run the storybook in development mode to see components by running:\n\n```\nnpm run storybook\n```\n\nOpen http://localhost:6006 with your favorite browser to see the storybook.\n\n#### Adding components\n\nCreate a new component file inside _\"src/components\"_ directory and export it in _\"src/index.ts\"_.\n_Note: This is not limited to components only, you can add React Hooks, Utility Functions, and more to it._\n\nTo check your created component, create a story of it and run storybook.\n\n#### Tests\n\nYou can execute testing by running:\n\n```\nnpm run test\n```\n\n#### Linting\n\nFor linting and checking code quality and problems, execute:\n\n```\nnpm run lint\n```\n\nTo fix errors, execute:\n\n```\nnpm run lint:fix\n```\n\n#### Formatting\n\nFor formatting codes, execute:\n\n```\nnpm run format\n```\n\n#### Build\n\nFor building your library, execute:\n\n```\nnpm run build\n```\n\nThis will create a build folder containing index.esm.js, index.cjs.js, and typings folders for declarations including styles.css.\n\n#### Example usage\n\nIf you are creating a component library, put it in npm registry or do `npm pack` and install it on your other project locally. Import the said component including styles.\n\n```\nimport React from \"react\";\nimport { Header, Button, Page } from \"@bernz322/react-library-boilerplate\";\nimport \"./index.scss\";\n\nconst App = () => {\n  return (\n    <div>\n      <Header />\n      <Button label=\"Click me\" />\n      <Page />\n    </div>\n  );\n};\n\nexport default App;\n```\n\nImport the style in node modules.\n\n```\n@import '@bernz322/react-library-boilerplate/build/styles.css';\n\nbody {\n  font-family: Arial, Helvetica, sans-serif;\n}\n```\n\n#### Deployment of storybook\n\nDeployment of Storybook is automated via Github Actions. You can check storybook.yml on how it's done.\n\n#### Publishing to NPM\n\nSame with Storybook deployment, publishing to NPM is also automated. Just make sure to add NPM_TOKEN in your repositories \"Secrets and variables\" > \"Actions\".\n\nNPM Link:\n\n- https://www.npmjs.com/package/@bernz322/react-library-boilerplate\n\nStorybook Link:\n\n- https://jeffreybernadas.github.io/react-library-boilerplate/\n","readmeFilename":"README.md"}