Merge branch 'main' of https://github.com/lucide-icons/lucide into ci-hardening

This commit is contained in:
Eric Fennis
2026-08-07 09:53:25 +02:00
78 changed files with 1259 additions and 810 deletions

104
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,104 @@
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
groups:
react-deps:
patterns:
- '@testing-library/react'
- '@types/prop-types'
- '@types/react'
- '@vitejs/plugin-react'
- 'react'
- 'react-dom'
vue-deps:
patterns:
- '@testing-library/vue'
- '@vitejs/plugin-vue'
- '@vue/test-utils'
- 'vue'
svelte-deps:
patterns:
- '@sveltejs/*'
- '@testing-library/svelte'
- '@tsconfig/svelte'
- 'svelte'
- 'svelte-check'
- 'svelte-preprocess'
solid-deps:
patterns:
- '@babel/*'
- '@rollup/plugin-babel'
- '@solidjs/testing-library'
- 'babel-preset-solid'
- 'solid-js'
- 'vite-plugin-solid'
react-native-deps:
patterns:
- 'react-native'
- 'react-native-svg'
angular-deps:
patterns:
- '@angular/*'
- '@angular-eslint/*'
- '@vitest/browser-playwright'
- 'angular-eslint'
- 'ng-packagr'
- 'rxjs'
- 'tslib'
preact-deps:
patterns:
- '@preact/preset-vite'
- '@testing-library/preact'
- 'preact'
astro-deps:
patterns:
- '@astrojs/*'
- 'astro'
testing-deps:
patterns:
- '@testing-library/*'
- '@vitest/*'
- 'jest-serializer-html'
- 'jsdom'
- 'linkedom'
- 'vitest'
build-deps:
patterns:
- '@rollup/*'
- '@vitejs/*'
- 'esbuild'
- 'rollup'
- 'rollup-plugin-*'
- 'typescript'
- 'vite'
- 'vite-plugin-*'
linting-deps:
patterns:
- '@html-eslint/*'
- '@typescript-eslint/*'
- 'cspell'
- 'eslint'
- 'eslint-*'
- 'husky'
- 'lint-staged'
- 'prettier'
- 'prettier-plugin-*'
types-deps:
patterns:
- '@types/*'
remaining-deps:
patterns:
- '*'
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
groups:
github-actions:
patterns:
- '*'

View File

@@ -14,9 +14,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -23,9 +23,7 @@ on:
- beta
- alpha
permissions:
id-token: write # Required for OIDC
contents: write
permissions: {}
jobs:
check-dispatch-gate:
@@ -33,10 +31,12 @@ jobs:
startsWith(github.event.head_commit.message, 'feat(icons)') &&
github.event_name != 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
RELEASE_ENVIRONMENT: ${{ steps.environment.outputs.RELEASE_ENVIRONMENT }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/checkout@v7
- name: Fetch tags
run: git fetch --all --tags
@@ -60,12 +60,14 @@ jobs:
needs: check-dispatch-gate
environment: ${{ needs.check-dispatch-gate.outputs.RELEASE_ENVIRONMENT }}
runs-on: ubuntu-latest
permissions:
contents: write # Required to create the release and tag
outputs:
VERSION: ${{ steps.new-version.outputs.NEW_VERSION }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
# No cache restore here: this job cuts the release, and caches
# are writable from other workflow runs. The lockfile still
@@ -102,7 +104,7 @@ jobs:
echo '${{ steps.change-log.outputs.CHANGE_LOG }}'
- name: Create Release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ steps.new-version.outputs.NEW_VERSION }}
name: Version ${{ steps.new-version.outputs.NEW_VERSION }}
@@ -112,16 +114,20 @@ jobs:
if: github.repository == 'lucide-icons/lucide'
needs: create-release
uses: './.github/workflows/release.yml'
secrets:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
secrets: inherit
permissions:
id-token: write # Required for OIDC (npm provenance)
contents: write # Required to upload release assets
with:
version: ${{ needs.create-release.outputs.VERSION }}
dispatch-release:
if: github.event_name == 'workflow_dispatch'
if: github.repository == 'lucide-icons/lucide' && github.event_name == 'workflow_dispatch'
uses: './.github/workflows/release.yml'
secrets:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
secrets: inherit
permissions:
id-token: write # Required for OIDC (npm provenance)
contents: write # Required to upload release assets
with:
version: ${{ inputs.version }}
tag: ${{ inputs.tag }}

View File

@@ -4,14 +4,21 @@ on:
issues:
types: [opened]
permissions: {}
env:
GH_TOKEN: ${{ github.token }}
jobs:
block_phrases:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
uses: actions/checkout@v7
- name: Load stopwords from JSON & check issue title & body
if: contains(github.event.issue.labels.*.name, '🙌 icon request')
@@ -43,6 +50,3 @@ jobs:
exit 0
fi
done
env:
GH_TOKEN: ${{ github.token }}

View File

@@ -3,13 +3,16 @@ on:
schedule:
- cron: '45 1 * * *'
permissions: {}
jobs:
stale:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
- uses: actions/stale@v11
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.

View File

@@ -6,23 +6,22 @@ on:
types:
- completed
permissions:
contents: read
# Download the pr_number artifact from the triggering run.
actions: read
# Create or update the icon preview comment on the PR.
issues: write
pull-requests: write
permissions: {}
jobs:
upload:
runs-on: ubuntu-latest
permissions:
contents: read
actions: read # Required to download the artifact from the triggering run
pull-requests: write
if: >
github.repository == 'lucide-icons/lucide' &&
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success'
steps:
- name: 'Download artifact'
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
uses: actions/github-script@v9
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
@@ -50,7 +49,7 @@ jobs:
id: pr-number
- name: Find Comment
uses: peter-evans/find-comment@a54c31d7fa095754bfef525c0c8e5e5674c4b4b1 # v2.4.0
uses: peter-evans/find-comment@v4
id: pr-comment
with:
issue-number: ${{ steps.pr-number.outputs.number }}
@@ -58,7 +57,7 @@ jobs:
body-includes: Added or changed icons
- name: Create or update comment
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
uses: peter-evans/create-or-update-comment@v5
with:
comment-id: ${{ steps.pr-comment.outputs.comment-id }}
issue-number: ${{ steps.pr-number.outputs.number }}

View File

@@ -16,9 +16,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -2,12 +2,15 @@ name: 'Pull Request Labeler'
on:
- pull_request_target
permissions: {}
jobs:
triage:
if: github.repository == 'lucide-icons/lucide'
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
- uses: actions/checkout@v7
- uses: actions/labeler@v7

View File

@@ -10,9 +10,9 @@ jobs:
lint-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -8,15 +8,15 @@ on:
- reopened
permissions:
# The semantic PR action only reads the pull request title.
pull-requests: read
contents: read
pull-requests: read # Required to read the PR title
jobs:
lint-pr-title:
name: PR Title Lint
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

View File

@@ -9,6 +9,8 @@ on:
- 'icons/*'
- 'lab/*'
permissions: {}
jobs:
lint-filenames:
name: Lint Filenames
@@ -17,9 +19,9 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -29,7 +31,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
uses: tj-actions/changed-files@v47
with:
files: |
icons/*
@@ -46,9 +48,9 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -65,6 +67,6 @@ jobs:
permissions:
contents: read
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/checkout@v7
- 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 '"

View File

@@ -18,9 +18,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@eae0cfeb286e66ffb5155f1a79b90583a127a68b # v2.4.1
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@a37ce9120846195fa4ece8f58b268e6043cb2f26 # v3.7.0
- uses: pnpm/action-setup@eae0cfeb286e66ffb5155f1a79b90583a127a68b # v2.4.1
- uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
node-version-file: 'package.json'
cache: 'pnpm'

View File

@@ -16,9 +16,9 @@ jobs:
lucide-font:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@v7
with:
name: lucide-font
path: lucide-font

View File

@@ -16,9 +16,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -19,9 +19,9 @@ jobs:
lucide-preact:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -20,9 +20,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -16,9 +16,9 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -14,9 +14,9 @@ jobs:
lucide-static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -6,7 +6,7 @@ on:
- next
pull_request:
paths:
- packages/lucide-vue/**
- packages/vue/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
@@ -19,9 +19,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -18,9 +18,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -5,27 +5,30 @@ on:
paths:
- 'icons/*.svg'
permissions: {}
jobs:
generate-changed-icons-comment:
name: Generate Changed Icons Comment
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: actions/setup-node@v7.0.0
with:
node-version-file: 'package.json'
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
uses: tj-actions/changed-files@v47
with:
files: icons/*.svg
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/setup-node@v7.0.0
- name: Install svgson for code preview (safer and faster than installing all deps)
run: npm install svgson@5.3.1 --force
@@ -40,7 +43,7 @@ jobs:
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
- uses: actions/upload-artifact@v7
with:
name: pr_number
path: pr/

View File

@@ -5,9 +5,12 @@ on:
paths:
- 'icons/*.json'
permissions: {}
jobs:
pull-request-metadata-suggestions:
name: Pull Request Metadata Suggestions
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
contents: read
@@ -16,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@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/checkout@v7
with:
repository: lucide-icons/lucide
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'

View File

@@ -20,9 +20,7 @@ on:
description: Token used by build-font to upload the code points blob
required: false
permissions:
id-token: write # Required for OIDC
contents: write
permissions: {}
jobs:
prepare:
@@ -30,7 +28,6 @@ jobs:
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get_version.outputs.VERSION }}
steps:
- name: Get the version
id: get_version
@@ -64,9 +61,9 @@ jobs:
'@lucide/vue',
]
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -97,10 +94,13 @@ jobs:
contents: read
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: actions/download-artifact@v8
with:
name: lucide-font
path: lucide-font
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -126,10 +126,12 @@ jobs:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: prepare
permissions:
contents: read
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4.4.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
- uses: actions/checkout@v7
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v7.0.0
with:
cache: 'pnpm'
node-version-file: 'package.json'
@@ -146,7 +148,7 @@ jobs:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@v7
with:
name: lucide-font
path: lucide-font
@@ -156,18 +158,20 @@ jobs:
runs-on: ubuntu-latest
needs: [prepare, lucide-font]
permissions:
id-token: write # Required for OIDC
contents: write
contents: write # Required to upload the release assets
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
- uses: actions/checkout@v7
- uses: actions/download-artifact@v8
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@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2.6.2
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.prepare.outputs.VERSION }}

View File

@@ -4,14 +4,17 @@ on:
# Run this workflow every Monday at 07:00 UTC
schedule:
- cron: '0 7 * * 1'
permissions:
contents: read
jobs:
weekly-summary:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
steps:
- name: Set up Node.js environment
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
uses: actions/setup-node@v7.0.0
with:
node-version: 24

View File

@@ -5,21 +5,23 @@ on:
paths:
- icons/*.svg
permissions: {}
jobs:
request-review:
if: github.event.pull_request.draft == false
if: github.repository == 'lucide-icons/lucide' && github.event.pull_request.draft == false
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/checkout@v7
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@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
uses: tj-actions/changed-files@v47
with:
files: icons/*.svg
- run: |

View File

@@ -68,6 +68,6 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"sandpack-vue3": "3.1.12",
"vue": "^3.5.39"
"vue": "^3.5.40"
}
}

55
icons/audio-lines-x.json Normal file
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
icons/audio-lines-x.svg Normal file
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

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"
}
]
}

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

View File

@@ -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"
}
]
}

View File

@@ -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
icons/face-grinning.json Normal file
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"
}
]
}

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
icons/face-neutral.json Normal file
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"
}
]
}

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

View File

@@ -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"
}
]
}

View File

@@ -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

View File

@@ -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"
}
]
}

View File

@@ -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

View File

@@ -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"
}
]
}

View File

@@ -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

View File

@@ -1,18 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"ericfennis"
],
"use-cases": [],
"tags": [
"emoji",
"face",
"happy",
"good",
"emotion"
],
"categories": [
"emoji"
]
}

View File

@@ -0,0 +1,35 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"danielbayley",
"jguddas",
"karsa-mistmere"
],
"use-cases": [
"lowering a selected layer by one step",
"moving an item backward in layer order"
],
"tags": [
"move back",
"backward",
"lower",
"demote",
"step back",
"behind",
"reorder",
"arrange",
"layer",
"layers",
"stack",
"stacking",
"z-index",
"depth",
"graphics",
"design"
],
"categories": [
"design",
"layout"
]
}

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="M12 10v10" />
<path d="M22 10a1 1 0 01-.59.92l-5.077 2.308" />
<path d="M22.017 10.005a1 1 0 00-.597-.916l-8.59-3.91a2 2 0 00-1.66.001L2.6 9.08a1 1 0 00-.02 1.831l5.093 2.316" />
<path d="m9 17 3 3 3-3" />
</svg>

After

Width:  |  Height:  |  Size: 431 B

34
icons/layer-arrow-up.json Normal file
View File

@@ -0,0 +1,34 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"danielbayley",
"jguddas",
"karsa-mistmere"
],
"use-cases": [
"raising a selected layer by one step",
"moving an item forward in layer order"
],
"tags": [
"move forward",
"forward",
"raise",
"lift",
"promote",
"advance",
"step forward",
"reorder",
"arrange",
"stack",
"stacking",
"z-index",
"depth",
"graphics",
"design"
],
"categories": [
"design",
"layout"
]
}

15
icons/layer-arrow-up.svg Normal file
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="M12 14V4" />
<path d="M7.674 10.774 2.58 13.09a1 1 0 000 1.822l8.6 3.91a2 2 0 001.65 0l8.58-3.9a1 1 0 00.59-.92 1 1 0 00-.59-.922l-5.078-2.308" />
<path d="m9 7 3-3 3 3" />
</svg>

After

Width:  |  Height:  |  Size: 396 B

View File

@@ -0,0 +1,36 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"danielbayley",
"jguddas",
"karsa-mistmere"
],
"use-cases": [
"sending a selected object to the back of a stack",
"moving an item behind all others in layer order"
],
"tags": [
"send to back",
"send backward",
"back",
"background",
"bottom",
"bottommost",
"lower",
"demote",
"behind",
"reorder",
"arrange",
"stack",
"stacking",
"z-index",
"depth",
"graphics",
"design"
],
"categories": [
"design",
"layout"
]
}

View File

@@ -0,0 +1,17 @@
<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="M12 7v15" />
<path d="M2 12a1 1 0 00.58.91l5.093 2.316" />
<path d="M22 12a1 1 0 01-.59.92l-5.077 2.308" />
<path d="M8 10.37 2.6 7.91a1 1 0 010-1.831l8.57-3.9a2 2 0 011.66.001l8.59 3.91a1 1 0 010 1.831l-5.392 2.45" />
<path d="m9 19 3 3 3-3" />
</svg>

After

Width:  |  Height:  |  Size: 473 B

View File

@@ -0,0 +1,37 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"danielbayley",
"jguddas",
"karsa-mistmere"
],
"use-cases": [
"bringing a selected object to the front of a stack",
"moving an item in front of all others in layer order"
],
"tags": [
"bring to front",
"bring forward",
"front",
"foreground",
"top",
"topmost",
"raise",
"lift",
"promote",
"reorder",
"arrange",
"stack",
"stacking",
"z-index",
"depth",
"graphics",
"design"
],
"categories": [
"design",
"layout",
"arrows"
]
}

16
icons/layers-arrow-up.svg Normal file
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="M12 12V2" />
<path d="M2 17.002a1 1 0 00.58.91l8.6 3.91a2 2 0 001.65 0l8.58-3.9a1 1 0 00.59-.92" />
<path d="M7.674 8.774 2.58 11.09a1 1 0 000 1.822l8.6 3.91a2 2 0 001.65 0l8.58-3.9a1 1 0 00.59-.92 1 1 0 00-.59-.922l-5.078-2.308" />
<path d="m9 5 3-3 3 3" />
</svg>

After

Width:  |  Height:  |  Size: 484 B

View File

@@ -1,19 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"csandman",
"mittalyashu",
"ericfennis"
],
"use-cases": [],
"tags": [
"emoji",
"face",
"neutral",
"emotion"
],
"categories": [
"emoji"
]
}

View File

@@ -39,8 +39,7 @@
{
"name": "podcast",
"deprecated": true,
"deprecationReason": "alias.name",
"toBeRemovedInVersion": "v1.0"
"deprecationReason": "alias.name"
}
]
}

37
icons/shield-lock.json Normal file
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
icons/shield-lock.svg Normal file
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

View File

@@ -0,0 +1,15 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"congemcd",
"rrod497"
],
"tags": [
"text",
"language",
"chinese"
],
"categories": [
"text"
]
}

16
lab/chinese-character.svg Normal file
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

View File

@@ -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>

View File

@@ -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>
`;

View File

@@ -61,14 +61,14 @@
"@lucide/build-icons": "workspace:*",
"@lucide/helpers": "workspace:*",
"@sveltejs/package": "^2.5.8",
"@sveltejs/vite-plugin-svelte": "^6.2.4",
"@sveltejs/vite-plugin-svelte": "^7.2.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/svelte": "^5.4.2",
"@tsconfig/svelte": "^5.0.8",
"jest-serializer-html": "^7.1.0",
"jsdom": "^27.4.0",
"svelte": "^5.56.5",
"svelte-check": "^4.7.2",
"svelte": "^5.56.8",
"svelte-check": "^4.7.4",
"svelte-preprocess": "^6.0.5",
"typescript": "^5.9.3",
"vite": "^7.3.6"

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>

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>

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>

View File

@@ -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

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', () => {

View File

@@ -46,13 +46,13 @@
"@lucide/shared": "workspace:*",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/vue": "^8.1.0",
"@vitejs/plugin-vue": "^4.6.2",
"@vue/test-utils": "2.4.5",
"@vitejs/plugin-vue": "^6.0.8",
"@vue/test-utils": "2.4.11",
"rollup": "^4.62.2",
"rollup-plugin-dts": "^6.4.1",
"typescript": "^5.9.3",
"vite": "^7.3.6",
"vue": "^3.5.39"
"vue": "^3.5.40"
},
"peerDependencies": {
"vue": ">=3.0.1"

View File

@@ -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>
`;

View File

@@ -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>
`;

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', () => {

439
pnpm-lock.yaml generated
View File

@@ -133,22 +133,22 @@ importers:
dependencies:
'@floating-ui/vue':
specifier: ^1.1.11
version: 1.1.11(vue@3.5.39(typescript@5.9.3))
version: 1.1.11(vue@3.5.40(typescript@5.9.3))
'@headlessui/vue':
specifier: ^1.7.23
version: 1.7.23(vue@3.5.39(typescript@5.9.3))
version: 1.7.23(vue@3.5.40(typescript@5.9.3))
'@lucide/vue':
specifier: workspace:*
version: link:../packages/vue
'@vueuse/components':
specifier: ^14.3.0
version: 14.3.0(vue@3.5.39(typescript@5.9.3))
version: 14.3.0(vue@3.5.40(typescript@5.9.3))
'@vueuse/core':
specifier: ^14.3.0
version: 14.3.0(vue@3.5.39(typescript@5.9.3))
version: 14.3.0(vue@3.5.40(typescript@5.9.3))
'@vueuse/integrations':
specifier: ^14.3.0
version: 14.3.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.39(typescript@5.9.3))
version: 14.3.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.40(typescript@5.9.3))
element-to-path:
specifier: ^1.2.1
version: 1.2.1
@@ -169,7 +169,7 @@ importers:
version: link:../packages/lucide-react
motion-v:
specifier: 1.10.3
version: 1.10.3(@vueuse/core@14.3.0(vue@3.5.39(typescript@5.9.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vue@3.5.39(typescript@5.9.3))
version: 1.10.3(@vueuse/core@14.3.0(vue@3.5.40(typescript@5.9.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vue@3.5.40(typescript@5.9.3))
react:
specifier: 18.2.0
version: 18.2.0
@@ -178,10 +178,10 @@ importers:
version: 18.2.0(react@18.2.0)
sandpack-vue3:
specifier: 3.1.12
version: 3.1.12(vue@3.5.39(typescript@5.9.3))
version: 3.1.12(vue@3.5.40(typescript@5.9.3))
vue:
specifier: ^3.5.39
version: 3.5.39(typescript@5.9.3)
specifier: ^3.5.40
version: 3.5.40(typescript@5.9.3)
devDependencies:
'@lucide/build-icons':
specifier: workspace:*
@@ -699,16 +699,16 @@ importers:
version: link:../../tools/build-helpers
'@sveltejs/package':
specifier: ^2.5.8
version: 2.5.8(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
version: 2.5.8(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
'@sveltejs/vite-plugin-svelte':
specifier: ^6.2.4
version: 6.2.4(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
specifier: ^7.2.0
version: 7.2.0(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
'@testing-library/jest-dom':
specifier: ^6.9.1
version: 6.9.1
'@testing-library/svelte':
specifier: ^5.4.2
version: 5.4.2(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)
version: 5.4.2(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)
'@tsconfig/svelte':
specifier: ^5.0.8
version: 5.0.8
@@ -719,14 +719,14 @@ importers:
specifier: ^27.4.0
version: 27.4.0(supports-color@10.2.2)
svelte:
specifier: ^5.56.5
version: 5.56.5(@typescript-eslint/types@8.64.0)
specifier: ^5.56.8
version: 5.56.8(@typescript-eslint/types@8.64.0)
svelte-check:
specifier: ^4.7.2
version: 4.7.2(picomatch@4.0.5)(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
specifier: ^4.7.4
version: 4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
svelte-preprocess:
specifier: ^6.0.5
version: 6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
version: 6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
typescript:
specifier: ^5.9.3
version: 5.9.3
@@ -750,13 +750,13 @@ importers:
version: 6.9.1
'@testing-library/vue':
specifier: ^8.1.0
version: 8.1.0(@vue/compiler-sfc@3.5.39)(vue@3.5.39(typescript@5.9.3))
version: 8.1.0(@vue/compiler-dom@3.5.40)(@vue/compiler-sfc@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))
'@vitejs/plugin-vue':
specifier: ^4.6.2
version: 4.6.2(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.39(typescript@5.9.3))
specifier: ^6.0.8
version: 6.0.8(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
'@vue/test-utils':
specifier: 2.4.5
version: 2.4.5
specifier: 2.4.11
version: 2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))
rollup:
specifier: ^4.62.2
version: 4.62.2
@@ -770,8 +770,8 @@ importers:
specifier: ^7.3.6
version: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vue:
specifier: ^3.5.39
version: 3.5.39(typescript@5.9.3)
specifier: ^3.5.40
version: 3.5.40(typescript@5.9.3)
tools/build-font:
dependencies:
@@ -4205,6 +4205,9 @@ packages:
'@rolldown/pluginutils@1.0.0-rc.4':
resolution: {integrity: sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==}
'@rolldown/pluginutils@1.0.1':
resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
'@rollup/plugin-alias@6.0.0':
resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==}
engines: {node: '>=20.19.0'}
@@ -4590,8 +4593,8 @@ packages:
peerDependencies:
acorn: ^8.9.0
'@sveltejs/load-config@0.2.0':
resolution: {integrity: sha512-1LgZ/qUqSoq+QorD83lk2hka79Px0wXNW2q5V1nZlxGhQgw1jrsIbVz5YiCeucVLo4XvFLjXukUaQjIiqowkcg==}
'@sveltejs/load-config@0.2.1':
resolution: {integrity: sha512-5m3B2cbqQ4TbwW6Xkh66Ntw6dD7gNc77cCxABTTesWcq9jxIzMgTk97pZx5vEtvQx8iokgi7GIphqZe+PGwcZA==}
engines: {node: '>= 18.0.0'}
'@sveltejs/package@2.5.8':
@@ -4601,19 +4604,11 @@ packages:
peerDependencies:
svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1
'@sveltejs/vite-plugin-svelte-inspector@5.0.2':
resolution: {integrity: sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==}
'@sveltejs/vite-plugin-svelte@7.2.0':
resolution: {integrity: sha512-1SpkuMSRLfugrVX+IrKfE1RUegzo8AQzKQ6qQPfVzbcWi5IhuTPaKb5ZrLpucleFznkc4/RTeSPoRnGWFxX+EQ==}
engines: {node: ^20.19 || ^22.12 || >=24}
peerDependencies:
'@sveltejs/vite-plugin-svelte': ^6.0.0-next.0
svelte: ^5.0.0
vite: ^7.3.6
'@sveltejs/vite-plugin-svelte@6.2.4':
resolution: {integrity: sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==}
engines: {node: ^20.19 || ^22.12 || >=24}
peerDependencies:
svelte: ^5.0.0
svelte: ^5.46.4
vite: ^7.3.6
'@swc/core-darwin-arm64@1.7.23':
@@ -5253,16 +5248,16 @@ packages:
peerDependencies:
vite: ^7.3.6
'@vitejs/plugin-vue@4.6.2':
resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==}
engines: {node: ^14.18.0 || >=16.0.0}
'@vitejs/plugin-vue@5.2.4':
resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
vite: ^7.3.6
vue: ^3.2.25
'@vitejs/plugin-vue@5.2.4':
resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==}
engines: {node: ^18.0.0 || >=20.0.0}
'@vitejs/plugin-vue@6.0.8':
resolution: {integrity: sha512-0ZjgOg7oO6farnNGup7yvoM/YXZV84OZxHAwtflItNa/6zzQyVb5LNxyea3FEKEX2XlagIKzrlH7wwxkKgtiew==}
engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies:
vite: ^7.3.6
vue: ^3.2.25
@@ -5330,17 +5325,17 @@ packages:
'@volar/typescript@2.4.28':
resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==}
'@vue/compiler-core@3.5.39':
resolution: {integrity: sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==}
'@vue/compiler-core@3.5.40':
resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==}
'@vue/compiler-dom@3.5.39':
resolution: {integrity: sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==}
'@vue/compiler-dom@3.5.40':
resolution: {integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==}
'@vue/compiler-sfc@3.5.39':
resolution: {integrity: sha512-d0ki86iOyN8LoZPBmk5SJWNwHP19CnDDCfuo//+2WJa2g5Ke0Jay983PIBIcSSzldC68I8DrD5GrHV3OSDfodg==}
'@vue/compiler-sfc@3.5.40':
resolution: {integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==}
'@vue/compiler-ssr@3.5.39':
resolution: {integrity: sha512-Ce7/wvwMHai74bdszfXExdazFigYnlF9zgCmEQUcM1j0fOymlouZ7XilTYNo8oUjhlnjYOZbGrcYKuqjz89Ucw==}
'@vue/compiler-ssr@3.5.40':
resolution: {integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==}
'@vue/devtools-api@7.7.10':
resolution: {integrity: sha512-KxtEpUOOpFz/qOGRrAwA36QF7DqIA+FXgCYit9mk9wjbaZt0sXOFz81ElOZtKA4HbWHUdwNjZHBFsFFyp5BZiA==}
@@ -5351,25 +5346,33 @@ packages:
'@vue/devtools-shared@7.7.10':
resolution: {integrity: sha512-wOPslzB8vTvpxwdaOcR2qAbwmuSP0L+rhpoC6Cf56V3Jip+HWb7PQQXOUPgBNQARpXsbQX/+mvi8kKucmBGRwQ==}
'@vue/reactivity@3.5.39':
resolution: {integrity: sha512-TpsuBJ9gGlZa5d23XcM2y8EXanz9dZeVDQBXRwzy46ItgvM+rWpzs+UVM0wcRLxGvcav0HE5jz2gNL53xlRAog==}
'@vue/reactivity@3.5.40':
resolution: {integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==}
'@vue/runtime-core@3.5.39':
resolution: {integrity: sha512-9GLtNyRvPAUMbX+7ono0RC2j0guo2LXVi8LvcmAooImACUKm0oFf0jjwbX8/H0AE/t1nxhAkn8RSl9PMCzzxZw==}
'@vue/runtime-core@3.5.40':
resolution: {integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==}
'@vue/runtime-dom@3.5.39':
resolution: {integrity: sha512-7Y6aAGboKcXAZ3ECuUy7RrS5yy2r47dhTp2SKaJmYxjopImaVFaNa5Ne66NwGovsrxVAl5S5rwc7m22UG7Lmww==}
'@vue/runtime-dom@3.5.40':
resolution: {integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==}
'@vue/server-renderer@3.5.39':
resolution: {integrity: sha512-yZSakiAGw85rZfG7UM8akMnIF+FmeiNk47uvHf2nVBBSe+dIKUhZuZq9+XgJhbV3nS5Z4ALH23/MpXofW+mbcw==}
peerDependencies:
vue: 3.5.39
'@vue/server-renderer@3.5.40':
resolution: {integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==}
'@vue/shared@3.5.39':
resolution: {integrity: sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==}
'@vue/test-utils@2.4.5':
resolution: {integrity: sha512-oo2u7vktOyKUked36R93NB7mg2B+N7Plr8lxp2JBGwr18ch6EggFjixSCdIVVLkT6Qr0z359Xvnafc9dcKyDUg==}
'@vue/shared@3.5.40':
resolution: {integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==}
'@vue/test-utils@2.4.11':
resolution: {integrity: sha512-GDqaqZsA6m2E5vNzej0aYiIb6BX8xV9pNSbbbXKOfEYwg7ZNblVX8suyqmUBThq8VIrgAJNxn+z72hVtUeiWHA==}
peerDependencies:
'@vue/compiler-dom': 3.x
'@vue/server-renderer': 3.x
vue: 3.x
peerDependenciesMeta:
'@vue/server-renderer':
optional: true
'@vueuse/components@14.3.0':
resolution: {integrity: sha512-jnrJrecSfa8H+G6wtAwsCnMtKbKZDSpu5JZDuulZikWrHb6uuS5SyXP6M2b79tofxipm78VWDSzW+58pu1yglA==}
@@ -5529,8 +5532,8 @@ packages:
resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==}
engines: {node: '>=0.4.0'}
acorn@8.17.0:
resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==}
acorn@8.18.0:
resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -6623,12 +6626,12 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
devalue@5.8.1:
resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==}
devalue@5.8.2:
resolution: {integrity: sha512-DObPPAfdtFbXjxLqK8s2Xk9ZuWz5+ZoFEhC7J76es4GU/rEiXwHTmbImoCdyoCOcBH1UF3+Cz6Z2sYD4hyl5TA==}
devalue@5.9.0:
resolution: {integrity: sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==}
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
@@ -7028,8 +7031,8 @@ packages:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'}
esrap@2.2.13:
resolution: {integrity: sha512-m8jH5hZgJE2RRUK/jjkGPcJEDAV+dYnZYFkosQaPTcE+Yw4xynXHOo6FUdwaWBtdR3b1MMa7wEDTSHeR2VWsGA==}
esrap@2.3.0:
resolution: {integrity: sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==}
peerDependencies:
'@typescript-eslint/types': ^8.2.0
peerDependenciesMeta:
@@ -10311,13 +10314,13 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
svelte-check@4.7.2:
resolution: {integrity: sha512-GoS4XJdGswlq0rIT1vtFLzJY1bvHtY37McY9H9Gkm1Ggw/ICdZYn8J/Z8Yi0BEL0i3R4+jtaWVePjyppMlij/A==}
svelte-check@4.7.4:
resolution: {integrity: sha512-IW9ot9YqAoyv8FvyN+eb4ZTe8zgcKZrJLNYU6dzSKkGwEBsSPc4K7lmQ8bKn8W2YMXM6WDfZSSVOaGtekyUfOQ==}
engines: {node: '>= 18.0.0'}
hasBin: true
peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.0
typescript: '>=5.0.0'
typescript: ^5.0.0 || ^6.0.0
svelte-preprocess@6.0.5:
resolution: {integrity: sha512-sgwew5yV/2eMeQobIWgAxCNarKwiTUDIc3siAUbq3sp0G6ONtzk0W+wJihMdqjbYb3iGU3ubpGv0usnnuXT3qg==}
@@ -10362,8 +10365,8 @@ packages:
svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
typescript: ^4.9.4 || ^5.0.0 || ^6.0.0
svelte@5.56.5:
resolution: {integrity: sha512-P03YJmUy2JoOxYHb4Ka3oFat1hq2ko2it1MOItSjsJ4B6WgZPLc3+RyyU+57OGWhs3Ieq74EJpZtSnNXdAGgDw==}
svelte@5.56.8:
resolution: {integrity: sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==}
engines: {node: '>=18'}
svg-path-commander@2.2.1:
@@ -11088,8 +11091,8 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
vue-component-type-helpers@2.2.12:
resolution: {integrity: sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==}
vue-component-type-helpers@3.3.9:
resolution: {integrity: sha512-3c/UfMe0SqyEfcGTyH7mfshHagJ9QTCbppCb0/uGpHZpFug7+If3GeGZN7I0YheKEExemx3xldQPoO7PQSOLQg==}
vue-demi@0.14.10:
resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
@@ -11102,8 +11105,8 @@ packages:
'@vue/composition-api':
optional: true
vue@3.5.39:
resolution: {integrity: sha512-xmZCYabFGcirU8r0fTuvl/LICc1OU620rnqepaJDL/a141ZigkG7AyaxQLdqJ02ZRYzWe6YPaDHeQx7MfknQfA==}
vue@3.5.40:
resolution: {integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -13659,11 +13662,11 @@ snapshots:
'@floating-ui/utils@0.2.12': {}
'@floating-ui/vue@1.1.11(vue@3.5.39(typescript@5.9.3))':
'@floating-ui/vue@1.1.11(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@floating-ui/dom': 1.8.0
'@floating-ui/utils': 0.2.12
vue-demi: 0.14.10(vue@3.5.39(typescript@5.9.3))
vue-demi: 0.14.10(vue@3.5.40(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -13673,10 +13676,10 @@ snapshots:
'@harperfast/extended-iterable@1.0.3':
optional: true
'@headlessui/vue@1.7.23(vue@3.5.39(typescript@5.9.3))':
'@headlessui/vue@1.7.23(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@tanstack/vue-virtual': 3.13.32(vue@3.5.39(typescript@5.9.3))
vue: 3.5.39(typescript@5.9.3)
'@tanstack/vue-virtual': 3.13.32(vue@3.5.40(typescript@5.9.3))
vue: 3.5.40(typescript@5.9.3)
'@hono/node-server@1.19.14(hono@4.12.30)':
dependencies:
@@ -15070,6 +15073,8 @@ snapshots:
'@rolldown/pluginutils@1.0.0-rc.4': {}
'@rolldown/pluginutils@1.0.1': {}
'@rollup/plugin-alias@6.0.0(rollup@4.62.2)':
optionalDependencies:
rollup: 4.62.2
@@ -15419,37 +15424,29 @@ snapshots:
'@stitches/core@1.2.8': {}
'@sveltejs/acorn-typescript@1.0.11(acorn@8.17.0)':
'@sveltejs/acorn-typescript@1.0.11(acorn@8.18.0)':
dependencies:
acorn: 8.17.0
acorn: 8.18.0
'@sveltejs/load-config@0.2.0': {}
'@sveltejs/load-config@0.2.1': {}
'@sveltejs/package@2.5.8(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3)':
'@sveltejs/package@2.5.8(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)':
dependencies:
chokidar: 5.0.0
kleur: 4.1.5
sade: 1.8.1
semver: 7.8.5
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
svelte2tsx: 0.7.57(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
svelte2tsx: 0.7.57(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3)
transitivePeerDependencies:
- typescript
'@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)))(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))':
'@sveltejs/vite-plugin-svelte@7.2.0(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
obug: 2.1.4
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
'@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)))(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
deepmerge: 4.3.1
magic-string: 0.30.21
obug: 2.1.3
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
obug: 2.1.4
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vitefu: 1.1.3(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
@@ -15516,10 +15513,10 @@ snapshots:
'@tanstack/virtual-core@3.17.4': {}
'@tanstack/vue-virtual@3.13.32(vue@3.5.39(typescript@5.9.3))':
'@tanstack/vue-virtual@3.13.32(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@tanstack/virtual-core': 3.17.4
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
'@testing-library/dom@10.4.1':
dependencies:
@@ -15588,27 +15585,30 @@ snapshots:
transitivePeerDependencies:
- '@types/react'
'@testing-library/svelte-core@1.1.3(svelte@5.56.5(@typescript-eslint/types@8.64.0))':
'@testing-library/svelte-core@1.1.3(svelte@5.56.8(@typescript-eslint/types@8.64.0))':
dependencies:
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
'@testing-library/svelte@5.4.2(svelte@5.56.5(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)':
'@testing-library/svelte@5.4.2(svelte@5.56.8(@typescript-eslint/types@8.64.0))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
'@testing-library/dom': 10.4.1
'@testing-library/svelte-core': 1.1.3(svelte@5.56.5(@typescript-eslint/types@8.64.0))
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
'@testing-library/svelte-core': 1.1.3(svelte@5.56.8(@typescript-eslint/types@8.64.0))
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
optionalDependencies:
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vitest: 4.1.10(@types/node@26.1.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-v8@4.1.10)(@vitest/ui@4.1.10)(jsdom@27.4.0(supports-color@10.2.2))(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))
'@testing-library/vue@8.1.0(@vue/compiler-sfc@3.5.39)(vue@3.5.39(typescript@5.9.3))':
'@testing-library/vue@8.1.0(@vue/compiler-dom@3.5.40)(@vue/compiler-sfc@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@babel/runtime': 7.29.7
'@testing-library/dom': 9.3.4
'@vue/test-utils': 2.4.5
vue: 3.5.39(typescript@5.9.3)
'@vue/test-utils': 2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))
vue: 3.5.40(typescript@5.9.3)
optionalDependencies:
'@vue/compiler-sfc': 3.5.39
'@vue/compiler-sfc': 3.5.40
transitivePeerDependencies:
- '@vue/compiler-dom'
- '@vue/server-renderer'
'@thednp/dommatrix@3.0.4': {}
@@ -16122,8 +16122,8 @@ snapshots:
dependencies:
'@mapbox/node-pre-gyp': 2.0.3(encoding@0.1.13)(supports-color@10.2.2)
'@rollup/pluginutils': 5.4.0(rollup@4.62.2)
acorn: 8.17.0
acorn-import-attributes: 1.9.5(acorn@8.17.0)
acorn: 8.18.0
acorn-import-attributes: 1.9.5(acorn@8.18.0)
async-sema: 3.1.1
bindings: 1.5.0
estree-walker: 2.0.2
@@ -16159,15 +16159,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@vitejs/plugin-vue@4.6.2(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.39(typescript@5.9.3))':
'@vitejs/plugin-vue@5.2.4(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))':
dependencies:
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
'@vitejs/plugin-vue@5.2.4(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.39(typescript@5.9.3))':
'@vitejs/plugin-vue@6.0.8(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.1
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
'@vitest/browser-playwright@4.1.10(playwright@1.58.2)(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vitest@4.1.10)':
dependencies:
@@ -16319,35 +16320,35 @@ snapshots:
path-browserify: 1.0.1
vscode-uri: 3.1.0
'@vue/compiler-core@3.5.39':
'@vue/compiler-core@3.5.40':
dependencies:
'@babel/parser': 7.29.7
'@vue/shared': 3.5.39
'@vue/shared': 3.5.40
entities: 7.0.1
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-dom@3.5.39':
'@vue/compiler-dom@3.5.40':
dependencies:
'@vue/compiler-core': 3.5.39
'@vue/shared': 3.5.39
'@vue/compiler-core': 3.5.40
'@vue/shared': 3.5.40
'@vue/compiler-sfc@3.5.39':
'@vue/compiler-sfc@3.5.40':
dependencies:
'@babel/parser': 7.29.7
'@vue/compiler-core': 3.5.39
'@vue/compiler-dom': 3.5.39
'@vue/compiler-ssr': 3.5.39
'@vue/shared': 3.5.39
'@vue/compiler-core': 3.5.40
'@vue/compiler-dom': 3.5.40
'@vue/compiler-ssr': 3.5.40
'@vue/shared': 3.5.40
estree-walker: 2.0.2
magic-string: 0.30.21
postcss: 8.5.19
source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.39':
'@vue/compiler-ssr@3.5.40':
dependencies:
'@vue/compiler-dom': 3.5.39
'@vue/shared': 3.5.39
'@vue/compiler-dom': 3.5.40
'@vue/shared': 3.5.40
'@vue/devtools-api@7.7.10':
dependencies:
@@ -16367,73 +16368,79 @@ snapshots:
dependencies:
rfdc: 1.4.1
'@vue/reactivity@3.5.39':
'@vue/reactivity@3.5.40':
dependencies:
'@vue/shared': 3.5.39
'@vue/shared': 3.5.40
'@vue/runtime-core@3.5.39':
'@vue/runtime-core@3.5.40':
dependencies:
'@vue/reactivity': 3.5.39
'@vue/shared': 3.5.39
'@vue/reactivity': 3.5.40
'@vue/shared': 3.5.40
'@vue/runtime-dom@3.5.39':
'@vue/runtime-dom@3.5.40':
dependencies:
'@vue/reactivity': 3.5.39
'@vue/runtime-core': 3.5.39
'@vue/shared': 3.5.39
'@vue/reactivity': 3.5.40
'@vue/runtime-core': 3.5.40
'@vue/shared': 3.5.40
csstype: 3.2.3
'@vue/server-renderer@3.5.39(vue@3.5.39(typescript@5.9.3))':
'@vue/server-renderer@3.5.40':
dependencies:
'@vue/compiler-ssr': 3.5.39
'@vue/shared': 3.5.39
vue: 3.5.39(typescript@5.9.3)
'@vue/compiler-ssr': 3.5.40
'@vue/runtime-dom': 3.5.40
'@vue/shared': 3.5.40
'@vue/shared@3.5.39': {}
'@vue/test-utils@2.4.5':
dependencies:
js-beautify: 1.15.4
vue-component-type-helpers: 2.2.12
'@vue/shared@3.5.40': {}
'@vueuse/components@14.3.0(vue@3.5.39(typescript@5.9.3))':
'@vue/test-utils@2.4.11(@vue/compiler-dom@3.5.40)(@vue/server-renderer@3.5.40)(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@vueuse/core': 14.3.0(vue@3.5.39(typescript@5.9.3))
'@vueuse/shared': 14.3.0(vue@3.5.39(typescript@5.9.3))
vue: 3.5.39(typescript@5.9.3)
'@vue/compiler-dom': 3.5.40
js-beautify: 1.15.4
vue: 3.5.40(typescript@5.9.3)
vue-component-type-helpers: 3.3.9
optionalDependencies:
'@vue/server-renderer': 3.5.40
'@vueuse/components@14.3.0(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@vueuse/core': 14.3.0(vue@3.5.40(typescript@5.9.3))
'@vueuse/shared': 14.3.0(vue@3.5.40(typescript@5.9.3))
vue: 3.5.40(typescript@5.9.3)
'@vueuse/core@12.8.2(typescript@5.9.3)':
dependencies:
'@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 12.8.2
'@vueuse/shared': 12.8.2(typescript@5.9.3)
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
transitivePeerDependencies:
- typescript
'@vueuse/core@14.3.0(vue@3.5.39(typescript@5.9.3))':
'@vueuse/core@14.3.0(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 14.3.0
'@vueuse/shared': 14.3.0(vue@3.5.39(typescript@5.9.3))
vue: 3.5.39(typescript@5.9.3)
'@vueuse/shared': 14.3.0(vue@3.5.40(typescript@5.9.3))
vue: 3.5.40(typescript@5.9.3)
'@vueuse/integrations@12.8.2(focus-trap@7.8.0)(fuse.js@7.5.0)(typescript@5.9.3)':
dependencies:
'@vueuse/core': 12.8.2(typescript@5.9.3)
'@vueuse/shared': 12.8.2(typescript@5.9.3)
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
optionalDependencies:
focus-trap: 7.8.0
fuse.js: 7.5.0
transitivePeerDependencies:
- typescript
'@vueuse/integrations@14.3.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.39(typescript@5.9.3))':
'@vueuse/integrations@14.3.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@vueuse/core': 14.3.0(vue@3.5.39(typescript@5.9.3))
'@vueuse/shared': 14.3.0(vue@3.5.39(typescript@5.9.3))
vue: 3.5.39(typescript@5.9.3)
'@vueuse/core': 14.3.0(vue@3.5.40(typescript@5.9.3))
'@vueuse/shared': 14.3.0(vue@3.5.40(typescript@5.9.3))
vue: 3.5.40(typescript@5.9.3)
optionalDependencies:
focus-trap: 7.8.0
fuse.js: 7.5.0
@@ -16444,13 +16451,13 @@ snapshots:
'@vueuse/shared@12.8.2(typescript@5.9.3)':
dependencies:
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
transitivePeerDependencies:
- typescript
'@vueuse/shared@14.3.0(vue@3.5.39(typescript@5.9.3))':
'@vueuse/shared@14.3.0(vue@3.5.40(typescript@5.9.3))':
dependencies:
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
'@xmldom/xmldom@0.9.10': {}
@@ -16478,20 +16485,20 @@ snapshots:
mime-types: 3.0.2
negotiator: 1.0.0
acorn-import-attributes@1.9.5(acorn@8.17.0):
acorn-import-attributes@1.9.5(acorn@8.18.0):
dependencies:
acorn: 8.17.0
acorn: 8.18.0
acorn-jsx@5.3.2(acorn@8.17.0):
acorn-jsx@5.3.2(acorn@8.18.0):
dependencies:
acorn: 8.17.0
acorn: 8.18.0
acorn-walk@8.3.5:
dependencies:
acorn: 8.17.0
acorn: 8.18.0
optional: true
acorn@8.17.0: {}
acorn@8.18.0: {}
agent-base@7.1.4: {}
@@ -16615,12 +16622,12 @@ snapshots:
ansi-styles@6.2.3: {}
ansi-to-vue3@0.1.2(vue@3.5.39(typescript@5.9.3)):
ansi-to-vue3@0.1.2(vue@3.5.40(typescript@5.9.3)):
dependencies:
anser: 2.3.5
escape-carriage: 1.3.1
optionalDependencies:
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
any-base@1.1.0: {}
@@ -17828,10 +17835,10 @@ snapshots:
detect-libc@2.1.2: {}
devalue@5.8.1: {}
devalue@5.8.2: {}
devalue@5.9.0: {}
devlop@1.1.0:
dependencies:
dequal: 2.0.3
@@ -18350,14 +18357,14 @@ snapshots:
espree@10.4.0:
dependencies:
acorn: 8.17.0
acorn-jsx: 5.3.2(acorn@8.17.0)
acorn: 8.18.0
acorn-jsx: 5.3.2(acorn@8.18.0)
eslint-visitor-keys: 4.2.1
espree@9.6.1:
dependencies:
acorn: 8.17.0
acorn-jsx: 5.3.2(acorn@8.17.0)
acorn: 8.18.0
acorn-jsx: 5.3.2(acorn@8.18.0)
eslint-visitor-keys: 3.4.3
esprima@4.0.1: {}
@@ -18366,7 +18373,7 @@ snapshots:
dependencies:
estraverse: 5.3.0
esrap@2.2.13(@typescript-eslint/types@8.64.0):
esrap@2.3.0(@typescript-eslint/types@8.64.0):
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
optionalDependencies:
@@ -19628,7 +19635,7 @@ snapshots:
jsonc-eslint-parser@2.4.2:
dependencies:
acorn: 8.17.0
acorn: 8.18.0
eslint-visitor-keys: 3.4.3
espree: 9.6.1
semver: 7.8.5
@@ -20452,7 +20459,7 @@ snapshots:
mlly@1.8.2:
dependencies:
acorn: 8.17.0
acorn: 8.18.0
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.6.4
@@ -20465,13 +20472,13 @@ snapshots:
motion-utils@12.39.0: {}
motion-v@1.10.3(@vueuse/core@14.3.0(vue@3.5.39(typescript@5.9.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vue@3.5.39(typescript@5.9.3)):
motion-v@1.10.3(@vueuse/core@14.3.0(vue@3.5.40(typescript@5.9.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vue@3.5.40(typescript@5.9.3)):
dependencies:
'@vueuse/core': 14.3.0(vue@3.5.39(typescript@5.9.3))
'@vueuse/core': 14.3.0(vue@3.5.40(typescript@5.9.3))
framer-motion: 12.42.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
hey-listen: 1.0.8
motion-dom: 12.42.2
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- react
@@ -21870,7 +21877,7 @@ snapshots:
safer-buffer@2.1.2: {}
sandpack-vue3@3.1.12(vue@3.5.39(typescript@5.9.3)):
sandpack-vue3@3.1.12(vue@3.5.40(typescript@5.9.3)):
dependencies:
'@codemirror/autocomplete': 6.20.3
'@codemirror/commands': 6.10.4
@@ -21883,12 +21890,12 @@ snapshots:
'@codesandbox/sandpack-client': 2.19.8
'@lezer/highlight': 1.2.3
'@stitches/core': 1.2.8
ansi-to-vue3: 0.1.2(vue@3.5.39(typescript@5.9.3))
ansi-to-vue3: 0.1.2(vue@3.5.40(typescript@5.9.3))
clean-set: 1.1.2
dequal: 2.0.3
lz-string: 1.5.0
optionalDependencies:
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
sass-formatter@0.7.9:
dependencies:
@@ -22499,22 +22506,22 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@4.7.2(picomatch@4.0.5)(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
svelte-check@4.7.4(picomatch@4.0.5)(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
'@sveltejs/load-config': 0.2.0
'@sveltejs/load-config': 0.2.1
chokidar: 4.0.3
fdir: 6.5.0(picomatch@4.0.5)
picocolors: 1.1.1
sade: 1.8.1
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
typescript: 5.9.3
transitivePeerDependencies:
- picomatch
svelte-preprocess@6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
svelte-preprocess@6.0.5(@babel/core@7.29.7(supports-color@10.2.2))(less@4.6.7)(postcss@8.5.19)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
dependencies:
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
optionalDependencies:
'@babel/core': 7.29.7(supports-color@10.2.2)
less: 4.6.7
@@ -22523,27 +22530,27 @@ snapshots:
stylus: 0.56.0(supports-color@10.2.2)
typescript: 5.9.3
svelte2tsx@0.7.57(svelte@5.56.5(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
svelte2tsx@0.7.57(svelte@5.56.8(@typescript-eslint/types@8.64.0))(typescript@5.9.3):
dependencies:
dedent-js: 1.0.1
scule: 1.3.0
svelte: 5.56.5(@typescript-eslint/types@8.64.0)
svelte: 5.56.8(@typescript-eslint/types@8.64.0)
typescript: 5.9.3
svelte@5.56.5(@typescript-eslint/types@8.64.0):
svelte@5.56.8(@typescript-eslint/types@8.64.0):
dependencies:
'@jridgewell/remapping': 2.3.5
'@jridgewell/sourcemap-codec': 1.5.5
'@sveltejs/acorn-typescript': 1.0.11(acorn@8.17.0)
'@sveltejs/acorn-typescript': 1.0.11(acorn@8.18.0)
'@types/estree': 1.0.9
'@types/trusted-types': 2.0.7
acorn: 8.17.0
acorn: 8.18.0
aria-query: 5.3.1
axobject-query: 4.1.0
clsx: 2.1.1
devalue: 5.8.1
devalue: 5.9.0
esm-env: 1.2.2
esrap: 2.2.13(@typescript-eslint/types@8.64.0)
esrap: 2.3.0(@typescript-eslint/types@8.64.0)
is-reference: 3.0.3
locate-character: 3.0.0
magic-string: 0.30.21
@@ -22668,7 +22675,7 @@ snapshots:
terser@5.49.0:
dependencies:
'@jridgewell/source-map': 0.3.11
acorn: 8.17.0
acorn: 8.18.0
commander: 2.20.3
source-map-support: 0.5.21
@@ -22783,7 +22790,7 @@ snapshots:
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 26.1.1
acorn: 8.17.0
acorn: 8.18.0
acorn-walk: 8.3.5
arg: 4.1.3
create-require: 1.1.1
@@ -22922,7 +22929,7 @@ snapshots:
unctx@2.5.0:
dependencies:
acorn: 8.17.0
acorn: 8.18.0
estree-walker: 3.0.3
magic-string: 0.30.21
unplugin: 2.3.11
@@ -22971,7 +22978,7 @@ snapshots:
unimport@6.3.0(esbuild@0.28.1)(rollup@4.62.2)(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)):
dependencies:
acorn: 8.17.0
acorn: 8.18.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
local-pkg: 1.2.1
@@ -23055,7 +23062,7 @@ snapshots:
unplugin@2.3.11:
dependencies:
'@jridgewell/remapping': 2.3.5
acorn: 8.17.0
acorn: 8.18.0
picomatch: 4.0.5
webpack-virtual-modules: 0.6.2
@@ -23279,7 +23286,7 @@ snapshots:
'@shikijs/transformers': 2.5.0
'@shikijs/types': 2.5.0
'@types/markdown-it': 14.1.2
'@vitejs/plugin-vue': 5.2.4(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.39(typescript@5.9.3))
'@vitejs/plugin-vue': 5.2.4(vite@7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
'@vue/devtools-api': 7.7.10
'@vue/shared': 3.5.39
'@vueuse/core': 12.8.2(typescript@5.9.3)
@@ -23289,7 +23296,7 @@ snapshots:
minisearch: 7.2.0
shiki: 2.5.0
vite: 7.3.6(@types/node@26.1.1)(jiti@2.7.0)(less@4.6.7)(sass@1.101.0)(stylus@0.56.0(supports-color@10.2.2))(terser@5.49.0)(yaml@2.9.0)
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
optionalDependencies:
postcss: 8.5.19
transitivePeerDependencies:
@@ -23391,19 +23398,19 @@ snapshots:
vscode-uri@3.1.0: {}
vue-component-type-helpers@2.2.12: {}
vue-component-type-helpers@3.3.9: {}
vue-demi@0.14.10(vue@3.5.39(typescript@5.9.3)):
vue-demi@0.14.10(vue@3.5.40(typescript@5.9.3)):
dependencies:
vue: 3.5.39(typescript@5.9.3)
vue: 3.5.40(typescript@5.9.3)
vue@3.5.39(typescript@5.9.3):
vue@3.5.40(typescript@5.9.3):
dependencies:
'@vue/compiler-dom': 3.5.39
'@vue/compiler-sfc': 3.5.39
'@vue/runtime-dom': 3.5.39
'@vue/server-renderer': 3.5.39(vue@3.5.39(typescript@5.9.3))
'@vue/shared': 3.5.39
'@vue/compiler-dom': 3.5.40
'@vue/compiler-sfc': 3.5.40
'@vue/runtime-dom': 3.5.40
'@vue/server-renderer': 3.5.40
'@vue/shared': 3.5.40
optionalDependencies:
typescript: 5.9.3

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));

View File

@@ -110,7 +110,6 @@ export default async function generateAliasesFiles({
? deprecationReasonTemplate(alias.deprecationReason, {
componentName: toPascalCase(iconName),
iconName,
toBeRemovedInVersion: alias.toBeRemovedInVersion,
})
: '';

View File

@@ -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,
})
: '';

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[];

View File

@@ -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}`);
}