diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index cb9894f0d..10c622107 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -17,6 +17,10 @@ permissions:
id-token: write # Required for OIDC
contents: write
+# This is added to make sure we wait until last release is done, this is needed for the font-build process
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+
jobs:
create-release:
if: github.repository == 'lucide-icons/lucide' && startsWith(github.event.head_commit.message, 'feat(icons)') && github.event_name != 'workflow_dispatch'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d21e61ee3..3f4898ac2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -16,6 +16,9 @@ permissions:
id-token: write # Required for OIDC
contents: write
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+
jobs:
pre-release:
if: github.repository == 'lucide-icons/lucide' && contains('["ericfennis", "karsa-mistmere", "jguddas"]', github.actor)
@@ -129,11 +132,8 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile
- - name: Outline svg Icons
- run: pnpm build:outline-icons
-
- name: Create font in ./lucide-font
- run: pnpm build:font
+ run: pnpm build:font --saveCodePoints
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v4
diff --git a/.gitignore b/.gitignore
index a4016ec89..21db74229 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@ coverage
stats
*.log
outlined
+lucide-font
packages/**/src/icons/*.js
packages/**/src/icons/*.ts
packages/**/src/icons/*.tsx
diff --git a/icons/fishing-rod.json b/icons/fishing-rod.json
new file mode 100644
index 000000000..823e13277
--- /dev/null
+++ b/icons/fishing-rod.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "../icon.schema.json",
+ "contributors": [
+ "7ender",
+ "jguddas",
+ "karsa-mistmere"
+ ],
+ "tags": [
+ "fishing",
+ "rod",
+ "hobby",
+ "equipment",
+ "reel"
+ ],
+ "categories": [
+ "sports",
+ "travel"
+ ]
+}
diff --git a/icons/fishing-rod.svg b/icons/fishing-rod.svg
new file mode 100644
index 000000000..eea40ac32
--- /dev/null
+++ b/icons/fishing-rod.svg
@@ -0,0 +1,15 @@
+
diff --git a/lucide-font/lucide.svg b/lucide-font/lucide.svg
deleted file mode 100644
index e69de29bb..000000000
diff --git a/package.json b/package.json
index dc10fd703..adee34061 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
"lucide-svelte": "pnpm --filter lucide-svelte",
"lucide-static": "pnpm --filter lucide-static",
"build:outline-icons": "pnpm --filter outline-svg start",
- "build:font": "pnpm --filter docs prebuild:releaseJson && pnpm --filter build-font start",
+ "build:font": "pnpm --filter build-font start",
"optimize": "node ./scripts/optimizeSvgs.mts",
"addjsons": "node ./scripts/addMissingIconJsonFiles.mts",
"checkIcons": "node ./scripts/checkIconsAndCategories.mts",
diff --git a/packages/lucide-preact/package.json b/packages/lucide-preact/package.json
index c6ddb6ae4..193a7fbb0 100644
--- a/packages/lucide-preact/package.json
+++ b/packages/lucide-preact/package.json
@@ -50,7 +50,7 @@
"@testing-library/preact": "^3.2.3",
"jest-serializer-html": "^7.1.0",
"preact": "^10.27.3",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-dts": "^6.2.3",
"typescript": "^5.8.3",
"vite": "^7.2.4",
diff --git a/packages/lucide-react-native/package.json b/packages/lucide-react-native/package.json
index f95ff79ce..ef83b15b1 100644
--- a/packages/lucide-react-native/package.json
+++ b/packages/lucide-react-native/package.json
@@ -68,7 +68,7 @@
"react-dom": "^18.0.0",
"react-native": "^0.76.0",
"react-native-svg": "^15.8.0",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-dts": "^6.2.3",
"typescript": "^5.8.3",
"vite": "^7.2.4",
diff --git a/packages/lucide-react/package.json b/packages/lucide-react/package.json
index 12de44b2f..bfd0e0bb3 100644
--- a/packages/lucide-react/package.json
+++ b/packages/lucide-react/package.json
@@ -61,7 +61,7 @@
"jest-serializer-html": "^7.1.0",
"react": "18.2.0",
"react-dom": "18.2.0",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-dts": "^6.2.3",
"rollup-plugin-preserve-directives": "^0.4.0",
"typescript": "^5.8.3",
diff --git a/packages/lucide-solid/package.json b/packages/lucide-solid/package.json
index 20cfc1983..e70378bed 100644
--- a/packages/lucide-solid/package.json
+++ b/packages/lucide-solid/package.json
@@ -78,7 +78,7 @@
"@testing-library/jest-dom": "^6.8.0",
"babel-preset-solid": "^1.8.12",
"jest-serializer-html": "^7.1.0",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"solid-js": "^1.9.4",
"typescript": "^5.8.3",
"vite": "^7.2.4",
diff --git a/packages/lucide-static/package.json b/packages/lucide-static/package.json
index 14d340dba..66632797e 100644
--- a/packages/lucide-static/package.json
+++ b/packages/lucide-static/package.json
@@ -44,7 +44,7 @@
"@types/node": "^22.15.30",
"prettier": "^2.3.2",
"svgson": "^5.2.1",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-dts": "^6.2.1"
}
}
diff --git a/packages/lucide-vue-next/package.json b/packages/lucide-vue-next/package.json
index 23164bcd1..6e12b0b61 100644
--- a/packages/lucide-vue-next/package.json
+++ b/packages/lucide-vue-next/package.json
@@ -52,7 +52,7 @@
"@testing-library/vue": "^8.1.0",
"@vitejs/plugin-vue": "^6.0.2",
"@vue/test-utils": "2.4.6",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-dts": "^6.2.3",
"vite": "^7.2.4",
"vitest": "^4.0.12",
diff --git a/packages/lucide-vue/package.json b/packages/lucide-vue/package.json
index 44b1322b4..c8a3091fc 100644
--- a/packages/lucide-vue/package.json
+++ b/packages/lucide-vue/package.json
@@ -50,7 +50,7 @@
"@testing-library/vue": "^5.9.0",
"@vitejs/plugin-vue2": "2.2.0",
"@vue/test-utils": "1.3.0",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"typescript": "^5.8.3",
"vite": "^7.2.4",
"vitest": "^4.0.12",
diff --git a/packages/lucide/package.json b/packages/lucide/package.json
index 0dca00169..f85fa90ae 100644
--- a/packages/lucide/package.json
+++ b/packages/lucide/package.json
@@ -49,7 +49,7 @@
"@rollup/plugin-replace": "^6.0.2",
"@testing-library/jest-dom": "^6.8.0",
"jest-serializer-html": "^7.1.0",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-dts": "^6.2.3",
"typescript": "^5.8.3",
"vite": "^7.2.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a6fbda81e..aa8b97a17 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -199,7 +199,7 @@ importers:
version: 1.15.4
nitropack:
specifier: ^2.12.4
- version: 2.13.1(encoding@0.1.13)(xml2js@0.6.2)
+ version: 2.13.1(@vercel/blob@2.0.0)(encoding@0.1.13)(xml2js@0.6.2)
rollup-plugin-copy:
specifier: ^3.5.0
version: 3.5.0
@@ -226,7 +226,7 @@ importers:
version: 6.9.1
astro:
specifier: ^5.16.0
- version: 5.16.0(@types/node@24.10.1)(db0@0.3.4)(ioredis@5.9.3)(jiti@2.6.1)(less@4.2.0)(rollup@4.59.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.0)
+ version: 5.16.0(@types/node@24.10.1)(@vercel/blob@2.0.0)(db0@0.3.4)(ioredis@5.10.0)(jiti@2.6.1)(less@4.2.0)(rollup@4.59.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.0)
jest-serializer-html:
specifier: ^7.1.0
version: 7.1.0
@@ -259,7 +259,7 @@ importers:
version: link:../shared
'@rollup/plugin-replace':
specifier: ^6.0.2
- version: 6.0.3(rollup@4.53.3)
+ version: 6.0.3(rollup@4.59.0)
'@testing-library/jest-dom':
specifier: ^6.8.0
version: 6.9.1
@@ -267,11 +267,11 @@ importers:
specifier: ^7.1.0
version: 7.1.0
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-dts:
specifier: ^6.2.3
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ version: 6.2.3(rollup@4.59.0)(typescript@5.9.3)
typescript:
specifier: ^5.8.3
version: 5.9.3
@@ -415,11 +415,11 @@ importers:
specifier: ^10.27.3
version: 10.28.2
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-dts:
specifier: ^6.2.3
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ version: 6.2.3(rollup@4.59.0)(typescript@5.9.3)
typescript:
specifier: ^5.8.3
version: 5.9.3
@@ -463,14 +463,14 @@ importers:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-dts:
specifier: ^6.2.3
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ version: 6.2.3(rollup@4.59.0)(typescript@5.9.3)
rollup-plugin-preserve-directives:
specifier: ^0.4.0
- version: 0.4.0(rollup@4.53.3)
+ version: 0.4.0(rollup@4.59.0)
typescript:
specifier: ^5.8.3
version: 5.9.3
@@ -523,11 +523,11 @@ importers:
specifier: ^15.8.0
version: 15.15.0(react-native@0.76.9(@babel/core@7.28.5)(@babel/preset-env@7.28.5(@babel/core@7.28.5))(@types/react@18.3.27)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-dts:
specifier: ^6.2.3
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ version: 6.2.3(rollup@4.59.0)(typescript@5.9.3)
typescript:
specifier: ^5.8.3
version: 5.9.3
@@ -560,7 +560,7 @@ importers:
version: link:../shared
'@rollup/plugin-babel':
specifier: ^6.0.4
- version: 6.1.0(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@4.53.3)
+ version: 6.1.0(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@4.59.0)
'@solidjs/testing-library':
specifier: ^0.8.10
version: 0.8.10(@solidjs/router@0.11.5(solid-js@1.9.10))(solid-js@1.9.10)
@@ -577,8 +577,8 @@ importers:
specifier: ^7.1.0
version: 7.1.0
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
solid-js:
specifier: ^1.9.4
version: 1.9.10
@@ -613,11 +613,11 @@ importers:
specifier: ^2.3.2
version: 2.8.8
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-dts:
specifier: ^6.2.1
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ version: 6.2.3(rollup@4.59.0)(typescript@5.9.3)
svgson:
specifier: ^5.2.1
version: 5.3.1
@@ -694,8 +694,8 @@ importers:
specifier: 1.3.0
version: 1.3.0(vue-template-compiler@2.7.14(vue@2.7.14))(vue@2.7.14)
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
typescript:
specifier: ^5.8.3
version: 5.9.3
@@ -736,11 +736,11 @@ importers:
specifier: 2.4.6
version: 2.4.6
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-dts:
specifier: ^6.2.3
- version: 6.2.3(rollup@4.53.3)(typescript@5.9.3)
+ version: 6.2.3(rollup@4.59.0)(typescript@5.9.3)
vite:
specifier: ^7.2.4
version: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(less@4.2.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(yaml@2.8.0)
@@ -816,10 +816,16 @@ importers:
minimist:
specifier: ^1.2.8
version: 1.2.8
+ oslllo-svg-fixer:
+ specifier: ^5.0.0
+ version: 5.0.0(encoding@0.1.13)
svgtofont:
specifier: ^6.5.0
version: 6.5.0(@types/svg2ttf@5.0.1)(chokidar@3.6.0)
devDependencies:
+ '@lucide/helpers':
+ specifier: workspace:*
+ version: link:../build-helpers
'@types/fs-extra':
specifier: ^11.0.4
version: 11.0.4
@@ -861,41 +867,32 @@ importers:
specifier: ^22
version: 22.19.1
- tools/outline-svg:
- dependencies:
- minimist:
- specifier: ^1.2.8
- version: 1.2.8
- oslllo-svg-fixer:
- specifier: ^5.0.0
- version: 5.0.0(encoding@0.1.13)
-
tools/rollup-plugins:
dependencies:
'@rollup/plugin-node-resolve':
specifier: ^16.0.3
- version: 16.0.3(rollup@4.53.3)
+ version: 16.0.3(rollup@4.59.0)
'@rollup/plugin-replace':
specifier: ^6.0.3
- version: 6.0.3(rollup@4.53.3)
+ version: 6.0.3(rollup@4.59.0)
esbuild:
specifier: ^0.27.0
version: 0.27.0
rollup:
- specifier: ^4.53.3
- version: 4.53.3
+ specifier: ^4.59.0
+ version: 4.59.0
rollup-plugin-esbuild:
specifier: ^6.2.1
- version: 6.2.1(esbuild@0.27.0)(rollup@4.53.3)
+ version: 6.2.1(esbuild@0.27.0)(rollup@4.59.0)
rollup-plugin-license:
specifier: ^3.6.0
- version: 3.6.0(picomatch@4.0.3)(rollup@4.53.3)
+ version: 3.6.0(picomatch@4.0.3)(rollup@4.59.0)
rollup-plugin-summary:
specifier: ^3.0.1
- version: 3.0.1(rollup@4.53.3)
+ version: 3.0.1(rollup@4.59.0)
rollup-plugin-visualizer:
specifier: ^6.0.5
- version: 6.0.5(rollup@4.53.3)
+ version: 6.0.5(rollup@4.59.0)
packages:
@@ -1411,6 +1408,10 @@ packages:
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.28.5':
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
@@ -3570,8 +3571,8 @@ packages:
cpu: [x64]
os: [win32]
- '@ioredis/commands@1.5.0':
- resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==}
+ '@ioredis/commands@1.5.1':
+ resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==}
'@isaacs/balanced-match@4.0.1':
resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
@@ -4571,11 +4572,6 @@ packages:
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm-eabi@4.53.3':
- resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==}
- cpu: [arm]
- os: [android]
-
'@rollup/rollup-android-arm-eabi@4.59.0':
resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==}
cpu: [arm]
@@ -4586,11 +4582,6 @@ packages:
cpu: [arm64]
os: [android]
- '@rollup/rollup-android-arm64@4.53.3':
- resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==}
- cpu: [arm64]
- os: [android]
-
'@rollup/rollup-android-arm64@4.59.0':
resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==}
cpu: [arm64]
@@ -4601,11 +4592,6 @@ packages:
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-arm64@4.53.3':
- resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==}
- cpu: [arm64]
- os: [darwin]
-
'@rollup/rollup-darwin-arm64@4.59.0':
resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==}
cpu: [arm64]
@@ -4616,11 +4602,6 @@ packages:
cpu: [x64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.53.3':
- resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==}
- cpu: [x64]
- os: [darwin]
-
'@rollup/rollup-darwin-x64@4.59.0':
resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==}
cpu: [x64]
@@ -4631,11 +4612,6 @@ packages:
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-arm64@4.53.3':
- resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==}
- cpu: [arm64]
- os: [freebsd]
-
'@rollup/rollup-freebsd-arm64@4.59.0':
resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==}
cpu: [arm64]
@@ -4646,11 +4622,6 @@ packages:
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.53.3':
- resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==}
- cpu: [x64]
- os: [freebsd]
-
'@rollup/rollup-freebsd-x64@4.59.0':
resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==}
cpu: [x64]
@@ -4661,11 +4632,6 @@ packages:
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-gnueabihf@4.53.3':
- resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==}
- cpu: [arm]
- os: [linux]
-
'@rollup/rollup-linux-arm-gnueabihf@4.59.0':
resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==}
cpu: [arm]
@@ -4676,11 +4642,6 @@ packages:
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.53.3':
- resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==}
- cpu: [arm]
- os: [linux]
-
'@rollup/rollup-linux-arm-musleabihf@4.59.0':
resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==}
cpu: [arm]
@@ -4691,11 +4652,6 @@ packages:
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.53.3':
- resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==}
- cpu: [arm64]
- os: [linux]
-
'@rollup/rollup-linux-arm64-gnu@4.59.0':
resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==}
cpu: [arm64]
@@ -4706,11 +4662,6 @@ packages:
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.53.3':
- resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==}
- cpu: [arm64]
- os: [linux]
-
'@rollup/rollup-linux-arm64-musl@4.59.0':
resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==}
cpu: [arm64]
@@ -4721,11 +4672,6 @@ packages:
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.53.3':
- resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==}
- cpu: [loong64]
- os: [linux]
-
'@rollup/rollup-linux-loong64-gnu@4.59.0':
resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==}
cpu: [loong64]
@@ -4741,11 +4687,6 @@ packages:
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-ppc64-gnu@4.53.3':
- resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==}
- cpu: [ppc64]
- os: [linux]
-
'@rollup/rollup-linux-ppc64-gnu@4.59.0':
resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==}
cpu: [ppc64]
@@ -4761,11 +4702,6 @@ packages:
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.53.3':
- resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==}
- cpu: [riscv64]
- os: [linux]
-
'@rollup/rollup-linux-riscv64-gnu@4.59.0':
resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==}
cpu: [riscv64]
@@ -4776,11 +4712,6 @@ packages:
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.53.3':
- resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==}
- cpu: [riscv64]
- os: [linux]
-
'@rollup/rollup-linux-riscv64-musl@4.59.0':
resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==}
cpu: [riscv64]
@@ -4791,11 +4722,6 @@ packages:
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.53.3':
- resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==}
- cpu: [s390x]
- os: [linux]
-
'@rollup/rollup-linux-s390x-gnu@4.59.0':
resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==}
cpu: [s390x]
@@ -4806,11 +4732,6 @@ packages:
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.53.3':
- resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==}
- cpu: [x64]
- os: [linux]
-
'@rollup/rollup-linux-x64-gnu@4.59.0':
resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==}
cpu: [x64]
@@ -4821,11 +4742,6 @@ packages:
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.53.3':
- resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==}
- cpu: [x64]
- os: [linux]
-
'@rollup/rollup-linux-x64-musl@4.59.0':
resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==}
cpu: [x64]
@@ -4841,11 +4757,6 @@ packages:
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-openharmony-arm64@4.53.3':
- resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==}
- cpu: [arm64]
- os: [openharmony]
-
'@rollup/rollup-openharmony-arm64@4.59.0':
resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==}
cpu: [arm64]
@@ -4856,11 +4767,6 @@ packages:
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-arm64-msvc@4.53.3':
- resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==}
- cpu: [arm64]
- os: [win32]
-
'@rollup/rollup-win32-arm64-msvc@4.59.0':
resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==}
cpu: [arm64]
@@ -4871,11 +4777,6 @@ packages:
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.53.3':
- resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==}
- cpu: [ia32]
- os: [win32]
-
'@rollup/rollup-win32-ia32-msvc@4.59.0':
resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==}
cpu: [ia32]
@@ -4886,11 +4787,6 @@ packages:
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.53.3':
- resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==}
- cpu: [x64]
- os: [win32]
-
'@rollup/rollup-win32-x64-gnu@4.59.0':
resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==}
cpu: [x64]
@@ -4901,11 +4797,6 @@ packages:
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.53.3':
- resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==}
- cpu: [x64]
- os: [win32]
-
'@rollup/rollup-win32-x64-msvc@4.59.0':
resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==}
cpu: [x64]
@@ -5416,6 +5307,9 @@ packages:
'@types/prop-types@15.7.15':
resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
+ '@types/prop-types@15.7.5':
+ resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
+
'@types/pug@2.0.6':
resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
@@ -5708,6 +5602,10 @@ packages:
cpu: [x64]
os: [win32]
+ '@vercel/blob@2.0.0':
+ resolution: {integrity: sha512-oAj7Pdy83YKSwIaMFoM7zFeLYWRc+qUpW3PiDSblxQMnGFb43qs4bmfq7dr/+JIfwhs6PTwe1o2YBwKhyjWxXw==}
+ engines: {node: '>=20.0.0'}
+
'@vercel/nft@1.3.2':
resolution: {integrity: sha512-HC8venRc4Ya7vNeBsJneKHHMDDWpQie7VaKhAIOst3MKO+DES+Y/SbzSp8mFkD7OzwAE2HhHkeSuSmwS20mz3A==}
engines: {node: '>=20'}
@@ -6032,6 +5930,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
adjust-sourcemap-loader@4.0.0:
resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==}
engines: {node: '>=8.9'}
@@ -6267,6 +6170,9 @@ packages:
async-limiter@1.0.1:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
+ async-retry@1.3.3:
+ resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
+
async-sema@3.1.1:
resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
@@ -6494,8 +6400,8 @@ packages:
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
- brace-expansion@5.0.3:
- resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==}
+ brace-expansion@5.0.4:
+ resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==}
engines: {node: 18 || 20 || >=22}
braces@3.0.3:
@@ -8235,10 +8141,6 @@ packages:
resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==}
engines: {node: '>=8'}
- fast-glob@3.3.2:
- resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
- engines: {node: '>=8.6.0'}
-
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
@@ -8563,11 +8465,11 @@ packages:
glob@7.2.0:
resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
- deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+ deprecated: Glob versions prior to v9 are no longer supported
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
+ deprecated: Glob versions prior to v9 are no longer supported
glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
@@ -8956,8 +8858,8 @@ packages:
invariant@2.2.4:
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
- ioredis@5.9.3:
- resolution: {integrity: sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==}
+ ioredis@5.10.0:
+ resolution: {integrity: sha512-HVBe9OFuqs+Z6n64q09PQvP1/R4Bm+30PAyyD4wIEqssh3v9L21QjCVk4kRLucMBcDokJTcLjsGeVRlq/nH6DA==}
engines: {node: '>=12.22.0'}
ip-address@9.0.5:
@@ -9008,6 +8910,10 @@ packages:
is-buffer@1.1.6:
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ is-buffer@2.0.5:
+ resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
+ engines: {node: '>=4'}
+
is-builtin-module@3.2.1:
resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
@@ -9099,6 +9005,9 @@ packages:
resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
engines: {node: '>= 0.4'}
+ is-node-process@1.2.0:
+ resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==}
+
is-number-object@1.1.1:
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines: {node: '>= 0.4'}
@@ -11656,11 +11565,6 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
- rollup@4.53.3:
- resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
rollup@4.59.0:
resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -12523,6 +12427,10 @@ packages:
throat@5.0.0:
resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
+ throttleit@2.1.0:
+ resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
+ engines: {node: '>=18'}
+
through2@2.0.5:
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
@@ -12837,8 +12745,8 @@ packages:
unifont@0.6.0:
resolution: {integrity: sha512-5Fx50fFQMQL5aeHyWnZX9122sSLckcDvcfFiBf3QYeHa7a1MKJooUy52b67moi2MJYkrfo/TWY+CoLdr/w0tTA==}
- unimport@5.6.0:
- resolution: {integrity: sha512-8rqAmtJV8o60x46kBAJKtHpJDJWkA2xcBqWKPI14MgUb05o1pnpnCnXSxedUXyeq7p8fR5g3pTo2BaswZ9lD9A==}
+ unimport@5.7.0:
+ resolution: {integrity: sha512-njnL6sp8lEA8QQbZrt+52p/g4X0rw3bnGGmUcJnt1jeG8+iiqO779aGz0PirCtydAIVcuTBRlJ52F0u46z309Q==}
engines: {node: '>=18.12.0'}
unique-filename@1.1.1:
@@ -14284,13 +14192,13 @@ snapshots:
'@babel/code-frame@7.26.2':
dependencies:
- '@babel/helper-validator-identifier': 7.28.5
+ '@babel/helper-validator-identifier': 7.27.1
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/code-frame@7.27.1':
dependencies:
- '@babel/helper-validator-identifier': 7.28.5
+ '@babel/helper-validator-identifier': 7.27.1
js-tokens: 4.0.0
picocolors: 1.1.1
@@ -14734,6 +14642,8 @@ snapshots:
'@babel/helper-string-parser@7.27.1': {}
+ '@babel/helper-validator-identifier@7.27.1': {}
+
'@babel/helper-validator-identifier@7.28.5': {}
'@babel/helper-validator-option@7.25.9': {}
@@ -16903,7 +16813,7 @@ snapshots:
'@img/sharp-win32-x64@0.34.5':
optional: true
- '@ioredis/commands@1.5.0': {}
+ '@ioredis/commands@1.5.1': {}
'@isaacs/balanced-match@4.0.1': {}
@@ -16944,14 +16854,14 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
jest-mock: 29.7.0
'@jest/fake-timers@29.7.0':
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -16985,7 +16895,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
'@types/yargs': 17.0.35
chalk: 4.1.2
@@ -17972,14 +17882,14 @@ snapshots:
optionalDependencies:
rollup: 4.59.0
- '@rollup/plugin-babel@6.1.0(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@4.53.3)':
+ '@rollup/plugin-babel@6.1.0(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@4.59.0)':
dependencies:
'@babel/core': 7.28.5
'@babel/helper-module-imports': 7.22.15
- '@rollup/pluginutils': 5.0.5(rollup@4.53.3)
+ '@rollup/pluginutils': 5.0.5(rollup@4.59.0)
optionalDependencies:
'@types/babel__core': 7.20.5
- rollup: 4.53.3
+ rollup: 4.59.0
'@rollup/plugin-commonjs@29.0.0(rollup@4.59.0)':
dependencies:
@@ -18022,16 +17932,6 @@ snapshots:
resolve: 1.22.10
rollup: 2.79.2
- '@rollup/plugin-node-resolve@16.0.3(rollup@4.53.3)':
- dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.53.3)
- '@types/resolve': 1.20.2
- deepmerge: 4.3.1
- is-module: 1.0.0
- resolve: 1.22.10
- optionalDependencies:
- rollup: 4.53.3
-
'@rollup/plugin-node-resolve@16.0.3(rollup@4.59.0)':
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
@@ -18042,13 +17942,6 @@ snapshots:
optionalDependencies:
rollup: 4.59.0
- '@rollup/plugin-replace@6.0.3(rollup@4.53.3)':
- dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.53.3)
- magic-string: 0.30.21
- optionalDependencies:
- rollup: 4.53.3
-
'@rollup/plugin-replace@6.0.3(rollup@4.59.0)':
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
@@ -18076,29 +17969,21 @@ snapshots:
estree-walker: 2.0.2
picomatch: 2.3.1
- '@rollup/pluginutils@5.0.5(rollup@4.53.3)':
+ '@rollup/pluginutils@5.0.5(rollup@4.59.0)':
dependencies:
'@types/estree': 1.0.8
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
- rollup: 4.53.3
+ rollup: 4.59.0
- '@rollup/pluginutils@5.1.0(rollup@4.53.3)':
+ '@rollup/pluginutils@5.1.0(rollup@4.59.0)':
dependencies:
'@types/estree': 1.0.8
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
- rollup: 4.53.3
-
- '@rollup/pluginutils@5.3.0(rollup@4.53.3)':
- dependencies:
- '@types/estree': 1.0.8
- estree-walker: 2.0.2
- picomatch: 4.0.3
- optionalDependencies:
- rollup: 4.53.3
+ rollup: 4.59.0
'@rollup/pluginutils@5.3.0(rollup@4.59.0)':
dependencies:
@@ -18111,99 +17996,66 @@ snapshots:
'@rollup/rollup-android-arm-eabi@4.52.4':
optional: true
- '@rollup/rollup-android-arm-eabi@4.53.3':
- optional: true
-
'@rollup/rollup-android-arm-eabi@4.59.0':
optional: true
'@rollup/rollup-android-arm64@4.52.4':
optional: true
- '@rollup/rollup-android-arm64@4.53.3':
- optional: true
-
'@rollup/rollup-android-arm64@4.59.0':
optional: true
'@rollup/rollup-darwin-arm64@4.52.4':
optional: true
- '@rollup/rollup-darwin-arm64@4.53.3':
- optional: true
-
'@rollup/rollup-darwin-arm64@4.59.0':
optional: true
'@rollup/rollup-darwin-x64@4.52.4':
optional: true
- '@rollup/rollup-darwin-x64@4.53.3':
- optional: true
-
'@rollup/rollup-darwin-x64@4.59.0':
optional: true
'@rollup/rollup-freebsd-arm64@4.52.4':
optional: true
- '@rollup/rollup-freebsd-arm64@4.53.3':
- optional: true
-
'@rollup/rollup-freebsd-arm64@4.59.0':
optional: true
'@rollup/rollup-freebsd-x64@4.52.4':
optional: true
- '@rollup/rollup-freebsd-x64@4.53.3':
- optional: true
-
'@rollup/rollup-freebsd-x64@4.59.0':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.52.4':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.53.3':
- optional: true
-
'@rollup/rollup-linux-arm-gnueabihf@4.59.0':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.52.4':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.53.3':
- optional: true
-
'@rollup/rollup-linux-arm-musleabihf@4.59.0':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-linux-arm64-gnu@4.59.0':
optional: true
'@rollup/rollup-linux-arm64-musl@4.52.4':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.53.3':
- optional: true
-
'@rollup/rollup-linux-arm64-musl@4.59.0':
optional: true
'@rollup/rollup-linux-loong64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-linux-loong64-gnu@4.59.0':
optional: true
@@ -18213,9 +18065,6 @@ snapshots:
'@rollup/rollup-linux-ppc64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-linux-ppc64-gnu@4.59.0':
optional: true
@@ -18225,45 +18074,30 @@ snapshots:
'@rollup/rollup-linux-riscv64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-linux-riscv64-gnu@4.59.0':
optional: true
'@rollup/rollup-linux-riscv64-musl@4.52.4':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.53.3':
- optional: true
-
'@rollup/rollup-linux-riscv64-musl@4.59.0':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-linux-s390x-gnu@4.59.0':
optional: true
'@rollup/rollup-linux-x64-gnu@4.52.4':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-linux-x64-gnu@4.59.0':
optional: true
'@rollup/rollup-linux-x64-musl@4.52.4':
optional: true
- '@rollup/rollup-linux-x64-musl@4.53.3':
- optional: true
-
'@rollup/rollup-linux-x64-musl@4.59.0':
optional: true
@@ -18273,45 +18107,30 @@ snapshots:
'@rollup/rollup-openharmony-arm64@4.52.4':
optional: true
- '@rollup/rollup-openharmony-arm64@4.53.3':
- optional: true
-
'@rollup/rollup-openharmony-arm64@4.59.0':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.52.4':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.53.3':
- optional: true
-
'@rollup/rollup-win32-arm64-msvc@4.59.0':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.52.4':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.53.3':
- optional: true
-
'@rollup/rollup-win32-ia32-msvc@4.59.0':
optional: true
'@rollup/rollup-win32-x64-gnu@4.52.4':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.53.3':
- optional: true
-
'@rollup/rollup-win32-x64-gnu@4.59.0':
optional: true
'@rollup/rollup-win32-x64-msvc@4.52.4':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.53.3':
- optional: true
-
'@rollup/rollup-win32-x64-msvc@4.59.0':
optional: true
@@ -18740,11 +18559,11 @@ snapshots:
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/bonjour@3.5.13':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/chai@5.2.2':
dependencies:
@@ -18753,17 +18572,17 @@ snapshots:
'@types/connect-history-api-fallback@1.5.4':
dependencies:
'@types/express-serve-static-core': 4.19.5
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/connect@3.4.38':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/cookie@0.4.1': {}
'@types/cors@2.8.17':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/debug@4.1.12':
dependencies:
@@ -18791,7 +18610,7 @@ snapshots:
'@types/express-serve-static-core@4.19.5':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/qs': 6.9.15
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -18805,7 +18624,7 @@ snapshots:
'@types/fontkit@2.0.8':
dependencies:
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
'@types/fs-extra@11.0.4':
dependencies:
@@ -18819,11 +18638,11 @@ snapshots:
'@types/glob@7.2.0':
dependencies:
'@types/minimatch': 6.0.0
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
'@types/graceful-fs@4.1.9':
dependencies:
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
'@types/hast@3.0.4':
dependencies:
@@ -18884,7 +18703,7 @@ snapshots:
'@types/node-forge@1.3.11':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/node@12.20.55': {}
@@ -18904,6 +18723,8 @@ snapshots:
'@types/prop-types@15.7.15': {}
+ '@types/prop-types@15.7.5': {}
+
'@types/pug@2.0.6': {}
'@types/qs@6.9.15': {}
@@ -18916,12 +18737,12 @@ snapshots:
'@types/react@18.3.27':
dependencies:
- '@types/prop-types': 15.7.15
+ '@types/prop-types': 15.7.5
csstype: 3.2.3
'@types/resolve@1.17.1':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/resolve@1.20.2': {}
@@ -18936,7 +18757,7 @@ snapshots:
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/serve-index@1.9.4':
dependencies:
@@ -18945,12 +18766,12 @@ snapshots:
'@types/serve-static@1.15.7':
dependencies:
'@types/http-errors': 2.0.4
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/send': 0.17.4
'@types/sockjs@0.3.36':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/stack-utils@2.0.1': {}
@@ -18963,7 +18784,7 @@ snapshots:
'@types/ws@8.5.12':
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
'@types/yargs-parser@21.0.3': {}
@@ -19233,6 +19054,15 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.6.2':
optional: true
+ '@vercel/blob@2.0.0':
+ dependencies:
+ async-retry: 1.3.3
+ is-buffer: 2.0.5
+ is-node-process: 1.2.0
+ throttleit: 2.1.0
+ undici: 5.28.5
+ optional: true
+
'@vercel/nft@1.3.2(encoding@0.1.13)(rollup@4.59.0)':
dependencies:
'@mapbox/node-pre-gyp': 2.0.3(encoding@0.1.13)
@@ -19352,7 +19182,7 @@ snapshots:
'@vue/compiler-sfc@3.5.24':
dependencies:
- '@babel/parser': 7.28.6
+ '@babel/parser': 7.28.5
'@vue/compiler-core': 3.5.24
'@vue/compiler-dom': 3.5.24
'@vue/compiler-ssr': 3.5.24
@@ -19615,6 +19445,8 @@ snapshots:
acorn@8.15.0: {}
+ acorn@8.16.0: {}
+
adjust-sourcemap-loader@4.0.0:
dependencies:
loader-utils: 2.0.4
@@ -19881,7 +19713,7 @@ snapshots:
dependencies:
tslib: 2.8.1
- astro@5.16.0(@types/node@24.10.1)(db0@0.3.4)(ioredis@5.9.3)(jiti@2.6.1)(less@4.2.0)(rollup@4.59.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.0):
+ astro@5.16.0(@types/node@24.10.1)(@vercel/blob@2.0.0)(db0@0.3.4)(ioredis@5.10.0)(jiti@2.6.1)(less@4.2.0)(rollup@4.59.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(typescript@5.9.3)(yaml@2.8.0):
dependencies:
'@astrojs/compiler': 2.13.0
'@astrojs/internal-helpers': 0.7.5
@@ -19936,7 +19768,7 @@ snapshots:
ultrahtml: 1.6.0
unifont: 0.6.0
unist-util-visit: 5.0.0
- unstorage: 1.17.3(db0@0.3.4)(ioredis@5.9.3)
+ unstorage: 1.17.3(@vercel/blob@2.0.0)(db0@0.3.4)(ioredis@5.10.0)
vfile: 6.0.3
vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.2.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(yaml@2.8.0)
vitefu: 1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.2.0)(sass@1.77.8)(stylus@0.56.0)(terser@5.44.1)(yaml@2.8.0))
@@ -19987,6 +19819,11 @@ snapshots:
async-limiter@1.0.1: {}
+ async-retry@1.3.3:
+ dependencies:
+ retry: 0.13.1
+ optional: true
+
async-sema@3.1.1: {}
async@2.6.4:
@@ -20291,7 +20128,7 @@ snapshots:
dependencies:
balanced-match: 1.0.2
- brace-expansion@5.0.3:
+ brace-expansion@5.0.4:
dependencies:
balanced-match: 4.0.4
@@ -20566,7 +20403,7 @@ snapshots:
chrome-launcher@0.15.2:
dependencies:
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -20577,7 +20414,7 @@ snapshots:
chromium-edge-launcher@0.2.0:
dependencies:
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -21380,7 +21217,7 @@ snapshots:
dependencies:
'@types/cookie': 0.4.1
'@types/cors': 2.8.17
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
accepts: 1.3.8
base64id: 2.0.0
cookie: 0.4.2
@@ -22248,14 +22085,6 @@ snapshots:
merge2: 1.4.1
micromatch: 4.0.8
- fast-glob@3.3.2:
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.8
-
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -23137,9 +22966,9 @@ snapshots:
dependencies:
loose-envify: 1.4.0
- ioredis@5.9.3:
+ ioredis@5.10.0:
dependencies:
- '@ioredis/commands': 1.5.0
+ '@ioredis/commands': 1.5.1
cluster-key-slot: 1.1.2
debug: 4.4.3
denque: 2.1.0
@@ -23200,6 +23029,9 @@ snapshots:
is-buffer@1.1.6: {}
+ is-buffer@2.0.5:
+ optional: true
+
is-builtin-module@3.2.1:
dependencies:
builtin-modules: 3.3.0
@@ -23270,6 +23102,9 @@ snapshots:
is-negative-zero@2.0.3: {}
+ is-node-process@1.2.0:
+ optional: true
+
is-number-object@1.1.1:
dependencies:
call-bound: 1.0.4
@@ -23469,7 +23304,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -23496,7 +23331,7 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
jest-util: 29.7.0
jest-regex-util@29.6.3: {}
@@ -23508,7 +23343,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
chalk: 4.1.2
ci-info: 3.8.0
graceful-fs: 4.2.11
@@ -23525,13 +23360,13 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 12.20.55
+ '@types/node': 22.19.1
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@29.7.0:
dependencies:
- '@types/node': 24.10.1
+ '@types/node': 22.19.1
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -24729,7 +24564,7 @@ snapshots:
minimatch@10.2.4:
dependencies:
- brace-expansion: 5.0.3
+ brace-expansion: 5.0.4
minimatch@3.0.5:
dependencies:
@@ -24895,7 +24730,7 @@ snapshots:
needle@3.3.1:
dependencies:
iconv-lite: 0.6.3
- sax: 1.4.4
+ sax: 1.4.3
optional: true
negotiator@0.6.3: {}
@@ -24946,7 +24781,7 @@ snapshots:
node-gyp-build: 4.8.4
optional: true
- nitropack@2.13.1(encoding@0.1.13)(xml2js@0.6.2):
+ nitropack@2.13.1(@vercel/blob@2.0.0)(encoding@0.1.13)(xml2js@0.6.2):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.2
'@rollup/plugin-alias': 6.0.0(rollup@4.59.0)
@@ -24980,7 +24815,7 @@ snapshots:
h3: 1.15.5
hookable: 5.5.3
httpxy: 0.1.7
- ioredis: 5.9.3
+ ioredis: 5.10.0
jiti: 2.6.1
klona: 2.0.6
knitwork: 1.3.0
@@ -25011,9 +24846,9 @@ snapshots:
uncrypto: 0.1.3
unctx: 2.5.0
unenv: 2.0.0-rc.24
- unimport: 5.6.0
+ unimport: 5.7.0
unplugin-utils: 0.3.1
- unstorage: 1.17.4(db0@0.3.4)(ioredis@5.9.3)
+ unstorage: 1.17.4(@vercel/blob@2.0.0)(db0@0.3.4)(ioredis@5.10.0)
untyped: 2.0.0
unwasm: 0.5.3
youch: 4.1.0
@@ -25452,7 +25287,7 @@ snapshots:
dependencies:
ansi-colors: 4.1.3
cli-progress: 3.12.0
- fast-glob: 3.3.2
+ fast-glob: 3.3.3
oslllo-potrace: 3.0.0(encoding@0.1.13)
oslllo-svg2: 3.0.0(encoding@0.1.13)
oslllo-validator: 3.1.0
@@ -26746,26 +26581,26 @@ snapshots:
globby: 10.0.1
is-plain-object: 3.0.1
- rollup-plugin-dts@6.2.3(rollup@4.53.3)(typescript@5.9.3):
+ rollup-plugin-dts@6.2.3(rollup@4.59.0)(typescript@5.9.3):
dependencies:
magic-string: 0.30.17
- rollup: 4.53.3
+ rollup: 4.59.0
typescript: 5.9.3
optionalDependencies:
'@babel/code-frame': 7.27.1
- rollup-plugin-esbuild@6.2.1(esbuild@0.27.0)(rollup@4.53.3):
+ rollup-plugin-esbuild@6.2.1(esbuild@0.27.0)(rollup@4.59.0):
dependencies:
debug: 4.4.0
es-module-lexer: 1.6.0
esbuild: 0.27.0
get-tsconfig: 4.10.0
- rollup: 4.53.3
+ rollup: 4.59.0
unplugin-utils: 0.2.4
transitivePeerDependencies:
- supports-color
- rollup-plugin-license@3.6.0(picomatch@4.0.3)(rollup@4.53.3):
+ rollup-plugin-license@3.6.0(picomatch@4.0.3)(rollup@4.59.0):
dependencies:
commenting: 1.1.0
fdir: 6.4.4(picomatch@4.0.3)
@@ -26773,17 +26608,17 @@ snapshots:
magic-string: 0.30.17
moment: 2.30.1
package-name-regex: 2.0.6
- rollup: 4.53.3
+ rollup: 4.59.0
spdx-expression-validate: 2.0.0
spdx-satisfies: 5.0.1
transitivePeerDependencies:
- picomatch
- rollup-plugin-preserve-directives@0.4.0(rollup@4.53.3):
+ rollup-plugin-preserve-directives@0.4.0(rollup@4.59.0):
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.53.3)
+ '@rollup/pluginutils': 5.1.0(rollup@4.59.0)
magic-string: 0.30.11
- rollup: 4.53.3
+ rollup: 4.59.0
rollup-plugin-sourcemaps@0.6.3(@types/node@12.20.55)(rollup@2.79.2):
dependencies:
@@ -26793,7 +26628,7 @@ snapshots:
optionalDependencies:
'@types/node': 12.20.55
- rollup-plugin-summary@3.0.1(rollup@4.53.3):
+ rollup-plugin-summary@3.0.1(rollup@4.59.0):
dependencies:
'@eslint/eslintrc': 3.3.1
'@eslint/js': 9.39.1
@@ -26802,20 +26637,11 @@ snapshots:
filesize: 10.1.6
globals: 15.15.0
gzip-size: 7.0.0
- rollup: 4.53.3
+ rollup: 4.59.0
terser: 5.39.2
transitivePeerDependencies:
- supports-color
- rollup-plugin-visualizer@6.0.5(rollup@4.53.3):
- dependencies:
- open: 8.4.2
- picomatch: 4.0.3
- source-map: 0.7.4
- yargs: 17.7.2
- optionalDependencies:
- rollup: 4.53.3
-
rollup-plugin-visualizer@6.0.5(rollup@4.59.0):
dependencies:
open: 8.4.2
@@ -26857,34 +26683,6 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.52.4
fsevents: 2.3.3
- rollup@4.53.3:
- dependencies:
- '@types/estree': 1.0.8
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.53.3
- '@rollup/rollup-android-arm64': 4.53.3
- '@rollup/rollup-darwin-arm64': 4.53.3
- '@rollup/rollup-darwin-x64': 4.53.3
- '@rollup/rollup-freebsd-arm64': 4.53.3
- '@rollup/rollup-freebsd-x64': 4.53.3
- '@rollup/rollup-linux-arm-gnueabihf': 4.53.3
- '@rollup/rollup-linux-arm-musleabihf': 4.53.3
- '@rollup/rollup-linux-arm64-gnu': 4.53.3
- '@rollup/rollup-linux-arm64-musl': 4.53.3
- '@rollup/rollup-linux-loong64-gnu': 4.53.3
- '@rollup/rollup-linux-ppc64-gnu': 4.53.3
- '@rollup/rollup-linux-riscv64-gnu': 4.53.3
- '@rollup/rollup-linux-riscv64-musl': 4.53.3
- '@rollup/rollup-linux-s390x-gnu': 4.53.3
- '@rollup/rollup-linux-x64-gnu': 4.53.3
- '@rollup/rollup-linux-x64-musl': 4.53.3
- '@rollup/rollup-openharmony-arm64': 4.53.3
- '@rollup/rollup-win32-arm64-msvc': 4.53.3
- '@rollup/rollup-win32-ia32-msvc': 4.53.3
- '@rollup/rollup-win32-x64-gnu': 4.53.3
- '@rollup/rollup-win32-x64-msvc': 4.53.3
- fsevents: 2.3.3
-
rollup@4.59.0:
dependencies:
'@types/estree': 1.0.8
@@ -28001,6 +27799,9 @@ snapshots:
throat@5.0.0: {}
+ throttleit@2.1.0:
+ optional: true
+
through2@2.0.5:
dependencies:
readable-stream: 2.3.8
@@ -28326,9 +28127,9 @@ snapshots:
ofetch: 1.5.1
ohash: 2.0.11
- unimport@5.6.0:
+ unimport@5.7.0:
dependencies:
- acorn: 8.15.0
+ acorn: 8.16.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
local-pkg: 1.1.2
@@ -28437,7 +28238,7 @@ snapshots:
unplugin@2.3.11:
dependencies:
'@jridgewell/remapping': 2.3.5
- acorn: 8.15.0
+ acorn: 8.16.0
picomatch: 4.0.3
webpack-virtual-modules: 0.6.2
@@ -28462,7 +28263,7 @@ snapshots:
'@unrs/resolver-binding-win32-ia32-msvc': 1.6.2
'@unrs/resolver-binding-win32-x64-msvc': 1.6.2
- unstorage@1.17.3(db0@0.3.4)(ioredis@5.9.3):
+ unstorage@1.17.3(@vercel/blob@2.0.0)(db0@0.3.4)(ioredis@5.10.0):
dependencies:
anymatch: 3.1.3
chokidar: 4.0.3
@@ -28473,10 +28274,11 @@ snapshots:
ofetch: 1.5.1
ufo: 1.6.1
optionalDependencies:
+ '@vercel/blob': 2.0.0
db0: 0.3.4
- ioredis: 5.9.3
+ ioredis: 5.10.0
- unstorage@1.17.4(db0@0.3.4)(ioredis@5.9.3):
+ unstorage@1.17.4(@vercel/blob@2.0.0)(db0@0.3.4)(ioredis@5.10.0):
dependencies:
anymatch: 3.1.3
chokidar: 5.0.0
@@ -28487,8 +28289,9 @@ snapshots:
ofetch: 1.5.1
ufo: 1.6.3
optionalDependencies:
+ '@vercel/blob': 2.0.0
db0: 0.3.4
- ioredis: 5.9.3
+ ioredis: 5.10.0
untun@0.1.3:
dependencies:
@@ -28614,7 +28417,7 @@ snapshots:
dependencies:
esbuild: 0.21.5
postcss: 8.5.6
- rollup: 4.53.3
+ rollup: 4.59.0
optionalDependencies:
'@types/node': 24.10.1
fsevents: 2.3.3
@@ -28629,7 +28432,7 @@ snapshots:
fdir: 6.4.6(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
- rollup: 4.53.3
+ rollup: 4.59.0
tinyglobby: 0.2.15
optionalDependencies:
'@types/node': 24.10.1
@@ -28665,7 +28468,7 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
- rollup: 4.53.3
+ rollup: 4.59.0
tinyglobby: 0.2.15
optionalDependencies:
'@types/node': 24.10.1
diff --git a/tools/build-font/codepoints.json b/tools/build-font/codepoints.json
new file mode 100644
index 000000000..f9e1efa48
--- /dev/null
+++ b/tools/build-font/codepoints.json
@@ -0,0 +1,1914 @@
+{
+ "activity": 57400,
+ "airplay": 57401,
+ "alarm-clock": 57402,
+ "album": 57403,
+ "align-horizontal-distribute-center": 57404,
+ "align-horizontal-distribute-end": 57405,
+ "align-horizontal-distribute-start": 57406,
+ "anchor": 57407,
+ "aperture": 57408,
+ "archive": 57409,
+ "arrow-down": 57410,
+ "arrow-down-left": 57411,
+ "arrow-down-narrow-wide": 57412,
+ "arrow-down-right": 57413,
+ "arrow-down-up": 57414,
+ "arrow-down-wide-narrow": 57415,
+ "arrow-left": 57416,
+ "arrow-right": 57417,
+ "arrow-up": 57418,
+ "arrow-up-left": 57419,
+ "arrow-up-narrow-wide": 57420,
+ "arrow-up-right": 57421,
+ "at-sign": 57422,
+ "award": 57423,
+ "axe": 57424,
+ "ban": 57425,
+ "banknote": 57426,
+ "battery": 57427,
+ "battery-charging": 57428,
+ "battery-full": 57429,
+ "battery-low": 57430,
+ "battery-medium": 57431,
+ "beaker": 57432,
+ "bell": 57433,
+ "bell-off": 57434,
+ "bitcoin": 57435,
+ "bluetooth": 57436,
+ "bold": 57437,
+ "book": 57438,
+ "book-open": 57439,
+ "bookmark": 57440,
+ "box": 57441,
+ "briefcase": 57442,
+ "calendar": 57443,
+ "camera": 57444,
+ "camera-off": 57445,
+ "cast": 57446,
+ "chart-column-decreasing": 57447,
+ "chart-no-axes-column": 57448,
+ "chart-no-axes-column-decreasing": 57449,
+ "chart-no-axes-column-increasing": 57450,
+ "chart-pie": 57451,
+ "check": 57452,
+ "chevron-down": 57453,
+ "chevron-left": 57454,
+ "chevron-right": 57455,
+ "chevron-up": 57456,
+ "chevrons-down": 57457,
+ "chevrons-left": 57458,
+ "chevrons-right": 57459,
+ "chevrons-up": 57460,
+ "chromium": 57461,
+ "circle": 57462,
+ "circle-alert": 57463,
+ "circle-arrow-down": 57464,
+ "circle-arrow-left": 57465,
+ "circle-arrow-right": 57466,
+ "circle-arrow-up": 57467,
+ "circle-check-big": 57468,
+ "circle-divide": 57469,
+ "circle-minus": 57470,
+ "circle-pause": 57471,
+ "circle-play": 57472,
+ "circle-plus": 57473,
+ "circle-question-mark": 57474,
+ "circle-stop": 57475,
+ "circle-x": 57476,
+ "clipboard": 57477,
+ "clipboard-list": 57478,
+ "clock": 57479,
+ "cloud": 57480,
+ "cloud-download": 57481,
+ "cloud-drizzle": 57482,
+ "cloud-hail": 57483,
+ "cloud-lightning": 57484,
+ "cloud-off": 57485,
+ "cloud-rain": 57486,
+ "cloud-rain-wind": 57487,
+ "cloud-snow": 57488,
+ "cloud-upload": 57489,
+ "clover": 57490,
+ "code": 57491,
+ "codepen": 57492,
+ "codesandbox": 57493,
+ "coffee": 57494,
+ "coins": 57495,
+ "columns-2": 57496,
+ "columns-3": 57497,
+ "command": 57498,
+ "compass": 57499,
+ "contact": 57500,
+ "contrast": 57501,
+ "copy": 57502,
+ "copyleft": 57503,
+ "copyright": 57504,
+ "corner-down-left": 57505,
+ "corner-down-right": 57506,
+ "corner-left-down": 57507,
+ "corner-left-up": 57508,
+ "corner-right-down": 57509,
+ "corner-right-up": 57510,
+ "corner-up-left": 57511,
+ "corner-up-right": 57512,
+ "cpu": 57513,
+ "credit-card": 57514,
+ "crop": 57515,
+ "crosshair": 57516,
+ "database": 57517,
+ "delete": 57518,
+ "disc": 57519,
+ "divide": 57520,
+ "dollar-sign": 57521,
+ "download": 57522,
+ "dribbble": 57523,
+ "droplet": 57524,
+ "droplets": 57525,
+ "ellipsis": 57526,
+ "ellipsis-vertical": 57527,
+ "euro": 57528,
+ "external-link": 57529,
+ "eye": 57530,
+ "eye-off": 57531,
+ "facebook": 57532,
+ "fast-forward": 57533,
+ "feather": 57534,
+ "figma": 57535,
+ "file": 57536,
+ "file-check": 57537,
+ "file-check-corner": 57538,
+ "file-code": 57539,
+ "file-digit": 57540,
+ "file-input": 57541,
+ "file-minus": 57542,
+ "file-minus-corner": 57543,
+ "file-output": 57544,
+ "file-plus": 57545,
+ "file-plus-corner": 57546,
+ "file-search": 57547,
+ "file-text": 57548,
+ "file-x": 57549,
+ "file-x-corner": 57550,
+ "files": 57551,
+ "film": 57552,
+ "flag": 57553,
+ "flame": 57554,
+ "flashlight": 57555,
+ "flashlight-off": 57556,
+ "flask-conical": 57557,
+ "flask-round": 57558,
+ "folder": 57559,
+ "folder-minus": 57560,
+ "folder-plus": 57561,
+ "framer": 57562,
+ "frown": 57563,
+ "funnel": 57564,
+ "funnel-plus": 57565,
+ "gamepad": 57566,
+ "gamepad-2": 57567,
+ "gavel": 57568,
+ "gift": 57569,
+ "git-branch": 57570,
+ "git-commit-horizontal": 57571,
+ "git-merge": 57572,
+ "git-pull-request": 57573,
+ "github": 57574,
+ "gitlab": 57575,
+ "globe": 57576,
+ "grid-3x3": 57577,
+ "grip-horizontal": 57578,
+ "grip-vertical": 57579,
+ "hammer": 57580,
+ "hard-drive": 57581,
+ "hard-hat": 57582,
+ "hash": 57583,
+ "haze": 57584,
+ "headphones": 57585,
+ "heart": 57586,
+ "hexagon": 57587,
+ "highlighter": 57588,
+ "house": 57589,
+ "image": 57590,
+ "inbox": 57591,
+ "indian-rupee": 57592,
+ "info": 57593,
+ "instagram": 57594,
+ "italic": 57595,
+ "japanese-yen": 57596,
+ "key": 57597,
+ "languages": 57598,
+ "layout-grid": 57599,
+ "library": 57600,
+ "life-buoy": 57601,
+ "link": 57602,
+ "link-2": 57603,
+ "link-2-off": 57604,
+ "linkedin": 57605,
+ "list": 57606,
+ "list-indent-decrease": 57607,
+ "list-indent-increase": 57608,
+ "loader": 57609,
+ "loader-circle": 57610,
+ "lock": 57611,
+ "lock-open": 57612,
+ "log-in": 57613,
+ "log-out": 57614,
+ "mail": 57615,
+ "map": 57616,
+ "map-pin": 57617,
+ "maximize": 57618,
+ "maximize-2": 57619,
+ "meh": 57620,
+ "menu": 57621,
+ "message-circle": 57622,
+ "message-square": 57623,
+ "mic": 57624,
+ "mic-off": 57625,
+ "minimize": 57626,
+ "minimize-2": 57627,
+ "minus": 57628,
+ "monitor": 57629,
+ "moon": 57630,
+ "mouse-pointer": 57631,
+ "mouse-pointer-click": 57632,
+ "move": 57633,
+ "music": 57634,
+ "navigation": 57635,
+ "navigation-2": 57636,
+ "network": 57637,
+ "octagon": 57638,
+ "octagon-alert": 57639,
+ "octagon-x": 57640,
+ "package": 57641,
+ "panel-left": 57642,
+ "panels-left-bottom": 57643,
+ "panels-top-left": 57644,
+ "paperclip": 57645,
+ "pause": 57646,
+ "pen": 57647,
+ "pen-line": 57648,
+ "pen-tool": 57649,
+ "percent": 57650,
+ "phone": 57651,
+ "phone-call": 57652,
+ "phone-forwarded": 57653,
+ "phone-incoming": 57654,
+ "phone-missed": 57655,
+ "phone-off": 57656,
+ "phone-outgoing": 57657,
+ "piggy-bank": 57658,
+ "pipette": 57659,
+ "play": 57660,
+ "plus": 57661,
+ "pocket": 57662,
+ "pound-sterling": 57663,
+ "power": 57664,
+ "printer": 57665,
+ "radio": 57666,
+ "redo": 57667,
+ "refresh-ccw": 57668,
+ "refresh-cw": 57669,
+ "repeat": 57670,
+ "rewind": 57671,
+ "rotate-ccw": 57672,
+ "rotate-cw": 57673,
+ "rss": 57674,
+ "ruler": 57675,
+ "russian-ruble": 57676,
+ "save": 57677,
+ "scissors": 57678,
+ "screen-share": 57679,
+ "screen-share-off": 57680,
+ "search": 57681,
+ "send": 57682,
+ "server": 57683,
+ "settings": 57684,
+ "share": 57685,
+ "share-2": 57686,
+ "sheet": 57687,
+ "shield": 57688,
+ "shield-ban": 57689,
+ "shield-off": 57690,
+ "shopping-bag": 57691,
+ "shopping-cart": 57692,
+ "shovel": 57693,
+ "shuffle": 57694,
+ "skip-back": 57695,
+ "skip-forward": 57696,
+ "slack": 57697,
+ "sliders-vertical": 57698,
+ "smartphone": 57699,
+ "smile": 57700,
+ "snowflake": 57701,
+ "speaker": 57702,
+ "square": 57703,
+ "square-asterisk": 57704,
+ "square-chart-gantt": 57705,
+ "square-check-big": 57706,
+ "square-code": 57707,
+ "square-dashed-kanban": 57708,
+ "square-divide": 57709,
+ "square-dot": 57710,
+ "square-equal": 57711,
+ "square-kanban": 57712,
+ "square-minus": 57713,
+ "square-pen": 57714,
+ "square-plus": 57715,
+ "square-slash": 57716,
+ "square-x": 57717,
+ "star": 57718,
+ "strikethrough": 57719,
+ "sun": 57720,
+ "sunrise": 57721,
+ "sunset": 57722,
+ "swiss-franc": 57723,
+ "switch-camera": 57724,
+ "table": 57725,
+ "tablet": 57726,
+ "tag": 57727,
+ "target": 57728,
+ "terminal": 57729,
+ "text-align-center": 57730,
+ "text-align-end": 57731,
+ "text-align-justify": 57732,
+ "text-align-start": 57733,
+ "thermometer": 57734,
+ "thermometer-snowflake": 57735,
+ "thermometer-sun": 57736,
+ "thumbs-down": 57737,
+ "thumbs-up": 57738,
+ "toggle-left": 57739,
+ "toggle-right": 57740,
+ "trash": 57741,
+ "trash-2": 57742,
+ "trello": 57743,
+ "trending-down": 57744,
+ "trending-up": 57745,
+ "triangle": 57746,
+ "triangle-alert": 57747,
+ "truck": 57748,
+ "tv": 57749,
+ "twitch": 57750,
+ "twitter": 57751,
+ "type": 57752,
+ "umbrella": 57753,
+ "underline": 57754,
+ "undo": 57755,
+ "unlink": 57756,
+ "unlink-2": 57757,
+ "upload": 57758,
+ "user": 57759,
+ "user-check": 57760,
+ "user-minus": 57761,
+ "user-plus": 57762,
+ "user-x": 57763,
+ "users": 57764,
+ "video": 57765,
+ "video-off": 57766,
+ "view": 57767,
+ "voicemail": 57768,
+ "volume": 57769,
+ "volume-1": 57770,
+ "volume-2": 57771,
+ "volume-x": 57772,
+ "watch": 57773,
+ "wifi": 57774,
+ "wifi-off": 57775,
+ "wind": 57776,
+ "wrench": 57777,
+ "x": 57778,
+ "youtube": 57779,
+ "zap": 57780,
+ "zap-off": 57781,
+ "zoom-in": 57782,
+ "zoom-out": 57783,
+ "bluetooth-connected": 57784,
+ "bluetooth-off": 57785,
+ "bluetooth-searching": 57786,
+ "bot": 57787,
+ "calculator": 57788,
+ "equal": 57789,
+ "equal-not": 57790,
+ "gauge": 57791,
+ "image-off": 57792,
+ "layout-dashboard": 57793,
+ "lightbulb": 57794,
+ "mouse-pointer-2": 57795,
+ "move-diagonal": 57796,
+ "move-diagonal-2": 57797,
+ "move-horizontal": 57798,
+ "move-vertical": 57799,
+ "separator-horizontal": 57800,
+ "separator-vertical": 57801,
+ "shirt": 57802,
+ "square-dashed": 57803,
+ "building": 57804,
+ "laptop": 57805,
+ "lasso": 57806,
+ "lasso-select": 57807,
+ "list-checks": 57808,
+ "list-ordered": 57809,
+ "bike": 57810,
+ "brush": 57811,
+ "bus": 57812,
+ "car": 57813,
+ "crown": 57814,
+ "hand": 57815,
+ "laptop-minimal": 57816,
+ "layout-list": 57817,
+ "locate": 57818,
+ "locate-fixed": 57819,
+ "monitor-off": 57820,
+ "palette": 57821,
+ "plane": 57822,
+ "qr-code": 57823,
+ "timer": 57824,
+ "arrow-big-down": 57825,
+ "arrow-big-left": 57826,
+ "arrow-big-right": 57827,
+ "arrow-big-up": 57828,
+ "cross": 57829,
+ "hand-grab": 57830,
+ "infinity": 57831,
+ "pointer": 57832,
+ "server-crash": 57833,
+ "server-off": 57834,
+ "sprout": 57835,
+ "alarm-clock-check": 57836,
+ "alarm-clock-minus": 57837,
+ "alarm-clock-plus": 57838,
+ "asterisk": 57839,
+ "bell-minus": 57840,
+ "bell-plus": 57841,
+ "binary": 57842,
+ "earth": 57843,
+ "git-branch-plus": 57844,
+ "history": 57845,
+ "image-minus": 57846,
+ "image-plus": 57847,
+ "option": 57848,
+ "pencil": 57849,
+ "podcast": 57850,
+ "radio-receiver": 57851,
+ "regex": 57852,
+ "repeat-1": 57853,
+ "shield-alert": 57854,
+ "shield-check": 57855,
+ "shield-x": 57856,
+ "sigma": 57857,
+ "square-mouse-pointer": 57858,
+ "tv-minimal": 57859,
+ "wallet": 57860,
+ "webcam": 57861,
+ "code-xml": 57862,
+ "layout-template": 57863,
+ "lightbulb-off": 57864,
+ "power-off": 57865,
+ "square-terminal": 57866,
+ "star-half": 57867,
+ "bug": 57868,
+ "glasses": 57869,
+ "ghost": 57870,
+ "ticket": 57871,
+ "monitor-speaker": 57872,
+ "chevrons-up-down": 57873,
+ "scale": 57874,
+ "circle-slash-2": 57875,
+ "cloud-fog": 57876,
+ "cloud-moon": 57877,
+ "cloud-sun": 57878,
+ "cloudy": 57879,
+ "tornado": 57880,
+ "clipboard-check": 57881,
+ "expand": 57882,
+ "octagon-pause": 57883,
+ "panel-left-close": 57884,
+ "panel-left-open": 57885,
+ "person-standing": 57886,
+ "rectangle-ellipsis": 57887,
+ "shrink": 57888,
+ "skull": 57889,
+ "clipboard-x": 57890,
+ "vibrate": 57891,
+ "bell-ring": 57892,
+ "clipboard-copy": 57893,
+ "circle-check": 57894,
+ "tent": 57895,
+ "chevrons-down-up": 57896,
+ "forward": 57897,
+ "reply": 57898,
+ "reply-all": 57899,
+ "hand-metal": 57900,
+ "square-function": 57901,
+ "smartphone-charging": 57902,
+ "import": 57903,
+ "currency": 57904,
+ "mountain": 57905,
+ "mountain-snow": 57906,
+ "rocking-chair": 57907,
+ "graduation-cap": 57908,
+ "megaphone": 57909,
+ "timer-reset": 57910,
+ "flag-triangle-left": 57911,
+ "flag-triangle-right": 57912,
+ "quote": 57913,
+ "landmark": 57914,
+ "alarm-clock-off": 57915,
+ "bookmark-minus": 57916,
+ "bookmark-plus": 57917,
+ "list-minus": 57918,
+ "list-plus": 57919,
+ "list-x": 57920,
+ "badge-check": 57921,
+ "gem": 57922,
+ "chevron-first": 57923,
+ "chevron-last": 57924,
+ "settings-2": 57925,
+ "wand": 57926,
+ "folder-open": 57927,
+ "text-wrap": 57928,
+ "timer-off": 57929,
+ "arrow-left-right": 57930,
+ "clock-1": 57931,
+ "clock-10": 57932,
+ "clock-11": 57933,
+ "clock-12": 57934,
+ "clock-2": 57935,
+ "clock-3": 57936,
+ "clock-4": 57937,
+ "clock-5": 57938,
+ "clock-6": 57939,
+ "clock-7": 57940,
+ "clock-8": 57941,
+ "clock-9": 57942,
+ "scan": 57943,
+ "scan-line": 57944,
+ "pin": 57945,
+ "carrot": 57946,
+ "drumstick": 57947,
+ "subscript": 57948,
+ "egg": 57949,
+ "superscript": 57950,
+ "signal": 57951,
+ "signal-high": 57952,
+ "signal-low": 57953,
+ "signal-medium": 57954,
+ "signal-zero": 57955,
+ "text-cursor": 57956,
+ "text-cursor-input": 57957,
+ "package-check": 57958,
+ "package-minus": 57959,
+ "package-plus": 57960,
+ "package-search": 57961,
+ "package-x": 57962,
+ "cookie": 57963,
+ "align-center-horizontal": 57964,
+ "align-center-vertical": 57965,
+ "align-end-horizontal": 57966,
+ "align-end-vertical": 57967,
+ "align-start-horizontal": 57968,
+ "align-start-vertical": 57969,
+ "align-horizontal-justify-center": 57970,
+ "align-horizontal-justify-end": 57971,
+ "align-horizontal-justify-start": 57972,
+ "align-horizontal-space-around": 57973,
+ "align-horizontal-space-between": 57974,
+ "align-vertical-justify-center": 57975,
+ "align-vertical-justify-end": 57976,
+ "align-vertical-justify-start": 57977,
+ "align-vertical-space-around": 57978,
+ "align-vertical-space-between": 57979,
+ "stretch-horizontal": 57980,
+ "stretch-vertical": 57981,
+ "align-vertical-distribute-center": 57982,
+ "align-vertical-distribute-end": 57983,
+ "align-vertical-distribute-start": 57984,
+ "tree-palm": 57985,
+ "locate-off": 57986,
+ "waves": 57987,
+ "keyboard": 57988,
+ "baseline": 57989,
+ "rocket": 57990,
+ "dice-1": 57991,
+ "dice-2": 57992,
+ "dice-3": 57993,
+ "dice-4": 57994,
+ "dice-5": 57995,
+ "dice-6": 57996,
+ "git-fork": 57997,
+ "mouse": 57998,
+ "eraser": 57999,
+ "building-2": 58000,
+ "frame": 58001,
+ "flag-off": 58002,
+ "chevrons-left-right": 58003,
+ "chevrons-right-left": 58004,
+ "heart-off": 58005,
+ "hourglass": 58006,
+ "accessibility": 58007,
+ "milestone": 58008,
+ "sun-dim": 58009,
+ "sliders-horizontal": 58010,
+ "clapperboard": 58011,
+ "puzzle": 58012,
+ "vibrate-off": 58013,
+ "focus": 58014,
+ "factory": 58015,
+ "redo-2": 58016,
+ "undo-2": 58017,
+ "chart-bar": 58018,
+ "chart-column": 58019,
+ "chart-column-increasing": 58020,
+ "chart-line": 58021,
+ "map-pin-off": 58022,
+ "navigation-2-off": 58023,
+ "navigation-off": 58024,
+ "tram-front": 58025,
+ "venetian-mask": 58026,
+ "bath": 58027,
+ "chef-hat": 58028,
+ "component": 58029,
+ "croissant": 58030,
+ "fuel": 58031,
+ "star-off": 58032,
+ "sun-medium": 58033,
+ "sun-moon": 58034,
+ "sword": 58035,
+ "swords": 58036,
+ "magnet": 58037,
+ "pin-off": 58038,
+ "calendar-check": 58039,
+ "calendar-check-2": 58040,
+ "calendar-days": 58041,
+ "calendar-minus": 58042,
+ "calendar-off": 58043,
+ "calendar-plus": 58044,
+ "calendar-range": 58045,
+ "calendar-x": 58046,
+ "calendar-x-2": 58047,
+ "armchair": 58048,
+ "bed": 58049,
+ "bed-double": 58050,
+ "bed-single": 58051,
+ "sofa": 58052,
+ "dices": 58053,
+ "cigarette": 58054,
+ "cigarette-off": 58055,
+ "backpack": 58056,
+ "baggage-claim": 58057,
+ "luggage": 58058,
+ "fingerprint-pattern": 58059,
+ "package-open": 58060,
+ "archive-restore": 58061,
+ "baby": 58062,
+ "beer": 58063,
+ "boxes": 58064,
+ "cup-soda": 58065,
+ "diamond": 58066,
+ "flower": 58067,
+ "flower-2": 58068,
+ "glass-water": 58069,
+ "heart-crack": 58070,
+ "heart-handshake": 58071,
+ "lamp": 58072,
+ "lamp-ceiling": 58073,
+ "lamp-desk": 58074,
+ "lamp-floor": 58075,
+ "lamp-wall-down": 58076,
+ "lamp-wall-up": 58077,
+ "leaf": 58078,
+ "list-end": 58079,
+ "list-music": 58080,
+ "list-start": 58081,
+ "list-video": 58082,
+ "martini": 58083,
+ "microscope": 58084,
+ "move-3d": 58085,
+ "paint-bucket": 58086,
+ "paintbrush": 58087,
+ "paintbrush-vertical": 58088,
+ "recycle": 58089,
+ "rotate-3d": 58090,
+ "scale-3d": 58091,
+ "scaling": 58092,
+ "scroll": 58093,
+ "shrub": 58094,
+ "siren": 58095,
+ "slice": 58096,
+ "stethoscope": 58097,
+ "syringe": 58098,
+ "tree-deciduous": 58099,
+ "tree-pine": 58100,
+ "trees": 58101,
+ "utensils": 58102,
+ "utensils-crossed": 58103,
+ "wine": 58104,
+ "table-2": 58105,
+ "cloud-moon-rain": 58106,
+ "cloud-sun-rain": 58107,
+ "angry": 58108,
+ "annoyed": 58109,
+ "axis-3d": 58110,
+ "bomb": 58111,
+ "laugh": 58112,
+ "smile-plus": 58113,
+ "sticker": 58114,
+ "sticky-note": 58115,
+ "calendar-clock": 58116,
+ "calendar-heart": 58117,
+ "calendar-search": 58118,
+ "clipboard-pen": 58119,
+ "clipboard-pen-line": 58120,
+ "clipboard-type": 58121,
+ "cloud-cog": 58122,
+ "cog": 58123,
+ "diff": 58124,
+ "file-archive": 58125,
+ "file-axis-3d": 58126,
+ "file-badge": 58127,
+ "file-box": 58128,
+ "file-chart-column": 58129,
+ "file-chart-column-increasing": 58130,
+ "file-chart-line": 58131,
+ "file-chart-pie": 58132,
+ "file-clock": 58133,
+ "file-cog": 58134,
+ "file-diff": 58135,
+ "file-down": 58136,
+ "file-exclamation-point": 58137,
+ "file-headphone": 58138,
+ "file-heart": 58139,
+ "file-image": 58140,
+ "file-key": 58141,
+ "file-lock": 58142,
+ "file-pen": 58143,
+ "file-pen-line": 58144,
+ "file-play": 58145,
+ "file-question-mark": 58146,
+ "file-scan": 58147,
+ "file-search-corner": 58148,
+ "file-signal": 58149,
+ "file-spreadsheet": 58150,
+ "file-symlink": 58151,
+ "file-terminal": 58152,
+ "file-type": 58153,
+ "file-up": 58154,
+ "file-video-camera": 58155,
+ "file-volume": 58156,
+ "folder-archive": 58157,
+ "folder-check": 58158,
+ "folder-clock": 58159,
+ "folder-closed": 58160,
+ "folder-cog": 58161,
+ "folder-down": 58162,
+ "folder-heart": 58163,
+ "folder-input": 58164,
+ "folder-key": 58165,
+ "folder-lock": 58166,
+ "folder-output": 58167,
+ "folder-pen": 58168,
+ "folder-search": 58169,
+ "folder-search-2": 58170,
+ "folder-symlink": 58171,
+ "folder-tree": 58172,
+ "folder-up": 58173,
+ "folder-x": 58174,
+ "folders": 58175,
+ "package-2": 58176,
+ "server-cog": 58177,
+ "user-cog": 58178,
+ "party-popper": 58179,
+ "cake": 58180,
+ "circle-dot": 58181,
+ "circle-ellipsis": 58182,
+ "toy-brick": 58183,
+ "newspaper": 58184,
+ "mic-vocal": 58185,
+ "music-2": 58186,
+ "music-3": 58187,
+ "music-4": 58188,
+ "air-vent": 58189,
+ "apple": 58190,
+ "banana": 58191,
+ "cherry": 58192,
+ "egg-fried": 58193,
+ "grape": 58194,
+ "ice-cream-cone": 58195,
+ "pizza": 58196,
+ "joystick": 58197,
+ "usb": 58198,
+ "wand-sparkles": 58199,
+ "bone": 58200,
+ "git-compare": 58201,
+ "git-pull-request-closed": 58202,
+ "git-pull-request-draft": 58203,
+ "tags": 58204,
+ "flip-horizontal": 58205,
+ "flip-horizontal-2": 58206,
+ "flip-vertical": 58207,
+ "flip-vertical-2": 58208,
+ "mail-check": 58209,
+ "mail-minus": 58210,
+ "mail-open": 58211,
+ "mail-plus": 58212,
+ "mail-question-mark": 58213,
+ "mail-search": 58214,
+ "mail-warning": 58215,
+ "mail-x": 58216,
+ "mails": 58217,
+ "braces": 58218,
+ "file-braces": 58219,
+ "file-braces-corner": 58220,
+ "file-type-corner": 58221,
+ "heart-pulse": 58222,
+ "medal": 58223,
+ "megaphone-off": 58224,
+ "scan-face": 58225,
+ "sun-snow": 58226,
+ "trophy": 58227,
+ "webhook": 58228,
+ "citrus": 58229,
+ "rectangle-horizontal": 58230,
+ "rectangle-vertical": 58231,
+ "concierge-bell": 58232,
+ "fan": 58233,
+ "microwave": 58234,
+ "refrigerator": 58235,
+ "shower-head": 58236,
+ "arrow-up-down": 58237,
+ "sailboat": 58238,
+ "plug": 58239,
+ "plug-2": 58240,
+ "book-open-check": 58241,
+ "ear": 58242,
+ "ear-off": 58243,
+ "heading": 58244,
+ "heading-1": 58245,
+ "heading-2": 58246,
+ "heading-3": 58247,
+ "heading-4": 58248,
+ "heading-5": 58249,
+ "heading-6": 58250,
+ "spline": 58251,
+ "cat": 58252,
+ "dog": 58253,
+ "check-check": 58254,
+ "bean": 58255,
+ "bean-off": 58256,
+ "candy": 58257,
+ "candy-off": 58258,
+ "dna": 58259,
+ "dna-off": 58260,
+ "egg-off": 58261,
+ "flask-conical-off": 58262,
+ "hop": 58263,
+ "hop-off": 58264,
+ "milk": 58265,
+ "milk-off": 58266,
+ "nut": 58267,
+ "nut-off": 58268,
+ "vegan": 58269,
+ "wheat": 58270,
+ "wheat-off": 58271,
+ "wine-off": 58272,
+ "dumbbell": 58273,
+ "monitor-smartphone": 58274,
+ "pilcrow": 58275,
+ "captions": 58276,
+ "beef": 58277,
+ "fish": 58278,
+ "ice-cream-bowl": 58279,
+ "salad": 58280,
+ "sandwich": 58281,
+ "soup": 58282,
+ "database-backup": 58283,
+ "battery-warning": 58284,
+ "vote": 58285,
+ "picture-in-picture": 58286,
+ "picture-in-picture-2": 58287,
+ "fish-off": 58288,
+ "grip": 58289,
+ "creative-commons": 58290,
+ "remove-formatting": 58291,
+ "construction": 58292,
+ "funnel-x": 58293,
+ "square-split-horizontal": 58294,
+ "square-split-vertical": 58295,
+ "hand-helping": 58296,
+ "footprints": 58297,
+ "ship": 58298,
+ "stamp": 58299,
+ "tower-control": 58300,
+ "pill": 58301,
+ "tablets": 58302,
+ "router": 58303,
+ "blinds": 58304,
+ "forklift": 58305,
+ "utility-pole": 58306,
+ "nfc": 58307,
+ "smartphone-nfc": 58308,
+ "bird": 58309,
+ "brain": 58310,
+ "brain-circuit": 58311,
+ "brain-cog": 58312,
+ "circle-parking": 58313,
+ "circle-parking-off": 58314,
+ "square-parking": 58315,
+ "square-parking-off": 58316,
+ "plane-landing": 58317,
+ "plane-takeoff": 58318,
+ "square-chevron-down": 58319,
+ "square-chevron-left": 58320,
+ "square-chevron-right": 58321,
+ "square-chevron-up": 58322,
+ "receipt": 58323,
+ "mailbox": 58324,
+ "door-closed": 58325,
+ "door-open": 58326,
+ "atom": 58327,
+ "case-lower": 58328,
+ "case-sensitive": 58329,
+ "case-upper": 58330,
+ "replace": 58331,
+ "replace-all": 58332,
+ "space": 58333,
+ "text-select": 58334,
+ "whole-word": 58335,
+ "castle": 58336,
+ "church": 58337,
+ "hotel": 58338,
+ "school": 58339,
+ "store": 58340,
+ "university": 58341,
+ "warehouse": 58342,
+ "orbit": 58343,
+ "clipboard-paste": 58344,
+ "step-back": 58345,
+ "step-forward": 58346,
+ "rat": 58347,
+ "book-copy": 58348,
+ "book-dashed": 58349,
+ "book-down": 58350,
+ "book-key": 58351,
+ "book-lock": 58352,
+ "book-marked": 58353,
+ "book-minus": 58354,
+ "book-plus": 58355,
+ "book-up": 58356,
+ "book-x": 58357,
+ "disc-2": 58358,
+ "circle-arrow-out-down-left": 58359,
+ "circle-arrow-out-down-right": 58360,
+ "circle-arrow-out-up-left": 58361,
+ "circle-arrow-out-up-right": 58362,
+ "copy-check": 58363,
+ "copy-minus": 58364,
+ "copy-plus": 58365,
+ "copy-slash": 58366,
+ "copy-x": 58367,
+ "circle-equal": 58368,
+ "circle-off": 58369,
+ "circle-slash": 58370,
+ "circuit-board": 58371,
+ "radio-tower": 58372,
+ "test-tube": 58373,
+ "test-tube-diagonal": 58374,
+ "test-tubes": 58375,
+ "list-tree": 58376,
+ "folder-git": 58377,
+ "folder-git-2": 58378,
+ "message-square-dashed": 58379,
+ "message-square-plus": 58380,
+ "messages-square": 58381,
+ "shield-question-mark": 58382,
+ "save-all": 58383,
+ "moon-star": 58384,
+ "repeat-2": 58385,
+ "sparkles": 58386,
+ "arrow-down-0-1": 58387,
+ "arrow-down-1-0": 58388,
+ "arrow-down-a-z": 58389,
+ "arrow-down-z-a": 58390,
+ "arrow-right-left": 58391,
+ "arrow-up-0-1": 58392,
+ "arrow-up-1-0": 58393,
+ "arrow-up-a-z": 58394,
+ "arrow-up-wide-narrow": 58395,
+ "arrow-up-z-a": 58396,
+ "arrow-big-down-dash": 58397,
+ "arrow-big-left-dash": 58398,
+ "arrow-big-right-dash": 58399,
+ "arrow-big-up-dash": 58400,
+ "monitor-down": 58401,
+ "monitor-up": 58402,
+ "iteration-ccw": 58403,
+ "iteration-cw": 58404,
+ "workflow": 58405,
+ "app-window": 58406,
+ "square-arrow-down": 58407,
+ "square-arrow-left": 58408,
+ "square-arrow-right": 58409,
+ "square-arrow-up": 58410,
+ "bell-dot": 58411,
+ "panel-bottom": 58412,
+ "panel-bottom-close": 58413,
+ "panel-bottom-dashed": 58414,
+ "panel-bottom-open": 58415,
+ "panel-left-dashed": 58416,
+ "panel-right": 58417,
+ "panel-right-close": 58418,
+ "panel-right-dashed": 58419,
+ "panel-right-open": 58420,
+ "panel-top": 58421,
+ "panel-top-close": 58422,
+ "panel-top-dashed": 58423,
+ "panel-top-open": 58424,
+ "rows-2": 58425,
+ "ligature": 58426,
+ "fold-horizontal": 58427,
+ "fold-vertical": 58428,
+ "unfold-horizontal": 58429,
+ "unfold-vertical": 58430,
+ "merge": 58431,
+ "split": 58432,
+ "biohazard": 58433,
+ "radiation": 58434,
+ "brackets": 58435,
+ "parentheses": 58436,
+ "memory-stick": 58437,
+ "pc-case": 58438,
+ "satellite": 58439,
+ "satellite-dish": 58440,
+ "touchpad": 58441,
+ "touchpad-off": 58442,
+ "wallpaper": 58443,
+ "combine": 58444,
+ "arrow-down-to-dot": 58445,
+ "arrow-up-from-dot": 58446,
+ "dot": 58447,
+ "redo-dot": 58448,
+ "undo-dot": 58449,
+ "list-restart": 58450,
+ "square-menu": 58451,
+ "arrow-down-from-line": 58452,
+ "arrow-down-to-line": 58453,
+ "arrow-left-from-line": 58454,
+ "arrow-left-to-line": 58455,
+ "arrow-right-from-line": 58456,
+ "arrow-right-to-line": 58457,
+ "arrow-up-from-line": 58458,
+ "arrow-up-to-line": 58459,
+ "plug-zap": 58460,
+ "unplug": 58461,
+ "file-code-corner": 58462,
+ "scroll-text": 58463,
+ "list-filter": 58464,
+ "circle-user": 58465,
+ "circle-user-round": 58466,
+ "contact-round": 58467,
+ "group": 58468,
+ "square-user": 58469,
+ "square-user-round": 58470,
+ "ungroup": 58471,
+ "user-round": 58472,
+ "user-round-check": 58473,
+ "user-round-cog": 58474,
+ "user-round-minus": 58475,
+ "user-round-plus": 58476,
+ "user-round-x": 58477,
+ "users-round": 58478,
+ "leafy-green": 58479,
+ "layout-panel-left": 58480,
+ "layout-panel-top": 58481,
+ "pi": 58482,
+ "variable": 58483,
+ "badge": 58484,
+ "badge-alert": 58485,
+ "badge-dollar-sign": 58486,
+ "badge-info": 58487,
+ "badge-minus": 58488,
+ "badge-percent": 58489,
+ "badge-plus": 58490,
+ "badge-question-mark": 58491,
+ "badge-x": 58492,
+ "circle-dollar-sign": 58493,
+ "sparkle": 58494,
+ "ferris-wheel": 58495,
+ "roller-coaster": 58496,
+ "square-play": 58497,
+ "monitor-check": 58498,
+ "monitor-dot": 58499,
+ "monitor-pause": 58500,
+ "monitor-play": 58501,
+ "monitor-stop": 58502,
+ "monitor-x": 58503,
+ "square-pi": 58504,
+ "square-sigma": 58505,
+ "chart-scatter": 58506,
+ "square-pilcrow": 58507,
+ "move-down": 58508,
+ "move-down-left": 58509,
+ "move-down-right": 58510,
+ "move-left": 58511,
+ "move-right": 58512,
+ "move-up": 58513,
+ "move-up-left": 58514,
+ "move-up-right": 58515,
+ "disc-3": 58516,
+ "spray-can": 58517,
+ "club": 58518,
+ "radar": 58519,
+ "refresh-cw-off": 58520,
+ "spade": 58521,
+ "spell-check": 58522,
+ "spell-check-2": 58523,
+ "ampersand": 58524,
+ "ampersands": 58525,
+ "text-quote": 58526,
+ "squirrel": 58527,
+ "pocket-knife": 58528,
+ "file-stack": 58529,
+ "square-stack": 58530,
+ "key-round": 58531,
+ "key-square": 58532,
+ "goal": 58533,
+ "book-up-2": 58534,
+ "chart-bar-big": 58535,
+ "chart-candlestick": 58536,
+ "chart-column-big": 58537,
+ "search-check": 58538,
+ "search-code": 58539,
+ "search-slash": 58540,
+ "search-x": 58541,
+ "presentation": 58542,
+ "projector": 58543,
+ "circle-dashed": 58544,
+ "circle-dot-dashed": 58545,
+ "refresh-ccw-dot": 58546,
+ "shapes": 58547,
+ "square-activity": 58548,
+ "square-arrow-down-left": 58549,
+ "square-arrow-down-right": 58550,
+ "square-arrow-up-left": 58551,
+ "square-arrow-up-right": 58552,
+ "cake-slice": 58553,
+ "candy-cane": 58554,
+ "dessert": 58555,
+ "donut": 58556,
+ "lollipop": 58557,
+ "popcorn": 58558,
+ "popsicle": 58559,
+ "square-dashed-bottom": 58560,
+ "square-dashed-bottom-code": 58561,
+ "rainbow": 58562,
+ "list-todo": 58563,
+ "chart-no-axes-gantt": 58564,
+ "folder-dot": 58565,
+ "folder-kanban": 58566,
+ "folder-open-dot": 58567,
+ "folder-root": 58568,
+ "folder-sync": 58569,
+ "cassette-tape": 58570,
+ "videotape": 58571,
+ "wallet-cards": 58572,
+ "wallet-minimal": 58573,
+ "gallery-horizontal": 58574,
+ "gallery-horizontal-end": 58575,
+ "gallery-thumbnails": 58576,
+ "gallery-vertical": 58577,
+ "gallery-vertical-end": 58578,
+ "chart-area": 58579,
+ "arrows-up-from-line": 58580,
+ "container": 58581,
+ "tally-1": 58582,
+ "tally-2": 58583,
+ "tally-3": 58584,
+ "tally-4": 58585,
+ "tally-5": 58586,
+ "table-properties": 58587,
+ "kanban": 58588,
+ "circle-chevron-down": 58589,
+ "circle-chevron-left": 58590,
+ "circle-chevron-right": 58591,
+ "circle-chevron-up": 58592,
+ "circle-gauge": 58593,
+ "antenna": 58594,
+ "cable": 58595,
+ "computer": 58596,
+ "hard-drive-download": 58597,
+ "hard-drive-upload": 58598,
+ "hdmi-port": 58599,
+ "ratio": 58600,
+ "scissors-line-dashed": 58601,
+ "shopping-basket": 58602,
+ "square-bottom-dashed-scissors": 58603,
+ "square-scissors": 58604,
+ "triangle-right": 58605,
+ "boom-box": 58606,
+ "bring-to-front": 58607,
+ "pencil-line": 58608,
+ "pencil-ruler": 58609,
+ "send-horizontal": 58610,
+ "send-to-back": 58611,
+ "fish-symbol": 58612,
+ "paw-print": 58613,
+ "rabbit": 58614,
+ "shell": 58615,
+ "snail": 58616,
+ "turtle": 58617,
+ "blocks": 58618,
+ "bus-front": 58619,
+ "cable-car": 58620,
+ "car-front": 58621,
+ "car-taxi-front": 58622,
+ "grid-2x2": 58623,
+ "parking-meter": 58624,
+ "rail-symbol": 58625,
+ "ship-wheel": 58626,
+ "square-m": 58627,
+ "tractor": 58628,
+ "traffic-cone": 58629,
+ "train-front": 58630,
+ "train-front-tunnel": 58631,
+ "train-track": 58632,
+ "square-dashed-mouse-pointer": 58633,
+ "tablet-smartphone": 58634,
+ "database-zap": 58635,
+ "archive-x": 58636,
+ "bug-off": 58637,
+ "bug-play": 58638,
+ "badge-cent": 58639,
+ "badge-euro": 58640,
+ "badge-indian-rupee": 58641,
+ "badge-japanese-yen": 58642,
+ "badge-pound-sterling": 58643,
+ "badge-russian-ruble": 58644,
+ "badge-swiss-franc": 58645,
+ "shield-ellipsis": 58646,
+ "shield-half": 58647,
+ "shield-minus": 58648,
+ "shield-plus": 58649,
+ "circle-percent": 58650,
+ "diamond-percent": 58651,
+ "square-percent": 58652,
+ "slash": 58653,
+ "speech": 58654,
+ "bookmark-check": 58655,
+ "bookmark-x": 58656,
+ "drama": 58657,
+ "theater": 58658,
+ "cone": 58659,
+ "cuboid": 58660,
+ "cylinder": 58661,
+ "diameter": 58662,
+ "drafting-compass": 58663,
+ "land-plot": 58664,
+ "layers": 58665,
+ "layers-2": 58666,
+ "pentagon": 58667,
+ "pyramid": 58668,
+ "radius": 58669,
+ "tangent": 58670,
+ "torus": 58671,
+ "weight": 58672,
+ "lock-keyhole": 58673,
+ "lock-keyhole-open": 58674,
+ "barcode": 58675,
+ "fullscreen": 58676,
+ "scan-barcode": 58677,
+ "scan-eye": 58678,
+ "scan-search": 58679,
+ "scan-text": 58680,
+ "caravan": 58681,
+ "flame-kindling": 58682,
+ "tent-tree": 58683,
+ "image-down": 58684,
+ "map-pinned": 58685,
+ "route": 58686,
+ "route-off": 58687,
+ "signpost": 58688,
+ "signpost-big": 58689,
+ "waypoints": 58690,
+ "umbrella-off": 58691,
+ "book-a": 58692,
+ "book-audio": 58693,
+ "book-check": 58694,
+ "book-headphones": 58695,
+ "book-heart": 58696,
+ "book-image": 58697,
+ "book-open-text": 58698,
+ "book-text": 58699,
+ "book-type": 58700,
+ "book-user": 58701,
+ "library-big": 58702,
+ "square-library": 58703,
+ "circle-power": 58704,
+ "square-power": 58705,
+ "git-commit-vertical": 58706,
+ "git-compare-arrows": 58707,
+ "git-graph": 58708,
+ "git-pull-request-arrow": 58709,
+ "git-pull-request-create": 58710,
+ "git-pull-request-create-arrow": 58711,
+ "ribbon": 58712,
+ "square-check": 58713,
+ "audio-lines": 58714,
+ "audio-waveform": 58715,
+ "disc-album": 58716,
+ "drum": 58717,
+ "file-music": 58718,
+ "guitar": 58719,
+ "keyboard-music": 58720,
+ "piano": 58721,
+ "message-circle-code": 58722,
+ "message-circle-dashed": 58723,
+ "message-circle-heart": 58724,
+ "message-circle-more": 58725,
+ "message-circle-off": 58726,
+ "message-circle-plus": 58727,
+ "message-circle-question-mark": 58728,
+ "message-circle-reply": 58729,
+ "message-circle-warning": 58730,
+ "message-circle-x": 58731,
+ "message-square-code": 58732,
+ "message-square-diff": 58733,
+ "message-square-dot": 58734,
+ "message-square-heart": 58735,
+ "message-square-more": 58736,
+ "message-square-off": 58737,
+ "message-square-quote": 58738,
+ "message-square-reply": 58739,
+ "message-square-share": 58740,
+ "message-square-text": 58741,
+ "message-square-warning": 58742,
+ "message-square-x": 58743,
+ "user-round-search": 58744,
+ "user-search": 58745,
+ "squircle": 58746,
+ "alarm-smoke": 58747,
+ "bell-electric": 58748,
+ "cctv": 58749,
+ "fire-extinguisher": 58750,
+ "pointer-off": 58751,
+ "anvil": 58752,
+ "brick-wall": 58753,
+ "fence": 58754,
+ "inspection-panel": 58755,
+ "cooking-pot": 58756,
+ "a-arrow-down": 58757,
+ "a-arrow-up": 58758,
+ "a-large-small": 58759,
+ "panels-right-bottom": 58760,
+ "columns-4": 58761,
+ "rows-3": 58762,
+ "rows-4": 58763,
+ "bolt": 58764,
+ "drill": 58765,
+ "heater": 58766,
+ "vault": 58767,
+ "washing-machine": 58768,
+ "between-horizontal-end": 58769,
+ "between-horizontal-start": 58770,
+ "between-vertical-end": 58771,
+ "between-vertical-start": 58772,
+ "notebook": 58773,
+ "notebook-pen": 58774,
+ "notebook-tabs": 58775,
+ "notebook-text": 58776,
+ "notepad-text": 58777,
+ "notepad-text-dashed": 58778,
+ "list-collapse": 58779,
+ "blend": 58780,
+ "eclipse": 58781,
+ "paint-roller": 58782,
+ "swatch-book": 58783,
+ "file-sliders": 58784,
+ "square-arrow-out-down-left": 58785,
+ "square-arrow-out-down-right": 58786,
+ "square-arrow-out-up-left": 58787,
+ "square-arrow-out-up-right": 58788,
+ "receipt-cent": 58789,
+ "receipt-euro": 58790,
+ "receipt-indian-rupee": 58791,
+ "receipt-japanese-yen": 58792,
+ "receipt-pound-sterling": 58793,
+ "receipt-russian-ruble": 58794,
+ "receipt-swiss-franc": 58795,
+ "receipt-text": 58796,
+ "text-search": 58797,
+ "ticket-check": 58798,
+ "ticket-minus": 58799,
+ "ticket-percent": 58800,
+ "ticket-plus": 58801,
+ "ticket-slash": 58802,
+ "ticket-x": 58803,
+ "calendar-fold": 58804,
+ "calendar-minus-2": 58805,
+ "calendar-plus-2": 58806,
+ "webhook-off": 58807,
+ "hand-coins": 58808,
+ "hand-heart": 58809,
+ "hand-platter": 58810,
+ "ambulance": 58811,
+ "circle-fading-plus": 58812,
+ "headset": 58813,
+ "clipboard-minus": 58814,
+ "clipboard-plus": 58815,
+ "handshake": 58816,
+ "captions-off": 58817,
+ "radical": 58818,
+ "square-radical": 58819,
+ "images": 58820,
+ "telescope": 58821,
+ "pickaxe": 58822,
+ "table-cells-merge": 58823,
+ "table-cells-split": 58824,
+ "table-columns-split": 58825,
+ "table-rows-split": 58826,
+ "image-up": 58827,
+ "earth-lock": 58828,
+ "globe-lock": 58829,
+ "bot-message-square": 58830,
+ "proportions": 58831,
+ "rotate-ccw-square": 58832,
+ "rotate-cw-square": 58833,
+ "app-window-mac": 58834,
+ "dock": 58835,
+ "cannabis": 58836,
+ "briefcase-business": 58837,
+ "briefcase-medical": 58838,
+ "ham": 58839,
+ "hospital": 58840,
+ "beer-off": 58841,
+ "worm": 58842,
+ "mouse-off": 58843,
+ "pilcrow-left": 58844,
+ "pilcrow-right": 58845,
+ "keyboard-off": 58846,
+ "image-play": 58847,
+ "bot-off": 58848,
+ "diamond-minus": 58849,
+ "diamond-plus": 58850,
+ "origami": 58851,
+ "grid-2x2-check": 58852,
+ "grid-2x2-x": 58853,
+ "loader-pinwheel": 58854,
+ "mouse-pointer-ban": 58855,
+ "section": 58856,
+ "lectern": 58857,
+ "pill-bottle": 58858,
+ "biceps-flexed": 58859,
+ "tv-minimal-play": 58860,
+ "calendar-cog": 58861,
+ "pen-off": 58862,
+ "pencil-off": 58863,
+ "house-plug": 58864,
+ "house-plus": 58865,
+ "signature": 58866,
+ "save-off": 58867,
+ "logs": 58868,
+ "printer-check": 58869,
+ "scan-qr-code": 58870,
+ "wifi-high": 58871,
+ "wifi-low": 58872,
+ "wifi-zero": 58873,
+ "list-check": 58874,
+ "folder-code": 58875,
+ "user-pen": 58876,
+ "user-round-pen": 58877,
+ "calendar-arrow-down": 58878,
+ "calendar-arrow-up": 58879,
+ "clock-arrow-down": 58880,
+ "clock-arrow-up": 58881,
+ "type-outline": 58882,
+ "monitor-cog": 58883,
+ "philippine-peso": 58884,
+ "text-initial": 58885,
+ "dam": 58886,
+ "chart-bar-decreasing": 58887,
+ "chart-bar-increasing": 58888,
+ "chart-bar-stacked": 58889,
+ "chart-column-stacked": 58890,
+ "chart-network": 58891,
+ "chart-no-axes-combined": 58892,
+ "chart-spline": 58893,
+ "square-square": 58894,
+ "map-pin-check": 58895,
+ "map-pin-check-inside": 58896,
+ "map-pin-minus": 58897,
+ "map-pin-minus-inside": 58898,
+ "map-pin-plus": 58899,
+ "map-pin-plus-inside": 58900,
+ "map-pin-x": 58901,
+ "map-pin-x-inside": 58902,
+ "id-card": 58903,
+ "circle-fading-arrow-up": 58904,
+ "omega": 58905,
+ "microchip": 58906,
+ "amphora": 58907,
+ "map-pin-house": 58908,
+ "bandage": 58909,
+ "table-of-contents": 58910,
+ "chevrons-left-right-ellipsis": 58911,
+ "ethernet-port": 58912,
+ "binoculars": 58913,
+ "tickets": 58914,
+ "tickets-plane": 58915,
+ "chart-gantt": 58916,
+ "trending-up-down": 58917,
+ "volume-off": 58918,
+ "octagon-minus": 58919,
+ "grid-2x2-plus": 58920,
+ "headphone-off": 58921,
+ "clock-alert": 58922,
+ "briefcase-conveyor-belt": 58923,
+ "message-square-lock": 58924,
+ "file-user": 58925,
+ "eye-closed": 58926,
+ "volleyball": 58927,
+ "calendar-1": 58928,
+ "wind-arrow-down": 58929,
+ "laptop-minimal-check": 58930,
+ "cloud-alert": 58931,
+ "equal-approximately": 58932,
+ "toilet": 58933,
+ "calendar-sync": 58934,
+ "image-upscale": 58935,
+ "droplet-off": 58936,
+ "list-filter-plus": 58937,
+ "scan-heart": 58938,
+ "waves-ladder": 58939,
+ "house-wifi": 58940,
+ "triangle-dashed": 58941,
+ "battery-plus": 58942,
+ "map-plus": 58943,
+ "circle-small": 58944,
+ "mars": 58945,
+ "mars-stroke": 58946,
+ "non-binary": 58947,
+ "transgender": 58948,
+ "venus": 58949,
+ "venus-and-mars": 58950,
+ "shield-user": 58951,
+ "square-round-corner": 58952,
+ "shrimp": 58953,
+ "clock-fading": 58954,
+ "saudi-riyal": 58955,
+ "banknote-arrow-down": 58956,
+ "banknote-arrow-up": 58957,
+ "banknote-x": 58958,
+ "spline-pointer": 58959,
+ "rotate-ccw-key": 58960,
+ "heart-minus": 58961,
+ "heart-plus": 58962,
+ "brick-wall-fire": 58963,
+ "bubbles": 58964,
+ "map-pin-pen": 58965,
+ "rectangle-goggles": 58966,
+ "squares-exclude": 58967,
+ "squares-intersect": 58968,
+ "squares-subtract": 58969,
+ "squares-unite": 58970,
+ "shredder": 58971,
+ "decimals-arrow-left": 58972,
+ "decimals-arrow-right": 58973,
+ "bow-arrow": 58974,
+ "truck-electric": 58975,
+ "user-lock": 58976,
+ "columns-3-cog": 58977,
+ "ruler-dimension-line": 58978,
+ "wifi-pen": 58979,
+ "door-closed-locked": 58980,
+ "hamburger": 58981,
+ "brush-cleaning": 58982,
+ "clock-plus": 58983,
+ "panda": 58984,
+ "soap-dispenser-droplet": 58985,
+ "gpu": 58986,
+ "check-line": 58987,
+ "square-dashed-top-solid": 58988,
+ "circle-pound-sterling": 58989,
+ "cloud-check": 58990,
+ "grid-3x2": 58991,
+ "id-card-lanyard": 58992,
+ "card-sim": 58993,
+ "book-alert": 58994,
+ "rectangle-circle": 58995,
+ "wifi-cog": 58996,
+ "barrel": 58997,
+ "drone": 58998,
+ "spool": 58999,
+ "georgian-lari": 59000,
+ "squircle-dashed": 59001,
+ "line-squiggle": 59002,
+ "bottle-wine": 59003,
+ "vector-square": 59004,
+ "tool-case": 59005,
+ "badge-turkish-lira": 59006,
+ "receipt-turkish-lira": 59007,
+ "turkish-lira": 59008,
+ "wifi-sync": 59009,
+ "spotlight": 59010,
+ "hat-glasses": 59011,
+ "square-pause": 59012,
+ "square-stop": 59013,
+ "map-minus": 59014,
+ "user-star": 59015,
+ "clipboard-clock": 59016,
+ "handbag": 59017,
+ "closed-caption": 59018,
+ "hand-fist": 59019,
+ "turntable": 59020,
+ "circle-star": 59021,
+ "square-star": 59022,
+ "kayak": 59023,
+ "brick-wall-shield": 59024,
+ "rose": 59025,
+ "panel-left-right-dashed": 59026,
+ "panel-top-bottom-dashed": 59027,
+ "list-chevrons-down-up": 59028,
+ "house-heart": 59029,
+ "list-chevrons-up-down": 59030,
+ "ev-charger": 59031,
+ "motorbike": 59032,
+ "monitor-cloud": 59033,
+ "birdhouse": 59034,
+ "gamepad-directional": 59035,
+ "git-branch-minus": 59036,
+ "helicopter": 59037,
+ "clock-check": 59038,
+ "solar-panel": 59039,
+ "chess-bishop": 59040,
+ "chess-king": 59041,
+ "chess-knight": 59042,
+ "chess-pawn": 59043,
+ "chess-queen": 59044,
+ "chess-rook": 59045,
+ "mouse-pointer-2-off": 59046,
+ "calendars": 59047,
+ "form": 59048,
+ "waves-arrow-down": 59049,
+ "waves-arrow-up": 59050,
+ "book-search": 59051,
+ "scooter": 59052,
+ "van": 59053,
+ "weight-tilde": 59054,
+ "alarm-check": 57836,
+ "alarm-minus": 57837,
+ "alarm-plus": 57838,
+ "arrow-down-01": 58387,
+ "arrow-down-10": 58388,
+ "arrow-down-az": 58389,
+ "sort-desc": 57415,
+ "arrow-down-za": 58390,
+ "arrow-up-01": 58392,
+ "arrow-up-10": 58393,
+ "arrow-up-az": 58394,
+ "sort-asc": 57420,
+ "arrow-up-za": 58396,
+ "axis-3-d": 58110,
+ "verified": 57921,
+ "badge-help": 58491,
+ "between-horizonal-end": 58769,
+ "between-horizonal-start": 58770,
+ "book-template": 58349,
+ "curly-braces": 58218,
+ "subtitles": 58276,
+ "area-chart": 58579,
+ "bar-chart-horizontal-big": 58535,
+ "bar-chart-horizontal": 58018,
+ "candlestick-chart": 58536,
+ "bar-chart-big": 58537,
+ "bar-chart-4": 58020,
+ "bar-chart-3": 58019,
+ "line-chart": 58021,
+ "bar-chart": 57450,
+ "bar-chart-2": 57448,
+ "gantt-chart": 58564,
+ "pie-chart": 57451,
+ "scatter-chart": 58506,
+ "chrome": 57461,
+ "alert-circle": 57463,
+ "arrow-down-circle": 57464,
+ "arrow-left-circle": 57465,
+ "arrow-down-left-from-circle": 58359,
+ "arrow-down-right-from-circle": 58360,
+ "arrow-up-left-from-circle": 58361,
+ "arrow-up-right-from-circle": 58362,
+ "arrow-right-circle": 57466,
+ "arrow-up-circle": 57467,
+ "check-circle": 57468,
+ "check-circle-2": 57894,
+ "chevron-down-circle": 58589,
+ "chevron-left-circle": 58590,
+ "chevron-right-circle": 58591,
+ "chevron-up-circle": 58592,
+ "divide-circle": 57469,
+ "gauge-circle": 58593,
+ "minus-circle": 57470,
+ "parking-circle-off": 58314,
+ "parking-circle": 58313,
+ "pause-circle": 57471,
+ "percent-circle": 58650,
+ "play-circle": 57472,
+ "plus-circle": 57473,
+ "power-circle": 58704,
+ "help-circle": 57474,
+ "circle-help": 57474,
+ "circle-slashed": 57875,
+ "stop-circle": 57475,
+ "user-circle-2": 58466,
+ "user-circle": 58465,
+ "x-circle": 57476,
+ "clipboard-signature": 58120,
+ "clipboard-edit": 58119,
+ "download-cloud": 57481,
+ "upload-cloud": 57489,
+ "code-2": 57862,
+ "columns": 57496,
+ "columns-settings": 58977,
+ "table-config": 58977,
+ "panels-left-right": 57497,
+ "contact-2": 58467,
+ "percent-diamond": 58651,
+ "globe-2": 57843,
+ "more-vertical": 57527,
+ "more-horizontal": 57526,
+ "file-axis-3-d": 58126,
+ "file-badge-2": 58127,
+ "file-json-2": 58220,
+ "file-json": 58219,
+ "file-bar-chart": 58130,
+ "file-bar-chart-2": 58129,
+ "file-line-chart": 58131,
+ "file-pie-chart": 58132,
+ "file-check-2": 57538,
+ "file-code-2": 58462,
+ "file-cog-2": 58134,
+ "file-warning": 58137,
+ "file-audio": 58138,
+ "file-audio-2": 58138,
+ "file-key-2": 58141,
+ "file-lock-2": 58142,
+ "file-minus-2": 57543,
+ "file-signature": 58144,
+ "file-edit": 58143,
+ "file-video": 58145,
+ "file-plus-2": 57546,
+ "file-question": 58146,
+ "file-search-2": 58148,
+ "file-volume-2": 58149,
+ "file-type-2": 58221,
+ "file-video-2": 58155,
+ "file-x-2": 57550,
+ "fingerprint": 58059,
+ "folder-cog-2": 58161,
+ "folder-edit": 58168,
+ "filter-x": 58293,
+ "filter": 57564,
+ "git-commit": 57571,
+ "grid-2-x-2-check": 58852,
+ "grid-2-x-2-plus": 58920,
+ "grid-2-x-2-x": 58853,
+ "grid-2-x-2": 58623,
+ "grid": 57577,
+ "grid-3-x-3": 57577,
+ "grab": 57830,
+ "helping-hand": 58296,
+ "home": 57589,
+ "ice-cream-2": 58279,
+ "ice-cream": 58195,
+ "laptop-2": 57816,
+ "layers-3": 58665,
+ "outdent": 57607,
+ "indent-decrease": 57607,
+ "indent": 57608,
+ "indent-increase": 57608,
+ "loader-2": 57610,
+ "unlock-keyhole": 58674,
+ "unlock": 57612,
+ "mail-question": 58213,
+ "location-edit": 58965,
+ "message-circle-question": 58728,
+ "mic-2": 58185,
+ "move-3-d": 58085,
+ "alert-octagon": 57639,
+ "pause-octagon": 57883,
+ "x-octagon": 57640,
+ "paintbrush-2": 58088,
+ "panel-bottom-inactive": 58414,
+ "sidebar-close": 57884,
+ "panel-left-inactive": 58416,
+ "sidebar-open": 57885,
+ "sidebar": 57642,
+ "panel-right-inactive": 58419,
+ "panel-top-inactive": 58423,
+ "layout": 57644,
+ "edit-3": 57648,
+ "edit-2": 57647,
+ "plug-zap-2": 58460,
+ "form-input": 57887,
+ "rotate-3-d": 58090,
+ "rows": 58425,
+ "panels-top-bottom": 58762,
+ "scale-3-d": 58091,
+ "send-horizonal": 58610,
+ "shield-question": 58382,
+ "shield-close": 57856,
+ "sliders": 57698,
+ "stars": 58386,
+ "activity-square": 58548,
+ "arrow-down-left-square": 58549,
+ "arrow-down-right-square": 58550,
+ "arrow-down-square": 58407,
+ "arrow-left-square": 58408,
+ "arrow-down-left-from-square": 58785,
+ "arrow-down-right-from-square": 58786,
+ "arrow-up-left-from-square": 58787,
+ "arrow-up-right-from-square": 58788,
+ "arrow-right-square": 58409,
+ "arrow-up-left-square": 58551,
+ "arrow-up-right-square": 58552,
+ "arrow-up-square": 58410,
+ "asterisk-square": 57704,
+ "scissors-square-dashed-bottom": 58603,
+ "gantt-chart-square": 58916,
+ "square-gantt-chart": 57705,
+ "check-square": 57706,
+ "check-square-2": 58713,
+ "chevron-down-square": 58319,
+ "chevron-left-square": 58320,
+ "chevron-right-square": 58321,
+ "chevron-up-square": 58322,
+ "code-square": 57707,
+ "kanban-square-dashed": 57708,
+ "mouse-pointer-square-dashed": 58633,
+ "box-select": 57803,
+ "divide-square": 57709,
+ "dot-square": 57710,
+ "equal-square": 57711,
+ "function-square": 57901,
+ "kanban-square": 57712,
+ "library-square": 58703,
+ "m-square": 58627,
+ "menu-square": 58451,
+ "minus-square": 57713,
+ "inspect": 57858,
+ "parking-square-off": 58316,
+ "parking-square": 58315,
+ "pen-box": 57714,
+ "edit": 57714,
+ "pen-square": 57714,
+ "percent-square": 58652,
+ "pi-square": 58504,
+ "pilcrow-square": 58507,
+ "play-square": 58497,
+ "plus-square": 57715,
+ "power-square": 58705,
+ "scissors-square": 58604,
+ "sigma-square": 58505,
+ "slash-square": 57716,
+ "split-square-horizontal": 58294,
+ "split-square-vertical": 58295,
+ "terminal-square": 57866,
+ "user-square-2": 58470,
+ "user-square": 58469,
+ "x-square": 57717,
+ "test-tube-2": 58374,
+ "align-center": 57730,
+ "align-right": 57731,
+ "align-justify": 57732,
+ "text": 57733,
+ "align-left": 57733,
+ "letter-text": 58885,
+ "text-selection": 58334,
+ "wrap-text": 57928,
+ "train": 58025,
+ "palmtree": 57985,
+ "alert-triangle": 57747,
+ "tv-2": 57859,
+ "school-2": 58341,
+ "user-check-2": 58473,
+ "user-cog-2": 58474,
+ "user-minus-2": 58475,
+ "user-plus-2": 58476,
+ "user-x-2": 58477,
+ "user-2": 58472,
+ "users-2": 58478,
+ "fork-knife-crossed": 58103,
+ "fork-knife": 58102,
+ "wallet-2": 58573,
+ "wand-2": 58199,
+ "balloon": 59055,
+ "cannabis-off": 59055,
+ "circle-pile": 59055,
+ "cloud-backup": 59055,
+ "cloud-sync": 59055,
+ "fishing-hook": 59055,
+ "hd": 59055,
+ "layers-plus": 59055,
+ "search-alert": 59055,
+ "stone": 59055,
+ "toolbox": 59056
+}
diff --git a/tools/build-font/main.ts b/tools/build-font/main.ts
deleted file mode 100644
index 45a94f041..000000000
--- a/tools/build-font/main.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-import { readJson } from 'fs-extra/esm';
-import svgtofont from 'svgtofont';
-import getArgumentOptions from 'minimist';
-import path from 'path';
-
-const fontName = 'lucide';
-const classNamePrefix = 'icon';
-const startUnicode = 57400;
-
-const inputDir = path.join(process.cwd(), '../../', 'outlined');
-const cliArguments = getArgumentOptions(process.argv.slice(2));
-const { outputDir = 'lucide-font' } = cliArguments;
-const targetDir = path.join(process.cwd(), '../../', outputDir);
-const releaseMetaDataDir = path.join(process.cwd(), '../../', 'docs/.vitepress/data');
-const releaseMetaDataPath = path.resolve(releaseMetaDataDir, 'releaseMetaData.json');
-
-const releaseMetaData = convertReleaseMetaData(await getReleaseMetaData());
-
-async function getReleaseMetaData() {
- let releaseMetaData = {};
- try {
- releaseMetaData = await readJson(releaseMetaDataPath);
- } catch (err) {
- throw new Error('Execution stopped because no release information was found.');
- }
- return releaseMetaData;
-}
-
-type Releases = Record;
-
-type ReleaseMetaData = {
- createdRelease: {
- version: string;
- date: string;
- };
- changedRelease: {
- version: string;
- date: string;
- };
-};
-
-type ReleaseMetaDataWithName = ReleaseMetaData & {
- name: string;
-};
-
-function convertReleaseMetaData(releases: Releases) {
- return Object.entries(releases)
- .map(([key, data]) => ({
- ...data,
- name: key,
- }))
- .sort((a, b) => sortMultiple(a, b, [sortByCreatedReleaseDate, sortByName]))
- .map((value, index) => ({ ...value, index }))
- .map((value, index) => ({
- ...value,
- unicode: index + startUnicode,
- }));
-}
-
-type CollatorFunction = (a: ReleaseMetaDataWithName, b: ReleaseMetaDataWithName) => number;
-
-function sortMultiple(
- a: ReleaseMetaDataWithName,
- b: ReleaseMetaDataWithName,
- collators: CollatorFunction[] = [],
-) {
- const comparison = collators?.shift?.()?.(a, b) ?? 0;
- if (comparison === 0 && collators.length > 0) return sortMultiple(a, b, collators);
- return comparison;
-}
-
-function sortByCreatedReleaseDate(a: ReleaseMetaDataWithName, b: ReleaseMetaDataWithName) {
- const [dateA, dateB] = [a, b].map((value) => new Date(value.createdRelease.date).valueOf());
- return Number(dateA > dateB) - Number(dateA < dateB);
-}
-
-function sortByName(a: ReleaseMetaDataWithName, b: ReleaseMetaDataWithName) {
- return new Intl.Collator('en-US').compare(a.name, b.name);
-}
-
-function getIconUnicode(name: string): [string, number] {
- const { unicode } = releaseMetaData.find(({ name: iconName }) => iconName === name) ?? {
- unicode: startUnicode,
- };
- return [String.fromCharCode(unicode), startUnicode];
-}
-
-async function init() {
- console.time('Font generation');
- try {
- await svgtofont({
- src: path.resolve(process.cwd(), inputDir),
- dist: path.resolve(process.cwd(), targetDir),
- // styleTemplates: path.resolve(process.cwd(), 'styles'), // Add different templates if needed
- fontName,
- classNamePrefix,
- css: {
- fontSize: 'inherit',
- },
- emptyDist: true,
- useCSSVars: false,
- outSVGReact: false,
- outSVGPath: false,
- addLigatures: true,
- svgicons2svgfont: {
- fontHeight: 1000, // At least 1000 is recommended
- normalize: false,
- },
- generateInfoData: true,
- website: {
- title: 'Lucide',
- logo: undefined,
- meta: {
- description: 'Lucide icons as TTF/EOT/WOFF/WOFF2/SVG.',
- keywords: 'Lucide,TTF,EOT,WOFF,WOFF2,SVG',
- },
- corners: {
- url: 'https://github.com/lucide-icons/lucide',
- width: 62, // default: 60
- height: 62, // default: 60
- bgColor: '#dc3545', // default: '#151513'
- },
- links: [
- {
- title: 'GitHub',
- url: 'https://github.com/lucide-icons/lucide',
- },
- {
- title: 'Feedback',
- url: 'https://github.com/lucide-icons/lucide/issues',
- },
- {
- title: 'Font Class',
- url: 'index.html',
- },
- {
- title: 'Unicode',
- url: 'unicode.html',
- },
- ],
- },
- getIconUnicode,
- });
- } catch (err) {
- console.log(err);
- }
- console.timeEnd('Font generation');
-}
-
-init();
diff --git a/tools/outline-svg/oslllo-svg-fixer.d.ts b/tools/build-font/oslllo-svg-fixer.d.ts
similarity index 100%
rename from tools/outline-svg/oslllo-svg-fixer.d.ts
rename to tools/build-font/oslllo-svg-fixer.d.ts
diff --git a/tools/build-font/package.json b/tools/build-font/package.json
index dba56db3f..9630dd82b 100644
--- a/tools/build-font/package.json
+++ b/tools/build-font/package.json
@@ -6,7 +6,7 @@
"main": "main.ts",
"type": "module",
"scripts": {
- "start": "node ./main.ts"
+ "start": "node ./src/main.ts"
},
"keywords": [],
"author": "",
@@ -14,9 +14,11 @@
"dependencies": {
"fs-extra": "^11.2.0",
"minimist": "^1.2.8",
+ "oslllo-svg-fixer": "^5.0.0",
"svgtofont": "^6.5.0"
},
"devDependencies": {
+ "@lucide/helpers": "workspace:*",
"@types/fs-extra": "^11.0.4",
"@types/minimist": "^1.2.5",
"@types/node": "^22"
diff --git a/tools/build-font/src/allocateCodepoints.ts b/tools/build-font/src/allocateCodepoints.ts
new file mode 100644
index 000000000..59ef69d79
--- /dev/null
+++ b/tools/build-font/src/allocateCodepoints.ts
@@ -0,0 +1,60 @@
+import { type IconAliases } from '@lucide/helpers';
+import path from 'path';
+import { promises as fs } from 'fs';
+import { cwd } from 'process';
+
+export type CodePoints = Record;
+
+async function getLatestCodePoints(): Promise {
+ // This is for the first release where no codepoints.json exists yet
+ const codepointsContents = await fs.readFile(path.join(cwd(), 'codepoints.json'), 'utf-8');
+
+ return JSON.parse(codepointsContents) as CodePoints;
+
+ // TODO: Next releases will use the codepoints.json from latest release in lucide-static.
+ // const codepointsContents = await fetch('https://unpkg.com/lucide-static@latest/font/codepoints.json')
+ // return codepointsContents.json() as Promise
+}
+
+interface AllocateCodePointsOptions {
+ saveCodePoints?: boolean;
+ iconsWithAliases: IconAliases;
+}
+
+export async function allocateCodePoints({
+ saveCodePoints = false,
+ iconsWithAliases,
+}: AllocateCodePointsOptions): Promise {
+ const baseCodePoints = await getLatestCodePoints();
+
+ const endCodePoint = Math.max(...Object.values(baseCodePoints));
+
+ await Promise.all(
+ iconsWithAliases.map(async ([iconName, aliases]) => {
+ if (!baseCodePoints[iconName]) {
+ console.log('Code point not found creating new one for', iconName);
+ baseCodePoints[iconName] = endCodePoint + 1;
+ }
+
+ aliases.forEach((alias, index) => {
+ if (baseCodePoints[alias]) {
+ return;
+ }
+
+ console.log('Code point not found creating new one for', alias);
+
+ baseCodePoints[alias] = endCodePoint + index + 1;
+ });
+ }),
+ );
+
+ if (saveCodePoints) {
+ await fs.writeFile(
+ path.join(cwd(), 'codepoints.json'),
+ JSON.stringify(baseCodePoints, null, 2),
+ 'utf-8',
+ );
+ }
+
+ return baseCodePoints;
+}
diff --git a/tools/build-font/src/buildFont.ts b/tools/build-font/src/buildFont.ts
new file mode 100644
index 000000000..d182d79eb
--- /dev/null
+++ b/tools/build-font/src/buildFont.ts
@@ -0,0 +1,86 @@
+import svgtofont from 'svgtofont';
+import { type CodePoints } from './allocateCodepoints.ts';
+
+interface BuildFontOptions {
+ inputDir: string;
+ targetDir: string;
+ fontName: string;
+ classNamePrefix: string;
+ codePoints: CodePoints;
+ startUnicode: number;
+}
+
+export async function buildFont({
+ inputDir,
+ targetDir,
+ fontName,
+ classNamePrefix,
+ codePoints,
+ startUnicode,
+}: BuildFontOptions) {
+ console.time('Font generation');
+ try {
+ await svgtofont({
+ src: inputDir,
+ dist: targetDir,
+ fontName,
+ classNamePrefix,
+ css: {
+ fontSize: 'inherit',
+ },
+ emptyDist: true,
+ useCSSVars: false,
+ outSVGReact: false,
+ outSVGPath: false,
+ addLigatures: true,
+ svgicons2svgfont: {
+ fontHeight: 1000, // At least 1000 is recommended
+ normalize: false,
+ },
+ generateInfoData: true,
+ website: {
+ title: 'Lucide',
+ logo: undefined,
+ meta: {
+ description: 'Lucide icons as TTF/EOT/WOFF/WOFF2/SVG.',
+ keywords: 'Lucide,TTF,EOT,WOFF,WOFF2,SVG',
+ },
+ corners: {
+ url: 'https://github.com/lucide-icons/lucide',
+ width: 62, // default: 60
+ height: 62, // default: 60
+ bgColor: '#dc3545', // default: '#151513'
+ },
+ links: [
+ {
+ title: 'GitHub',
+ url: 'https://github.com/lucide-icons/lucide',
+ },
+ {
+ title: 'Feedback',
+ url: 'https://github.com/lucide-icons/lucide/issues',
+ },
+ {
+ title: 'Font Class',
+ url: 'index.html',
+ },
+ {
+ title: 'Unicode',
+ url: 'unicode.html',
+ },
+ ],
+ },
+ getIconUnicode: (name: string) => {
+ if (!codePoints[name]) {
+ throw new Error(`No codepoint found for icon: ${name}`);
+ }
+
+ const unicode = codePoints[name];
+ return [String.fromCharCode(unicode), startUnicode];
+ },
+ });
+ } catch (err) {
+ console.log(err);
+ }
+ console.timeEnd('Font generation');
+}
diff --git a/tools/build-font/src/helpers.ts b/tools/build-font/src/helpers.ts
new file mode 100644
index 000000000..7ed565185
--- /dev/null
+++ b/tools/build-font/src/helpers.ts
@@ -0,0 +1,19 @@
+import { type IconAliases } from '@lucide/helpers';
+import { type CodePoints } from './allocateCodepoints.ts';
+
+export function hasMissingCodePoints(
+ iconsWithAliases: IconAliases,
+ codePoints: CodePoints,
+): boolean {
+ return iconsWithAliases
+ .map(([iconName, aliases]) => [iconName, ...aliases])
+ .flat()
+ .some((name) => {
+ if (!codePoints?.[name]) {
+ console.log(`Missing code point for icon/alias: ${name}`);
+ return true;
+ }
+
+ return false;
+ });
+}
diff --git a/tools/build-font/src/main.ts b/tools/build-font/src/main.ts
new file mode 100644
index 000000000..5217f29db
--- /dev/null
+++ b/tools/build-font/src/main.ts
@@ -0,0 +1,52 @@
+import getArgumentOptions from 'minimist';
+import path from 'path';
+import { promises as fs } from 'fs';
+
+import { getAllIconAliases } from '@lucide/helpers';
+import { outlineSVG } from './outlineSVGs.ts';
+import { allocateCodePoints } from './allocateCodepoints.ts';
+import { buildFont } from './buildFont.ts';
+import { hasMissingCodePoints } from './helpers.ts';
+
+const fontName = 'lucide';
+const classNamePrefix = 'icon';
+const startUnicode = 57400;
+const outputDir = 'lucide-font';
+
+const { saveCodePoints = false } = getArgumentOptions(process.argv.slice(2)) ?? {};
+
+const repoRoot = path.join(process.cwd(), '../../');
+const iconsDir = path.join(repoRoot, 'icons');
+const outlinedDir = path.join(repoRoot, 'outlined');
+const targetDir = path.join(repoRoot, outputDir);
+
+const iconsWithAliases = await getAllIconAliases(iconsDir);
+
+await outlineSVG({
+ iconsDir,
+ outlinedDir,
+ iconsWithAliases,
+});
+
+const codePoints = await allocateCodePoints({
+ saveCodePoints,
+ iconsWithAliases,
+});
+
+if (hasMissingCodePoints(iconsWithAliases, codePoints)) {
+ throw new Error('Some icons or aliases are missing code points. See log for details.');
+}
+
+await buildFont({
+ inputDir: outlinedDir,
+ targetDir,
+ fontName,
+ classNamePrefix,
+ codePoints,
+ startUnicode,
+});
+
+await fs.copyFile(
+ path.join(process.cwd(), 'codepoints.json'),
+ path.join(targetDir, 'codepoints.json'),
+);
diff --git a/tools/build-font/src/outlineSVGs.ts b/tools/build-font/src/outlineSVGs.ts
new file mode 100644
index 000000000..389145401
--- /dev/null
+++ b/tools/build-font/src/outlineSVGs.ts
@@ -0,0 +1,49 @@
+import { promises as fs } from 'fs';
+import SVGFixer from 'oslllo-svg-fixer';
+import { type IconAliases } from '@lucide/helpers';
+import path from 'path';
+
+interface OutlineSVGOptions {
+ iconsDir: string;
+ outlinedDir: string;
+ iconsWithAliases: IconAliases;
+}
+
+export async function outlineSVG({ iconsDir, outlinedDir, iconsWithAliases }: OutlineSVGOptions) {
+ console.time('icon outliner');
+ try {
+ try {
+ await fs.mkdir(outlinedDir);
+ } catch (error) {} // eslint-disable-line no-empty
+
+ await SVGFixer(iconsDir, outlinedDir, {
+ showProgressBar: true,
+ traceResolution: 800,
+ }).fix();
+
+ console.log('Duplicate icons with aliases..');
+
+ await Promise.all(
+ iconsWithAliases.map(async ([iconName, aliases]) => {
+ const sourcePath = path.join(outlinedDir, `${iconName}.svg`);
+
+ await Promise.all(
+ aliases.map(async (aliasName) => {
+ const destinationPath = path.join(outlinedDir, `${aliasName}.svg`);
+
+ try {
+ await fs.copyFile(sourcePath, destinationPath);
+ console.log(`Copied ${iconName}.svg to ${aliasName}.svg`);
+ } catch (err) {
+ console.log(`Failed to copy ${sourcePath} to ${destinationPath}:`, err);
+ }
+ }),
+ );
+ }),
+ );
+
+ console.timeEnd('icon outliner');
+ } catch (err) {
+ console.log(err);
+ }
+}
diff --git a/tools/build-font/styles/.gitkeep b/tools/build-font/styles/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/tools/build-helpers/helpers.ts b/tools/build-helpers/helpers.ts
index 3c828f285..60f354649 100644
--- a/tools/build-helpers/helpers.ts
+++ b/tools/build-helpers/helpers.ts
@@ -7,6 +7,7 @@ export * from './src/appendFile.ts';
export * from './src/writeFile.ts';
export * from './src/writeFileIfNotExists.ts';
export * from './src/readAllMetadata.ts';
+export * from './src/getAllIconAliases.ts';
export * from './src/readMetadata.ts';
export * from './src/readSvgDirectory.ts';
export * from './src/readSvg.ts';
diff --git a/tools/build-helpers/src/getAllIconAliases.ts b/tools/build-helpers/src/getAllIconAliases.ts
new file mode 100644
index 000000000..b94c4aa51
--- /dev/null
+++ b/tools/build-helpers/src/getAllIconAliases.ts
@@ -0,0 +1,17 @@
+import { readAllMetadata } from './readAllMetadata.ts';
+
+export type IconAliases = [iconName: string, aliases: string[]][];
+
+export const getAllIconAliases = async (iconsDir: string): Promise => {
+ const metaDataFiles = await readAllMetadata(iconsDir);
+
+ return Object.entries(metaDataFiles).map(([iconName, metadata]) => {
+ const { aliases } = metadata;
+
+ if (!aliases?.length) return [iconName, []];
+
+ const aliasesNames = aliases.map((alias) => (typeof alias === 'string' ? alias : alias.name));
+
+ return [iconName, aliasesNames];
+ });
+};
diff --git a/tools/build-helpers/src/readAllMetadata.ts b/tools/build-helpers/src/readAllMetadata.ts
index b66f588d4..175296376 100644
--- a/tools/build-helpers/src/readAllMetadata.ts
+++ b/tools/build-helpers/src/readAllMetadata.ts
@@ -1,6 +1,7 @@
import fs from 'fs/promises';
import path from 'path';
import { readMetadata } from './readMetadata.ts';
+import { type IconMetadata } from '../../build-icons/types.ts';
/**
* Reads metadata from the icons/categories directories
@@ -8,7 +9,7 @@ import { readMetadata } from './readMetadata.ts';
* @param {string} directory
* @returns {object} A map of icon or category metadata
*/
-export const readAllMetadata = async (directory: string): Promise> => {
+export const readAllMetadata = async (directory: string): Promise> => {
const directoryContent = await fs.readdir(directory);
const metaDataPromises = directoryContent
@@ -16,6 +17,7 @@ export const readAllMetadata = async (directory: string): Promise [path.basename(file, '.json'), await readMetadata(file, directory)]);
const metadata = await Promise.all(metaDataPromises);
+
if (metadata.length === 0) {
throw new Error(`No metadata files found in directory: ${directory}`);
}
diff --git a/tools/outline-svg/README.md b/tools/outline-svg/README.md
deleted file mode 100644
index dab688975..000000000
--- a/tools/outline-svg/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# @lucide/outline-svg
-
-A internal used package to outline SVGs.
diff --git a/tools/outline-svg/main.ts b/tools/outline-svg/main.ts
deleted file mode 100644
index 36f1c5b68..000000000
--- a/tools/outline-svg/main.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { promises as fs } from 'fs';
-import SVGFixer from 'oslllo-svg-fixer';
-import getArgumentOptions from 'minimist';
-import path from 'path';
-
-const inputDir = path.join(process.cwd(), '../../icons');
-const cliArguments = getArgumentOptions(process.argv.slice(2));
-const { outputDir = 'outlined' } = cliArguments;
-const targetDir = path.join(process.cwd(), '../../', outputDir);
-
-async function init() {
- console.time('icon outliner');
- try {
- try {
- await fs.mkdir(targetDir);
- } catch (error) {} // eslint-disable-line no-empty
-
- await SVGFixer(inputDir, targetDir, {
- showProgressBar: true,
- traceResolution: 800,
- }).fix();
-
- console.timeEnd('icon outliner');
- } catch (err) {
- console.log(err);
- }
-}
-
-init();
diff --git a/tools/outline-svg/package.json b/tools/outline-svg/package.json
deleted file mode 100644
index e6c8aa997..000000000
--- a/tools/outline-svg/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "@lucide/outline-svg",
- "description": "A internal used package to outline SVGs.",
- "private": true,
- "version": "2.0.0",
- "main": "main.ts",
- "type": "module",
- "scripts": {
- "start": "node ./main.ts"
- },
- "keywords": [],
- "author": "",
- "license": "ISC",
- "dependencies": {
- "minimist": "^1.2.8",
- "oslllo-svg-fixer": "^5.0.0"
- }
-}
diff --git a/tools/outline-svg/tsconfig.json b/tools/outline-svg/tsconfig.json
deleted file mode 100644
index 6df24e8cd..000000000
--- a/tools/outline-svg/tsconfig.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "compilerOptions": {
- "strict": true,
- "declaration": true,
- "noEmitOnError": true,
- "noFallthroughCasesInSwitch": true,
- "moduleResolution": "node",
- "module": "ESNext",
- "target": "ESNext",
- "esModuleInterop": true,
- "lib": ["esnext"],
- "resolveJsonModule": true,
- "allowImportingTsExtensions": true,
- "noEmit": true,
- "sourceMap": true,
- "outDir": "./dist",
- },
-}
diff --git a/tools/rollup-plugins/package.json b/tools/rollup-plugins/package.json
index c9b3c5af8..eae98c0d4 100644
--- a/tools/rollup-plugins/package.json
+++ b/tools/rollup-plugins/package.json
@@ -11,7 +11,7 @@
"@rollup/plugin-node-resolve": "^16.0.3",
"@rollup/plugin-replace": "^6.0.3",
"esbuild": "^0.27.0",
- "rollup": "^4.53.3",
+ "rollup": "^4.59.0",
"rollup-plugin-esbuild": "^6.2.1",
"rollup-plugin-license": "^3.6.0",
"rollup-plugin-summary": "^3.0.1",