{"_id":"cn","_rev":"28-f92ca1b61237dd8b0f31fdca78505239","name":"cn","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.0":{"name":"cn","version":"0.1.0","keywords":["chuck","norris"],"author":{"name":"Djordje Lukic"},"license":"MIT","_id":"cn@0.1.0","maintainers":[{"name":"rumpl","email":"lukic.djordje@gmail.com"}],"bin":{"cn":"bin/cn"},"dist":{"shasum":"bb288fb634590681d227773ed53e8ff9219c670c","tarball":"https://registry.npmjs.org/cn/-/cn-0.1.0.tgz","integrity":"sha512-1gf3Z3u31y+K4Cwo7oDSNQS05nm/6PnNGheQ6HLy1Hx0kqanIeoN6x0Bigsx/jNJDWEhHjANk5qJOZRiG3lhrw==","signatures":[{"sig":"MEUCIGvEmnYIWnQFS95Un4zHfJGswnbG5KkxLd3N18Jw59tdAiEA91vG+gHUMrYq1Bv9dLNDkLpU6rRgsRMVqIsnXVUW9vg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"bin/cn","_from":".","_npmUser":{"name":"rumpl","email":"lukic.djordje@gmail.com"},"repository":{"url":"git://github.com/rumpl/cn.git","type":"git"},"_npmVersion":"1.2.15","description":"Chuck Norris jokes whenever you need one","directories":{},"dependencies":{"request":"~2.21.0"}},"0.1.1":{"name":"cn","version":"0.1.1","keywords":["chuck","norris"],"author":{"name":"Djordje Lukic"},"license":"MIT","_id":"cn@0.1.1","maintainers":[{"name":"rumpl","email":"lukic.djordje@gmail.com"}],"bin":{"cn":"bin/cn"},"dist":{"shasum":"d97926f6ca5a4792f1af2f336a8eff6abfaed021","tarball":"https://registry.npmjs.org/cn/-/cn-0.1.1.tgz","integrity":"sha512-PkWPdg4L4aQEwqqkGzMclTdHlstGzBg773gBtsUCHqXrawQ8wQHf/490Rw2hXPaoI7QXYbCgI67Jfe25TjxLGw==","signatures":[{"sig":"MEUCIF1qBde7tXGHBx+//iz9c6jv4D5v/6MF22lVIlgvCh3aAiEA9MA9GbExVNxSVM5uFXlina0wzoOVqaLXjT/P9G9Es3w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"bin/cn","_from":".","_npmUser":{"name":"rumpl","email":"lukic.djordje@gmail.com"},"repository":{"url":"git://github.com/rumpl/cn.git","type":"git"},"_npmVersion":"1.2.15","description":"Chuck Norris jokes whenever you need one","directories":{},"dependencies":{"string":"~1.4.0","request":"~2.21.0"}},"0.2.0":{"name":"cn","version":"0.2.0","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.0","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"8e4e309def048cfb06c6b0dd540a1e89d552e955","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.0.tgz","fileCount":38,"integrity":"sha512-V5/cy/bY90vmVLIVl/pmGp2HCpAh9w73dSrs7HpyHsddr6R4SWRJ7I1+gVd+bZRyo9qgBgtW3sh3Y8cpd6DEew==","signatures":[{"sig":"MEQCICwT2LsUus0vXXbZKPrcecmxD8QYN9LPjdS2cujk2R7wAiBXFdNcIyHdH8k2q6PwkoccMgaGVHfJhEDdgiEyriBHaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319532},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/9dc5f2416bbff8f681107c368f0fcc6f/cn-0.2.0.tgz","_integrity":"sha512-V5/cy/bY90vmVLIVl/pmGp2HCpAh9w73dSrs7HpyHsddr6R4SWRJ7I1+gVd+bZRyo9qgBgtW3sh3Y8cpd6DEew==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.0_1788265063708_0.07615272186693534","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"cn","version":"0.2.1","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.1","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"cf3b90d68487bec39938bb007dac38a7974d4bc1","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.1.tgz","fileCount":38,"integrity":"sha512-nXkKvwTTpumfnYY3zmu4bd1b35LcuoHwHXnjJp78HYRd2Y/fMO4WvOm9m8/9VBIGZNdTzjw+yJSgpL8nJhnTSw==","signatures":[{"sig":"MEQCIH6F/okg2gl10zRwFL4uFhlRrDorMNvY8UE5mKgugyMoAiB4RdNc50f9guFYA16NdftTvQN7Ttj0RFt8E5UCdbnLBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":320527},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/2b395e834733236186b41ff501d2005b/cn-0.2.1.tgz","_integrity":"sha512-nXkKvwTTpumfnYY3zmu4bd1b35LcuoHwHXnjJp78HYRd2Y/fMO4WvOm9m8/9VBIGZNdTzjw+yJSgpL8nJhnTSw==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.1_1788280980515_0.02061554996115489","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"cn","version":"0.2.2","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.2","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"3b92aa48431af76d122c0ae3cb3d9e53f862c51a","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.2.tgz","fileCount":34,"integrity":"sha512-1TjHp2yGdFzu5Td2bc2bnceh/WKPEvLYVtcg6czWSifHBy5oN/bK5/I0eFNIr839Hlh5cxrV93Yh2ByrpO5Stw==","signatures":[{"sig":"MEUCIQDev2JkiHzEDpo8yk592NC7X03vEAT8LYFAaXOiZaQbXwIgYYg8UEZGRE73kLSNP+hdbUwTUmacRt8PfXcGItQ7oAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":319472},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/fd16c4d6005acffef30d55b60aca9255/cn-0.2.2.tgz","_integrity":"sha512-1TjHp2yGdFzu5Td2bc2bnceh/WKPEvLYVtcg6czWSifHBy5oN/bK5/I0eFNIr839Hlh5cxrV93Yh2ByrpO5Stw==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.2_1788288642088_0.35070571627854163","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"cn","version":"0.2.3","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.3","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"5ff1cb0f4041aa68dde16fcf2d691439ac9cccd7","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.3.tgz","fileCount":34,"integrity":"sha512-z1S2v7FdtqcoXQzJWqNPBJ3KPG1or9FlefB0x+Eu8322BMmCSSVqzeI7itNj/6YRjyendnlWDJnKQkBhukT3fg==","signatures":[{"sig":"MEUCICVypfzo/vUDNmZZ+nGQBYgHg67q9lj+cqfL2RayXK0YAiEA22snR09zwR4dnY1X2e6D7ubhTynl7utHJsmtpKB8BG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325601},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/4313f26416e33204f54056eba79e65a5/cn-0.2.3.tgz","_integrity":"sha512-z1S2v7FdtqcoXQzJWqNPBJ3KPG1or9FlefB0x+Eu8322BMmCSSVqzeI7itNj/6YRjyendnlWDJnKQkBhukT3fg==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.3_1788311734714_0.6385774014677927","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"cn","version":"0.2.4","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.4","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"7965690707b2676d914cb8228efcfb134aa0090f","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.4.tgz","fileCount":34,"integrity":"sha512-SzQvoh5FwizWtQg9+JueKdjWhlfCZMdu5DqNHm9q1wUlRVmKb9WXlepR9bTTbPwzEOyX1ujJ6lcCppmn3bNUCg==","signatures":[{"sig":"MEYCIQDO8njLLzusb/Rex8rhVr5fMk7xD32mRuVCU8A7vMWdhgIhAPf1lnQ9J3nvxME2URJkGwAIpFiTW8yz4Cw/FrlqX4XE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330511},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/7248873ee5467ed9aa9f259271c9cf80/cn-0.2.4.tgz","_integrity":"sha512-SzQvoh5FwizWtQg9+JueKdjWhlfCZMdu5DqNHm9q1wUlRVmKb9WXlepR9bTTbPwzEOyX1ujJ6lcCppmn3bNUCg==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.4_1788341196053_0.5050679880960318","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"cn","version":"0.2.5","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.5","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"9fef99674c39217232727a0e620876b742b66f94","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.5.tgz","fileCount":34,"integrity":"sha512-OCjZtMeQfXbI4Es1+EIjkd77gvWzaE689gD8KhfexlqjClC06qR1MQBR+Z35ZMSPNEBWyHiItW1Soy0UvwNv9w==","signatures":[{"sig":"MEYCIQCi39IM2Olf03f+MjBtnFZdi00bYXxqKEwLMYUhBfnNSAIhAN/jhKlbwAQyCCVb8JAbZ935Zmm9WiezuYAGGzjnb0++","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCLvTTIzVSfFz01HnJP/FV30iwARDfisr6E0ihfm1cFKwIhAOiptY8WgBzgiSlbmYlity+P9RtF7K+19uOieI5QxFOQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331330},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/8e1934519f870eab2cc699c89450b11e/cn-0.2.5.tgz","_integrity":"sha512-OCjZtMeQfXbI4Es1+EIjkd77gvWzaE689gD8KhfexlqjClC06qR1MQBR+Z35ZMSPNEBWyHiItW1Soy0UvwNv9w==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.5_1788499169090_0.6692931103475872","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"cn","version":"0.2.6","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.2.6","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"16e7a9f1746efcb104fbea027806c17810b5ee6a","tarball":"https://registry.npmjs.org/cn/-/cn-0.2.6.tgz","fileCount":34,"integrity":"sha512-+i4L0zUGgRcEnhsxueVrP7iBGxBx5iD0WOTYg1MwFEu2ZyCmH5Ov2V1cul2Ht5UchRQQgftCf4be/RxspuW6QQ==","signatures":[{"sig":"MEUCICltDKIktF4sI9A4tfGMb/7EijpjcXo2RZyCx3VxjzUXAiEAyIJ0f4hXYrISnyvsqnzBUI/9eAEGQz8vbhjohgdhi0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDSM3glZMcWj3yNejvo8L2odhXdJFnxsD8TAlQ57wHIxgIhAOQRhy4hztXVwX9xtf0mgB41HAGkAPeS1jARn+VTU9Rh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331194},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.2.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/450f88406e8a75ea9d80d4e6626bc6b7/cn-0.2.6.tgz","_integrity":"sha512-+i4L0zUGgRcEnhsxueVrP7iBGxBx5iD0WOTYg1MwFEu2ZyCmH5Ov2V1cul2Ht5UchRQQgftCf4be/RxspuW6QQ==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.2.6_1788696815597_0.20331050065776113","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"cn","version":"0.3.0","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.3.0","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"7ce2bdd4032d69f8c73f1f6cd6904704901599a0","tarball":"https://registry.npmjs.org/cn/-/cn-0.3.0.tgz","fileCount":52,"integrity":"sha512-qRoU0ARrZD3Bbj1wKFftEKxPjSnzTEdFkf22NVhW+zU9D/wajhoP+qUZ5DChhhSOBCH1onV12hrmGqfu1+5Z2Q==","signatures":[{"sig":"MEQCIDCfi6we9Y/mesyFHxs1jcm0L/r3g9GHGV5cZilXIJFnAiBeGNT/l2o+VDSZpm6miGDpfzbwa+0quQz+6pwvAkhHMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIApQbFVNfNoo+e9RQz1Ehs28Yr2HYxiqtOcqhmDTI+8vAiB2vf3jji+Sg+8e/gu6n9xc/hBiq7eRn0feKn9YDH72Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366562},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./vite":{"import":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"require":{"types":"./dist/vite.d.cts","default":"./dist/vite.cjs"}},"./build":{"import":{"types":"./dist/build.d.ts","default":"./dist/build.js"},"require":{"types":"./dist/build.d.cts","default":"./dist/build.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/0baa330d38f38dfd75add26573619c9c/cn-0.3.0.tgz","_integrity":"sha512-qRoU0ARrZD3Bbj1wKFftEKxPjSnzTEdFkf22NVhW+zU9D/wajhoP+qUZ5DChhhSOBCH1onV12hrmGqfu1+5Z2Q==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0","@types/node":"^20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.3.0_1789211472947_0.05881334329350674","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"cn","version":"0.3.1","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.3.1","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"fc2243c47b2ae6761dba1f87d82637e75ed6d32b","tarball":"https://registry.npmjs.org/cn/-/cn-0.3.1.tgz","fileCount":52,"integrity":"sha512-eaA+eCSC8uXwx9S8KGa9E9axdzpqcGNOrKqmfj5LLUGYr3LLz17CtlaNSD+6mMIEN8uOYsQROMs7KD8FO5/XsQ==","signatures":[{"sig":"MEUCIQD4MosDz7eEWV1/6L9piStWoG6tDAPlifBj0+CyzwnyhwIgAqlsAqenPk5JpxNZErDCUc1/AsFHUynXsdACKmkMPj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCyrVauBMsEfJWMY+QoLPhbERG/RAcdpiyLi1SV/ITmNgIhALuL4vsC4uOLdBU+AUdz0PxFAG+741NxRonWGJQwflJC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":367180},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./vite":{"import":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"require":{"types":"./dist/vite.d.cts","default":"./dist/vite.cjs"}},"./build":{"import":{"types":"./dist/build.d.ts","default":"./dist/build.js"},"require":{"types":"./dist/build.d.cts","default":"./dist/build.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/9f1f58fe813f510941584287ee256ed8/cn-0.3.1.tgz","_integrity":"sha512-eaA+eCSC8uXwx9S8KGa9E9axdzpqcGNOrKqmfj5LLUGYr3LLz17CtlaNSD+6mMIEN8uOYsQROMs7KD8FO5/XsQ==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0","@types/node":"^20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.3.1_1789986147414_0.7069284586846849","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"cn","version":"0.3.2","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.3.2","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"45cdab14789eb8aa47c1e04c2c616a58b905e6a5","tarball":"https://registry.npmjs.org/cn/-/cn-0.3.2.tgz","fileCount":52,"integrity":"sha512-RKzY5Edavc8B2Ka6tjJecKFC4nm0p7lADY72xzICmiJSf4TkaxWXt0fHsib2P2G4FkFyXfSDi9oDtIBuCZvY2g==","signatures":[{"sig":"MEYCIQD0WcePzsY69W9ihJV1xSdRYVpOews4nIEM+i3yWcSvGwIhANX28J5YGywj8HxfPudRY+vvkXNR18ubRzHzuQjPGBz/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD+ZPiJmjwoxADNmHwTw3cE9vjeDUmoxE7E5+FnL0+oxAIgf374cQpcTElfczm68y40P9hNBfJodY2Qnql4hUW/Iv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":367276},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.3.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./vite":{"import":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"require":{"types":"./dist/vite.d.cts","default":"./dist/vite.cjs"}},"./build":{"import":{"types":"./dist/build.d.ts","default":"./dist/build.js"},"require":{"types":"./dist/build.d.cts","default":"./dist/build.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/1a8506defcaa6443a2b66880993d6df9/cn-0.3.2.tgz","_integrity":"sha512-RKzY5Edavc8B2Ka6tjJecKFC4nm0p7lADY72xzICmiJSf4TkaxWXt0fHsib2P2G4FkFyXfSDi9oDtIBuCZvY2g==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0","@types/node":"^20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.3.2_1789987174149_0.23631891491997536","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"cn","version":"0.3.3","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.3.3","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"c9e2b5844885c48f1e7796f648ae55bca22ea0d7","tarball":"https://registry.npmjs.org/cn/-/cn-0.3.3.tgz","fileCount":52,"integrity":"sha512-OEiyJkSpYm2kOuNOKQ+c2wmzZRG8orrb9fnObtHTbCGNx/E9KLnGcmcocItOzREKk5KzQN5I2e3BUCj563KEpw==","signatures":[{"sig":"MEUCIQCf1iKtwRuXMxjz6RRw+zB2zW7HMIPS4Jk1WUGxV2m3PgIgf3/G3t+zOQnA+JrvTWpb4ZfKac/Og0TsBdVLy2F/pjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCDndouBtMEU9hsYX8mR2uUqZb0V9pqPkcUwDSjf8Sa7QIhAOZoREA0j3ivbWzv7qRBkJbae0HuV5ayF93QelFKdT2j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":370962},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.3.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./vite":{"import":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"require":{"types":"./dist/vite.d.cts","default":"./dist/vite.cjs"}},"./build":{"import":{"types":"./dist/build.d.ts","default":"./dist/build.js"},"require":{"types":"./dist/build.d.cts","default":"./dist/build.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/ebbde6cf333ce6dcfee90aba0a713908/cn-0.3.3.tgz","_integrity":"sha512-OEiyJkSpYm2kOuNOKQ+c2wmzZRG8orrb9fnObtHTbCGNx/E9KLnGcmcocItOzREKk5KzQN5I2e3BUCj563KEpw==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0","@types/node":"^20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.3.3_1790072357259_0.5506671913509158","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"cn","version":"0.4.0","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"license":"MIT","_id":"cn@0.4.0","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"homepage":"https://github.com/shadcn-ui/cn#readme","bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"bin":{"cn":"bin/cn.mjs"},"dist":{"shasum":"474a2b0799b393a028a30da0917b08b7d99c8800","tarball":"https://registry.npmjs.org/cn/-/cn-0.4.0.tgz","fileCount":54,"integrity":"sha512-qOAeUhPwPzBxx6jaeQdo646XIKliKHc2j1ZF7Ngb1o0pJZKH5gq8FkA0aVdUdPFUDXNXyUCXpCtoJISo6dhizg==","signatures":[{"sig":"MEUCIQC6kU1FMHHGIoqD2c2FHYsBxOg3EWNWFeU0ikqZXdZaxAIgKqILZGcKbXn99KZ+oV+lhARnCvOQv+s/8sPDKXZBdWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDphZRrhkdwEhsbDhWkkOE5wz+BCtbfMf8wohSMthkcSgIgHHbQwKb56REp2nyJQ99UKFFqSbmhwsm4+rEpFLSwG0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382671},"main":"./dist/index.cjs","type":"module","_from":"file:cn-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./vite":{"import":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"require":{"types":"./dist/vite.d.cts","default":"./dist/vite.cjs"}},"./build":{"import":{"types":"./dist/build.d.ts","default":"./dist/build.js"},"require":{"types":"./dist/build.d.cts","default":"./dist/build.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"scripts":{"build":"tsdown && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"_resolved":"/tmp/15cdd74ae101001be8208a21b176fa9c/cn-0.4.0.tgz","_integrity":"sha512-qOAeUhPwPzBxx6jaeQdo646XIKliKHc2j1ZF7Ngb1o0pJZKH5gq8FkA0aVdUdPFUDXNXyUCXpCtoJISo6dhizg==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.19.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.12.0","typescript":"^5.7.0","@types/node":"^20.19.43"},"_npmOperationalInternal":{"tmp":"tmp/cn_0.4.0_1790073825921_0.08545231128538444","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"_id":"cn@0.5.0","bin":{"cn":"bin/cn.mjs"},"bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"dist":{"shasum":"b6d8849c4e58bf083f0b5ec0c14a37a3e8b7f763","tarball":"https://registry.npmjs.org/cn/-/cn-0.5.0.tgz","fileCount":54,"integrity":"sha512-JGEixZEpfFXm1P5uXwvEobOFLlHwIWi5v4tjd1ZwfiYmcEilkuD2l+054rvJcYCR1B+uVThHeUbgmNz1FwuxuA==","signatures":[{"sig":"MEYCIQD4dD+oCPM6wfGFt8LQUPuAuxVmglAS86AKOKo/pOvueAIhAO8dX77ZnnUQXKi/vticzX2eCQQkhXjIrAV70vKnDhD4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFHM8/PpwG+u7ecDw76fih896seOuvv5Hw0iC8rlQgvtAiEA/nstAKPzzDEch5FwRQY8adGyjVY7zlaVioFSWDP2cWk="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/cn@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":389115},"main":"./dist/index.cjs","name":"cn","type":"module","_from":"file:cn-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./lite":{"import":{"types":"./dist/lite.d.ts","default":"./dist/lite.js"},"require":{"types":"./dist/lite.d.cts","default":"./dist/lite.cjs"}},"./next":{"import":{"types":"./dist/next.d.ts","default":"./dist/next.js"},"require":{"types":"./dist/next.d.cts","default":"./dist/next.cjs"}},"./vite":{"import":{"types":"./dist/vite.d.ts","default":"./dist/vite.js"},"require":{"types":"./dist/vite.d.cts","default":"./dist/vite.cjs"}},"./build":{"import":{"types":"./dist/build.d.ts","default":"./dist/build.js"},"require":{"types":"./dist/build.d.cts","default":"./dist/build.cjs"}},"./config":{"import":{"types":"./dist/config.d.ts","default":"./dist/config.js"},"require":{"types":"./dist/config.d.cts","default":"./dist/config.cjs"}},"./engine":{"import":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"require":{"types":"./dist/engine.d.cts","default":"./dist/engine.cjs"}},"./tables":{"import":{"types":"./dist/tables.d.ts","default":"./dist/tables.js"},"require":{"types":"./dist/tables.d.cts","default":"./dist/tables.cjs"}},"./compiler":{"import":{"types":"./dist/compiler.d.ts","default":"./dist/compiler.js"},"require":{"types":"./dist/compiler.d.cts","default":"./dist/compiler.cjs"}}},"license":"MIT","scripts":{"build":"vp pack && node scripts/check-dts.mjs","compile-tables":"node scripts/compile-tables.mjs"},"version":"0.5.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"189af90d-83b1-4f61-8b8e-0e7b7da7a8ff"}},"homepage":"https://github.com/shadcn-ui/cn#readme","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"_resolved":"/tmp/3b4fc5e1c2cf6876233f3200317dee6d/cn-0.5.0.tgz","_integrity":"sha512-JGEixZEpfFXm1P5uXwvEobOFLlHwIWi5v4tjd1ZwfiYmcEilkuD2l+054rvJcYCR1B+uVThHeUbgmNz1FwuxuA==","repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"_npmVersion":"11.21.1","description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","directories":{},"maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.19.43"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cn_0.5.0_1792155568623_0.9201404689144395"}}},"time":{"created":"2013-06-12T13:14:40.140Z","modified":"2026-10-16T12:59:29.086Z","0.1.0":"2013-06-12T13:14:43.114Z","0.1.1":"2013-06-12T15:24:22.450Z","0.2.0":"2026-09-01T12:17:43.869Z","0.2.1":"2026-09-01T16:43:00.700Z","0.2.2":"2026-09-01T18:50:42.216Z","0.2.3":"2026-09-02T01:15:34.861Z","0.2.4":"2026-09-02T09:26:36.212Z","0.2.5":"2026-09-04T05:19:29.211Z","0.2.6":"2026-09-06T12:13:35.681Z","0.3.0":"2026-09-12T11:11:13.029Z","0.3.1":"2026-09-21T10:22:27.494Z","0.3.2":"2026-09-21T10:39:34.233Z","0.3.3":"2026-09-22T10:19:17.352Z","0.4.0":"2026-09-22T10:43:46.016Z","0.5.0":"2026-10-16T12:59:28.723Z"},"bugs":{"url":"https://github.com/shadcn-ui/cn/issues"},"license":"MIT","homepage":"https://github.com/shadcn-ui/cn#readme","keywords":["tailwind","tailwindcss","tailwind-merge","clsx","classnames","cn","class","merge"],"repository":{"url":"git+https://github.com/shadcn-ui/cn.git","type":"git","directory":"packages/cn"},"description":"Fast, small, compiled class-name merging for Tailwind CSS. Drop-in replacement for clsx + tailwind-merge.","maintainers":[{"name":"shadcn","email":"m@shadcn.com"}],"readme":"# cn\n\n`cn` is a [new engine](https://github.com/shadcn-ui/cn/blob/main/docs/how-it-works.md) for Tailwind class merging and\nconflict resolution. It replaces `tailwind-merge` and `clsx`. Same APIs.\nFull parity. **And it is [30× faster](#how-much-faster).**\n\n```ts\nimport { cn } from \"cn\"\n\n// conditional joining (like clsx) + conflict resolution (like tailwind-merge)\ncn(\"px-2 py-1\", isActive && \"bg-blue-500\", { \"text-white\": isActive })\n```\n\n`cn` has zero dependencies and is framework-agnostic: it works with React,\nVue, Svelte, Solid, Astro, or plain server templates, and runs in browsers,\nNode, Bun, Deno, and edge runtimes. **It works in any Tailwind CSS project. You don't need shadcn/ui.**\n\n**If you want an even smaller bundle with the same performance, see\n[`cn build`](https://github.com/shadcn-ui/cn/blob/main/docs/build-setup.md).**\n\n`cn` is built and maintained by [aidenybai](https://x.com/aidenybai) and [shadcn](https://x.com/shadcn).\n\n## Can I use this today?\n\nYes. You can replace `tailwind-merge` and `clsx` with `cn` today. It's a drop-in replacement.\n\nHere's a command to migrate:\n\n```bash\nnpx shadcn@latest migrate cn\n```\n\n## Install\n\n```bash\nnpm i cn\n```\n\n### New project\n\nImport it and go. Nothing to configure:\n\n```tsx\nimport { cn } from \"cn\"\n\nexport function Button({\n  className,\n  active,\n  ...props\n}: React.ComponentProps<\"button\"> & { active?: boolean }) {\n  return (\n    <button\n      className={cn(\n        \"rounded-md px-4 py-2 text-sm\",\n        active && \"bg-primary\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n```\n\n### Existing shadcn/ui project\n\n#### Using the `shadcn` CLI\n\n```bash\nnpx shadcn@latest migrate cn\n```\n\n#### Manually\n\nYour components already import `cn` from `@/lib/utils`. Replace the wrapper with the one from `cn`.\n\n```diff\n// lib/utils.ts\n- import { clsx, type ClassValue } from \"clsx\";\n- import { twMerge } from \"tailwind-merge\";\n\n- export function cn(...inputs: ClassValue[]) {\n-   return twMerge(clsx(inputs));\n- }\n+ export { cn } from \"cn\";\n```\n\nThen remove `clsx` and `tailwind-merge` from your dependencies. If other\npackages still import them, [alias them to `cn`](https://github.com/shadcn-ui/cn/blob/main/docs/aliasing.md)\nso your bundle only carries one implementation.\n\n## How much faster?\n\nThe following benchmarks compare `cn` against `clsx` + `tailwind-merge`,\nwhich is what most projects run today.\n\nWe ran each library through every workload in its own isolated process with\nits own warmup, and kept the best of 5 runs.\n\nTo see the results for yourself, run `pnpm bench`. The methodology is\nin [docs/how-it-works.md](https://github.com/shadcn-ui/cn/blob/main/docs/how-it-works.md#benchmark-methodology).\n\n| scenario                                                   | clsx + tailwind-merge |     cn | faster |\n| ---------------------------------------------------------- | --------------------: | -----: | -----: |\n| the call your components make most¹                        |                320 ns |  10 ns |    30× |\n| same classes as last render (cache hit)                    |                 14 ns |   7 ns |   1.9× |\n| typical component strings, warm                            |                 13 ns |   7 ns |   1.9× |\n| thousands of recurring strings (a real repo's working set) |                2.4 µs |  14 ns |   172× |\n| cold render, many arbitrary values                         |                3.4 µs | 1.1 µs |   3.0× |\n| cold render, SSR-style unique strings                      |                2.3 µs | 360 ns |   6.4× |\n| very first call (page load)                                |                3.2 ms | 0.4 ms |     7× |\n\n¹ `cn(base, variant, condition && extra)` with stable class strings. This is\nthe shape almost every component call has. `cn` learns repeated call\nsequences, so a render loop's calls verify by identity and skip the work\nentirely.\n\n### Real repositories\n\nThe rows above are synthetic. `pnpm bench:corpus` replays every `cn()` call\nharvested from 58 open source codebases (144,265 calls) through each\nlibrary, one isolated process per library and repository, and prints the\nper-repository table. Geometric mean across the 58 repositories: `cn` is\n**37× faster** than `clsx` + `tailwind-merge`.\n\n`cn` ships the least JavaScript to parse in every setup, 26 KB minified.\n\nIf you want an even smaller bundle with the same performance, see\n[`cn build`](https://github.com/shadcn-ui/cn/blob/main/docs/build-setup.md).\nIt ships as a Vite plugin and a Next.js config wrapper, so the tables follow\nyour sources in dev with nothing to script.\n\n## Custom themes\n\n`cn/config` accepts the same `{ extend, override, prefix }` shape, under the\nsame name:\n\n```ts\n// before\nimport { extendTailwindMerge } from \"tailwind-merge\"\n\nconst twMerge = extendTailwindMerge({\n  extend: { classGroups: { \"font-size\": [{ text: [\"hero\"] }] } },\n})\n```\n\n```ts\n// after\nimport { createCn } from \"cn/config\"\n\nconst cn = createCn({\n  extend: { classGroups: { \"font-size\": [{ text: [\"hero\"] }] } },\n})\n```\n\nCustom validator functions work as-is. `fromTheme`, `validators`,\n`mergeConfigs`, and `defaultConfig` are exported from `cn/config`. Tailwind\nv4 prefixes are supported: `createCn({ prefix: \"tw\" })`.\n\n## Coming from tailwind-merge\n\n`cn` produces the same output as tailwind-merge for every input. We verify\nthis with 356,000 differential tests.\n\nEvery export maps to the same name or a familiar one:\n\n| tailwind-merge               | cn                                     |\n| ---------------------------- | -------------------------------------- |\n| `twMerge(...)`               | `twMerge(...)` from `\"cn\"`, identical  |\n| `twJoin(...)`                | `twJoin(...)` from `\"cn\"`, identical   |\n| `extendTailwindMerge(ext)`   | same name, from `\"cn/config\"`          |\n| `createTailwindMerge(fn)`    | `createTwMerge(fn)` from `\"cn/config\"` |\n| `getDefaultConfig()`         | `defaultConfig()` from `\"cn/config\"`   |\n| `fromTheme`, `validators`    | same names, from `\"cn/config\"`         |\n| `mergeConfigs`               | same name, from `\"cn/config\"`          |\n| `experimentalParseClassName` | not supported                          |\n\n## Gotchas\n\n- `cn` supports Tailwind CSS v4, like tailwind-merge v3. On Tailwind v3,\n  stay with tailwind-merge v2.\n- Classes that merely _look like_ Tailwind utilities (`text-2xs`) are\n  treated as Tailwind utilities. Same behavior and guidance as\n  [tailwind-merge's docs](https://github.com/dcastil/tailwind-merge/blob/main/docs/limitations.md).\n- With [`cn build`](https://github.com/shadcn-ui/cn/blob/main/docs/build-setup.md), dynamically constructed class names (`\"p-\" + size`) can't\n  be detected. Same rule as Tailwind itself. Use `--safelist`.\n- The CLI needs Node 22+.\n\n## API\n\n- **`cn`**: `cn(...inputs)`, `twMerge(...)`, `twJoin(...)`, `clsx(...)`\n- **`cn/config`**: `createCn(ext?)`, `extendTailwindMerge(ext?)`,\n  `createTwMerge(ext?)`, `fromTheme`, `validators`, `defaultConfig()`,\n  `mergeConfigs(base, ext)`\n- **`cn/engine`**: `createCn(tables, ...)`, `createEngine(tables, ...)` for\n  build-time compiled tables\n- **`cn/lite`**: `clsx(...)`, strings-only join (`clsx/lite` parity)\n- **`cn/build`**: `build(options)`, the library behind the CLI, for custom\n  pipelines and bundler plugins\n- **`cn/vite`**: `cn(options)` plugin; **`cn/next`**: `withCn(nextConfig, options)`\n- **CLI**: `npx cn build --help`\n\n## Credits\n\n- `cn`'s merge engine, compiler, and table format are original work.\n- The package's conflict-resolution **semantics** intentionally match those of\n  [tailwind-merge](https://github.com/dcastil/tailwind-merge) by Dany Castillo\n  (MIT licensed), and the default tables it ships are compiled from\n  tailwind-merge's default configuration.\n- The `clsx`-compatible join layer implements the argument semantics of\n  [clsx](https://github.com/lukeed/clsx) by Luke Edwards (MIT licensed).\n- The argument-identity cache for repeated variadic calls re-implements an optimization pioneered by\n  [cnfast](https://github.com/aidenybai/cnfast) by Aiden Bai (MIT licensed).\n\nThank you to all three authors.\n","readmeFilename":"README.md","users":{"fgribreau":true}}