{"_id":"@aaronmaturen/monofun-image","_rev":"13-7cfd963dc4ddd02a3a9b7536b80aadcd","name":"@aaronmaturen/monofun-image","dist-tags":{"next":"0.5.5-alpha.0","latest":"0.5.5"},"versions":{"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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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","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-image@0.4.1-alpha.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-K3GfFUmwYDwSocMdJ1EypUJSGXAcPjJXtvggp02AissusFvr+4HwCcRI7Gchi9lJ8b6bSEuFSxoylMH+m0yG/Q==","shasum":"7c9f2f483f599e764fc8b51abc11166a4ca2eafe","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.4.1-alpha.1.tgz","fileCount":13,"unpackedSize":14029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2qh4CRA9TVsSAnZWagAAgLAP/3KLLAdRNyouS5tfHquf\nK5rSDtTBIP+oee6BzWP+5+PUcHZ0EpDUle/EjvAbtnCfW7OjG6W/TvlRxlkS\npVnZfda60eZcLhLtKk8hJNwhtO7+SZz5DqKaQfDhjEOyBUNgwaQCyshjk+1Q\nYLZgyjqrhBuwGKvsXNe00/kGIUWvXr4jd0VYYNDWoIZbBv/pGF0JzPJcf4C/\nSrMtK2QAqMO77NQfNBchc9la9O3OtN9FKc05G5XVg5KX2+3WSCa35CJTogMk\nqVFprvZ/iusDPg0rpT0f957gPd8L89aa+499PqfM0CO135+GSxLfTDr1oT2K\nOYPl6CshSNmMQo5SaQxwRV2KiHNA6r8NFfodtFjdyz3QTGN+2FWaC6xHncXz\nIAGJ4XffLOvPhtiA/dV8cXiATXbsptPVvV5kxYdYWOt25eSkfCPTh0uxg3sB\nlT6LoneKnEcvJtbPzCLpujwvhj5R8T9Pp3B5BMFlGmK1JRMZgd7S1Fe3xJkE\ndw4dFf6QXjs0AyW1ri14liFYDM6UCwI6feu+DvBnCv9vH61XckCiO43soQVl\n1lZxSvHnL4NNckvQINJW6GokgD01f98Aq1mwg8rC29GphkzHpezxammZncvh\n3TPOSzi0R15gfTPqThKtcxPyL3GIJ0suYmXgP4WDjFh88BcdPlaQUYBs/Tph\nX2QA\r\n=Dz+h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDD2RYrUMtqRtE9r2RzZBckPxTFKpGvZ8cbnWio4ORnmAIgbxSVQqGPPQdgj793hCqgGbLC8dS/wO/hxXDpKZfPRjs="}]},"_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-image_0.4.1-alpha.1_1608165496413_0.4192667313675933"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.4.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-JTGugRsm25fKETfy6WTPX+vZRf6BIJqA8Tl7gmiRJfSZwE/ZwX3ba7u413nmsGz0VCVNFCHiMdMDexloVYF90A==","shasum":"57955e1573cf9491bfe6a6cee815fd31263e68e6","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.4.1.tgz","fileCount":13,"unpackedSize":14118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2qn9CRA9TVsSAnZWagAAedcQAJgD+h4Uil1UwgBd5+MV\niaBlPdt4TT78GWjGLBOuB03Md1M8OOgMXxaCuJUZT5kGweTtm63sdl0X0Rvl\nIYgzgT5cZvRf0EVqQvESgoPe1dTZeanpNz1D3erWaltnjJxHwSne4xY4+Ddv\nuiA+msalQ742o/qaPDEUOq4lE9FFMHlr0yz6YD032MSNwoYpb81xs1aODfr5\nbAJlyXGZx2YJPZyXb1e+FRb71/bPr4qwuZRLUnXQeeLcNANesKx7tzHTYLbR\nyhdeWH1W0ApyK6ZOhrO0HxG+5+FERI+tPZ370E4F1TQ36BIsFeTeWZyXdsjF\nZ85KImxHDzMbR+Z0t5ZDMwhkn97xFep3rAR2IkOZCvtgPKr2ggIVG7BbjS2d\ncdFx7uCQ+k+eeGebbKgKPOcphADvsSYc5StL+2zsfvTAfZHrGqcBdCbG8psL\nDFYtasTn9dwlHEb2YTZimOHaHlNd2Lcc0812rHWC84kH1m75uiMrYZ+4Tpff\nbTbywMsy/1k5xUauHvrn4ygAnoN7oF1IxJLSz1TONuCKKX34AIs5m2hezoHy\nWGkqvTI+xrhWX+OSH2liHt2o8RRcobki/AMOmLMAxAg3mx/zkO4BV/+SMwm2\nB1Xb/CWzeMl8Iwm5vm57+LIC0C38dwGAP1Kpb97tUOTVe26/blurhpM7rDlb\nMAjW\r\n=wkv6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiS1yFGkRieGu2cN8gVTdnrGcfOmN8Em9QxeWxNFMdMQIhAPgmQ8jOSurlG3TQLu7Mny5mamViJ/r6NqMNrLM0QA6l"}]},"_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-image_0.4.1_1608165884580_0.3809750379259438"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.0-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-Avpl53LAEX3s/gnbnlfxrfAFzX/y7QtUn88A0DFxffqudqe/I8LopYCwLilMPnj9dnpLDVGV81/2myBGuZ438g==","shasum":"f2665813e22fa859361f765742edd052e72d2e9a","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.0-alpha.0.tgz","fileCount":5,"unpackedSize":11238,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf23hkCRA9TVsSAnZWagAAoRcP/AvPePtiZyxQJFcuGSA8\nV//E+1qMI/ZeUAkCVKj92ftPc/6zCUdz+6gjo+Q8dwgJiAXStbqqXDCLmno3\noUX89aYNXAm3Lq8FkPjpVwSUOnS+IQ1906JFXAWQ2EQ3xuVCcq/gNrgF957P\nAgZj+eAeBp7L+3916PrpXdcdNB0KnM2YfVAjcSRuZ/3snDpt2kJQ0RLhudCF\n/9G2BXbIU0xa0CWUdc1cZtFkJM8q7bgIyEZZddMdIOWGGY1Hc1c9ICGA3xRN\nMXic3jOJGsHwp16lt3GcHngBASUfIVfEl1zJ/Cu24nEScRVvJ2ePlor11hUe\nzLFv4oBQK+uaGCRrigLUwR3m3QoxmCVx7tSUHpxDoQZrpZHm7MG1jH6phccO\nbSBFukdJTUdwYjX8X9DnlwHsvnnw4Ev6oPJJ8r9KxFjrN293eUW6NpKw8gNZ\nEEHIDn9cdtWJLZShBlM1JMeHw8v6H8Tu1hR6rHTTQJ74hL2W1rgNdBTNq1Vh\n8oCEQEdocqemO4ZawLXI2YxJyEQxxyJCC7LZtTjUfeQra9c6F4JLbnFKIgAI\nE9sFMl3xf9FhypS2YQN03Nimx3hIi8+G0VpuuSI5IsbG3C6QBBirZoe2aisJ\n6WejpDWSnBXuKCj23xalv9qFxOWcYmw4HzJYH617v34YZqaleKb0JI1KE0rk\nDMFK\r\n=1EXF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6HIZQPwv10Fbv4Jwbi2RZwqINCE3wKRXojjFSUvMJMwIhAIoo3cBubPhGtNMfYBsPNsR/lHh7tORDSL9FwW7ijfH2"}]},"_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-image_0.5.0-alpha.0_1608218724082_0.6158523214760054"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.0-alpha.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-jTMEcFTGlXrkhDvQV5k4/nhTG1MpGAgchi3jA7uGUnNsNvHj3b6B5E7Je+51EkbpaMqrzs8iowWofczedhs5Rw==","shasum":"41f3e12fc363a11708958fd2fadd49d09d89f0a3","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.0-alpha.1.tgz","fileCount":5,"unpackedSize":11456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf24TJCRA9TVsSAnZWagAAULoP/i7bprLscdfn/Ss533EQ\nJueupHmZQBx+k1qCaCuItrZI+cqwPXQ0yrjG+Mi9EeaWXzxaCokMTKos7Dox\nItIR+c4U1Qlz5AAa03a8N0+S4ajCzMkh9qtXhk3K4yEQwYqrMRCnE0MxXUTm\ndYBc/XdWDte9Cc86wUBIYPTdBFMSZzvgpM3lkwqggnRkgxe12hn9FQBEPDgn\nIKp5F1fKdWAooerkaV3JUqPsJErmvmFomNffvJcKsF6PNZdabGgDyQzGdGcb\nKdTVCGa7FX9ZHVh+TC8tiyKd9ci8jce3Uv7NfiUSfwAELyfPJhl2n3322WKw\n+eMasPxTATEZ7p8z00W6VQ5/pNf+SA35z2OKwxYv9UllkrLKR1MyJJvRtT6u\nw6O8KQKOPLJ2dQYBLr6yPJLf4IIi+Bm+M1z13X6xEchYSA5a2LwDbYpiF1Om\n0EoiaC7CONxTxN78vjQkmNsGhomrfFz7Ircyug3k0NK2zLTZsp6nqNhvslVz\n4ouYKfssCNEgVFbypCJ/80MsLra9efRcUPFiIlE9vB8Jq+/dUxn/NX4smZJD\n9TnUUuUUPyyJdDcqqyU8b1VEUwi6ZpB3NJOCcuL6oKanY4bkIyq1bosiI/hM\n/arlYtKGaemT5NKm3fLVUYbDshbMKyn4mDby/K5m/5wvehBi5TQe/rKY6wWu\nweds\r\n=ukbB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHxOYmGyx3yf6zsdzk+mx842id4rRwIJFbzYUpBMCodkAiBLqVoosV16QX5WHEPcsf1Ss6NxBmdCkoqNI9ccZt9w7w=="}]},"_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-image_0.5.0-alpha.1_1608221896756_0.9671181848930517"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-Dz1DkhbP4nGl9YztTE8+utn4VIWxghv6K5jPpiFWAzL0+jZ5GHkgUjqNUgJbOE+Ndjy/MBfLjvGRxB+DF5RItQ==","shasum":"76d285a557042dd89d6b3b838ef77eb6f308fa54","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.0.tgz","fileCount":5,"unpackedSize":11544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf24lICRA9TVsSAnZWagAAzn0P/RR3whGdvS9BCcUnnby7\nUmfEjgsk84yvtqttGeM0h9i+BJ+ck7vgfnqA7dYjteeoz1r5LkX6LqT7qhx4\nX6Fdmaf4Dm7L0lDZrzT/gKad/yvBAk9g2MzswxR6uI8/6lQKedp0I2f5iow1\nETwl+bsbUGD45MRUCQXU6N6/HjRKFxMxvfvtRNkfaJeS9IVMuh3uZkmr2YSl\n9VAxS/D8pzx1rRhPT/VH90LdcNzBZIkAmoZk3Hx3EmlD8JGSynUREORflv52\nViB/Z4H9+f0gUj07Gg75huKDa1rNp2PEedYQ72JajoZFdnrZBREUtMJSvzK1\n62VHHu/PFCILM0i/G1dEqz1LEwFOLO/cSru2L/JBhbI6tCb4xfrnDwoRXxO8\nuX/LDP3Z1Ii40GcUs4U+7zelEeJ11wfMrBjDHXWsrCBgXlw9eIVaN9M3eMBk\n9hNtEs2pZLPk47tFfYKLh9XOd1HONAqrw5JF5HOCphBgY3fNISWWfL2HTF3d\nUZvZLKNbI3CtWAOw3RAJwRIKYBisAU9ply2uChMNlpNS7p7UzJLSOuJuKfii\nHsOPrcYUFrMhwehw4H3r37DbnwZCCKnL6IgfmDxSu/I0Sm+KboA+XLXQlIRn\nCB9DEVRuIW30cZhV9pgq+U6AbfQzQ18dR09UVjI0uyxkP7WgwCBSRokf1ayc\nB0of\r\n=THPL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDp2b9Zs/SUaDrUZuIkl6ZFchaf2Ad3Iv87/24BB/vMQIhAOrFbBwn+OmkFJUvnXkb3ZIYG3QN472w4jYJsbz6bcPv"}]},"_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-image_0.5.0_1608223048196_0.19301681870825926"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.1-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-m0wPjuYyO8CEqlhdzgLzBYly/cvMAi3Sig1vhwORkkJ2HbCQ5xx8vkTeBZF4MfSu3avaFIKZ6OQ7qaf4uXgrxg==","shasum":"1afd53141bde0da95eb47bb9737733d303515ce6","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.1-alpha.0.tgz","fileCount":5,"unpackedSize":11657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25BcCRA9TVsSAnZWagAAlawP/2sOjFNQtMPcmzlBnjmV\nDtQ2R44+NzB2nK4n5XjksPQtrh01eXQHEVwj+mn6QNRks/5XGzKb87Ilaq4J\nrAu2ydS16CzZWPvrz1RlNHovZPJ/2UxzDEGVT5LvcfLUSn92rJmJ3feF/TT5\nl1R5YH6zQHdGfO+wyhGkHKlyLfOMYKp5kL66ASSNGg4uOZ9QY6FqoGOTxrTZ\nxTHyg2I/lQHmHiTvFSjHO9imYVs8X+nyuF3KOgE8/rJCRjArxBQUX8cikMgw\nQ3SYfIvidiw43wTk08A6JZEaubv7BSntq9y4vufuUxwE76v+OIxg2ksii/WZ\nTkjsGnlD0+Jrps9uO5OnVft1eKebhqxh0DPZDmZM1B+XeTNUCk7mwKvy51gP\n8fg05vpZFbMrDimYirRO2al5mfixOVski2cx1xRt3lmvrAuAEe/dPFo4E23t\neCxK57jDXq5zmJQOZ2Q/FUWqTAsqXUhgV5KenbpziutLEidc4tg6wu7s3h8t\nIdXMkiJHDJ4MrSDv2yt2uwOTXVMZ4Q1wDwXMVaLZcQMlrX0ZOs+VJw/CUPgc\nCRrpmXOHZyWULAw1/Bq4JunccWURkJe+TI//T6C8vIqwhIMHML+CiYi2+SA5\nZhhBai12P4c78jKIHiMkF8bUWxxt+EDkoplnobnuwcW1a5r+JbNjQ+ZHhW9z\n+/S2\r\n=PTre\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSZylYEDmDoh+hGSVVqi+8NOE4rJYC04Eex4foY2TlKwIgeO1FiA1XkMw+vW0CVcMvGGpzCo9mP/ao3kUWrLbaaRg="}]},"_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-image_0.5.1-alpha.0_1608224860174_0.4515671047299228"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.1","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-874X3YToi4FZHtUzJsXaq8zQNd3ra5MuNZY6/7U9VtKJEkIvcwKnt7v6jGqgvfSo7O0CKYJMxR+aU24+bS5rPQ==","shasum":"3542c2212fc10e70ea65e44c7d0e567ab91d667d","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.1.tgz","fileCount":5,"unpackedSize":11746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25HGCRA9TVsSAnZWagAA5aEQAJigOtcdQ8l/ErXJWUPl\nVGEjVwlzd5sEVanl6+zPffRbb/XGjRGgDE2cM496H18MKm3mROXm2DyLuOry\nz6V44TRgPCtSkEgdz8V+OV1iGJvZVPTKXjvrKFWgsVWZKPJSkg8QUrQb3lq2\n3jyTVm3uGxcmyieu1xCXLIlU7SAYtYPwKgnWANXKxhvpoP46KiO1fYKfm0xX\nmY4hnYFrfhGAiT1hox0UtGiK9WQarjbWZM2nboyPkCp0zpF52Nr941NYqMQs\nvROGTZ7cGiaikPMsmDGe8rvLozyxYcxdiUcJOFSXOyeahoUaL4nmcuBjRTvc\ntFoLqMqq8IOdW+nC7tt0zg/OkceKeizE+yRf8IWZ6u/erJ1YQ7ckE9xWeK4t\nm+G8VlqHgVwHO2xccdQnwN/PxlPYN5Bd65hE1awzKLhpA+u57xkmQQVt7Me3\n/OgMlhE/2mt/UauJAR2QKm3VSwrq9P6IR5A7yMzP1Uh3QT0/ZegUPXXatETa\nEGlyRt25DQyO32m19++VBvJXGHP5oVTueoZelGxaIj7l2e0e3feB78QPo3GK\nJG4rrLXm/tzHPJ0vQYjbqzu6AUh1/t+PMERzbnZHJsDLuJSjkJd0q2IjGc0+\naK1UkgPLEBgMMaMSDm7bqT3r0rCXcg6pHMhGttQRtzq2te6W49s8cxB/96DR\n4aYI\r\n=O3UN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoZo5nYCfuBJNFRpsgZda1V0jvdUvxQ5mHn2DG9nHr7QIgY8hjw591X/NUm9yK4skwJoQdci/RyMxnGTbyVLoW8VY="}]},"_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-image_0.5.1_1608225222136_0.04729295297647651"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.2-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-jq5Kokb4weBYeoop/s8UgOsIA55By7Z7NEiwOqih7LZdqPxQdjLRR+4QjBRcI61E0EkqmVJCPvTR6CpYHm40ug==","shasum":"953183d2f84428d60c855bcd60f145951cac6bfd","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.2-alpha.0.tgz","fileCount":5,"unpackedSize":11859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25arCRA9TVsSAnZWagAAxkYP/R4AnGO2qysQGhs7YC6W\nk1jNorkKA7SsL67TSiSyeZaK3LfG8P/0am1QYxL1HSZQ2l+mtOgQkVPAOsps\n3H/qrFlqyajSy+Y8DRVPI83lLTuAyQz+wH30t8szuo7xWbQshxTW6sSeAr2t\nIX/yvsSBXb9g6HnxsgD5WuvDSKHe3AoSkndYk/737KdPySl//juE6FMwR7rY\nWBeVcBm+sB1S7W1bgt8/t+hEUTDQisMB6y0YXkJ/sdhlHO3IcYuaZDIx4VzM\nBhKRzRtbWVYZmiDgu4Q8ompOExmOWPAJNgcZsK87yOdbhx5Mw8jNHDZ4elrC\nW986uhMhO5nqQ3JBjkMXosNq5jWDUDPqIsNJyIn1NbdaqAsT/5wztCqCJvXC\nnMFCDnzvztYVLYTHFuMA0YowtnDpZCRJW/sM9HYy643HZA6I3atYsYII++7z\n205VUnHscostTl1MEtuOdzF7Tsr7NA0T0/6S+fjjFpu8BEgFXM7F88aIFEad\nGB47Jqy0xhL6CJTyexLEjTp+GZF34r3GKuHFEcZiPKvEui8lGHK+OKkpr+q7\nTx0YBVgVmXlmGYQ9UCFZ8z1nrkpm+SDJqk8Ll1Z13wE79n7cM6Zywl+RXPds\nRsQ8NFAY8sj2akff4kspXTwvThAVYfBbKRtk05LYxETFRBnU4q3CbTnfH7um\n8USw\r\n=2jfr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCifqGO/holBJO4h1DA9ahRIE0/r17zp794P1ZCUNa7sAIgO3IIw+T3nKYXLoBwISAtyIEDNuA/11XcBMDZMj0Uceo="}]},"_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-image_0.5.2-alpha.0_1608226475021_0.8755514100248625"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.2","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-i4eRZZE/p/pUQ6M6Yh6W5zweZ//U+ZYiQ4OJnpZcuwOEA/lMDBZrA0mxll14UX2LXALEIEFRQoyvELxQSl/UDQ==","shasum":"498ffb0311037afe1bc3ec854fdb424b73ad2311","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.2.tgz","fileCount":5,"unpackedSize":11948,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf25eNCRA9TVsSAnZWagAA+vIP/RVwVqraSsQqWAQJpPYx\n7h2sfTK5gDwgK06p9jeqOrygBtIDOe4ZzafsYTOrUtFAVwQFsv5iNXeYkKfr\nmDySa3/bFmrbBvCpw5lYCQmtccyvZmiivahYHYb0C9zD8fLmMynYjfemkyQZ\no1+5I5208sGZynhyvQTI7eGVxaAxHSE/92rn6LsBfzhWfsGMM10Naup1QKjT\nKF2cjtYjz1i8mH9DMWlcWifSkj1HBN65yVQ3K1L21oqeKPEvTkNUTIuPNYp9\nle6vnBB8UpIQGiqohWFEiyWYfvthTT6AAbethLNp36O/k70hZ8I6k2yjuxk2\nHXewIXRjpNZ8SWYbmal5NJ3dxI+1BPspYyylR5jelBDxx3jqCukYOrjNBAqt\nQvUshkHKcg2LvEwFFAMDIzuGPCwF6m6PBZbaCmsZhXCk/xEVgxUJsLBie7mZ\n8WochzdKIJf5njTyLKxK+8X7USs1k3+uc+EyeujZLpkPCYuGG16JTNFmA/Tf\nPhlAn+waoUdmnw7HxJyZbl1QSyVGrl5Qudsj/r1lkmQm0IbsvfWCQMFNCxfa\nWuBM6RXnsPAdWeCUXnU5WDS3W74pP7GAZYspEI2ro2nhFgLY1WJN2u7kqHUM\n5mxPmJ9JDygkGmhF4h35RfbtTWiLdBIzvoiz8015zsXOvQR6ZQGZ6HojL+93\nRrys\r\n=p/a2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbvECeb2KwAxO1BjPmG9qONIkpcwPHrSbr7k3//E5c+QIgD4bmS3XuFqKDblDredeCKg8s+U0W/ri3b8WIuFS+M1U="}]},"_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-image_0.5.2_1608226700831_0.8902760947089103"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.3","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","dist":{"integrity":"sha512-owZ5MIPgt05cKND/8BdfqeTfx9bvLava9V4EazqPZrwoAAl5tDV4IbornrxzoN+SwH4PWYY/CQ5WtzfA1pdE/Q==","shasum":"3e9443b5f181207e6676b6864ff5e2986871f386","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.3.tgz","fileCount":15,"unpackedSize":14825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iSHCRA9TVsSAnZWagAA804P/iAB69uX3NoI39J4xuxW\nDkfqphH7vA16KzYtUr1tRvE7kxnSx+t7Domjoiodyp2EGVDvKhHAo00mVwaj\noBy2J2k8auOtbTUrhy/evrbMh9N3/TIKm6uThuxDE1MPJB4w5otmxtpOlQLP\ned6KjKOg1o1UZttb35TDMdKgynDFtCQtpKA5M0sc0Qum40bN8mNNcdZ+y7ki\nZfmTGkP+x/NJf9Tlvy5DzUcvi6QEitaJFsZSIxTMecUqckYAQ6Ej+7lFYEEi\ntukiD8xvz7kswf8zYh7D8Kyyb9oXTIZ7xe7a86mFmViamdTkC7agxZGV+4Li\nNBYvMEuwv68S5MIDWnGSZqkaRqvAjChvfagTj8HU2pgnI8JvSSV+TXMXyp3/\nzHo803PPDVzBzqfqyLmWfzNShXNG9UwtMUozWa+bbyS1hXEF2/CePChhkKFU\n/TCccV398YE2SN2ZtFGjSUD8U/RfKZ5JOnFVjxN9PUkFZehLG1c/Kou16nRf\nteVZ3YXtivNvMpuGFkXWIoaidJkmduvowYQMFcQOTt3Cfz+P2GjW0yrPxqLM\nWDo1ofoU5RraGlWu860c0j7E8FnuhM+OhuNtiglw1dojR42cUz86Qp0f+lS5\n/QQz1Ep1CM89om+i9zGSs/KEr5qhnJTaqOjkSzPreeGQt7NhnH14YHZHq1T/\n7HzA\r\n=rQmY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBFJAGD5lEcQuEY09kDY3wu9gYOQClsEzLPlfjE7WgygIgE1byq/xrNLPniFSLoVTBIqfRPw+Ik6fF/yid7EiJHIg="}]},"_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-image_0.5.3_1609180295159_0.3737141896061038"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.4","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","dist":{"integrity":"sha512-WE2qmdoqcfUypDeUuzYZPTAQVMh38PhrAm3q8fK3o5q7+weFOSmKmmHYycBS7b7WmCXeGe3zn080bZoGxnc/zw==","shasum":"509ea7cfedb99d3903e13211c4b7714f37600cf6","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.4.tgz","fileCount":15,"unpackedSize":15043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iURCRA9TVsSAnZWagAAlxgP/1zKmbM2JDPO3FxQ3UoW\nhmq5uZe+IjqI3DTaCVlCGtR1r95M4Dg7VzvqpCw5MqeKg/FthPaE5QbxGWZW\nf4+LTK3omJ7x8np3qTdhFtc9LkWHFxpa3oO5IcfY1xD8uJ2qPXaoPuprN9Ov\nmd1/CI5uXmrSZP/T3LZAnG5W4YZf472fYnntHTH6f45/7vWrkLFOAPd7sxMs\noYDtP45EU5Ha3nGPkhGMODZRWDbpqr7npHE0zOF5XMWB5FL2CJxEzg3aNxYK\nA9Gpzy4kqQzUP+L7h5Y1I1VjuLR71Cg2KdlPHM2xuoB52MSk4mQzZ/1Sq7aA\ndQDmKte6VhcaaZ62gzmlepXKyvllEI9VFZvsvAWTnuR+3RugHPaCcx8FUx4E\nMqG3k4ahMA2ioDKSVG432v5cshZhEwZe05RAHj6SDRveu3TKffd4nQvBcDha\nR/9SAsfxuiZAv+xzZs57shClNCP4CCz/0pBFpUjlbebI5STJDjZMTRYLS9zz\nXEoyTxivLBOFxpJDDcEVOdgDoLY4xzQF3g8Y/dLM0bBsvCzEmxZMjV3LvZCf\ntXbQv52Juf4WfyQkxFRoG9wk6WzZ8+NyqOLloZVJjeyRQFBSyBNaK0dBsWXc\nHotK0YLBJlaaZcT0yocbAnHXN8rQEaHGEfBAuVne4HQwNCH7OUx80s14zZtq\n84K0\r\n=loCj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgT0ivsgmKCg7MXU3o4aKCZ9mDiSHvt52r8WKv2DQ3/AIhAKUba7T3R9zSTYToTa/x9XD5GxoLwrPvxHHTlndzUN2I"}]},"_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-image_0.5.4_1609180432856_0.3967614102842796"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.5-alpha.0","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-GxA/PkxrV0TIFW6I3Kbx2HDkoJ5TTHaYcX9ZS7F0VSM7wNGo36d/AldJ0O3hVBHlp8exJmiUkKI2e2Aj01tkRQ==","shasum":"e5d32e7fb41f2b68f3b5070a0645dc46bbd76f65","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.5-alpha.0.tgz","fileCount":15,"unpackedSize":15248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6iyhCRA9TVsSAnZWagAAZQgP/2kCOo/Uk4lONjCnYOaG\nkdIs1cUxZOKpb+Zlbi8wd3OJS6wZSRPUy9jyAbCi7vOJMZO9Qx/60lMpJHMt\nWdUIOvNCNcmgO7itl1Npn/qBvApw8LBWcpwh0JeEmeR0pOXqkv6zzRN3To++\nTdormpdYP7mYAmISdnjWt+2oBhRl3BgG5ud63v4TqZPEYB/uokVtcK48sHE5\nSIjxHRl0wTiVyXeRcP1flpFDtRFqInZ9S+tGwwtlN2+sMIFGKFJ5H6BAE7Xf\nX/kBnwg8F0s8a/pNVuK6NhiDVCPjkgRIw5oduBudmZ1zQKAJBKFsjtJOMGkg\ndURdRpp59FOb7dS9JpjMpF+MQso1Z8TAWtHpGO72ZJFbvXLuclaKgTGRXdQp\nKp0vbH+r7PNjFfbV+SiCQum2rMXv0vFfAAVA8JKXJvj6Po1sSqYt9sLNtAmm\nfILILu1snKpT+AHuujm1oZrBk4eRNAs0zW4e0e84lFt1TfTcy9/pWsaqAwbz\nq4Ru/Bm114H76gIPThZwCfGgm9FgLkCIuKZnKv2cDEj5BNJKYEsFRoyB79//\nz1fhvcN0ticNhZpeK+FE9tzfAP/MU1IJevqYlqrxQvwTcUg9c39RaMDhq54o\naY9sgBPxmwz0WkqrUMcR0TVXhKfQss2QcXFjN8b+X6tuyn9rE3Q4hAPSb8vR\nZNEH\r\n=TP8s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIANTDq/Un7ErFe7lzrwjyHXR42jupBH0ZqUKjZSyO3egAiAHCssK3njbPW//TkMf/tG650rUNhBartG4Gf24AuiF2w=="}]},"_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-image_0.5.5-alpha.0_1609182368924_0.5626376639382198"},"_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-image","author":{"name":"Maturen, Aaron T."},"module":"dist/monofun-image.esm.js","size-limit":[{"path":"dist/monofun-image.cjs.production.min.js","limit":"10 KB"},{"path":"dist/monofun-image.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-image@0.5.5","_nodeVersion":"12.20.0","_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (linux)","dist":{"integrity":"sha512-M2Ydi9tPFtM3ykVaIlNxKhtslW2T8+kLvUX4Q0iYHb2Zzrgnowi/7xDQK06rFrbH5LDBHgkglpSK7S3J2YckMQ==","shasum":"f5d57964a75bed9e72a7af5f369d57441a046c01","tarball":"https://registry.npmjs.org/@aaronmaturen/monofun-image/-/monofun-image-0.5.5.tgz","fileCount":15,"unpackedSize":15337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6i23CRA9TVsSAnZWagAA/38P/0hH0MEW1qbhAmF7PEMJ\nVmu77PkhygdTD/+TizSyYvRinlr1he9hbwxL9bzLduj/pR0DNOwxNgdWBNIf\nMoihGD9IIsP+4YoV9vGH2/zHkow8yaQ/6M5x4UpWUXJ6TGdvyjTSEowmp1V/\nXERyjKDAbxK6r51EwCSti4/7fEBsWSAWw0Y8KNRdT572U0+Egvk49dZbY5K6\nLC4aaujkjk48nZJIYvGxs61PFy7rnLoH/m8MBwEQbT3V9w33bcPqJSm6PVs2\nRp+3tvsucQvFsfQmbLVMcduXiaMXmwso0atZfwoD3LGhO4eiT1ps3G539GeH\nJafCLxExCp6cui46stXuIuvMg3N/QvvJ4v/At6XWDrgVjuZWcZuSIbHRPDmJ\nZZsVmXI0BlcRJUnZ5O6yFUFqt3iqoO6fzxwFHkjWWb+vsZPDlhCjCU7Q/08w\nfmr599Jq4p5Orfk9Y/ydtrSzgmO2mI2z5+Jle1bSb2Sh8VmvfiArhAB+oZ2c\n8J4rQ+1NRPDAI8ZwT/l4AKVIXFiYuzpIa/wnC4oBwOjA3gow/ms/XwaOsAIg\nZnBdiZ4S4hjfys0iLa3lNUy9G5uqQysppAKgfuXpuYuSZQKOQmyQubVudFY+\nVZT00N82t8CPxbnGXl9PbpjwQv3PrBUojqVXln9yT9wHv7TydGCyUsSodjmm\n9Ama\r\n=wrQx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHMikGbi16KBmEJmoAwVyDlfhxcWMWxWK8uIBbIMMtzcAiACV1LY4UWD8MDcqLYGJEYByHK0S5UrAgpgWqMEcFJkXA=="}]},"_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-image_0.5.5_1609182647253_0.6241113680139876"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-17T00:38:16.368Z","0.4.1-alpha.1":"2020-12-17T00:38:16.561Z","modified":"2022-04-04T10:55:43.427Z","0.4.1":"2020-12-17T00:44:44.723Z","0.5.0-alpha.0":"2020-12-17T15:25:24.182Z","0.5.0-alpha.1":"2020-12-17T16:18:16.911Z","0.5.0":"2020-12-17T16:37:28.337Z","0.5.1-alpha.0":"2020-12-17T17:07:40.349Z","0.5.1":"2020-12-17T17:13:42.348Z","0.5.2-alpha.0":"2020-12-17T17:34:35.142Z","0.5.2":"2020-12-17T17:38:20.972Z","0.5.3":"2020-12-28T18:31:35.274Z","0.5.4":"2020-12-28T18:33:53.053Z","0.5.5-alpha.0":"2020-12-28T19:06:09.168Z","0.5.5":"2020-12-28T19:10:47.377Z"},"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"}