{"_id":"@becks256/clsnx","_rev":"1-f7bc46cbf1214b7754c58995f707d996","name":"@becks256/clsnx","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@becks256/clsnx","version":"1.0.0","description":"An ultra-light ESNext approach for conditionally joining classNames together; inspired by JedWatson's classnames. ","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Rebel-IST/clsnx.git"},"keywords":["classnames","clsnx","react-classnames"],"author":{"name":"Dan Becker"},"license":"MIT","bugs":{"url":"https://github.com/Rebel-IST/clsnx/issues"},"homepage":"https://github.com/Rebel-IST/clsnx#readme","gitHead":"670f72ac376e0bb9b8092ec8b33d455da3205caa","_id":"@becks256/clsnx@1.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.13","dist":{"integrity":"sha512-uM8j1fPDMpHS+MDsOFsT2iFsX88s0taKBFhijvchIET5+nZM/JhZy9jOqTAvbWVSHLyS16fWlsCSSa6HqnRHKw==","shasum":"81aacee4087d591efec7a6c7eee9da952b674c32","tarball":"https://registry.npmjs.org/@becks256/clsnx/-/clsnx-1.0.0.tgz","fileCount":4,"unpackedSize":2312,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGUYTniyuyvYbXF6QeWs/GkakyF7breeQ1TR8T1VXqKYAiEAz02DtFQhveI5MYhlphIiLpYciSw2A+FRmO/gp5p6ILo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRbU9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp04A//T9E6R2IESpLtscgBGDc+AJ3U2x+UdSSJ7RSJOjo5+V+08WRl\r\nqYlsw10MwByNfVDe6uwTCpefkGKplV9ltEzo0wMB8HZKGYsjdTUgkUVwMFDM\r\nu+JzYw0V5EqhIStRzE2fQlwosk/Rc19UJlfRN1QP3zJmc9ORkajtXni6cQua\r\nHi4+mzwAKp9AS15viuwNWctBkuZXcmWXAmCWfLJucvvzFD7RX070cJVlUyGR\r\nsEs55gPWQG9ZUymicR9N6Lwq9aFDfr+vXe+IGSLE/9oDROybRppAAtytjA0U\r\nD+fA5XItyZjEnFA0+B3qT6pttiaj48UoJLQ61sIxrwglxfdsyQibEjVEUKSL\r\nC8lMKBWE5InLkDlAXfB/FqB90KMeQ8ImIfoH+8M5IIUNEKMic0dh+p18rRyP\r\nbkkaZ9noa2yqO+toh75t4p2oCPXbHEWyhujpP0oCcC+MEr6zm6Q/UnNz0uKS\r\nVjm2r98hg/sOZz5KJFaJU8VFct41OcEmWi1aHRXT9Zq+0ZMwJ1Q+pFBeX4yO\r\nfW1Mu/I4+AJgObA51uY5m/Zsy/AN+2Q+P4T9RalB9D6vtTgCNySzWFTOFr/D\r\nWeDP++qPsQKXVddDFHtr9KyEQKGLOFCBK+3mTLpFW7YnGuCOtnB6uBEQnqn7\r\nsC4omB1E86yrPZUMzx2NtrKQw3VQPMJjplU=\r\n=wRrV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"becks256","email":"becks256@hotmail.com"},"directories":{},"maintainers":[{"name":"becks256","email":"becks256@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/clsnx_1.0.0_1665512765041_0.3422335297791843"},"_hasShrinkwrap":false},"1.1.0":{"name":"@becks256/clsnx","version":"1.1.0","description":"An ultra-light ESNext approach for conditionally joining classNames together; inspired by JedWatson's classnames. ","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/Rebel-IST/clsnx.git"},"keywords":["classnames","clsnx","react-classnames"],"author":{"name":"Dan Becker"},"license":"MIT","bugs":{"url":"https://github.com/Rebel-IST/clsnx/issues"},"homepage":"https://github.com/Rebel-IST/clsnx#readme","gitHead":"d38812889a4856a17e03db7c39b897c086820342","_id":"@becks256/clsnx@1.1.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.13","dist":{"integrity":"sha512-uLukf2TQ38kzAFSkBAi4gif/AtHUHxOy6MTq9kKfKbenvgQCPCTsugESZlo80IgULJwCU+PDa1TbX//ySp4ZOw==","shasum":"612bcbc734dd6442434270018902ee206e3604bb","tarball":"https://registry.npmjs.org/@becks256/clsnx/-/clsnx-1.1.0.tgz","fileCount":4,"unpackedSize":4433,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqmjFJBcL2b50q5/owc1yD1PZLnDJ/BmbGVtZILnloEAiEAvl1JH7sy4Rz5kp6kBIEXf+M2AwquzM6bMBpc9DId3qQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRv+rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrv1Q/+N3w1Bj0PUKVq35FeLbI4OsFoENPCfAzvBFsjdO1Meuv8TWXD\r\nwPeaUK5orLooIp/bgQGxEU5dVWZm3f+Uvndj+GeoIVRtuy72BcBvJIxxEDzM\r\nsrIEe0moyjWjCEKQevGxFR/m9kRYU77sg9UA/AswOBC94V57lji7cUA9eIib\r\n+LDOI4+sZ6b0KiGUnOMNr5MvPrkmOh6544sBbkfRhu2bAyIP7KTtU8NMKTCC\r\noutGPF8xYGU4qDT1JbFOsZR3nMcc2QzhL4flS6J2oVuhPu0mgHN1uYrH2U99\r\nfFxqS9W7RFX75O5AN/1BcL3IyYCP1q3kE1LBRNostog+ZsuRfYUInNybKrYl\r\nU2RHVWLU89rNM3zy7qkbUU6WYdz/gv+en9pyTvcLeQurBvFN7e0UkdFze15v\r\n1kAnP8lQGqrMo53EJIhxqLi0UsRTxzJTPx7OetWMhN3i/efhqJvQqWqdoaog\r\nCPA5ndfcYfVG3dkmZLJVYGkrNuNRxvXQmismVPyY24yxXpuDTNSQu8lpQb6z\r\nLW4JJNrzWYHo/vR+QtvsS/3tKPpISWuT1puyLYg6wDCArz6YCQJYEVXacb89\r\nnYtR+Gkpw6f4WEWqbSSDz2o0Nv9F+0mCYv9fAV4H70CXghcn6ecQ8CeNYTTq\r\nS6ok5zHMczrpHSTEvAlpv/EjK2+rEZVsE4E=\r\n=3BvT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"becks256","email":"becks256@hotmail.com"},"directories":{},"maintainers":[{"name":"becks256","email":"becks256@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/clsnx_1.1.0_1665597355689_0.47521835548260105"},"_hasShrinkwrap":false}},"time":{"created":"2022-10-11T18:26:04.966Z","1.0.0":"2022-10-11T18:26:05.230Z","modified":"2022-10-12T17:55:55.917Z","1.1.0":"2022-10-12T17:55:55.848Z"},"maintainers":[{"name":"becks256","email":"becks256@hotmail.com"}],"description":"An ultra-light ESNext approach for conditionally joining classNames together; inspired by JedWatson's classnames. ","homepage":"https://github.com/Rebel-IST/clsnx#readme","keywords":["classnames","clsnx","react-classnames"],"repository":{"type":"git","url":"git+https://github.com/Rebel-IST/clsnx.git"},"author":{"name":"Dan Becker"},"bugs":{"url":"https://github.com/Rebel-IST/clsnx/issues"},"license":"MIT","readme":"# clsnx\r\n\r\nAn ultra-light (575B), ESNext focused utility for conditionally joining classNames together.\r\n\r\n## Install\r\n\r\n```shell\r\n  npm install @becks256/clsnx\r\n```\r\n\r\n## Usage - General\r\n\r\nThe `clsnx` function takes any number of arguments, and while any type of argument can be passed, only objects, arrays and strings will be processed. \r\n\r\nDimensional arrays are also acceptable and will be recursively processed\r\n\r\n```javascript\r\n// strings\r\nclsnx(\"class1\", \"class2\") // => \"class1 class2\"\r\n\r\n// arrays \r\nclsnx([\"class1\", \"class2\"]) // => \"class1 class2\"\r\n\r\n// objects\r\n  // objects with boolean values will pass the keys as strings to the class names\r\n  clsnx({ class1: false, class2: true }) // => \"class2\"\r\n\r\n  // object with string value will pass the string as a class name. \r\n  clsnx({ className: \"class1 class2 class3\" }) // => \"class1 class2 class3\"\r\n\r\n  // objects with dynamic keys will generate as expected\r\n  const variable = \"test\"\r\n  clsnx({[`my-${variable}-class`]: true}) // => \"my-test-class\"\r\n\r\n// Arguments of mixed types, including dimensional arrays\r\nclsnx(\r\n  {\r\n    className: \"class1 class2\",\r\n  },\r\n  \"thing-1\",\r\n  {\r\n    class3: true,\r\n    class4: false,\r\n    class5: null,\r\n    class6: true,\r\n  },\r\n  [\r\n    \"class7\",\r\n    \"class8\",\r\n    {\r\n      class9: true,\r\n      class10: false,\r\n    },\r\n    [\r\n      \"nestedclass\",\r\n      [\r\n        \"double-nested-class\",\r\n        {\r\n          class11: true,\r\n          class12: false,\r\n        },\r\n      ],\r\n    ],\r\n  ]\r\n) // => \"class1 class2 thing-1 class3 class6 class7 class8 class9 nestedclass double-nested-class class11\"\r\n```\r\n\r\n## Usage - React\r\n\r\n```jsx\r\n  import {clsnx} from '@becks256/clsnx'\r\n\r\n  const MyComponent = ({...props}) => {\r\n    return (\r\n        <p className={clsnx({\r\n          'red-text': props.isInvalid,\r\n          'green-text': !props.isInvalid\r\n        })}>\r\n    )\r\n  }\r\n```\r\n\r\n## Dedupe\r\n\r\n`clsnx` will dedupe class names by default\r\n\r\n``` javascript\r\n  clsnx(\"class1\", \"class1 class2\", {class1: true, class2: true}) // => \"class1 class2\"\r\n\r\n```","readmeFilename":"README.md"}