The release notes combine the changelogs of every package for the version,
list an entry shared by several packages once and leave out "Updated
dependencies" entries. The release pull request shows a preview of that
release instead of the per-package sections from Changesets.
* Run tests in CI, refresh stale snapshots, add type and RSC guards
CI only ran `pnpm run build`, so no test suite has executed on a pull
request. Six snapshot assertions across five packages had been failing
since 67ede20ca reshaped the `accessible` icon (circle -> path) and
nobody saw it.
- build.yml now runs `turbo run test`. @tabler/icons-angular is excluded
because its Karma suite needs a real Chrome this job does not set up.
- Refresh the stale inline snapshots in icons-react, icons-vue,
icons-preact, icons-svelte and icons-svelte-runes.
Two new guards under test/:
- test-react-types type-checks the published declarations against
@types/react 16, 17, 18 and 19. Each major is installed under an alias
so the version under test is selected by rewriting `paths`, with no
reinstall between runs. This currently FAILS on 19: `IconNode` is
defined as `keyof ReactSVG` and `ReactSVG` was removed in those types.
That defect is already published and is tracked separately.
- test-react-rsc renders icons through react-server-dom-webpack under
`--conditions=react-server`, covering both the CJS entry Node resolves
and the ESM bundle bundlers load. It guards against the failure that
broke lucide-react v1, where a module-level createContext() made every
icon unimportable in a Server Component. Verified to go red when that
pattern is injected into either bundle.
It runs against a sandboxed copy of the built package: in the workspace
the package is a symlink, so `react` resolves to the catalog's React 18,
which has no usable react-server build.
* Replace `keyof ReactSVG` in IconNode with a self-contained union
`ReactSVG` was removed in @types/react 19, so the published declarations
of @tabler/icons-react and @tabler/icons-react-native failed to compile
for anyone not running with `skipLibCheck`. The new type-compatibility
matrix in test/test-react-types caught it immediately.
`SvgElementName` reproduces ReactSVG's 55 keys exactly, so the type is
unchanged for consumers — nothing that type-checked before stops doing
so. It no longer depends on a React type that comes and goes between
majors.
Narrowing the union to the tags the generator actually emits (only
`path` today) would be a nicer type, but that is a breaking change and
belongs in 4.0.
Verified: @types/react 16.14, 17.0, 18.3 and 19.2 all type-check cleanly.
* Limit the CI test step to packages and guard suites
The demo apps in test/test-* have no test script, but turbo still runs their
build as a dependency of the test task. Under ICONS_LIMIT=100 they fail because
they import icons (IconHeartFilled) outside the built subset.
* Secure PR validation: run fork code without privileges, post comments via separate workflow_run workflow
* Add `removeClosePath` function to handle closepath commands in SVG icons and update optimization logic for outline icons
* Update package dependencies and configurations
* Update GitHub Actions workflow to use Node.js 22 and adjust build command to utilize pnpm for improved consistency and performance.
* Remove specific pnpm version from GitHub Actions workflow to allow for more flexible dependency management.
* Remove specific pnpm version from GitHub Actions workflow for improved flexibility in dependency management.
* Add rsvg-convert availability check in convertIconsToImages function to prevent errors when the command is not found
* Update GitHub Actions workflow to use Node.js 22 for improved compatibility and performance.
* Remove push trigger from GitHub Actions workflow to streamline build process and focus on pull requests.
* Add system dependencies for canvas in GitHub Actions workflow and update package.json to include canvas dependency
* Update GitHub Actions workflow to install additional system dependencies for canvas and rsvg-convert
* Update pnpm-lock.yaml to add canvas dependency and remove optional flags from several packages
* Update package.json to upgrade pnpm from version 10.12.1 to 10.26.1 for improved performance and compatibility.
* Refactor Eleventy configuration to use Sass directly and update package dependencies for improved compatibility and performance. Added support for SCSS file compilation and updated various package versions in package.json and pnpm-lock.yaml.
* Reorganize GitHub Actions workflow to reposition the in-progress comment step for better clarity and execution flow during icon validation.
* Update GitHub Actions workflows to install pnpm version 10.26.2 for consistency across build and validation processes.
* Install additional system dependencies for canvas and rsvg-convert in GitHub Actions workflow to ensure proper build environment.
* Ensure canvas is loaded before jsdom by using require in utilities.mjs
* Update canvas and @napi-rs/canvas dependencies to version 3.2.0 and 0.1.88 respectively in package.json and pnpm-lock.yaml for improved compatibility. Add "onlyBuiltDependencies" field in package.json to specify required dependencies.
* Add 'generate-icons-comment' script to package.json and update PR validation workflow to include icon generation and commenting steps.
* Refactor icon comment generation to include inline SVGs in markdown tables and update workflow to handle output correctly.
* Refactor icon comment generation to use base64 data URIs for SVGs in markdown tables, improving compatibility and visual representation.
* Refactor icon comment generation to use GitHub raw file URLs instead of base64 data URIs, enhancing compatibility with GitHub comments.
* Update icon size in markdown table for improved visibility in GitHub comments.
* Enhance icon comment generation by adding category and tags to markdown table, improving organization and metadata visibility.
* Implement category validation for new icons and consolidate helper imports in icon generation scripts.
* Add workflow step to remove comment with added icons if no icons are present
* Remove unused SVG icon file 'a-b-2 copy 2.svg' to clean up the icon directory.
* Update PR validation workflow to change icon comment mode from 'recreate' to 'upsert', allowing for more efficient comment updates.
* Update icon name in markdown table to include file extension for clarity in generated comments.
* Remove unused SVG icon file 'a-b-2 copy.svg' to streamline the icon directory.
Introduces a workflow that syncs the 'icons' directory to a dedicated 'icons' branch and creates a versioned tag on each update. The workflow triggers on changes to the 'icons' folder in the main branch or via manual dispatch, and outputs CDN URLs for accessing the synced icons.