3.0.0
Release 3.0.0
Added 1
- Better type definitions to each prop including examples of usage
Changed 9
- Rewrote the entire library from plain JavaScript to TypeScript
- Replaced rollup with tsup for providing both ESM and CJS exports from one TypeScript source
- Upgraded eslint from v6 to v9 with Flat Config and modernised ESLint config, plugins and rules
- Refactored all unit tests from react-test-renderer to @testing-library/react
- Upgraded all development dependencies to latest versions
- Optimised FontAwesomeIcon by reducing per-render function calls and memory allocations
- Optimised classList function by removing runtime semver checks and array operations
- Optimised converter with a full rewrite for significant performance increases of approximately 70%
- Moved inline class strings from getClassListFromProps to pre-computed maps
Fixed 4
- Accessibility ID generation (titleId, maskId) for SSR ensuring consistent ID across server and client renders
- TypeScript errors when styling duotone icons with CSS variables
- aria-hidden attribute to be false if there is a non-empty aria-label attribute
- Large number of npm audit issues by removing and updating dependencies
Removed 5
- Support for FontAwesome versions below v6
- Support for Node versions below 20.x
- Support for React versions below 18.x
- Support for browser versions that do not support the ES2020 standard, specifically JavaScript built-in globalThis
- prop-types dependency in favour of colocated typings for React component props
From React Font Awesome
BREAKING
- Dropped support for end-of-life FontAwesome versions (below v6), Node versions (below 20.x) and React versions (below 18.x)
- Dropped support for browser versions that don't support the ES2020 standard, namely JavaScript built-in: globalThis
Changes
- Rewrote the entire library from plain JavaScript to TypeScript
- Replaced
rollupwithtsupfor providing both ESM and CJS exports from one TypeScript source - Removed
prop-typesin favour of colocated typings for React component props - Added better type definitions to each prop including examples of usage
- Upgraded
eslintfrom v6 to v9, rewrote config as Flat Config, modernised ESLint config, plugins and rules - Refactored all unit tests from the deprecated
react-test-rendererto the industry standard@testing-library/react - Upgraded all other development dependencies to latest versions as of release date
- Optimised
FontAwesomeIconby reducing per-render function calls and memory allocations - Optimised
classListfunction by removing runtime semver checks and array operations - Optimised
converterwith a full rewrite for significant performance increases (~70%) - Moved inline class strings from
getClassListFromPropsto pre-computed maps
Bug Fixes
- Fixed accessibility ID generation (
titleId, maskId) for SSR ensuring a consistent ID across server and client renders (#93, #550, #573) - Fixed TypeScript errors when styling duotone icons with CSS variables (#509)
- Fixed
aria-hiddenso it isfalseif there is a non-emptyaria-labelattribute (#126) - Resolved large number of
npm auditissues by removing and updating dependencies
New Contributors
- @charles4221 made their first contribution in https://github.com/FortAwesome/react-fontawesome/pull/581
Full Changelog: https://github.com/FortAwesome/react-fontawesome/compare/0.2.6...3.0.0