{"_id":"@aaronmaturen/monofun-button","_rev":"17-0f4d7c7d8c8377e6fd763791ce7a04d6","name":"@aaronmaturen/monofun-button","dist-tags":{"latest":"0.5.5","next":"0.5.5-alpha.0"},"versions":{"0.3.1":{"version":"0.3.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"492bfadc529271095b228981fcf13825dc3a2cd3","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.3.1","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-yHPMU4s1cSJj30IpWOXQqD8pjeB43Q+hH7OP1uIq4OIdtXHyJWws3ZvINAmW6ikOOX6Bw86aMbs957VYdwZr+w==","shasum":"390aa9103f450b759f682bc29ff70abf02fde08f","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.3.1.tgz","fileCount":13,"unpackedSize":12850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvTvnCRA9TVsSAnZWagAA1OEP/RwOOQsp3Cw3rZ9JiplX\nuN2qau9w6aD/hzS76wB4EBZ2Wvm2eGd7o86NbRdnVxEnk4PS0VcE/jslTnnj\n3f50tdqoogAmpz4li3N4RHZWLC/LoGDggFsi6IxKYRUB1iO4an8eX0reso34\nxv+qpicRSTDN58JsDa5LSMgEoihAJOxaf6xDAwPwL+qdzr4wEObJl9SOCTZs\ncRPSX/7Dhk6fpQLlgoWjIaC8DXPIUP9RcD0MSJCNSoAbB0DiWonhKVP/T1bs\nC95dz13mYezImCfH7clUd58g/4Dtimn6/bcb9gGdZ6DwiE2EFym7MWOlPtWd\niba9/m+JwBxPtu97uABv+9oY2BzYDUN4gewso7Fnd8C8qJfxZtGoE50buOkv\nbR4/udga3R2gkuuIaHkIPtZBmtlxhxes5subCyGEReEQU9WELmjkYhP6V6UG\n1Si9XnXmcQ6Ey2eEtsAot2CdPY1oRxCY/BjxIksxGEok7vl6R35ABZP4DZEg\neEg1ekEbhsC0y0LQ291WZKExj01NCuS+r9a3EmaJFkLbe/+rN3mbiE6XjC/J\nlSkPXh728urc1DUy72oXjoDtnLsLT2ylNVFevE5MnL82uXxAPTL61REWwSvV\ndnjlI6wzgIw8rJYpflK6TCZo24KiupeckUMZT0GFxycXqiIAoecPKpl15fzh\nfqyD\r\n=BlV8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVKgPQ5rsy0NxQgW9CkzxNhoRg3I0gEAL0xJMM+y/UBAIhAJtmGmNGEQQuOZcc+Wp7NpLVl3d4NN/NLYzkugKMIWIQ"}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.3.1_1606237158560_0.5043097977285065"},"_hasShrinkwrap":false},"0.3.2":{"version":"0.3.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"1add35a33bff6a089b656c3f4afcb36867534e4f","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.3.2","_nodeVersion":"12.18.4","_npmVersion":"lerna/3.22.1/node@v12.18.4+x64 (linux)","dist":{"integrity":"sha512-XhlXxAce6CXLKoanVvWcq2mzdWUrma0IGSj2GwImUKInKw7xSOb1GFB/GJfpRcFpikthIuODr/p69uadKH1mhg==","shasum":"eec7262edeb21c722776e7ff651b0cd0445cbbe7","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.3.2.tgz","fileCount":13,"unpackedSize":13071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvTxKCRA9TVsSAnZWagAAx+wP/0FHeXlANFZI5Ob6XT3C\nL7/mOEmEUXR31otxkW/yNZatEDaFDWOvQMCctefYJvXGOFtcrAWRG9cv/47M\n9T9NzgX9lyB3SIoqkLMRlEKcVeoafgdfPyi5OlB5dFRkEGaeaRFVAD9kY6N3\nHh9jHL9hz5TmZOJGhXSBTUfvJzt8hbiLwB2XDMrRDd3RsWhLHuE/NpSmfoDs\n1DL7SBDGYxe+LeTpwkt02z8D81Q1M8ZIUSvzE8WANK/zzBty253/Mu7Jys2e\n57jZatRe7pPPJPMdy4+KyZSLckqIMt4F5i5Sd85S7StdzmPQLphtD5D/C52o\nw/YMLCU75lxVU8NEjQJ4WrVnIw/2cukJwbCfOJQ7M/EsmNKIhALG9sAqnBPi\nmtvJFq6zDEjJclcZs2mkY2S5FMjS09B1HtY/tsnmckXwog8nydSKtWKRTGLK\nW5GmwANxNM34nih7KqWigS4FAuv8wXr9BAc5g0cOkJCBnwJvHJWtiyK8tXX4\nWXhpuV8uoxuI3H6b7eewsRoiHPMHFFHUi7n/n92lI3ggSJBJR4yoi6eI4pw6\nEkIZxYKUaJ5jZGYmvbQtxd84g8PM6IBUi70h3ocF6uGXdw1XcA27bMbeMZO2\nvHT6Zd7DBsIEfQf7o30EcnXcyZcYvAs/VIoVYWoTwLguJHMfBnBD16pAwm3T\n8KkF\r\n=8hui\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmquWnawzbkbHowYrVnEIH9wS1ojotoRzzSPBnMD0YdgIgIZrjHidZ4Bg9uxwsvWusRBPyskk0jnxEHeTg6QS0QjE="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.3.2_1606237257714_0.6802502690611356"},"_hasShrinkwrap":false},"0.4.0-alpha.0":{"version":"0.4.0-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"15a47bce3006dc67dd16403123468fccc10a5c45","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.4.0-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-vDwwKDuMNs7gJikmSrhRX70wWFoGOVC6x/uQZeOLPEGDv61Mg9qP9yPb7j+uV5g2sd2VgHOKGgfxLw70WAzq+A==","shasum":"77d3fae79cdce0e960ddcd87d751877a151717a1","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.4.0-alpha.0.tgz","fileCount":13,"unpackedSize":13712,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2pYXCRA9TVsSAnZWagAAleEP/0eAGfORDoWiQnClwu+y\ngqKx08Als0pucqux2LmhqZZUdc3ACddhWBO1nY5yHHaNh+86DS1t/E1qRgmQ\nK8NQ7Q7kx3hr759NDmIXzJ3KulQGggayUcpw8wLU1O05tE9ff9FHmFYkiYyn\n/BbEjFGzJW+oZ65159xqgDF9Yl3Us2JXeCbKbHNzegZEhtGUTm4/F1L1+/Sq\n4qVk11my9eO08fsW6T2Be2z6rfBLmgYC7daj/M6b2WlvqdPs5Ezoz/CPNY/a\nOnaVoQYtGJ6h6uRj2b9N+wjMIG3xrdZltfg+zNQXyiIlkezxeqqMMCVItOAZ\nnU7DPr/4W22zDUG+3AQHK0CW1lONuW1FOQeKuqslk+T5OrsYy+AenkeUM9Pl\nVsQEqdYgNRlB9PYgI2RDqM3XNiLvrTszMLjcg+Oy4UXO6kT9s5c83PmuwxQ7\n2H4mHZoFIOCs5dW8PkXuSBrlGvLuRCNJmz+dgL0mkfHeIgy9nvIo88P9dSDY\nuCunN5YMa0u/SjN41eof+6SxAj21b90VJUBBLqsQExO9gRloUQUHdm+7XkTX\nekqEg2UvQ3Xl7ytoyRFFcvmSoDvU61+coMVDCp61TMCpQM4yZNdHaA5y5+/x\nQZTfLXVOntgdU7NXRWtkQecSuXRy/Cu8e4ouxTNyhr+KzQ+8G/mIe2/n4r64\nMsm4\r\n=NA8c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7+u/vIL0+Fz9KJA3itiYPrOAfwSg6GjbOefsdgAEKngIgSJngyvsnz8fkO6nlH7FGNsgsUDZWLia0eTPxFG8qvMI="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.4.0-alpha.0_1608160791105_0.6170870708358687"},"_hasShrinkwrap":false},"0.4.1-alpha.0":{"version":"0.4.1-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"e460b64f095d4eb3430a2673c04ad7184cc39f79","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.4.1-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-27CZ4s/TaduLHxEau3O+oE3EgMriP72ajpC4bXiwGDobVLyutvihFJL90NeFzJQBmoeYTGtjcoEabJEEBDbjLQ==","shasum":"0bc66bb8372ce8537ba3ae6544b536d02330deda","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.4.1-alpha.0.tgz","fileCount":13,"unpackedSize":13915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2p/iCRA9TVsSAnZWagAAx1sP/iQ6WTHC8zlx6+rotYWn\nO7XGSgSSxqJHXNpLfkww6Wrmido1G6MlqgOLW+3NUCYxsqHPdq9j68qM64Um\nuPLRRBczcmQFfyQa3iM5bQN7cPQZLC0qnw+JD99xG79NVc3wEiH+Rv1tN/18\nTk66gyML0P4aecXsX5myqk/XHuC5iKqEEuXZo97cUk6HW/qTyDLh3/6SEX89\nZtyNZA56WGHPUH1gbb9ZuqbdLs+CRaNvxuKcxZ5ppGiQVRXZWV7025YtStBw\n4pLfGojA7S0Yc4Ia0KgFJ3s+XpuVoyjA0rL7tgy6s7rwkpHWV3akHvUrIF3T\nhcHpLn4+yf4t1cNyIesqkeA3yKFY8t5aKcr9DTnUQHWTmbejRQzqrz0Y0Kkx\noKz18mRRkLT3ddi3Pq8xPmcX2RKpHx5aqQsetCJTX48LTBIB21g8be/9Rm+A\nj4w1SeUxeaBBC1GuuNQeZKNJynh8x682u5w2llaB7pr223DsAmAyVGeqo3Zg\nl92ZXMajD6dU0kthuPsT1D1EjQNjIP1fhAWe9IX8+PLnFDAAZIESPDkNxFFI\nzSwktiJqaRYWqBa2KVtvjUhK4pkVncUSvcC5qep4O0fRwi0fuRWB2pOgl30H\ntDU7yl4LXYPYHVbKqudLwHzc3zmKqNqpPloIktQnXEjzfpkqvmuDjKk1Vy7N\n52rX\r\n=GOup\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw+AaOO/0WsDnUjR+M8gaVDJU3uNHyOkyp+TdAiou6kwIhAJucrNz1GAidO9A0dy+SLezyxnMEz0e4LIPkxPTJQkrz"}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.4.1-alpha.0_1608163298009_0.380736933518415"},"_hasShrinkwrap":false},"0.4.1-alpha.1":{"version":"0.4.1-alpha.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"e060e85933fe2e510d3507fa86b3496fea104544","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.4.1-alpha.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-LUqguXUiDxK+CWXJ+n5zznDQZ3mqQYZUdkjfa4wwLig+bYSejE6z94r3eoGKgr3RiFL2uQlcg9Lw7NnkUfaPiQ==","shasum":"dea75f635b18ea633a9a5b0b4552bb350bb76a45","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.4.1-alpha.1.tgz","fileCount":13,"unpackedSize":14070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2qh4CRA9TVsSAnZWagAAraMP+QCEcS7f7c5BGzpLCzlA\nIoEO2amrLoBabyaNqp2ZJPFPxbRkPEj0ebuUbX5s9K5soxc0EGZypIIIpBml\nPGg33s5CDMd2BsBb/zqSaWEFPXP5iE6Y50aU92lXby+exh2mSVVkhLeUd4g4\n+ZL+MqNnBPk7SamevOdRh8TcaBm+Uh1BLExJZlXORnC4LVX5AfYf0YwwtK0P\n7RcjNMOnZgOLC7dNHVQWbpD4pAyIa51AkgiPVRD9JecPUNmDBTSmbHan4AHk\nJSrDfzrroRD2gAazm5bTwEJPU86l4lBoESOV1x7+FcAJerByTgoW1EMJeCNb\nyiZkn8T8cFEK11ZsVBqFD8/7v2JHCaIWp2KqXyVrtgCUNK6jwmskCN3AyO2p\nYLqU6uAatUAeFiCC/6GcFUvt78NAon+06QD/1lM4+NN8nDTQtD3w8rfIzlwx\nYC0A/zAEzvaCDYe41Bq37g9Mrr8FTNJJXbgeQCzOeMCaupsacmURqXcWSCZ4\nHQluvwsznxeA31/RtZlC3FfMcYz/1yhnWpmXMIPIVuvYSgEnw6SQdfMKhj95\nOcpyMDZ1XaNLT8OK7H6T1rjemgRxU0sJfHK9pmOkA7CWJIMk9/Aa2sJBFPp5\nRLIFhUtV9916WFFsQ6lhy+2gyqrbCOzzHBDaXCVeHi26BGbwmhaMMO2ECriA\nPKR9\r\n=gv86\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQ/OKVwcT3VG8JAA99R7Y+iJezf8/TgwRI6dPT/+S9TAiA71g0U+ccFGFKrPFZjV+gfMkBs9CqCDA5lVCiBmCNIMg=="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.4.1-alpha.1_1608165496288_0.6828620633771358"},"_hasShrinkwrap":false},"0.4.1":{"version":"0.4.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"31a14d8c9b3de1a75147f31b9a5fcdec467e5498","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.4.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-VlqSkkhB18CvW6BSyZS4t6Xl0GjVZeHsjQh7fqDThLn2ip5ix6G+PChCI2yJ3Llz1qUGUZ7fsW5LTedREsgDgA==","shasum":"e0ff9405dc82283c3ec908f1aaba101f504b642d","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.4.1.tgz","fileCount":13,"unpackedSize":14160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2qn8CRA9TVsSAnZWagAAKNUP/0S78fS6D4B3Xuvw9vSU\njIz5YslcccZM3hT7a0/Jr6+LJv/LYSITe4w3IuKciDwsvZmohkQv46HwIFIX\nGPFpdyH3brGuPfwFGQfo2QkeTLQeFozppeK1QdEegFUKjZItGN/Ybj8dEP7M\nF06ItQs6YkRQNsrkzDz2rvPziwI0ZfdJW/yFM9aW1LPa0mFzlEhqI6oTh4UT\nLjhYW1e4mAGCwld93wLra8nImCbo4ArDKh7tCtAdBaKnSmPp4gOLAnDiHdUA\nrRi8Co2GpFPsp9qQw27u+nEMJFEJd75MhRzBABVtuTjoL86daDDmRAJShFN+\n+eJL7emwuU/hLGPtl/f8GGMn7AEKoFTe3THbC9CoNG8KJztUcBk12EMwJx0Z\napybvs/OFOs52z0roUFvfIbUrNfP90Xrgozvl3LILJ0l1AenIHu/OsGZaJKn\nBoBJI5fc4pp4ReIV9LJfbacOn17bK1Zd/tdRzbF5frajYxW634XQDsWtRZ+w\nHmTHSXsTmMRhllDbPc7NhCF6APrlR18e1JSdTbet8WCt9QdHI8Ncl48Q+nWi\n17obCAyMVqDC4sepJxrUshkEoMcvjWgWCPRQQUQmGNalVNf8e3VndQgJwG8o\nQmGylaHKlHRNdZmaGz3MCPHlbLKXkL1FpFWxg9gm+Ct05+AHQmkSfm0pUhvC\n3duy\r\n=rzrh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFEsVDde2vBaagzCjTi74/TJ8AKsngEXrKRr3XPx9UZwIgB5HyUb6B02pECOyu2VQZTd4IQItA7Vdxs8nby4bXLwA="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.4.1_1608165884476_0.02778706103636952"},"_hasShrinkwrap":false},"0.5.0-alpha.0":{"version":"0.5.0-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"ee5cf13a160b2d68e48cf28f06c3541804da7ed3","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.0-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-xZ4H6c/5o0r8IgYZ9wZedP1gt7rr8Eve4V3snk152qwQpcVgxx67XwFT9Myt0k1bkicH4KbZN6kO17mhTo2psg==","shasum":"94db0e31157b596541d513aeeb34cdbba078015f","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.0-alpha.0.tgz","fileCount":5,"unpackedSize":11253,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf23hhCRA9TVsSAnZWagAAxJgQAIjcD3wRLNmLVu4H+MRz\nc8M+v/6IsEkcYIeamFCijjMxtvm80f2/Y9livH0MVzLddv/6vEfweDYgUEwj\nRBOlHJMQ1zuEvCwMBLlmya4XCixx2q9Kog//c35hLL57xgXfVcuqpUuMvdgw\nX7LmcQH+IT7Zyh+sO52KVS7rJN9a7ch5bSsookUW8eMR+oyAKiRRK/7by+By\nonixyyOX3x+qUPWLZbtoDBuIammdK840QdFrlQijOxOKjkUP18J7K7mBgxNS\nsh7rZuGn8HW7ZJh2IAXsiZTZTyyW/UYpktnLuafIzQ/8RA4PUyIwwENGwTXk\nHc290LLn0fQElMeOLcbS4GoeLPDzh282teVXyyLATeWGvkPAcPlJTENF2DTs\nK9zLF1TFJKQQp19yiZjYo5b7ET941gc0sPKU3VKty6RLHI7wAzMfRQxbLhfS\nCkHD4NmTUKGPoEyB4QkVqNwj2+SWs5lJ2c1GjDakQ9gU7QA2U6fHqZjzg+Uo\ny/yw7hcBD9QFLjzxQDB7WLzf/jAYAxFvm0sN/r9iUlAoyMVwqY6qHXgSDolI\n+AAHrBuoy3cb7SdA0btXw/hzMJiHNLa1rJSIa5JRlMSVS8M7TOI6ZNNlfpHU\n7M5R08Kd9ULzDXTWT/FEiKQigoA+QFQljH2F4gdedCgNfY9yQIZe01d0WEdz\nVlPT\r\n=zQ/P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3u+T23VIiFxTR2xWbz7OyBWWxOfR1jUmYRZnQWZnbRgIge+NeMdv7Jk88nLCNl6VOU41zzHYTz9kUjOT4Pjs8Fgw="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.0-alpha.0_1608218721101_0.5998824506345732"},"_hasShrinkwrap":false},"0.5.0-alpha.1":{"version":"0.5.0-alpha.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"ca4dab3d737be7f0db79ad502b5312fd1eeed7d3","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.0-alpha.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-2DywhvJ6QqPfMEe+S5Wbr2wx4qnDseM8ZZY4q/TEy/JfFzTre2AioHv9DL5jXDtCJ2KzpxUYQjcgXRhl682qmg==","shasum":"f69be46bec9c27e6be18a537e548da5a47d31d63","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.0-alpha.1.tgz","fileCount":5,"unpackedSize":11473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf24S9CRA9TVsSAnZWagAAIeIQAIUPbKR7MurozXi2mdrC\nP18tjz0fSGR2Fvck21reTobSsVn/u2aQcZoRoLkuz4QeyEI++gD+1E0z52Ag\nMqnPqgQQD2ygvUBrkj9ySD2qqDFC6VUlHNQyLi9DCscsy3A8g8500VVx38gc\nJbNktA/cL6rZ2Vg2id1T5kK5wtgHXjOOJ3KxhbYf35Ek9Xx0RDMIgKTag6/W\nM4UlHTMIYkSh0Pzdr/UCrc1iUpE3dreemoi9eptxwe+fGnkye/v4ex5QfrtW\nlVQ12qMeBiupR97YSsKXE00/9X/30l0riR8ththOBuD8KyXejMk8mQ2N6VjN\n27IhkeYTw1u7qKLygOE1sXVeAKVW7N/Yz8yRMiHurUqah29k2y9AhnjUdEK2\no8ONvklZ640vq/358p12eOrY9QNDKHVDD+I5kd/7sWrxYG7tNp/t+4zFbG/a\nEuTZr0U+unQ5Y4TphDoR+iS2QIr/xf2/lytNUEmuqhhV1wxShMiV9YI5LHZ1\n4EP9B3IhQ4DetlTNy8Rx13rlejSLutYNziIC6wOkcNMQTtgFCCHDfI9m+AAU\nTI8zQQKYZ/p5E1+SaSmXp2kI0dCqEHE3J5/SEz4NDVoPpy8yKiaDIFYwy9MQ\nxmzW5vddgrToTBWF/yR9ln6n/B2EaNSPMj67cuKBJwHzgcqoD5oHtz4u6Q48\npHnK\r\n=lqhI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbWsNQdkJYt8GfZo3YbreScCoS9FXjne3IlqvNXmv1dgIhAMSqthiRW71S6bwBSpEypk16M0+qswn9Yh4xY8t8d4t3"}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.0-alpha.1_1608221884696_0.32105195583135915"},"_hasShrinkwrap":false},"0.5.0":{"version":"0.5.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"17dc00da9da37184d41cd2f5c853afe3c03a350d","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-26/vJteHigz0b4fs8lk/0htPi1dPecN4hfLfn5k7dJW6yA2ZgQbZ3u4tRwZgii3wrckplmRiBUddxT8+CS5UUA==","shasum":"367decd2de6879171d51be0a44143331665b34b8","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.0.tgz","fileCount":5,"unpackedSize":11562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf24lDCRA9TVsSAnZWagAAMIoQAJBRkLpVAQ1y4T5QyJGd\nBtcYqvEotwBpbiZzGijyzdlyRwvgtyQy9+wI75H6NZwkf7+YL8CaLN9uBdOT\nKMS5mlcfVXzVKJYa5Rt1v6/J5KQrY3YAhtBaxPjPTSI0jaC5h+9gF0hEOxV2\nIJqT2nP63DEDAX11BAK6Wz88UwWG0A70LiOw271aniwxQ9lAWfHdmpsIuROR\nwUIrq7rnyhET37yk5IE6ontRBlHpEn15lFt2O2dmp3ws0iAZMF1xLEv/yjTw\nQZbcCEdGF0zyP8ko7aYLgEWE08ILmDUi2MrCc6y10P+Lq0zkO8XTrDLYynlL\ny1U/tzkRcCBIDBchC0tW4fbjtF3D23KaphC/LMdLXcSnLXm89gcfFDr4AvcF\n/aL2w6YmdFpFmkckkVDchZugCOUegz2c31MECbHzULXlaWM+P3Q843NE+2Ci\nK41T9TwQC8IvdsfeHTelDKkwcdQc+bs0YCdMoIpNaLJz0OBvONs+jlaANJ0J\nB5IzXcxwnuejGv9CqZeOuc6+5vs1XG9AaoBdQl61TGYhJfKMS5QtVikB+rME\nHUUCZ/NM4cuTMbZeKmha+Uz9RZLBzT98+uHgKxkBEf4KJ2anjuuEOyXaOQRm\n31xEk7mChvg+Xt68b02hlagISmZwAKz5s3pQXN7vju4fGaFGVHn+FWoU0HgZ\n2i8t\r\n=kpKg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIExuL2RAhxABiRhO3kB6+Ohf+DUo2kRXYtdqe4pHwJJoAiBJxq8yhg/jJVonZlRH263R8PcSTylg506CZxDJqd8ZPA=="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.0_1608223043363_0.629774434195604"},"_hasShrinkwrap":false},"0.5.1-alpha.0":{"version":"0.5.1-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"70bf6dde6aa0832b31035c13257ad049f071ad19","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.1-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-DT854etJg2LVEg6by8fs3oVK3y4GgVkANmOrleC7GeiC1yGG4OiB3sbtr/1gq05g0+TT9ndB9nS3z4plJ/j0FQ==","shasum":"47c7c5ec507ce3639d22b999b7953b32c660e57c","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.1-alpha.0.tgz","fileCount":5,"unpackedSize":11676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25BXCRA9TVsSAnZWagAAVkAP/3VV0xog0lutng19VNEs\nIC4wuX6HpDqatpUhQ8uDJ4IO6ePEencA0cXO8wDNOMHTUUcOc5Wuf0kjV6KX\nivyF6sXStp/bXmCOt2JkGxsBZpoNnJ5zmTaMz2lavMnIUJ5GabvtdeN08um/\nM4e3dGeOnNGLACs+2s3EylPSqR6hy+ziHUyAtsFDEQngD7gg8lKR5BJWO4Fo\nDFo93dByILyHuuBsfXMrLw+u+Mpz283n/zOJ7yz0IrVUuV9O45B5fLu6ouhT\nka2P/fmKPDObUtEk8MEmqpk4AkwNBjq8gbZkm1cOSJ15Oi1jEEvwl5eZoKn+\nES8LBDqAtVm3/HJea0Mokx9v9/9b+O47KRFWjetnpfZPm/uH5K4MP2bnM7It\nZVbGRZbyyeqRszgRdj5PMXAtyzHGv/yaX+mHTnac16UXh/QwpJcCJqmaCCjT\noH9ipvTOc1cGluU0+Oi0esYsNHfCIJekgVJdkDc7fIg12gMPNOz0xr2qCGK+\nbNWXkQ9G4eVj8M3dxuyBLZeqi7aykxdHCSkECZTFv7MbIH/nvBV+6HZGfjq5\n2k0/mu60OEIJxmIn8x0eQuhjp4I2Sb7u2dFufzjlubtp53i5oVhNI2wGzeWu\nOxJ7OuM/UDTcoGc5igqCrTqXbWQXyAYW8IlLpRsQOYRAr36hXoTjF1q6SSGM\nR5Ui\r\n=t/Dv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDc7cfLef3vIrxlGCDNOdJgBGS3CuRZiU1iZP6Anzz3SQIgKU73NMZFaUmjNZjAIxNXBirhjc43nVdMXV0fSjyl7DI="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.1-alpha.0_1608224855452_0.42593497227282073"},"_hasShrinkwrap":false},"0.5.1":{"version":"0.5.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"4e3d7cb72e9fb0c6994cb31ceaa8190d4dbe9f65","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-+KIGeUoo5nQQvLfH6wV6nf4PdE6YEgvBtzAWRjyGmYTH145CAKLOzElmYpfTNVtQvpvHQo5At2ZWoGT3jSZ1iw==","shasum":"c0db82e610415890bb9f9d60515a73550f0cd49e","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.1.tgz","fileCount":5,"unpackedSize":11766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25HCCRA9TVsSAnZWagAAE/IP/0HDWqY0lhTV+Ah5hQRH\nnjMYirw4fmCRTwh7xEe3ScciD5TrvwDDsybjo1ueiaoZ0wu1fIuFPQjWcn5Y\nPLIGYm3KtAWFutQRs9wWAq7iRWoDzlGUOiiRlw+FUNOPnDISfDrMPdH0ix0W\nBB4wIcpOYFYtg9GiieXtAW2TcmUDJypzCo47U4KTWOVygfjy1Ve9K+ttMeNK\nTL+00nRwhZJICYexO6bNy2gheF1Rgb5ZeVQ/pD8jddn8c40aU/qcuuyvDybS\npAKIIcgzWJGmp13bRBMqngMztwBdZ78aN1EOCRa5WQ7QC+cpcDKTwixALuMW\nUOaVRTL6bFILVwFwFj11FO43EGSAOvUcBHXvaWPGhYMhXi4jBGrzWXiDVb5k\nXTV0jPf13Q1XYcbcRrTPLlkU2JiTPVaH9RuXGq5zcoIwpGALQRGTsauW3Blo\nDuuwgy6plGyPrfrhcPH1cHkAnnBcTMJe5XCfhCeK4TeFfjb5iMQqvcuwXJJ5\nMfobW3koEg7vC8QJP3Iuhxfh3L1zREEfMdRfSIOpPbxtw1HbAVB4dQ3DTEYp\nHnvnZYE4xy7qaPRR1lg4D6KjevcaSAjcz3dbJtK0RWEEXBkYgmKH81h3q/0V\nbL9ig1rdzgStevHLQ//lJ25qaVgGnw4EbM2XeMWddSvajwlNSwRglwOgPFVo\nsSL2\r\n=cllS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH5BrX5UWo8bBIEO/NHJCWo8eCMibBez7PKok9/m9+/TAiEA4Z6mWSssopwGyZuJQbl3vAg28V2UJ1PCMN5p13QV2qU="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.1_1608225217643_0.665087286672204"},"_hasShrinkwrap":false},"0.5.2-alpha.0":{"version":"0.5.2-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"3e173eec9649eae7b87ece8bc983acf66dca4e90","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.2-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-lft2DLeUP9HQcJcq00EqAe885avYrhXWzSTKAsEhmP05HMdv+y3CFna9WLWeYKr5BGgzKK1uu5XsGz+Vbz5PTg==","shasum":"23fd7613fc462ddcc38bfd4e4425bee9da7d0abd","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.2-alpha.0.tgz","fileCount":5,"unpackedSize":11880,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25amCRA9TVsSAnZWagAA5LUP/0o9fmEicVqub7h7KJD/\nwssM4Dy68K2k8WcnaTCcWyNX9W8zLv6w/gia4y8KMdPQvq3DZEplTzKEepCG\nGFEmmx3Xyzgr7qn8LcYJsle7yya3r0o5lTJcqu+eGH2sRa656a2WmrgULtd5\nXbtsX4+et0ACFkDiNKMasoWnQBHP3W84gdxbxVVayIAO79d2M/aBCqsmZuJx\naQ9mloIRvlj0GGc2z5TO4QlSAWdoD1r5Xefwa2p/2bv/KO4sL8NLZGDv6oPI\nsXp9mxx4sRHp8zrOD6galr++6K5qjW6t/AzKKOhqlkM5yhpmB50J/fgOlTp/\nc3+5W/Mc5YXnc4a5BWtaxchS2tvrLU1z3mfO0BgyaFoPzbwaJmzR9y/fspfE\nWDwpF8A27W+As5Z8Z4l1/oeLe5J071Ihnjy7V73v7FbijbtrKWwwlVGbgyIO\ny0J76RUqZi8mrWKR9RpQ0chU7moMSCrPMDpaeQ5mEEhiZGJJzEo/b7BD0gjv\nz1+G57aDOm2V67I7dsJK+hCFT3acNzWDQhghlwvDTCe7w/kw3B+oAijrtjIc\nTBpQZOEfvjBKB6vG4wMuzu5elnOWNekDzaE1V7qnH4vpd8qQUp4d9jucx4zs\nQOkrrNKwna1YkmQr4uH58Lq2rd2dVF7WVK/DMp/+XSdNgqDt7nabwf1F3Cwy\nzjVU\r\n=Dkrk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGNZU8E/zLI3p+G77Q+H8inQ6RfU5qOhdtnO2hfdaCJ4AiEAyg0jkQ3jO4fXqABoyM+bhQWnVMpEahYOBCjDauCRpJg="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.2-alpha.0_1608226470063_0.5822438807414898"},"_hasShrinkwrap":false},"0.5.2":{"version":"0.5.2","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"47b67fa1f024915bb8702d4153761d78d024a23f","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.2","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-SY5Vhst3FxrI70giInSVZYYrfBLzwtG4CdrESeAfkRsHp9cOEh+ncB7sDoxjBiA/c9pU1lozMDY1L8kB4jJkuQ==","shasum":"ec4ea1410b8b4e6b9a54e46565806b70a3004c58","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.2.tgz","fileCount":5,"unpackedSize":11970,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25eJCRA9TVsSAnZWagAAXQAP/3wU21OP7in0NY7W3aeJ\nV58Okpgxh2dTPDeL0dHaGindPPNPkmFoX+Np60Qi68qkweOkB9xTZXPsKPiM\np30KLHbP72zwIrTIFfUO3L1DrnMW3LLXnKwSwmlTdIxIw0KMIKUAZoRQpBsC\nlDCPKtiRK2n9IE2stfi10yE1r5HGYWUbD3vR77016V0Z/eZNjdQYuY849yTY\nxrmpieFUoo9h0qkq+Xyspt/Y8ccs5J67NDp/fUDGeAT2o+TJguz+bw3iixEB\nPPfaE19ABkXk+WfvVPvlLGmuzlCm7Xj+16xbToqvyZELAsQNzIAC9rE83yX5\nrED/0JRrxkOI7lNY0wXLhxV1uDcTCLjcAONOvMey98iBNqAbTnwk+u0s17NW\nGBqfmjFwGd+E9CwvIfPF4D/zUFkk1fz50FpUha9ON+Dq2lU+Z6t1pwlI8vOZ\ndLQAPhWLP8k6dtLljEqCI7+6xzGAouBHU0cns1w+N9MV/Z0HcBjEQWJjXDWv\nG9R0+bXWBsbH/vsxcCNjlfSjXnbro45T/g8vlTTWRTWcbmc7g5sZww9FFFws\nv3/TgVWrYspicy7/+SY9Tl75jkmXguGGTi4JIPRH6nP7XmrVtkOFlHKpDzl4\njOZNF6z6iS/kl2z816dDC/+ipQY1JKX+KuBLgmaCXjRYf2155Mi2cnaDuaRY\nFyiW\r\n=zgUa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFO0s996pixITuyGhgttopRSq0XRgKt0itZVrozeDy+aAiBNjzIthVFY6s6bxnKv/oIKT+9slONcmnURmuUmxvnemA=="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.2_1608226696410_0.8976272121801809"},"_hasShrinkwrap":false},"0.5.3":{"version":"0.5.3","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"494987dba952bc722975d51fc58fa4a1898fd2db","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.3","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","dist":{"integrity":"sha512-g/bk2YCE46AwhaGNTsqASWZdX8NshlPKvhjcIPKCDuWNLxS86K1yL333CK4Mi6rN3PKsakqr/0dSYH1oGM4Obg==","shasum":"62ea168e1c14618f7ed4a1c1d86bbcb7b921605e","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.3.tgz","fileCount":15,"unpackedSize":14766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iSHCRA9TVsSAnZWagAAGMcQAIDTNI3cfD+t8w7CboCe\n9gpMmSOXHDHmZGD9C7NJ7Jgb153m6L4O5sa6T6zHognHPNphACrCheZwYLIl\n/MOukl5t36/VjYDorB/XHUHB+sWMVOwa0ZXpkiIjtFlUK/Y8Li5sMRyUMV/O\nkR+RhFtdB5uka8I+LkdGZi5c2lTkV3MtZ2YaTEwfeZqGXfAt0I31Z8bjDPiy\n74zgTnXMaVsFq2ffVlt4o7yB7sO97F1oh7+Bo55/LJqZ0Csmvkop7AVeHZIX\n1O9aYbjoktmESeFIuFLMSHOW/2EgL7+xyzcC2BYe1cO2NKqogeBbzrm1t0Y0\ntfcPFiYTx5jlI0xRzGKUg2eEzE5t4JWn3rLDKbM+reMCw+JtTJqzAU3vNf7N\nXrxC/UWncl0HkoYi2qmm9D0XRdQ2RRWZHueLF6rdGObGKLopWpqBBfXNVbFc\n0RUoScWuHGBQjA3sB6ynGCiJVg8829Q2SEVlPI/emvqQqWC3VxOfDBTUoxZU\neibdrrfSlVqgpdLjyDCG82XHMAD8CUB0JEIVeBv1v1gmGGZsT/ICZGyTfU81\n41tScbQEAnM7UJ7DLR2l5VNqrXUhjPS4SBhU4RGMisTIQ0tlYAjrayevyhY1\n8d1aMa5B9aMSJ3P+f/O2/PxquKhF/Y/wBgwtSwlGeGOMZtgo+u3WC4RfPF1T\nG11F\r\n=7v4I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHK4C+ErXD0mb1aEQhXeFke3YgbKYSd8WBN8MnESINEyAiArJQyCZeW/dOAl3M3j+kbZuWTX57yduaOd/H1rRsGwPg=="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.3_1609180294925_0.9945459320040662"},"_hasShrinkwrap":false},"0.5.4":{"version":"0.5.4","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"52a1e6e4b7883c5dd24059bf99e9104874a3e88c","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.4","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","dist":{"integrity":"sha512-pUo4tCYTPrKN+6TUu2vfWJX9dNExDkB1sv3kiVIUrkrKdZmPoyOF7MTGDi5DTzTV1/GRMm/n2TxlJDlTP5FI+g==","shasum":"defe6dbead2e33fead39a6dd08aa05b04e6d661e","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.4.tgz","fileCount":15,"unpackedSize":14987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iURCRA9TVsSAnZWagAASRMP/0JojvmhLjwzpo/0y8de\nadAxTjQG1HCPqGWw+JzZM5NPzt+kMKa55q8IwTiw7nKh078j3PRfaAES0Jcf\n49DbVKUZsXvRQA4B0MD8R7HlEYMpJApoiDDkPIIPFQdohu/K9hq39KoHNSe1\n/SjK7bJ2TZK3nN1Kbxz1gFQccS/j5opUYhVIkTCtUfbkpzEwE2iz+VKov371\nQRqlQ2pzCuK2j5HQyCAbhsDwBT8bDkkpkcI0fvA2Vsw/qfkI0lY1Qc8rM5+u\nQoFq16VzJGcgcBf3VPkFTjpzBMoXU/pHWn1R1gF3BFmgGAV5IuTkebOKb8LE\n2GvkCKHhhMeLIonUmGDAWchQSZtNjGCMGFo2WU7AgsThj2rg4WslB5hxwIxw\nzi13uvS2cTTy6ReX/YtLo5l+n+8gX1WM9B1TArng+HDbUCidnP6HqwGWloBh\nUoxHwMOshnVtbvxabNxIR+TKW4bJDTP0s/kEjTCOpDcToDSsYxa9oPIoFFEh\nLWwKKeBepPgnOf8zGFcVbnpJy8sssttHfLQNrVk5zgwnkQb3WKHObYYZeCVQ\nbjzHOt9aa3E7GSOmrj8regJFWSGg36N78q9vtZVM4tC0jj7oSrmnC9Bq6wp2\nxFEhMnRyxRD4uQSMITgLOWkJVuosFr6T4LIFZERex+fwuCK5/81AakYTp1PT\nOyKj\r\n=049w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuAKmRFxPcTAfemYk5iNXJrrF0um0FolJpR2fa/k2HagIgc9rVmlplD+60XJHkrIQ6oUeOwbHjaI57++j3bj2/VfY="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.4_1609180433002_0.6017814214332331"},"_hasShrinkwrap":false},"0.5.5-alpha.0":{"version":"0.5.5-alpha.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"2392e0cf11680de9b73499886c54bfc6df97cba6","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.5-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-geT1KTginu6Rkb5HPBY+QjTxhw4sPS0Bqdla1Y+AlOymnH+06ifh/XdJ59XHyBDsv482CLqPX/F265/Im5PCgw==","shasum":"4a54e5c6ba7b5d04b4671a391aa63823ab14ddb4","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.5-alpha.0.tgz","fileCount":15,"unpackedSize":15192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iyeCRA9TVsSAnZWagAAgoQP/ieXnUmvR8NTS1q+GZXx\nG0lYKrsDuPMrDqR9e95HvwCpSiAiqh10YhfUYCbU30Op7TNkTPJa0B22sL4h\nNrpOpPwkCUwtR2BQI0uWVPhz1KBzA5SDREooayiCXx+XEjLuHJA+p9O5hS9T\n6AA6V8napvi7PmmMLhxMP0+p/21qoyla2xO+3vBNkg1YOlfdSsJsTQh/M5V0\nchsJJ+YRbFiN8KO+DKDwRJJ21do5HnLYk7yE8RN0abFIaxSR+qTxzW3gkq27\n01vcgj38IrwX+2qQxroPmtpSfhtGhob56AemsGxuFLYD7WrW4kvD1glO8oZY\nZJwvIx+lj1tTEZ5PhZMwYRmSkGN187PxXLkPadqrNBkTUGP/W3ATHLZ8vFdi\n8fqkePR/VxGlmaDY+S6n8WRQBZLIgG9cJzQvcGZ3Rzny5jIaqldWGrw2xJ2q\nsQByb3ZC3xrnaIXSbwddijr/4msXRF1YHSdwhQepHI3WIf2BDI/CqPn5qj0L\nz4FQouF3YuqJnX4kLYlEDxC9Fdq9gUmvuaZ6gPBWhgHj3MwRRJNGxw6+uZtK\nEMHkWWW0JV6Vk0Y/rlNxEz7s2UjVX0CjLxJRrjcSlP9+DFvgnvGGHJnSF05X\nzNkRkepkZt7wBBZmrtKQIUlqT6yh1Rx0jhHSOmn0fQ7+brimumXOE1oiXuKn\nmuif\r\n=y6AS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9PCZPYWh4kTPOUborStpPvpAUi+fO9CGV/GJcpWFMeAiEAiZAprlr9QU5y+fVz9xw3Z4KUlUdVVHRfQ1fpgySrmUE="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.5-alpha.0_1609182366081_0.5968186167638125"},"_hasShrinkwrap":false},"0.5.5":{"version":"0.5.5","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"publishConfig":{"access":"public"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test --passWithNoTests","lint":"tsdx lint","size":"size-limit","analyze":"size-limit --why"},"peerDependencies":{"react":">=16"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"name":"@aaronmaturen/monofun-button","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-button.esm.js","size-limit":[{"path":"dist/monofun-button.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-button.esm.js","limit":"10 KB"}],"devDependencies":{"@size-limit/preset-small-lib":"^4.9.0","@types/react":"^17.0.0","@types/react-dom":"^17.0.0","husky":"^4.3.0","react":"^17.0.1","react-dom":"^17.0.1","size-limit":"^4.9.0","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.2"},"gitHead":"6bbd03a17b62f6a1d9067883a87fc36fdc2eca1b","description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","_id":"@aaronmaturen/monofun-button@0.5.5","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-e5kGVtFh6upFHSG06QEj9emu+dy4oY0u1ZgGSMz/LvrIdagknrlIo5t5icvjGsZxJidK9J3cZ4nDrUq67v4wDA==","shasum":"42c54260f40f83ac60f8b552edbcc07823fcad1e","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-button/-/monofun-button-0.5.5.tgz","fileCount":15,"unpackedSize":15282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6i2zCRA9TVsSAnZWagAA5NEP/3MnosBiFIc7al6q2JDI\nhjqXi63EuL9pXoxe/iliWa/hekeYrVMYQK1//4h2LFiEfu1yUiG/oQ85BdtM\n3BYzZhbk4+5yrMSZj17zPn6FJcFR2XtnCvNaeTeFS+45V2m1EMiQsYvMg7+1\nvsQtwkaP7u5a4qWxaUKBra0L0Jt7Cp28nMGSS0DaYPYG/FnNnopYKLr31dhH\nBLn/OMOBTMgJVYZhktv0UW5U6CjphSKYuv+NzTVzm3/rvprmgcD4F+FhX54M\nfW3yWE442u93u46fhMeSzIVLg4i1xrCso6+teSpckzhqneRBiS7ld++ErUfR\nuFAFklcVowEE2zEB9fhlLbU0PLQf6UrDH9XRH7IxulVe4dE32uD+4sMnR2jF\n0kfAgRHWCkIFGj2IlOzTA0aaOTBSqGf0WpSrHGXuGibpFy4kpjPqgVB4McLI\nqx2QqgTcUr8aO7IwW2a6vZ5aRVFgH8nxrhFzEKM9jDgjH0CV8NuG9LIlYfvR\nRPdV/cRE69xyaXNGJYOEUbRe4NZKhVpR1qTiYKiyspU9AtOAsH5mRUDvJI3q\nX5ZjchynTvz2hAQBzJvzrAXL/OE2gTsUtPoMRx9ubmlMBFzhQgYmXYUzz6ef\nnA1fGlHEcSuymCy+NTSNC5WuXkB0yVFTvEl4AhCA5bKB+zdCSIMPgHjbzk8u\nQwjq\r\n=Ntwb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCobWh1SDiMIufqYfGhFVE6LwndTpMuG50goH1r0eKrxQIgPZTEAe/kfEOBHoFKbNTIHfuzH3QnUpzlc1MD09yHSbU="}]},"_npmUser":{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"},"directories":{},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/monofun-button_0.5.5_1609182642696_0.9580328720951614"},"_hasShrinkwrap":false}},"time":{"created":"2020-11-24T16:59:18.517Z","0.3.1":"2020-11-24T16:59:18.717Z","modified":"2022-04-04T10:55:43.269Z","0.3.2":"2020-11-24T17:00:57.916Z","0.4.0-alpha.0":"2020-12-16T23:19:51.274Z","0.4.1-alpha.0":"2020-12-17T00:01:38.152Z","0.4.1-alpha.1":"2020-12-17T00:38:16.461Z","0.4.1":"2020-12-17T00:44:44.688Z","0.5.0-alpha.0":"2020-12-17T15:25:21.206Z","0.5.0-alpha.1":"2020-12-17T16:18:04.875Z","0.5.0":"2020-12-17T16:37:23.468Z","0.5.1-alpha.0":"2020-12-17T17:07:35.577Z","0.5.1":"2020-12-17T17:13:38.161Z","0.5.2-alpha.0":"2020-12-17T17:34:30.219Z","0.5.2":"2020-12-17T17:38:16.884Z","0.5.3":"2020-12-28T18:31:35.062Z","0.5.4":"2020-12-28T18:33:53.106Z","0.5.5-alpha.0":"2020-12-28T19:06:06.184Z","0.5.5":"2020-12-28T19:10:42.847Z"},"maintainers":[{"name":"aaronmaturen","email":"aaron.maturen@gmail.com"}],"description":"Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.","author":{"name":"Maturen, Aaron T."},"license":"MIT","readme":"# TSDX React User Guide\n\nCongrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.\n\n> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.\n\n> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)\n\n## Commands\n\nTSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.\n\nThe recommended workflow is to run TSDX in one terminal:\n\n```bash\nnpm start # or yarn start\n```\n\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\n\nThen run the example inside another:\n\n```bash\ncd example\nnpm i # or yarn to install dependencies\nnpm start # or yarn start\n```\n\nThe default example imports and live reloads whatever is in `/dist`, so if you are seeing an out of date component, make sure TSDX is running in watch mode like we recommend above. **No symlinking required**, we use [Parcel's aliasing](https://parceljs.org/module_resolution.html#aliases).\n\nTo do a one-off build, use `npm run build` or `yarn build`.\n\nTo run tests, use `npm test` or `yarn test`.\n\n## Configuration\n\nCode quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.\n\n### Jest\n\nJest tests are set up to run with `npm test` or `yarn test`.\n\n### Bundle analysis\n\nCalculates the real cost of your library using [size-limit](https://github.com/ai/size-limit) with `npm run size` and visulize it with `npm run analyze`.\n\n#### Setup Files\n\nThis is the folder structure we set up for you:\n\n```txt\n/example\n  index.html\n  index.tsx       # test your component here in a demo app\n  package.json\n  tsconfig.json\n/src\n  index.tsx       # EDIT THIS\n/test\n  blah.test.tsx   # EDIT THIS\n.gitignore\npackage.json\nREADME.md         # EDIT THIS\ntsconfig.json\n```\n\n#### React Testing Library\n\nWe do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.\n\n### Rollup\n\nTSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.\n\n### TypeScript\n\n`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.\n\n## Continuous Integration\n\n### GitHub Actions\n\nTwo actions are added by default:\n\n- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix\n- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)\n\n## Optimizations\n\nPlease see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:\n\n```js\n// ./types/index.d.ts\ndeclare var __DEV__: boolean;\n\n// inside your code...\nif (__DEV__) {\n  console.log('foo');\n}\n```\n\nYou can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.\n\n## Module Formats\n\nCJS, ESModules, and UMD module formats are supported.\n\nThe appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.\n\n## Deploying the Example Playground\n\nThe Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):\n\n```bash\ncd example # if not already in the example folder\nnpm run build # builds to dist\nnetlify deploy # deploy the dist folder\n```\n\nAlternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:\n\n```bash\nnetlify init\n# build command: yarn build && cd example && yarn && yarn build\n# directory to deploy: example/dist\n# pick yes for netlify.toml\n```\n\n## Named Exports\n\nPer Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.\n\n## Including Styles\n\nThere are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.\n\nFor vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.\n\n## Publishing to NPM\n\nWe recommend using [np](https://github.com/sindresorhus/np).\n\n## Usage with Lerna\n\nWhen creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.\n\nThe problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.\n\nChange the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.\n\n```diff\n   \"alias\": {\n-    \"react\": \"../node_modules/react\",\n-    \"react-dom\": \"../node_modules/react-dom\"\n+    \"react\": \"../../../node_modules/react\",\n+    \"react-dom\": \"../../../node_modules/react-dom\"\n   },\n```\n\nAn alternative to fixing this problem would be to remove aliases altogether and define the dependencies referenced as aliases as dev dependencies instead. [However, that might cause other problems.](https://github.com/palmerhq/tsdx/issues/64)\n","readmeFilename":"README.md"}