What changed in clsx from 1 to 2
4 releases numbered after v1.2.1 up to and including v2.1.1, stable releases only. v1.2.1 and v2.1.1 are the newest stable releases of 1 and 2 we track; this page follows them as new ones ship.
5 changes across 4 releases
- Include `bigint` in `ClassValue` type to accommodate recent `@types/react` changes to `ReactNode`
Original release notes, newest first
The list above is our reading of these notes; the originals from Luke Edwards are here, one fold per release.
v2.1.1
Patches
- (types) Include
bigintinClassValuetype: (#96): 3d960ab Accommodates recent@types/reactchanges toReactNode. Thank you @ViliamKopecky~!
Chores
- Add
licenses.devbadge: 684509c This service recursively analyzes entire dependency graphs to ensure that a package (or your project) is using permissive licenses. For example, here's a results table forpolka@nextand a largerastroexample.
Full Changelog: https://github.com/lukeed/clsx/compare/v2.1.0...v2.1.1
v2.1.0
Features
-
Add new
clsx/litesubmodule forstring-only usage: 1a49142This is a 140b version of
clsxthat is ideal for Tailwind and/or React contexts, which typically follow thisclsxusage pattern:clsx('foo bar', props.maybe && 'conditional classes', props.className);Important: This
clsx/litemodule ignores all non-string arguments and is therefore not a 1:1 replacement forclsxitself!import { clsx } from 'clsx'; import { clsx as lite } from 'clsx/lite'; // strings-only usage is identical clsx('foo', null, 'bar', true && 'baz'); //=> "foo bar baz" lite('foo', null, 'bar', true && 'baz'); //=> "foo bar baz" // clsx/lite ignores all non-strings clsx('foo', { a: true, b: false, c: true }); //=> "foo a c" lite('foo', { a: true, b: false, c: true }); //=> "foo"
Full Changelog: https://github.com/lukeed/clsx/compare/v2.0.1...v2.1.0
v2.0.1
Patches
- (perf) Cache
arguments.length&array.lengthfor 6% performance gain (#26): deff09b Adds 5 bytes (+2%) for ~3% avg performance gain Thank you @jalalazimi
Chores
- Update module size: bf64e71
- Update benchmark results: 855eec2, 6e3b2b9,
- Replace
nycwithc8in CI: 6e2468e - Update Node CI matrix: 308a238
- Fix readme typos (#76, #82): 42354d3, 4c9a55d Thank you @andipaetzold and @acusti
Full Changelog: https://github.com/lukeed/clsx/compare/v2.0.0...v2.0.1
v2.0.0
Breaking
- Add
"exports"map for native ESM support (#57): 3ec8e9f, 0949868 Also supports TypeScript'snode16/nodenextmodule resolution Maintains CommonJS support (with fixed TS definitions) Thank you @remcohaszing~!
Chores
- Add Tailwind Support section to README (#65, #68): 496db1d, 4a4eadd Thank you @kevinlowe0x3F7 & @kevinlowe0x3F7
- Add tests for numbers & variadic number arguments: c520353
- Update package module size: 03e1cf9
Full Changelog: https://github.com/lukeed/clsx/compare/v1.2.1...v2.0.0