6 Commits
Author SHA1 Message Date
81875c8c42 fix(astro): support stricter optional property checking (#5070)
Omit absent className values when calling the shared icon builder so
shipped Astro source passes exactOptionalPropertyTypes without changing
rendered classes.

Enable exactOptionalPropertyTypes and noUncheckedIndexedAccess in the
package tsconfig so the existing CI typecheck catches regressions.

Background: https://github.com/withastro/astro/issues/18471

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-10-29 17:38:53 +01:00
Eric Fennisandcopilot-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
KarsaandEric 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
Copilotcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Eric Fennis
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
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
9fa525e8c6 feat(@lucide/astro): add lucide package for Astro (#2665)
* feat(lucide-astro): initial commit

* test: add test suite

* fix module resolution issue

* chore: update lock file

* chore: update lock file

* chore: fix precommit hook failing

* sync icons generated by precommit hook

* remove useless tab in template

* style: add space for readability

* docs: add bun installation instructions

* fix `clean` script

* fix testing setup

* remove unnecessary `key` props in Astro icons

* fix jest matchers types and undefined behavior

* chore: update lock file

* setup prettier for formatting Astro files

* remove mistakenly added prop from the `Icon` component

* docs: add documentation for new Astro package

* fix incorrect types in `Icon` component

* refactor: use `stroke-width` over `strokeWidth`

* fix unexpected module resolution behavior

* remove hack in test types

* remove review marker

* docs: progress on documentation of lucide-astro

* chore: remove unnecessary .gitignore

* docs: add sidebar entry

* edit package description

* fix uneven icon heights in homepage packages list

* docs: add package to readme table

* add workflows for lucide-astro package

* docs: add package-logos

* use the appropriate Astro logo in light and dark mode

* Remove inadvertently added class

* Update snapshots to reflect removed class `lucide-icon`

* remove dependency on internal `@lucide/shared` package

* fix: revert changes

* revert grid-2x2-x.json

* revert grid-2x2-check.json

* revert picture-in-picture svg

* add package in labeler workflow

* add previously uncommited utils.ts file

* fix dom type errors

* up one major from legacy package

* add package to issue and feature request templates

* docs: add acknowledgement of Aviortheking as original creator of the package

* format

* optimization: more lightweight component footprint

* refactor: simplify removal of `data-astro-source` debugging attributes

* format

* style: fix linting error once again 😠

* wip: rename package to `@lucide/astro`

* remove acknowledgment of `lucide-astro`

* fix error caused by change in build tooling

* chore: upgrade dependencies

* chore: rename lucide-astro folder

* further renaming

* use correct package name in key

* more renaming

* chore: update lock file

* apply review suggestions (#1)

set correct path for package in actions

* apply suggestions from code review (#2)

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* apply @dotspencer's review

resolve correct link to package docs page and github source

* Format files

---------

Co-authored-by: realguse <realguse@icloud.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-31 16:20:33 +02:00