Compare commits

...
9 Commits
Author SHA1 Message Date
Karsa 249af14dc6 feat(icons): added broom icon (#4683)
* Added icons/broom.svg

* Added icons/broom.json

* Added icons/broom-sparkles.svg

* Added icons/broom-sparkles.json

* feat(icons): move broom from lab to icons, redesign & add metadata
2026-08-07 11:36:43 +02:00
Jakob GuddasericfennisEric Fenniscopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
79fc531b30 ci(security): Pin sha actions (#4678)
* cd: pin actions

* fix: remove trailing whitespace in release.yml to pass prettier lint

Co-authored-by: ericfennis <11825403+ericfennis@users.noreply.github.com>

* Format code

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ericfennis <11825403+ericfennis@users.noreply.github.com>
2026-08-07 11:31:26 +02:00
Omoshola E.github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Karsa
232b1ea84b feat(icons): add shield-lock icon (#3508)
* feat: add shield-lock icon

* Update icons/shield-lock.json

use more descriptive tags

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update icons/shield-lock.json

added space between tag

Co-authored-by: Karsa <contact@karsa.org>

* fix: added valid shield-lock icon

* fix(icons): changed `spade` icon (#3502)

* Updated icons/spade.svg

* Updated icons/spade.json

* fix: added modified shield-lock icon

* feat(icons):added shield-lock icon

* feat(icons):added shield-lock icon (centered)

* fix(icons): align shield with base icon

* feat(icons): fill in missing metadata

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
2026-08-07 09:48:02 +02:00
Copilotcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>ericfennis
08e27e3387 Fix post-release: download lucide-font artifact by name into directory (#4675)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ericfennis <11825403+ericfennis@users.noreply.github.com>
2026-08-07 09:32:02 +02:00
Karsa 0f8d48b266 test(packages): updates unit test snapshots with face-slightly-smiling (#4676) 2026-08-06 22:36:02 +02:00
CongandEric Fennis 07df1c7ca2 feat(lab): added chinese-character icon to lab (#4212)
* Added icons/chinese-character.svg

* Added icons/chinese-character.json

* Move to lab

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-08-06 14:52:57 +02:00
Karsagithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Eric Fennis
31f5872aa0 feat(icons): added audio-lines-x icon (#4590)
* Added icons/audio-lines-x.svg

* Added icons/audio-lines-x.json

* fix(icons/audio-lines-x): fill in metadata

* Update icons/audio-lines-x.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-06 14:32:14 +02:00
Karsa 0f7ac1f988 fix(scripts): removed toBeRemovedInVersion from all scripts and tools (#4674)
* fix(scripts): remove toBeRemovedInVersion from all scripts and tools

* fix(scripts): fixed linting
2026-08-06 14:28:58 +02:00
Karsa f3a26ccff1 chore(icons): refine & rename various emoji icons (#4606)
* feat(icons): refine & rename various emoji icons

* feat(icons): rename to unicode name & add more tags

* feat(icons): rename accidental aliases

* feat(icons): even better anger

* fix(icons): remove toBeRemovedInVersion
2026-08-06 13:55:43 +02:00
71 changed files with 787 additions and 594 deletions
+6 -6
View File
@@ -14,9 +14,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -30,9 +30,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+5 -5
View File
@@ -36,7 +36,7 @@ jobs:
outputs:
RELEASE_ENVIRONMENT: ${{ steps.environment.outputs.RELEASE_ENVIRONMENT }}
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Fetch tags
run: git fetch --all --tags
@@ -65,9 +65,9 @@ jobs:
outputs:
VERSION: ${{ steps.new-version.outputs.NEW_VERSION }}
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -102,7 +102,7 @@ jobs:
echo '${{ steps.change-log.outputs.CHANGE_LOG }}'
- name: Create Release
uses: softprops/action-gh-release@v3
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
with:
tag_name: ${{ steps.new-version.outputs.NEW_VERSION }}
name: Version ${{ steps.new-version.outputs.NEW_VERSION }}
@@ -18,7 +18,7 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Load stopwords from JSON & check issue title & body
if: contains(github.event.issue.labels.*.name, '🙌 icon request')
+1 -1
View File
@@ -12,7 +12,7 @@ jobs:
permissions:
pull-requests: write
steps:
- uses: actions/stale@v11
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 5 days.
+3 -3
View File
@@ -21,7 +21,7 @@ jobs:
github.event.workflow_run.conclusion == 'success'
steps:
- name: 'Download artifact'
uses: actions/github-script@v9
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
@@ -49,7 +49,7 @@ jobs:
id: pr-number
- name: Find Comment
uses: peter-evans/find-comment@v4
uses: peter-evans/find-comment@b30e6a3c0ed37e7c023ccd3f1db5c6c0b0c23aad # v4.0.0
id: pr-comment
with:
issue-number: ${{ steps.pr-number.outputs.number }}
@@ -57,7 +57,7 @@ jobs:
body-includes: Added or changed icons
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v5
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
with:
comment-id: ${{ steps.pr-comment.outputs.comment-id }}
issue-number: ${{ steps.pr-number.outputs.number }}
+6 -6
View File
@@ -16,9 +16,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -32,9 +32,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+2 -2
View File
@@ -12,5 +12,5 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/labeler@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/labeler@bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 # v7.0.0
+3 -3
View File
@@ -10,9 +10,9 @@ jobs:
lint-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
name: PR Title Lint
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v6
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
+8 -8
View File
@@ -19,9 +19,9 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -31,7 +31,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files: |
icons/*
@@ -48,9 +48,9 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -67,6 +67,6 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Check Uniqueness of Aliases
run: "! cat <(printf \"%s\\n\" icons/*.json | while read -r name; do basename \"$name\" .json; done) <(jq -cr 'select(.aliases) | .aliases[] | if type==\"string\" then . else .name end' icons/*.json) | sort | uniq -c | grep -ve '^\\s*1 '"
+6 -6
View File
@@ -18,9 +18,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version-file: 'package.json'
cache: 'pnpm'
@@ -34,9 +34,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version-file: 'package.json'
cache: 'pnpm'
+4 -4
View File
@@ -16,9 +16,9 @@ jobs:
lucide-font:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -33,7 +33,7 @@ jobs:
run: pnpm build:font
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: lucide-font
path: lucide-font
+3 -3
View File
@@ -16,9 +16,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+3 -3
View File
@@ -19,9 +19,9 @@ jobs:
lucide-preact:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+6 -6
View File
@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -35,9 +35,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+6 -6
View File
@@ -20,9 +20,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -36,9 +36,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+3 -3
View File
@@ -16,9 +16,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+6 -6
View File
@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -35,9 +35,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+3 -3
View File
@@ -14,9 +14,9 @@ jobs:
lucide-static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+9 -9
View File
@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -35,9 +35,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -51,9 +51,9 @@ jobs:
typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+6 -6
View File
@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -35,9 +35,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+6 -6
View File
@@ -18,9 +18,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -34,9 +34,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -17,18 +17,18 @@ jobs:
pull-requests: write
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version-file: 'package.json'
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files: icons/*.svg
- uses: actions/setup-node@v7.0.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
- name: Install svgson for code preview (safer and faster than installing all deps)
run: npm install svgson@5.3.1 --force
@@ -43,7 +43,7 @@ jobs:
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
- uses: actions/upload-artifact@v7
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: pr_number
path: pr/
@@ -19,11 +19,11 @@ jobs:
steps:
# We checkout the main branch of main repository for security reasons.
# This is to prevent the workflow from running on a forked repository.
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: lucide-icons/lucide
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
+22 -14
View File
@@ -57,9 +57,9 @@ jobs:
'@lucide/vue',
]
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -90,10 +90,14 @@ jobs:
contents: read
steps:
- uses: actions/checkout@v7
- uses: actions/download-artifact@v8
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: lucide-font
path: lucide-font
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -122,9 +126,9 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -141,7 +145,7 @@ jobs:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: lucide-font
path: lucide-font
@@ -153,15 +157,19 @@ jobs:
permissions:
contents: write # Required to upload the release assets
steps:
- uses: actions/checkout@v7
- uses: actions/download-artifact@v8
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: lucide-font
path: lucide-font
- name: Zip font and icons
run: |
zip -r lucide-font-${{ needs.prepare.outputs.VERSION }}.zip lucide-font
zip -r lucide-icons-${{ needs.prepare.outputs.VERSION }}.zip icons
- name: Release zip and fonts
uses: softprops/action-gh-release@v3
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
with:
tag_name: ${{ needs.prepare.outputs.VERSION }}
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up Node.js environment
uses: actions/setup-node@v7.0.0
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
+2 -2
View File
@@ -15,13 +15,13 @@ jobs:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files: icons/*.svg
- run: |
+55
View File
@@ -0,0 +1,55 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"karsa-mistmere"
],
"use-cases": [
"indicating muted, blocked, or unavailable audio playback",
"showing that an audio track, waveform, or signal has been removed",
"marking controls that disable sound, music, voice, or broadcast output",
"representing cancelled recording, paused monitoring, or silenced audio analysis",
"identifying error states for sound processing, voice activity, or media levels",
"showing a device's speaker or system volume is turned off",
"indicating a user's microphone or input is muted",
"signaling muted notifications or alerts",
"representing muted voice chat in conferencing or multiplayer games"
],
"tags": [
"sound",
"noise",
"mute",
"silence",
"disabled",
"cancel",
"remove",
"unavailable",
"listen",
"hearing",
"equalizer",
"equaliser",
"hertz",
"frequency",
"wavelength",
"vibrate",
"sine",
"waveform",
"synthesizer",
"synthesiser",
"levels",
"track",
"music",
"playback",
"radio",
"broadcast",
"airwaves",
"voice",
"vocals",
"singer",
"song"
],
"categories": [
"multimedia",
"communication"
]
}
+20
View File
@@ -0,0 +1,20 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 3v18" />
<path d="M14 8v6.35" />
<path d="m17 17 5 5" />
<path d="M18 5v8.1" />
<path d="M2 10v3" />
<path d="M22 10v3" />
<path d="m22 17-5 5" />
<path d="M6 6v11" />
</svg>

After

Width:  |  Height:  |  Size: 405 B

+44
View File
@@ -0,0 +1,44 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"karsa-mistmere"
],
"use-cases": [
"representing AI-assisted sweeping or cleaning automation",
"indicating spotless or freshly cleaned floors",
"showing magical cleanup actions in smart home apps",
"representing enchanted broom or Halloween themes"
],
"tags": [
"broomstick",
"brush",
"sweep",
"sweeping",
"floor",
"cleaning",
"ai",
"magic",
"sparkle",
"smart",
"automation",
"housekeeping",
"chores",
"tidy",
"spotless",
"pristine",
"dust",
"debris",
"bristles",
"handle",
"janitor",
"maintenance",
"witch",
"halloween"
],
"categories": [
"tools",
"home",
"gaming"
]
}
+22
View File
@@ -0,0 +1,22 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M11 2v2" />
<path d="M12 3h-2" />
<path d="M13.5 10.5 22 2" />
<path d="M14.734 13.841a2 2 0 00-.314-2.42L12.58 9.58a2 2 0 00-2.421-.314l-7.657 4.461A1 1 0 002.3 15.3l6.403 6.403a1 1 0 001.571-.204z" />
<path d="M20 15v4" />
<path d="M22 17h-4" />
<path d="M4 4v4" />
<path d="m5 18 2-2" />
<path d="M6 6H2" />
<path d="m7.699 10.7 5.602 5.601" />
</svg>

After

Width:  |  Height:  |  Size: 585 B

+38
View File
@@ -0,0 +1,38 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"karsa-mistmere"
],
"use-cases": [
"representing sweeping and floor cleaning tasks",
"indicating housekeeping or janitorial services",
"showing cleaning supplies in home maintenance apps",
"representing witchcraft or Halloween themes"
],
"tags": [
"broomstick",
"brush",
"sweep",
"sweeping",
"floor",
"cleaning",
"housekeeping",
"chores",
"tidy",
"spotless",
"dust",
"debris",
"bristles",
"handle",
"janitor",
"maintenance",
"witch",
"halloween"
],
"categories": [
"tools",
"home",
"gaming"
]
}
+16
View File
@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M13.5 10.5 22 2" />
<path d="M14.734 13.841a2 2 0 00-.314-2.42L12.58 9.58a2 2 0 00-2.421-.314l-7.657 4.461A1 1 0 002.3 15.3l6.403 6.403a1 1 0 001.571-.204z" />
<path d="m5 18 2-2" />
<path d="m7.699 10.7 5.602 5.601" />
</svg>

After

Width:  |  Height:  |  Size: 445 B

+13 -2
View File
@@ -6,12 +6,23 @@
],
"use-cases": [],
"tags": [
"emoji",
"anger",
"face",
"rage",
"fury",
"resentment",
"irritation",
"disgust",
"emoji",
"emotion"
],
"categories": [
"emoji"
],
"aliases": [
{
"name": "angry",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
+5 -3
View File
@@ -9,8 +9,10 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 11V9.416" />
<path d="M17 9a5 5 0 00-3 1" />
<path d="M7 9a5 5 0 013 1" />
<path d="M9 11V9.416" />
<path d="M9 16a5 5 0 016.001 0" />
<circle cx="12" cy="12" r="10" />
<path d="M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z" />
<line x1="9" x2="9.01" y1="9" y2="9" />
<line x1="15" x2="15.01" y1="9" y2="9" />
</svg>

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 402 B

@@ -5,12 +5,21 @@
],
"use-cases": [],
"tags": [
"emoji",
"nuisance",
"face",
"annoyed",
"annoyance",
"frustration",
"emoji",
"emotion"
],
"categories": [
"emoji"
],
"aliases": [
{
"name": "annoyed",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M14 10h2" />
<path d="M8 10h2" />
<path d="M8 16h8" />
<circle cx="12" cy="12" r="10" />
<path d="M8 15h8" />
<path d="M8 9h2" />
<path d="M14 9h2" />
</svg>

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 314 B

+31
View File
@@ -0,0 +1,31 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"ericfennis"
],
"use-cases": [],
"tags": [
"happy",
"happiness",
"good",
"laugh",
"broad smile",
"pleasure",
"good cheer",
"humour",
"funny",
"emoji",
"emotion"
],
"categories": [
"emoji"
],
"aliases": [
{
"name": "laugh",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
+3 -5
View File
@@ -9,10 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 10V9" />
<path d="M7.084 14.302a5.12 5.12 0 009.833 0 .24.24 0 00-.235-.302H7.32a.24.24 0 00-.235.302" />
<path d="M9 10V9" />
<circle cx="12" cy="12" r="10" />
<path d="M16 16s-1.5-2-4-2-4 2-4 2" />
<path d="M7.5 8 10 9" />
<path d="m14 9 2.5-1" />
<path d="M9 10h.01" />
<path d="M15 10h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 390 B

After

Width:  |  Height:  |  Size: 390 B

+31
View File
@@ -0,0 +1,31 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"csandman",
"mittalyashu",
"ericfennis"
],
"use-cases": [],
"tags": [
"emoji",
"neutral",
"emotion",
"meh",
"blank stare",
"social masking",
"irritation",
"concern",
"deadpan"
],
"categories": [
"emoji"
],
"aliases": [
{
"name": "meh",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
+3 -3
View File
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 10V9" />
<path d="M8 16h8" />
<path d="M9 10V9" />
<circle cx="12" cy="12" r="10" />
<path d="M8 14s1.5 2 4 2 4-2 4-2" />
<line x1="9" x2="9.01" y1="9" y2="9" />
<line x1="15" x2="15.01" y1="9" y2="9" />
</svg>

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 314 B

@@ -9,13 +9,21 @@
"use-cases": [],
"tags": [
"emoji",
"face",
"bad",
"sad",
"emotion"
"sadness",
"emotion",
"concern",
"disappointment"
],
"categories": [
"emoji",
"account"
],
"aliases": [
{
"name": "frown",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 10V9" />
<path d="M9 10V9" />
<path d="M9 16a5 5 0 016 0" />
<circle cx="12" cy="12" r="10" />
<path d="M16 16s-1.5-2-4-2-4 2-4 2" />
<line x1="9" x2="9.01" y1="9" y2="9" />
<line x1="15" x2="15.01" y1="9" y2="9" />
</svg>

Before

Width:  |  Height:  |  Size: 371 B

After

Width:  |  Height:  |  Size: 324 B

@@ -6,19 +6,26 @@
],
"use-cases": [],
"tags": [
"emoji",
"face",
"smile",
"happy",
"good",
"emotion",
"react",
"reaction",
"add"
"emoji",
"add",
"emotion"
],
"categories": [
"emoji",
"social",
"notifications",
"communication"
],
"aliases": [
{
"name": "smile-plus",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
@@ -9,10 +9,10 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 11v1a10 10 0 1 1-9-10" />
<path d="M8 14s1.5 2 4 2 4-2 4-2" />
<line x1="9" x2="9.01" y1="9" y2="9" />
<line x1="15" x2="15.01" y1="9" y2="9" />
<path d="M13.267 2.08a10 10 0 108.653 8.653" />
<path d="M15 10V9" />
<path d="M16 5h6" />
<path d="M16.472 15a6 6 0 01-8.943 0" />
<path d="M19 2v6" />
<path d="M9 10V9" />
</svg>

Before

Width:  |  Height:  |  Size: 420 B

After

Width:  |  Height:  |  Size: 394 B

@@ -8,14 +8,27 @@
],
"use-cases": [],
"tags": [
"emoji",
"face",
"smile",
"happy",
"happiness",
"good",
"positive",
"friendly",
"patronizing",
"passive aggressive",
"ironic",
"emoji",
"emotion"
],
"categories": [
"emoji",
"account"
],
"aliases": [
{
"name": "smile",
"deprecated": true,
"deprecationReason": "alias.name"
}
]
}
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 10V9" />
<path d="M16.472 15a6 6 0 01-8.943 0" />
<path d="M9 10V9" />
<circle cx="12" cy="12" r="10" />
<line x1="8" x2="16" y1="15" y2="15" />
<line x1="9" x2="9.01" y1="9" y2="9" />
<line x1="15" x2="15.01" y1="9" y2="9" />
</svg>

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 334 B

-18
View File
@@ -1,18 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"ericfennis"
],
"use-cases": [],
"tags": [
"emoji",
"face",
"happy",
"good",
"emotion"
],
"categories": [
"emoji"
]
}
-19
View File
@@ -1,19 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"csandman",
"mittalyashu",
"ericfennis"
],
"use-cases": [],
"tags": [
"emoji",
"face",
"neutral",
"emotion"
],
"categories": [
"emoji"
]
}
+1 -2
View File
@@ -39,8 +39,7 @@
{
"name": "podcast",
"deprecated": true,
"deprecationReason": "alias.name",
"toBeRemovedInVersion": "v1.0"
"deprecationReason": "alias.name"
}
]
}
+37
View File
@@ -0,0 +1,37 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"caisere",
"karsa-mistmere"
],
"use-cases": [
"encryption settings",
"secure login",
"privacy controls",
"security software",
"secure file storage"
],
"tags": [
"antivirus",
"authentication",
"authorization",
"credentials",
"cybersecurity",
"data protection",
"defense",
"encryption",
"guard",
"login",
"password",
"privacy",
"safeguard",
"ssl",
"tls",
"two-factor authentication",
"verification",
"vpn"
],
"categories": [
"security"
]
}
+15
View File
@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 9.807V6a1 1 0 00-1-1c-2 0-4.49-1.19-6.24-2.72a1.17 1.17 0 00-1.52 0C9.5 3.8 7 5 5 5a1 1 0 00-1 1v7c0 3.88 2.107 6.254 5 7.796" />
<path d="M19 17v-2a2 2 0 00-4 0v2" />
<rect x="13" y="17" width="8" height="5" rx="1" />
</svg>

After

Width:  |  Height:  |  Size: 446 B

-19
View File
@@ -1,19 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"broomstick",
"brush",
"sweep",
"floor",
"cleaning",
"witch",
"halloween"
],
"categories": [
"tools",
"home"
]
}
-16
View File
@@ -1,16 +0,0 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m13 11 9-9" />
<path d="M14.6 12.6c.8.8.9 2.1.2 3L10 22l-8-8 6.4-4.8c.9-.7 2.2-.6 3 .2Z" />
<path d="m6.8 10.4 6.8 6.8" />
<path d="m5 17 1.4-1.4" />
</svg>

Before

Width:  |  Height:  |  Size: 375 B

+15
View File
@@ -0,0 +1,15 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"congemcd",
"rrod497"
],
"tags": [
"text",
"language",
"chinese"
],
"categories": [
"text"
]
}
+16
View File
@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M11.5 2L12.5 5" />
<path d="M4 15H20" />
<path d="M4 8L4 7C4 5.89543 4.89543 5 6 5L18 5C19.1046 5 20 5.89543 20 7L20 8" />
<path d="M8 9H15.5746C16.0472 9 16.256 9.59518 15.887 9.89043L13.1259 12.0993C12.4143 12.6686 12 13.5305 12 14.4419V20C12 21.1046 11.1046 22 10 22H9" />
</svg>

After

Width:  |  Height:  |  Size: 501 B

@@ -12,27 +12,19 @@ exports[`Using lucide icon components > should add a non-default attribute to th
stroke-linejoin="round"
aria-hidden="true"
style="position: absolute"
class="lucide lucide-smile"
class="lucide lucide-face-slightly-smiling"
>
<path d="M15 10V9">
</path>
<path d="M16.472 15a6 6 0 01-8.943 0">
</path>
<path d="M9 10V9">
</path>
<circle cx="12"
cy="12"
r="10"
>
</circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2">
</path>
<line x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<line x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
</svg>
`;
@@ -127,27 +119,19 @@ exports[`Using lucide icon components > should pass children to the icon slot 1`
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
class="lucide lucide-smile"
class="lucide lucide-face-slightly-smiling"
>
<path d="M15 10V9">
</path>
<path d="M16.472 15a6 6 0 01-8.943 0">
</path>
<path d="M9 10V9">
</path>
<circle cx="12"
cy="12"
r="10"
>
</circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2">
</path>
<line x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<line x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
<p>
Hello World
</p>
@@ -10,27 +10,19 @@ exports[`Using dynamicImports > should render icons dynamically by using the dyn
stroke-width="1"
stroke-linecap="round"
stroke-linejoin="round"
class="lucide lucide-smile"
class="lucide lucide-face-slightly-smiling"
aria-label="smile"
>
<path d="M15 10V9">
</path>
<path d="M16.472 15a6 6 0 01-8.943 0">
</path>
<path d="M9 10V9">
</path>
<circle cx="12"
cy="12"
r="10"
>
</circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2">
</path>
<line x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<line x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
</svg>
`;
+3 -3
View File
@@ -1,5 +1,5 @@
<script lang="ts">
import Smile from '../src/icons/smile.svelte';
import FaceSlightlySmiling from '../src/icons/face-slightly-smiling.svelte';
import { setLucideProps } from '../src/lucide-svelte.js';
setLucideProps({
@@ -10,6 +10,6 @@
});
</script>
<Smile aria-label="smile">
<FaceSlightlySmiling aria-label="smile">
<text>Test</text>
</Smile>
</FaceSlightlySmiling>
+3 -3
View File
@@ -1,10 +1,10 @@
<script lang="ts">
import Smile from '../src/icons/smile.svelte';
import FaceSlightlySmiling from '../src/icons/face-slightly-smiling.svelte';
import type { IconProps } from '../src/types.js';
const props: IconProps = $props();
</script>
<Smile {...props}>
<FaceSlightlySmiling {...props}>
<text>Test</text>
</Smile>
</FaceSlightlySmiling>
+3 -3
View File
@@ -1,10 +1,10 @@
<script lang="ts">
import Smile from '../src/icons/smile.svelte';
import FaceSlightlySmiling from '../src/icons/face-slightly-smiling.svelte';
import type { IconProps } from '../src/types.js';
const props: IconProps = $props();
</script>
<Smile {...props}>
<FaceSlightlySmiling {...props}>
<title>Air conditioning</title>
</Smile>
</FaceSlightlySmiling>
@@ -3,7 +3,7 @@
exports[`Using lucide icon components > should add a class to the element 1`] = `
<svg
aria-hidden="true"
class="lucide-icon lucide lucide-smile my-icon"
class="lucide-icon lucide lucide-face-slightly-smiling my-icon"
fill="none"
height="24"
stroke="currentColor"
@@ -14,6 +14,27 @@ exports[`Using lucide icon components > should add a class to the element 1`] =
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<!---->
<path
d="M15 10V9"
>
</path>
<!---->
<path
d="M16.472 15a6 6 0 01-8.943 0"
>
</path>
<!---->
<path
d="M9 10V9"
>
</path>
<!---->
<circle
cx="12"
@@ -23,33 +44,6 @@ exports[`Using lucide icon components > should add a class to the element 1`] =
</circle>
<!---->
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
>
</path>
<!---->
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<!---->
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
<!---->
<!---->
</svg>
@@ -59,7 +53,7 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
<div>
<svg
aria-hidden="true"
class="lucide-icon lucide lucide-smile"
class="lucide-icon lucide lucide-face-slightly-smiling"
fill="none"
height="48"
stroke="red"
@@ -70,6 +64,27 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
width="48"
xmlns="http://www.w3.org/2000/svg"
>
<!---->
<path
d="M15 10V9"
>
</path>
<!---->
<path
d="M16.472 15a6 6 0 01-8.943 0"
>
</path>
<!---->
<path
d="M9 10V9"
>
</path>
<!---->
<circle
cx="12"
@@ -79,33 +94,6 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
</circle>
<!---->
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
>
</path>
<!---->
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<!---->
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
<!---->
<!---->
</svg>
@@ -124,27 +112,19 @@ exports[`Using lucide icon components > should not scale the strokeWidth when ab
stroke-linecap="round"
stroke-linejoin="round"
aria-hidden="true"
class="lucide-icon lucide lucide-smile"
class="lucide-icon lucide lucide-face-slightly-smiling"
>
<path d="M15 10V9">
</path>
<path d="M16.472 15a6 6 0 01-8.943 0">
</path>
<path d="M9 10V9">
</path>
<circle cx="12"
cy="12"
r="10"
>
</circle>
<path d="M8 14s1.5 2 4 2 4-2 4-2">
</path>
<line x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<line x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
</svg>
`;
@@ -152,7 +132,7 @@ exports[`Using lucide icon components > should render an component 1`] = `
<div>
<svg
aria-hidden="true"
class="lucide-icon lucide lucide-smile"
class="lucide-icon lucide lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -163,6 +143,27 @@ exports[`Using lucide icon components > should render an component 1`] = `
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<!---->
<path
d="M15 10V9"
>
</path>
<!---->
<path
d="M16.472 15a6 6 0 01-8.943 0"
>
</path>
<!---->
<path
d="M9 10V9"
>
</path>
<!---->
<circle
cx="12"
@@ -172,33 +173,6 @@ exports[`Using lucide icon components > should render an component 1`] = `
</circle>
<!---->
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
>
</path>
<!---->
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<!---->
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
<!---->
<!---->
</svg>
@@ -209,7 +183,7 @@ exports[`Using lucide icon components > should render an component 1`] = `
exports[`Using lucide icon components > should render an icon slot 1`] = `
<div>
<svg
class="lucide-icon lucide lucide-smile"
class="lucide-icon lucide lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -220,6 +194,27 @@ exports[`Using lucide icon components > should render an icon slot 1`] = `
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<!---->
<path
d="M15 10V9"
>
</path>
<!---->
<path
d="M16.472 15a6 6 0 01-8.943 0"
>
</path>
<!---->
<path
d="M9 10V9"
>
</path>
<!---->
<circle
cx="12"
@@ -229,33 +224,6 @@ exports[`Using lucide icon components > should render an icon slot 1`] = `
</circle>
<!---->
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
>
</path>
<!---->
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
>
</line>
<!---->
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
>
</line>
<!---->
<text>
Test
+1 -1
View File
@@ -33,7 +33,7 @@ describe('Using lucide icon components', () => {
expect(IconComponent).toMatchSnapshot();
expect(IconComponent).toHaveClass(testClass);
expect(IconComponent).toHaveClass('lucide');
expect(IconComponent).toHaveClass('lucide-smile');
expect(IconComponent).toHaveClass('lucide-face-slightly-smiling');
});
it('should add a style attribute to the element', () => {
@@ -3,7 +3,7 @@
exports[`Using lucide icon components > should add a class to the element 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile my-icon"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling my-icon"
fill="none"
height="24"
stroke="currentColor"
@@ -14,26 +14,20 @@ exports[`Using lucide icon components > should add a class to the element 1`] =
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -41,7 +35,7 @@ exports[`Using lucide icon components > should add a class to the element 1`] =
exports[`Using lucide icon components > should add a style attribute to the element 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -53,26 +47,20 @@ exports[`Using lucide icon components > should add a style attribute to the elem
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -80,7 +68,7 @@ exports[`Using lucide icon components > should add a style attribute to the elem
exports[`Using lucide icon components > should adjust the size, stroke color and stroke width 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="48"
stroke="red"
@@ -91,26 +79,20 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
width="48"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -118,7 +100,7 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
exports[`Using lucide icon components > should pass children to the icon slot 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -129,26 +111,20 @@ exports[`Using lucide icon components > should pass children to the icon slot 1`
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
<text>
Hello World
@@ -161,7 +137,7 @@ exports[`Using lucide icon components > should pass children to the icon slot 1`
exports[`Using lucide icon components > should render an component 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -172,26 +148,20 @@ exports[`Using lucide icon components > should render an component 1`] = `
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -3,7 +3,7 @@
exports[`Using lucide icon components > should add a class to the element 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile my-icon"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling my-icon"
fill="none"
height="24"
stroke="currentColor"
@@ -14,26 +14,20 @@ exports[`Using lucide icon components > should add a class to the element 1`] =
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -41,7 +35,7 @@ exports[`Using lucide icon components > should add a class to the element 1`] =
exports[`Using lucide icon components > should add a style attribute to the element 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -53,26 +47,20 @@ exports[`Using lucide icon components > should add a style attribute to the elem
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -80,7 +68,7 @@ exports[`Using lucide icon components > should add a style attribute to the elem
exports[`Using lucide icon components > should adjust the size, stroke color and stroke width 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="48"
stroke="red"
@@ -91,26 +79,20 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
width="48"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
@@ -118,7 +100,7 @@ exports[`Using lucide icon components > should adjust the size, stroke color and
exports[`Using lucide icon components > should pass children to the icon slot 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -129,26 +111,20 @@ exports[`Using lucide icon components > should pass children to the icon slot 1`
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
<text>
Hello World
@@ -161,7 +137,7 @@ exports[`Using lucide icon components > should pass children to the icon slot 1`
exports[`Using lucide icon components > should render an component 1`] = `
<div>
<svg
class="lucide lucide-smile-icon lucide-smile"
class="lucide lucide-face-slightly-smiling-icon lucide-face-slightly-smiling"
fill="none"
height="24"
stroke="currentColor"
@@ -172,26 +148,20 @@ exports[`Using lucide icon components > should render an component 1`] = `
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15 10V9"
/>
<path
d="M16.472 15a6 6 0 01-8.943 0"
/>
<path
d="M9 10V9"
/>
<circle
cx="12"
cy="12"
r="10"
/>
<path
d="M8 14s1.5 2 4 2 4-2 4-2"
/>
<line
x1="9"
x2="9.01"
y1="9"
y2="9"
/>
<line
x1="15"
x2="15.01"
y1="9"
y2="9"
/>
</svg>
</div>
`;
+1 -1
View File
@@ -59,7 +59,7 @@ describe('Using lucide icon components', () => {
expect(icon).toHaveClass('my-icon');
expect(icon).toHaveClass('lucide');
expect(icon).toHaveClass('lucide-smile-icon');
expect(icon).toHaveClass('lucide-face-slightly-smiling-icon');
});
it('should add a style attribute to the element', () => {
-1
View File
@@ -52,7 +52,6 @@ export async function renameIcon(ICONS_DIR: string, oldName: string, newName: st
name: oldName,
deprecated: true,
deprecationReason: 'alias.name',
toBeRemovedInVersion: 'v1.0',
},
];
fs.writeFileSync(newJsonPath, JSON.stringify(jsonData, null, 2));
@@ -110,7 +110,6 @@ export default async function generateAliasesFiles({
? deprecationReasonTemplate(alias.deprecationReason, {
componentName: toPascalCase(iconName),
iconName,
toBeRemovedInVersion: alias.toBeRemovedInVersion,
})
: '';
@@ -48,16 +48,11 @@ function generateIconFiles({
]);
const getSvg = () => readSvg(`${iconName}.svg`, iconsDir);
const {
deprecated = false,
toBeRemovedInVersion = undefined,
aliases = [],
} = iconMetaData[iconName];
const { deprecated = false, aliases = [] } = iconMetaData[iconName];
const deprecationReason = deprecated
? deprecationReasonTemplate(iconMetaData[iconName].deprecationReason ?? '', {
componentName,
iconName,
toBeRemovedInVersion,
})
: '';
-2
View File
@@ -32,13 +32,11 @@ export type AliasDeprecation = {
name: string;
deprecated: true;
deprecationReason: AliasDeprecationReason;
toBeRemovedInVersion?: string;
};
export type IconDeprecationReason = 'icon.renamed' | '';
export type IconMetadataBase = {
toBeRemovedInVersion?: string;
categories: string[];
aliases?: AliasDeprecation[];
tags: string[];
@@ -4,25 +4,20 @@ export default function deprecationReasonTemplate(
deprecationReason: AliasDeprecationReason | IconDeprecationReason,
{
componentName,
toBeRemovedInVersion,
}: {
componentName: string;
iconName: string;
toBeRemovedInVersion?: string;
},
) {
const resourceName = deprecationReason.startsWith('icon') ? 'icon' : 'alias';
const removalNotice = toBeRemovedInVersion
? ` This ${resourceName} will be removed in ${toBeRemovedInVersion}`
: '';
switch (deprecationReason) {
case 'alias.typo':
return `Renamed because of typo, use {@link ${componentName}} instead.${removalNotice}`;
return `Renamed because of typo, use {@link ${componentName}} instead.`;
case 'alias.duplicate':
return `The icon was combined with another icon that shares the same use case, use {@link ${componentName}} instead.${removalNotice}`;
return `The icon was combined with another icon that shares the same use case, use {@link ${componentName}} instead.`;
case 'alias.name':
return `The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ${componentName}} instead.${removalNotice}`;
return `The name of this icon was changed because it didn't meet our guidelines anymore, use {@link ${componentName}} instead.`;
default:
throw new Error(`Unknown deprecation reason: ${deprecationReason}`);
}