Eric Fennis
b196797ede
Update deps ( #5146 )
2026-11-02 18:39:06 +01:00
6657faa96a
chore(deps-dev): bump vite from 8.3.2 to 8.3.3 ( #5052 )
...
* chore(deps-dev): bump vite from 8.3.2 to 8.3.3
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 8.3.2 to 8.3.3.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.3.3/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 8.3.3
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
* chore(deps): bump vite override to ^8.3.3 to dedupe vitest
The vite bump left the root vitest resolved against vite 8.3.2 while
workspace test helpers (jest-dom, testing-library, vitest-browser-*)
linked to a second vitest copy built against vite 8.3.3, breaking
snapshots and jest-dom matcher types.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
* chore(deps-dev): bump vite from 8.3.2 to 8.3.3
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 8.3.2 to 8.3.3.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.3.3/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 8.3.3
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
* Fix lockfile
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric <eric.fennis@gmail.com >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-26 17:18:25 +01:00
Eric Fennis
09aa9c5c62
chore(deps): Upgrade to vite 8 ( #4950 )
...
* Upgrade to vite 8
* Fix types
2026-10-02 13:54:37 +02:00
Saadanjum0 and Karsa
e8a2c60b75
fix(shared): escape attribute values in buildLucideSvg ( #4940 )
...
* fix(shared): escape attribute values in buildLucideSvg
Attribute values were interpolated into the SVG string as-is, so a value
containing a double quote, ampersand or angle bracket (for example in a
custom attribute or class name) produced malformed markup.
* Use replace(/x/g) instead of replaceAll for broader TS lib compat
lucide-react-native's tsconfig doesn't include the ES2021 lib that
replaceAll requires, failing typecheck. A global regex replace is
functionally identical here and works under any target.
* Escape the full set of relevant HTML entities in attribute values
Also escape > and ' per review feedback, not just & " <.
* Apply suggestion from @karsa-mistmere
---------
Co-authored-by: Karsa <contact@karsa.org >
2026-10-02 09:41:22 +02:00
Eric Fennis and copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
f06ac67e33
chore(typchecking): More typecheck jobs for all packages ( #4885 )
...
* Add typecheck jobs
* update lockfile
* Fix types
* Fix lucide solid types
* Fix type lucide-react-native
* fix: align react-native svg mock children typing
* fix: format build font spec
* fix: restore shared workflow and RN class context
* fix: restore lucide-react build typecheck
* fix: keep react build generating icons
* fix: preserve builder color prop types
* test: cover RN provider class merge
* Revert 711255b
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-09-22 13:49:09 +02:00
99c1037550
test(packages/shared): cover buildLucideIconForReact ( #4872 )
...
buildLucideIconForReact is the entry point both lucide-react and
lucide-react-native use to build an icon, and its whole job is renaming
the hyphenated SVG attributes to the spellings React expects. Nothing
tested that rename directly: the other build helpers have specs in
packages/icons/tests, and this one had none anywhere in the repo.
The spec pins the five renames it applies, checks that attributes React
already accepts are left alone, that aria-hidden stays hyphenated, that
vector-effect is renamed on child nodes for a non-scaling stroke, and
that a caller's own attributeNames are merged without displacing the
React spellings.
Verified that the spec is not vacuous: removing the class -> className
entry from the rename map fails two of the five tests.
Co-authored-by: Vugar Bakhishov <vugarbbakhishov-hub@users.noreply.github.com >
Co-authored-by: Eric Fennis <eric.fennis@gmail.com >
2026-09-18 14:08:40 +02:00
94e4cb9d9d
chore(dependencies): Update dependencies ( #4806 )
...
* chore(deps): upgrade dependencies across workspace and unify shared versions
Co-authored-by: ericfennis <11825403+ericfennis@users.noreply.github.com >
* chore(deps): finish workspace dependency upgrade and align versions
* fix: keep vitest on 4.1.10, drop deprecated baseUrl, reformat with prettier
* fix(lucide-react): drop inert outDir so TS 6 rootDir check passes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: ericfennis <11825403+ericfennis@users.noreply.github.com >
2026-09-04 17:34:58 +02:00
Karsa and Eric Fennis
99d25bdee2
feat(packages): extract icon build logic into @lucide/shared ( #4409 )
...
* feat(packages): extract build logic to @lucide/shared, still wip
* feat(): unify icon build logic some more, add nonScalingStroke option, marking absoluteStrokeWidth as deprecated
* feat(): unify icon build logic some more, add nonScalingStroke option, marking absoluteStrokeWidth as deprecated
* feat(packages): extract build logic to @lucide/shared, still wip
* feat(): unify icon build logic some more, add nonScalingStroke option, marking absoluteStrokeWidth as deprecated
* feat(): unify icon build logic some more, add nonScalingStroke option, marking absoluteStrokeWidth as deprecated
* chore(icons): revert git hook changes made to icons
* fix(packages/astro,react-native,vue): fix iconNode type
fix(packages/vue): fix hasA11yProp
* fix(packages/solid): make component reactive & add unit tests for checking prop changes
* test(packages/vue): add reactivity tests to @lucide/vue
* fix(packages): replace cpy-cli, accidentally removed during main merge
* docs(packages): upgrade react documentation with nonScalingStroke
* fix(tests): update snapshots for lucide-react
* feat(docs): upgraded package guides with nonScalingStroke, dropping absoluteStrokeWidth
* fix(vue,react-native): fix linting issues
* fix(icons): add proper fallback for icon width in calculatedStrokeWidth
* fix(packages/svelte): add globalProps.class to icons
* fix(packages/shared): wrap width, height & size in isDefined
* Update types.ts
* fix(packages/svelte): do not pass propsClass to mergeClasses
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com >
2026-09-04 16:38:01 +02:00
75b55160aa
chore(dev): upgrade ESLint to latest compatible stack (v10) ( #4378 )
...
* chore: upgrade eslint to v9 latest with compatible lint deps
Agent-Logs-Url: https://github.com/lucide-icons/lucide/sessions/f7c1f1b5-d213-4afa-91a8-b799a16397ec
* Fix eslint config
* Fix a lot of eslint errors
* Fix eslint
* Fix eslint errors
* Fix eslint errors
* Fix types
* Fix eslint warning
* Format code
* Add eslint 10
* Remove unused vars
* Update pnpm
* Update deps
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Eric Fennis <eric.fennis@gmail.com >
2026-08-18 13:09:22 +02:00
Eric Fennis
f229f83f0c
chore(depedencies): Update dependencies ( #4553 )
...
* update deps
* Update even more
* Fix lint errors
* Apply feedback
* Update lockfile
2026-07-16 14:38:12 +02:00
a0e202d759
feat(packages/angular): add new @lucide/angular package ( #3897 )
...
* Add new lucide angular package
* feat(packages/angular): added initial @lucide/angular package
* feat(packages/angular): update readme
* feat(packages/angular): update angular.json
* docs(packages/angular): added (for now) full documentation for @lucide/angular
* docs(packages/angular): added migration guide from lucide-angular
* fix(github): fix package label syntax 😅
* fix(lint): fix linting issues
* fix(github/angular): add prebuild stage
* fix(github/angular): add prebuild stage & fix tests
* fix(github/angular): fix LucideIconComponentType, update with _real_ public members
* fix(github/angular): add prebuild to build step manually
* fix(github/angular): downgrade vitest
* fix(packages/angular): fix migration guide code example
* fix(packages): add vitest + @vitest/* to pnpm overrides
* fix(packages): update pnpm-lock with merged version
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix(packages): fix aria-hidden logic
* fix(packages): update pnpm-lock
* fix(packages): extract vitest and jsdom to root devDependencies
* Fix copy utils script
* Format code
* feat(packages/angular): switched to self-describing IconData object from separate node+name – no more toKebabCase hackery
feat(packages/angular): renamed LucideIconComponentType => LucideIcon, and LucideIcon => LucideDynamicIcon
feat(packages/angular): added backwards compatible CSS class support
feat(packages/angular): switched to vector-effect: non-scaling-stroke implementation from computed stroke width
feat(packages/angular): rewrote icon provider to only accept a list of self-described icons – no more toKebabCase hackery & as an added bonus automatic backwards compatible alias support 🚀
feat(packages/angular): added legacy icon node helper function for passing legacy icons to providers
test(packages/angular): added unit tests on LUCIDE_CONFIG provider usage
* fix(packages/angular): fix linting issues
* feat(packages/angular): extract createLucideIcon logic into helper function, refactor export template to use the iconData object as defined in ExportTemplate
* Replace author
* Remove private field
* fix(packages/angular): remove createLucideIcon, it breaks the package :'(
* fix(packages/angular): fix rendering order of child elements (_before_ projected content)
* Format package.json
* Update docs/guide/packages/angular.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update packages/angular/MIGRATION.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-20 15:31:34 +01:00
b6ed43d48c
feat(packages): Added aria-hidden fallback for decorative icons to all packages ( #3604 )
...
* Add aria hidden to lucide package
* Add aria-hidden to astro package
* Add tests for shared package
* Fix test for props
* add aria prop to lucide-solid
* Add aria-hidden to lucide-vue-next
* Add aria-hidden prop to angular package
* Fix builds
* Add notice about aria-label in docs
* Format code
* Update packages/svelte/tests/Icon.spec.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update packages/lucide-svelte/tests/Icon.spec.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update packages/shared/src/utils/hasA11yProp.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Adjusted docs
* Fix import
* update tests
* test(shared): fix hasA11yProp unit test
* fix(packages/lucide-angular): fix hasA11yProp import path (non-relative import path will not get properly resolved by ng-packagr)
* Format code
* Adjust aria props to root element
* Format code
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Karsa <contact@karsa.org >
2026-01-20 15:55:02 +01:00
Eric Fennis
076e0bbcd9
chore(dependencies): Update dependencies ( #3809 )
...
* update deps
* Remove ignoredBuiltDependencies
* Fix build errors
* try this
* update config
* add coma
* Try this
* Revert import change
* try this
* add wasm import
* Load wasm
* try this
* Revert nitro version change
* Revert nitro config change
2025-11-27 10:50:19 +01:00
Eric Fennis
a3ec4428f1
fix(lucide-vue-next): Support for kebabCase props ( #3477 )
...
* Fix kebabCase Vue props
* format code
* Fix tests
* Format code
2025-08-01 11:39:49 +02:00
19fa01b5fc
build(deps-dev): bump vite from 6.3.2 to 6.3.4 ( #3181 )
...
* build(deps-dev): bump vite from 6.3.2 to 6.3.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.3.2 to 6.3.4.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.3.4
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
* Update vitest as well
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com >
2025-05-16 14:25:07 +02:00
Eric Fennis
0fccc276c3
Bump dependencies ( #3096 )
2025-04-21 12:37:02 +02:00
Jakob Guddas
a11ba9e1cd
fix(react): added aria-hidden fallback for decorative icons ( #2158 )
2025-04-17 21:02:05 +02:00
ae8af191f7
build(deps-dev): bump vitest from 0.32.4 to 0.33.0 ( #2799 )
...
* build(deps-dev): bump vitest from 0.32.4 to 0.33.0
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ) from 0.32.4 to 0.33.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v0.33.0/packages/vitest )
---
updated-dependencies:
- dependency-name: vitest
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
* build(deps-dev): bump vitest from 0.32.4 to 0.33.0
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ) from 0.32.4 to 0.33.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v0.33.0/packages/vitest )
---
updated-dependencies:
- dependency-name: vitest
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
* Update vitest
* Update vitest
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com >
2025-02-28 17:59:23 +01:00
Eric Fennis and Max Malm
a1641a372b
fix(shared): Add trim to mergeClasses ( #2522 )
...
* Add trim to merge classes
* Add trim to merge classes
* Adds extra utils check
* Update packages/shared/src/utils.ts
Co-authored-by: Max Malm <benjick@dumfan.net >
---------
Co-authored-by: Max Malm <benjick@dumfan.net >
2024-10-28 13:53:42 +01:00
Karsa
6588971ead
fix(site): use the same camel/pascal same conversion as when releasing packages ( #2509 )
2024-10-08 10:36:35 +02:00
Jakob Guddas
e1202b545e
tests(shared): added mergeClasses tests ( #2503 )
2024-10-08 10:24:16 +02:00
Eric Fennis
e50582e93e
feat(icon-component): Creating icons with iconNodes ( #1997 )
...
* Add useIconComponent, lucide-react
* Add concept useIconComponent
* add useIconComponents to packages
* Add icon component
* Add icon component
* Add tests for react packages
* Reset changes in icons
* Add types
* Add support for Icon components in Lucide Vue Next
* update tests
* Update tests
* Enable Svelte component
* Fix lucide-react-native tests
* Update Solid package
* update snapshots
* Add docs
* add docs
* Update tests
* Formatting
* Formatting
* Update package lock
* Remove `useIconComponent`
* Update guides
* Update exports preact and solid package
* Formatting
* Format createIcons.ts
* Add lucide lab repo link in docs
2024-04-26 17:59:04 +02:00
Eric Fennis and Rohan
ad1accb2e3
refactor: Adds repo shared package @lucide/shared ( #1904 )
...
* Fixed import of toKebabCase helper function
* Added utils package
* utils
* Make utils package work in build
* Add lucide-shared
* Transpile solid with esbuild
* Fix resolve modules
* Cleanup
* Format files
* Fix properties plugins function
* Fix properties plugins in lucide package
* Revert remove resolve plugin and cleanup
* Update snapshots
* Revert icon changes
---------
Co-authored-by: Rohan <rohancrrm@gmail.com >
2024-03-06 21:03:12 +01:00